mini-AGI:面向消费级硬件的持续学习字节级模型

mini-AGI 是一个字节级语言模型,旨在仅使用单个配备 8GB VRAM 的消费级 GPU 从零开始训练。与传统的冻结模型不同,mini-AGI 实现了一个持续学习系统,使其能够从数据流中学习,而不会出现通常与在线训练相关的灾难性遗忘。

架构:分页专家混合模型与自适应深度

mini-AGI 使用一种非传统的 Transformer 架构,优先考虑内存效率和动态计算。它不采用固定的层堆叠,而是使用两个密集的前导块,随后应用一个循环块最多 24 次。

动态计算与路由

  • 自适应深度(PonderNet): 模型使用一个停止头来决定每个字符所需的计算量。简单字符可能只需要一次计算,而复杂字符最多可消耗 24 次。这确保了计算资源根据输入的难度进行分配。
  • 循环 MoE 路由: 每次应用循环块时,模型从共享池中选择前 8 个专家。由于路由是按块应用而非按字符进行,单个字符可以在不同深度上激活大量不同的专家。
  • 字节级处理: 模型直接在 256 个字节值上运行。通过消除分词器,模型可以读取任何数据类型而无需新的词汇表。

通过分页实现内存管理

为了在 VRAM 不足的情况下运行更大的模型,mini-AGI 实现了一个分页系统,将磁盘空间作为权重的主要存储:

  • 磁盘存储: 每个专家的权重和 Adam 优化器动量均作为独立文件存储在磁盘上。
  • VRAM 工作集: 任何时候只有少量专家(工作集)驻留在 VRAM 中。
  • 按需交换: 模型根据前一个文本块的路由模式预测下一个文本块所需的专家。专家在磁盘、RAM 缓存和 VRAM 之间交换,以确保前向传播所需的参数可用。

缓解灾难性遗忘

从单一数据流中进行持续学习通常会导致“灾难性遗忘”,即新信息覆盖旧知识。mini-AGI 通过两种主要机制解决此问题:

主干学习率解耦

模型的“主干”——包括嵌入、注意力、路由和停止头——的训练学习率显著低于专家(0.1x)。

实验数据表明,虽然对主干和专家使用相同学习率会导致显著损失(遗忘),但 0.1x 主干学习率可保留 99.84% 的进度(相对于随机)。这防止了核心路由和结构逻辑被单一数据流的特定内容覆盖。

结构隔离

由于模型采用专家混合(MoE)方法,任何一次遍历中只有部分模型被更新。在对 524,000 个字符的国际象棋数据进行探测时,136 个专家中仅有 54 个接收梯度。这种结构隔离确保学习新主题不会必然干扰用于其他主题的参数。

模型增长与剪枝

mini-AGI 被设计为根据遇到的数据动态增长和收缩其容量:

  • 通过重组实现增长: 当模型容量不足时,新专家通过重组现有专家的隐藏单元创建。这确保新专家从有用且已训练的组件开始,而非随机噪声。
  • 通过使用情况剪枝: 长时间未被路由选中的专家被视为“死亡”,并从磁盘中删除以释放空间。
  • 增长约束: 仅在满足特定条件时才添加新专家,包括可用的磁盘/VRAM 空间以及保留损失的稳定性(“诚实”制动)。

性能与扩展性

报告时,模型已读取约 3.181 亿个字符,包含 169 个专家。其在八个主题上的保留损失为 0.8336 nats/字符(1.2026 位/字节)。

数据扩展趋势

扩展性分析表明,模型遵循健康的幂律关系(L ∝ D^-0.239)。作者建议,达到 0.80 BPB(每字节位数)需要约 19.2 亿字节的数据,这在单台笔记本 GPU 上训练几周内即可实现。

社区见解与批评

技术用户之间的讨论突显了当前实现的潜力与局限性:

  • 泛化与记忆化: 一些用户质疑模型是否真正实现了泛化,还是仅执行了高效的记忆化。有用户指出,模型当前的每字节位数(BPB)表现比一些在特定数据集(如 enwik9)上训练的小型密集模型更差。
  • 架构潜力: 由于其持续学习的特性,模型被认为具有“类 AGI”潜力,有建议探索嵌套强化学习或自相似递归架构。
  • 学习率担忧: 批评者指出,主干学习率的降低可能仅延迟灾难性遗忘,而非彻底消除,暗示主干在极长的时间尺度上最终仍会遗忘。

"专家池本身并不能防止遗忘。冻结工作集……仅损失 0.3571 nats……保留大部分权重并不足够。"

技术规格摘要

组件 详细信息
词汇表 265(256 个字节 + 9 个标记)
上下文窗口 4,096
核心架构 RMSNorm, RoPE, SwiGLU, Flash Attention
深度 2 个前导块 + 1 个循环块(最多应用 24 次)
VRAM 要求 最低 8 GB
参数管理 分页 MoE(磁盘 $
ightarrow$ RAM $
ightarrow$ VRAM)

Sources

相关