跳到主要内容
AI News HubLIVE
站内改写2 分钟阅读

在 Rust 中端到端训练语言模型:一份经验报告

文章摘要

作者独自用纯 Rust 完成约 0.4B 参数、孟加拉语优先的语言模型端到端预训练,租用 GPU 花费 164 美元。论文更重要的贡献是给出 Candle 与 Burn 作为训练后端的失败分类,并提出可捕获六类静默失败的梯度流验证方法;作者结论是 Rust 目前还不足以胜任训练,但适合端侧推理服务。

来源arXiv Computational Linguistics作者: Arif Adito
在 Rust 中端到端训练语言模型:一份经验报告
报告错误

纠错通道尚未开通,可先复制下方文章信息留存。

查看更正说明
直接读正文

这篇 arXiv 论文由 Arif Adito 于 2026 年 7 月 27 日提交,编号 arXiv:2609.25008,属于计算与语言(cs.CL)方向。作者报告了一次不同寻常的实验:完全依靠自己,用纯 Rust 从零到一端到端预训练一个语言模型,训练路径中既没有 PyTorch,也没有 Python,租用 GPU 的总花费为 164 美元。作者强调,这更像是一项个人成就,而非对社区的建议;论文真正有价值的贡献,是对 2026 年两种主流 Rust 机器学习框架——Candle 和 Burn——作为训练后端(而非推理后端)的系统性失败分类。

作者记录了 Candle 的五个缺陷,其中包括某些融合核在静默状态下完全不产生梯度;也记录了 Burn 的三个缺陷,包括反向传播只能达到理论 GPU 吞吐量约 3%,以及核融合路径在多十亿参数规模下会在训练中途触发段错误。这些缺陷没有一个会主动报错,全部都能通过常规的损失曲线检查而不被发现。为应对这种情况,作者描述了一套验证纪律,核心是一个“梯度流仲裁器”:它只运行一次前向和反向传播,然后断言每一个可训练参数都收到了有限且非零的梯度。这个测试具有通用性,可以移植到任何框架,并帮助作者捕获了六类此类静默失败。

训练得到的模型大约 0.4B 参数,以孟加拉语为优先。它在孟加拉语语言建模上表现出明显信号:每 token 负对数似然为 0.93,而随机初始化的对照模型为 12.60。与此同时,该模型在英语常识多选题上仅达到随机水平,这是刻意采用小规模、孟加拉语加权预算的预期结果——训练数据约 20 亿 token,耗时 54.6 小时,使用一张租用的 H100。作者还报告了孟加拉文字中的“分词肥力陷阱”:朴素的字节级分词把孟加拉语压缩到大约 1.4 字符/token,而英语为 3.9 字符/token,这会静默地颠倒语料库中的语言平衡;修复分词后,孟加拉语达到约 4.1 字符/token。

据作者所知,这是最早有记录的纯 Rust 端到端语言模型预训练运行之一。不过,在这次实验之后,作者把训练迁移到了 PyTorch,只保留 Rust 用于端侧服务。作者的结论是:就个人经验而言,Rust 目前还不是训练语言模型的有竞争力场所,但它可能是服务语言模型的好地方。

展开要点与分析

文章情报

工程师进阶

要点

  • 以 164 美元租用 GPU,无团队、无 PyTorch、训练路径无 Python,在纯 Rust 中完成端到端预训练。
  • 记录 Candle 五个缺陷和 Burn 三个缺陷,包括静默不产生梯度的融合核,以及多十亿参数规模下训练中途段错误。
  • 提出“梯度流仲裁器”:一次前向/反向传播即断言所有可训练参数获得有限且非零梯度,可推广到任意框架。
  • 0.4B 孟加拉语优先模型的每 token 负对数似然为 0.93,随机初始化对照为 12.60;英语常识选择题仅达随机水平;孟加拉文分词肥力陷阱从约 1.4 字符/token 修复到约 4.1。

要点与分析由自动化流程生成,可能有误,请结合原始来源核实。