SQLite as VRAM? Open-Source Framework Enables Continual Learning on Edge Devices

Open-source framework stores model weights in SQLite for edge continual learning, with a Claude Code skill and AWE encoder.
This article introduces an open-source continual learning framework for edge devices that stores model weights, attention scores, and activity logs in a local SQLite database, switching tasks via customizable memory names to avoid catastrophic forgetting and eliminate reliance on many .pth files. It includes a Claude Code skill for generating PyTorch models following its memory management conventions; the AWE encoder uses eigenvalues and spectral methods for MLP weights, targeting QAT to reduce memory. Benchmarks under Docker ARM64/QEMU show MLP+LSTM at about 8.5% RAM, but emulation differs from real hardware, so data is directional. It also has built-in local P2P multi-agent coordination with SSL, HMAC, and rate limiting.
Running continual learning AI models on edge devices usually runs into an awkward reality: not enough RAM, and things go OOM as soon as you have a few models. An open-source project shared by a developer on Reddit, IntegratedPipeline-Framework-for-Continual-learning-Machine-Learning-Models, sidesteps this problem in a rather pragmatic way—treating a SQLite database as external weight storage for the model instead of stuffing all parameters into memory.
![reddit source: [Open-Source] Custom Deep-learning framework and Claude code setups.](/media/screenshots/source/45308_0.png)
Core Idea: Weights Live in SQLite, Not .pth Files
The most striking design of this framework is combining Memory-Augmented Neural Networks (MANN) with SQLite. In a traditional PyTorch workflow, each task typically saves a separate .pth file after training and loads it back into memory when needed. Here, the approach is different: the model's weights, attention scores, and activity logs are all stored in a local SQLite database.
The developer highlights a practical scenario: after training on Task A, you save a memory under a custom name, and switching to Task B does not cause catastrophic forgetting. This name-based memory management essentially turns "model weights" into queryable, auditable database records. For edge devices that need to switch frequently between multiple tasks, this is much cleaner than maintaining a pile of .pth files.
It should be noted that SQLite as external storage does not mean "zero memory"—relevant weights still need to be loaded into RAM during inference and training. Its value lies in persistence management and on-demand loading, not in completely eliminating memory usage.
Memory-Augmented Neural Networks (MANN) are a class of architectures that attach an external memory module to a standard neural network, dating back to Neural Turing Machines and Differentiable Neural Computers. The core idea is to let the network access an expandable memory matrix through differentiable read and write operations, thereby overcoming the limitation of parametric models where "knowledge is frozen in the weights."
In continual learning scenarios, the value of MANN lies in being able to write and retrieve memories by task or by sample, avoiding overwriting critical information from old tasks when training on new ones. Traditional MANN memory is usually an in-memory tensor (such as a learnable embedding table), which is lost on power-off or when the process ends. Persisting memory to storage like SQLite is equivalent to giving MANN a backend that can be persisted to disk, transactional, and queried via SQL—this is also the key engineering choice that distinguishes this project from typical MANN implementations.
Claude Code Skill: Generating PyTorch Models with Memory Management
The project ships with a Claude Code skill that can generate PyTorch models mimicking the framework's memory management system. According to the original post, this skill suits scenarios that want a "queryable memory system"—transparent, auditable, and without the need to create separate .pth files for each task, since all weights live inside the SQLite database.
This actually reflects an interesting trend: AI coding assistants are evolving from "writing code" to "encapsulating domain workflows." A skill codifies the framework's best practices, so users can generate compliant model structures without reading through the documentation. For developers unfamiliar with MANN, this lowering of the barrier may be more appealing than the framework itself.
Claude Code skill is a reusable capability encapsulation mechanism in Anthropic's coding assistant Claude Code. A skill typically consists of a structured description (such as SKILL.md) and optional helper scripts, telling the assistant the steps, code conventions, and best practices to follow in a specific task scenario. When a user invokes a skill, Claude Code loads these instructions into context, thereby generating code or performing operations according to a preset workflow.
Compared with ordinary "prompt templates," skills emphasize discoverability and composability: they can be explicitly triggered, referenced by other skills, and carry versioned domain knowledge. This project codifies the framework's memory management conventions into a skill, meaning users do not have to read the API documentation line by line for the assistant to produce structurally consistent model code according to project conventions. This also explains the article's judgment that assistants are "evolving from writing code to encapsulating domain workflows"—a skill is essentially encoding human engineering experience into a distributable workflow unit.
Custom Encoder for MLPs: Eigenvalues and Spectral Methods
The framework includes a geometric weight encoding method called AWE, which uses eigenvalues and spectral methods to encode the weights of MLPs. It is designed for Quantization-Aware Training (QAT), with the goal of reducing memory usage while maintaining training convergence consistency.
Readers with some experience in edge deployment will know that QAT itself is not a new concept, but binding it together with the process of "encoding weights into a database" requires extra engineering in the encoding/decoding stage. The original post does not provide comparison data between AWE and standard quantization methods, so the actual effectiveness of this part needs to be verified by users themselves.
Spectral methods in the context of neural networks usually refer to analysis and compression techniques based on matrix eigenvalue decomposition or singular value decomposition. After performing eigendecomposition or SVD on a weight matrix W of a layer, the original matrix can be approximated using a few dominant eigenvalues/singular values and their corresponding vectors, thereby achieving low-rank compression; the distribution of eigenvalues is also often used to characterize the condition number and training stability of the weights.
Quantization-Aware Training (QAT) inserts fake quantization nodes into the forward/backward propagation during training, so that the model perceives the error introduced by low-bit representations during the training phase, thereby preserving accuracy as much as possible after deployment quantization. The AWE in the article combines spectral encoding with QAT; a possible approach is to first represent MLP weights using eigenvalues/spectral coefficients to reduce storage dimensions, and then let the training process adapt to the numerical perturbations introduced by this encoding, so that the encode-decode round trip does not break convergence. Since the original post does not disclose the specific algorithm and comparison baselines, the actual benefits of this combination still need independent reproduction and verification.
Performance Data: 8.5% RAM Usage, but Look Carefully at Test Conditions
According to the repository's benchmarks (in a Docker ARM64/QEMU environment), an MLP + LSTM combination running takes about 8.5% of available RAM, with CPU utilization low and stable. This number is indeed attractive for Raspberry Pi-class devices.
However, there are two things to keep in mind: QEMU is an emulated environment, which may differ from real ARM hardware in memory behavior; second, the specific model size, dataset, and batch settings of the benchmark are not detailed in the original post. The 8.5% figure is better used as a "directional reference" rather than a directly applicable expected value for production environments.
QEMU's user-mode and system-mode emulation differ systematically from real hardware in memory behavior. QEMU executes ARM64 instructions through dynamic binary translation, and its memory allocation is jointly determined by the host's malloc and QEMU's own address space mapping. Page tables, TLBs, and cache hierarchies are all emulated, lacking the cache coherence, NUMA topology, and memory bandwidth constraints of real ARM cores.
Therefore, the RSS or available memory percentage measured in a Docker ARM64/QEMU environment may deviate by tens of percentage points from performance on real devices such as Raspberry Pi, especially for workloads sensitive to memory bandwidth or dependent on huge pages. Treating 8.5% as a directional indicator is reasonable, but for capacity planning, it should be re-measured on the target hardware with the same model size, batch size, and dataset, and peak RSS should be recorded rather than only the average.
Secure Local P2P Multi-Agent Coordination
The framework also includes built-in local or cross-network P2P multi-agent coordination capabilities, with security mechanisms such as SSL, API keys, HMAC authentication, and rate limiting. With multi-agent systems becoming increasingly common, building communication security into the framework layer is a plus, especially for scenarios that require multiple edge nodes to autonomously discover and collaborate within a LAN.
Installation and Applicability Boundaries
It can be installed via PyPI: pip install AbstractIntegratedModule. For ARM64 or custom environments, there are separate wheel configurations and Docker integration guides, and the Claude Code skill needs to be downloaded from the GitHub repository.
Frankly speaking, this project currently feels more like an "experimental framework with ideas" than a mature production tool. It suits two types of people: researchers who want to tinker with continual learning on low-power devices like Raspberry Pi, and developers who want to experience the Claude Code skill encapsulation workflow. If you just need a local LLM wrapper, this framework does not solve your problem; but if you are exploring non-LLM memory-augmented agent architectures, it provides a sample worth examining.
Original post: https://www.reddit.com/r/MachineLearning/comments/1s5f9j9/opensource_custom_deeplearning_framework_and/
One-line Summary
Open-source framework stores model weights in SQLite for edge continual learning, with a Claude Code skill and AWE encoder.
Paragraph Summary
This article introduces an open-source continual learning framework for edge devices. Its core design stores model weights, attention scores, and activity logs in a local SQLite database, switching between multiple tasks via customizable memory names to avoid catastrophic forgetting and eliminate dependence on numerous .pth files. The framework includes a Claude Code skill that can generate PyTorch models conforming to its memory management conventions; the AWE encoder uses eigenvalues and spectral methods to encode MLP weights, targeting quantization-aware training to reduce memory. Benchmarks under Docker ARM64/QEMU show MLP+LSTM at about 8.5% RAM, but emulated environments differ from real hardware, so the data should be used as a directional reference. The framework also includes built-in local P2P multi-agent coordination with SSL, HMAC, and rate limiting. Overall, it is positioned as an experimental framework with ideas, suitable for low-power device researchers and developers who want to experience skill encapsulation workflows.
Related articles

Amphibious Transforming Drone: Beyond 100x Power Savings, What Are the Real Needs?
Is the amphibious transforming drone just a gimmick? Starting from the 100x power difference of the M4 Morphobot, explore real application scenarios and thesis topic ideas, analyzing boundary conditions where pure drones and pure ground robots both fail.

Warhound Raises $200 Million: Genetically Engineered "War Dogs" Paired with Anduril Gear
Warhound raises $200M, backed by Ben Lamm and Palmer Luckey, to genetically engineer dogs for military and law enforcement use and equip them with Anduril gear. This article analyzes its technology direction, funding logic, and ethical controversy.

Claude API Comes to Google Cloud: IAM Integration and SDK Access Guide
Anthropic hosts the full Claude API on Google Cloud with IAM-controlled permissions and unified billing. This guide covers the Vertex AI and Anthropic-hosted entry points, IAM role configuration, and SDK access.