
项目概览:个人硬件上的持续学习实验
mini-AGI 是一款面向个人电脑的字节级语言模型,其核心特性是持续学习与架构自组装。该模型能够在单张 8 GB 显存的消费级 GPU 上从头训练,并随着数据摄入不断进化。通过将权重以普通文件形式存储于磁盘,并按需分页加载至显存,mini-AGI 突破了传统显存容量对参数量的限制,其规模仅受限于磁盘空间。
需要明确的是,目前这仍是一个实验性质的“玩具级”模型。它并非旨在追求前沿的性能基准,而是为了验证一个核心假设:在适度硬件上,仅通过单一数据流进行持续学习且不发生“灾难性遗忘”是可行的。这意味着任何用户均可利用自有数据训练专属模型版本,其最终能力取决于硬件条件、数据质量及投入的训练时长。
目前,模型权重尚未发布。项目方正在进行第一遍语料库阅读,预计需数周完成后才会上传权重。
设计动机:打破“冻结模型”的局限
当前主流的语言模型多为“冻结”状态,用户仅能进行有限的微调,无法在本地硬件上从头训练或持续更新,否则极易导致模型遗忘既有知识。mini-AGI 旨在解决这一痛点,其设计理念遵循三大约束:
- 适配 8 GB 显存:摒弃量化方案,通过将权重驻留磁盘、仅加载工作集至内存,满足训练所需的梯度与优化器状态存储需求。
- 拒绝遗忘:确保模型在不断学习新内容的同时,保留已有知识,避免性能倒退。
- 通用读取能力:采用 256 个字节值作为字母表,无需分词器拟合,可直接处理任意二进制数据流。
在该架构中,阅读即训练。模型以字符为单位逐个读取数据流并执行梯度更新,生成过程复用相同代码路径,不存在独立的微调阶段或冻结基础模型。
架构解析:自适应深度与动态路由
mini-AGI 摒弃了传统的固定层级堆栈,采用一种自我组装的动态架构。字符数据经过两个密集的前奏模块后,进入循环模块,最多可被应用 24 次。每次应用均从共享专家池中动态选择顶级 8 个专家,潜在状态在层间合并而不解码,确保模型专注于当前文本上下文。
核心机制包括:
- 自适应深度(PonderNet):模型根据字符难度动态调整计算深度。简单字符仅需少量计算层,复杂字符则调用更多层级,通过停止概率加权实现高效推理。
- 按模块应用路由:专家选择基于每次模块应用而非单个字符,使得同一专家可在不同深度被多次调用,扩大了有效感受野。
- 无主题绑定:专家未被预分配特定主题,软 Top-k 路由自动分布能力,允许字符组合多个专家的片段,尽管这可能带来参数干扰风险。
可视化数据显示,模型在读取与写入时表现出不同的深度消耗:写入平均每个字符消耗约 9.9 层,而读取为 8.0 层。这种差异反映了生成任务相较于理解任务更高的计算复杂度。
技术突破:如何解决灾难性遗忘
在单一数据流上持续训练通常会导致灾难性遗忘。实验显示,若以标准学习率阅读 50 万字符的国际象棋数据,其他主题的困惑度将显著恶化。mini-AGI 通过主干低学习率策略解决了这一问题。
模型将嵌入、注意力机制、路由器等“主干”部分的学习率设定为专家学习率的 0.1 倍。由于主干承载了 97.6% 的梯度范数,降低其更新速率可将遗忘率从 +2.23 nats 降至 +0.0067 nats,实现了 99.84% 的知识保留率。相比之下,冻结工作集或同等学习率策略均无法有效防止模型崩溃。
此外,模型通过监控保留集损失动态调整学习率,而非使用固定的余弦调度,确保持续学习的稳定性。当检测到性能发散时,系统会自动回滚权重、减半学习率并缩小上下文窗口,实现自我修复。
分页与增长:磁盘即内存
mini-AGI 采用三级存储架构:磁盘存储所有专家文件,RAM 缓存最近使用的专家(LRU 策略),VRAM 仅驻留当前工作集(约 32 个专家)。Adam 优化器的动量矩随专家文件移动,确保训练状态的连续性。
动态增长与剪枝:
- 增长机制:当现有专家池容量不足时,模型通过重组现有专家的隐藏单元生成新专家,并通过严格的“刹车”机制(空间、使用率、收益、适配度、诚实度)控制新增规模。
- 剪枝逻辑:基于“最后被请求时间”而非门控值判断专家活跃度。长期未被调用的专家文件将被删除,而新专家在生存窗口内受到保护,避免过早淘汰。
当前性能与基准
截至撰写本文,模型已阅读 3.181 亿字符,拥有 169 个专家,总参数量约 5.4 亿。在保留集上的表现如下:
- 整体损失:0.8336 nats/char (1.2026 bits/byte)
- 分项表现:国际象棋 (0.552)、故事 (0.637)、算术 (0.657)、代码 (0.739)、推理 (0.794) 等主题表现各异,其中维基百科和聊天数据损失较高。
数据缩放分析显示,模型损失遵循幂律分布 (L ∝ D^-0.239),指数介于 Kaplan 和 Chinchilla 定律之间。预计在笔记本 GPU 上运行数天至数周,即可在单次语料库遍历中达到更具竞争力的性能水平。
使用指南
用户需配备支持 CUDA 且显存至少 8 GB 的 GPU(如 RTX 3070 Laptop)及 Python 3.10+ 环境。项目提供了完整的命令行工具链:
- 构建语料库:
python3 -m corpora all可下载并处理公共数据集。 - 启动训练:
python3 train.py read [目录] --save开始持续学习过程。 - 本地服务:
python3 serve.py提供 Web UI 交互界面。
模型状态完全由 weights/ 目录定义,包含核心参数、路由器配置及各专家文件。所有写入操作均为原子性,确保中断后可安全恢复。
致谢与引用
项目开发得到了 Claude Opus 5 模型的辅助,用于代码实现、调试及数据可视化。架构设计借鉴了 Sparse MoE、Switch Transformers、PonderNet、RoFormer 等多项前沿研究成果。如需在研究中引用该项目,请使用提供的 BibTeX 格式,注意引用年份为 2026 年。