独立开发者在 M1 Mac 上用 1.5GB 内存训练 2.7 亿参数 RWKV 模型
开发者基于 RWKV-8 Heron 与 1-bit ROSA 激活,在 8GB 内存的 M1 MacBook 上以 1…
独立开发者 Vladislav-Kalinkin 在 Hacker News 上展示了名为「Ullis」的个人项目:在 2020 款 8GB 内存的 MacBook Pro M1 上,仅用 1.5GB 内存占用训练了一个约 2.72 亿参数、32 层、上下文长度 2048 的语言模型。项目代码已开源在 GitHub,仓库地址为 https://github.com/Vladislav-Kalinkin/ullis。
技术路线:RWKV-8 Heron + 1-bit ROSA
作者最初尝试了 KAN 和 Hyena 架构,但因资源开销过大未能跑通,最终选定 RWKV-8 Heron 版本,并搭配 1-bit ROSA(Random Orthogonal Stochastic Activation)激活。RWKV 作为线性注意力路线的代表,理论上对内存更友好;1-bit 激活进一步压低了参数和激活的存储需求,使得在受限设备上训练大参数模型成为可能。
- 参数量:约 2.72 亿
- 层数:32
- 上下文长度:2048
- 训练内存占用:约 1.5 GB(rss 约 1628–1643 MiB)
- 训练硬件:M1 8GB,内存带宽 68 GB/s
硬件层面的实测
为节省显存,ROSA SAM(稀疏/采样相关算子)被刻意保留在 CPU 上运行,LN、QKV、CMix 和输出头走 Metal GPU。项目在约 379 秒初始化后开始训练,单步耗时约 28 秒,吞吐约 73 token/s。具体到各阶段,单步前向中 fwd_rosa 约 5.7–7.2 秒、fwd_cmix 约 4.7–5.9 秒;反向中 bwd_cmix 最重,约 9.7–11.8 秒,bwd_rosa 约 2.7–3.2 秒。整体瓶颈在反向传播和 CPU 端的 ROSA 计算,受限于 M1 的内存带宽。
训练数据与效果
由于还没有实现多阶段预训练管线,作者直接使用了一份 Claude Opus 蒸馏数据集进行训练,并在 5500 步后做了一次生成测试:提示词为「2+2」,温度 0.4、top-p 0.8。模型输出基本是无法解析的字符碎片(例如「No a single = = = = = = i [b_t + 1 + 3-c)$ ...」),并未给出正确答案。作者坦言,模型「具备学习能力」,但受限于无法让主力工作笔记本 7×24 小时运行训练,止步于这个相对初步的结果,并提示训练算法可能存在实现缺陷。
局限与作者呼吁
该项目目前存在以下不足:
- 没有预训练阶段,仅在小规模蒸馏数据上做了有限步数训练;
- 缺少与同规模 Transformer / 其他架构的基准对比;
- 作者自承经验尚浅,不排除训练逻辑中仍有 bug;
- 单步 28 秒、73 token/s 的吞吐对实用训练仍偏慢。
作者在文末表示希望找到愿意做测试、具有领域经验的协作者或愿意反馈的开发者,以便继续完善 Ullis。对于关注低资源训练、RWKV 路线落地或 Apple Silicon 上 ML 工作负载的读者,这是一个值得跟进的开源实验,但目前距离可用模型还有相当距离。
