论文
在无依赖性堆栈上预训练和调整语言模型:来自随机权重的 GPT-2 124M,根据 llm.c 复制,以及 Qwen3-0.6B 的临床适配器
Pretraining and adapting a language model on a dependency-free stack: GPT-2 124M from random weights, reproduced against llm.c, and a clinical adapter for Qwen3-0.6B
摘要
几乎每种正在使用的语言模型都是由一个软件系列进行训练的。这种集中使得一个问题很难解决:关于训练语言模型的知识有多少描述了语言模型,又有多少描述了该软件?解决这个问题需要第二个实现,能够在整个生命周期中承载模型,而不是重现一个运算符。我们报告了这样的生命周期。使用 numbat(一种用 Zig 编写的机器学习堆栈,没有第三方运行时依赖项),我们通过 9.91 B 个网络文本标记的随机初始化来预训练 124.4 M 参数的 GPT-2,然后将一个单独的小模型应用于临床问答。参考实现在两个阶段都在相同的硬件上运行,并且有权停止运行的 sidecar 对每个阶段进行监督。协议已接近。保留的交叉熵最终结果为 3.2588,公布的结果为 3.29,HellaSwag 的结果为 0.3053,而公布的结果为 0.299;在 8 组配对评估中,它在每个点都低于同机参考,平均低 0.0608。在不同的硬件上重新运行该参考会将其移动 0.0035,这限制了方法而不是框架的差距。吞吐量并不能满足协议的要求:在生产配置的一个会话中测量,numbat 达到每秒 43,374 个词元,而 PyTorch 为 41,202 个,在三张卡上扩展了 2.769 倍。临床适应结束于 2.1899,相对于 2.1941 的亏损。这两种模型都不是医疗设备,也都没有经过临床使用验证。