← 返回信息流
AI 资讯Hacker News·5 小时前

我训练的语言模型认为日本首都是巴黎

原标题:Show HN: I trained a language model that thinks the capital of Japan is Paris

速览

一位开发者展示了他训练的一个小型语言模型,在问答中居然认为日本首都是巴黎而非东京。这一错误可能源于训练数据中的偏差或模型记忆问题,虽然有趣,但也提醒人们注意AI可靠性和数据质量。该模型并非精心优化,更像是一个实验性项目。

AI 深度解读

背景

这篇文章来自 Hacker News 的 Show HN 板块,作者是一名13岁的少年。他花了自己的时间和金钱训练了一个语言模型,该模型认为日本首都是巴黎——当然,实际上日本首都是东京。这个看似荒诞的标题背后,是他对当前大语言模型(LLM)架构的一次严肃探索。他指出,注意力机制(Attention)虽然成就了今天的 Transformer 架构(Vaswani et al., 2017),但其复杂度随上下文长度呈二次增长(quadratic complexity),在处理长上下文(如编码器持有整个代码仓库、助手维护一周对话历史、检索管道将数十份文档塞入一个提示)时,计算成本越来越高。为此,他提出了 DIMBA 架构(第二版,DIMBA II),结合了 Mamba-2 的极端上下文效率和扩散语言模型的并行生成能力。

核心内容

作者详细介绍了 DIMBA II 的设计、训练过程、遇到的 Bug 以及实验结论。

架构设计

DIMBA 将 Mamba-2(Dao and Gu, 2024)的双向状态空间模型与掩码扩散语言模型(masked diffusion)结合。据他所知,这是首次将双向 Mamba 作为背骨(spine)用于扩散文本模型——此前所有掩码扩散模型(如 LLaDA、MDLM、Dream)都基于 Transformer 背骨。DIMBA II 相对于第一版 DIMBA I 的主要改进包括:

  • 放弃潜在空间扩散:DIMBA I 在连续潜在空间加高斯噪声,然后“快照”到最近的词语,导致输出词语沙拉(word salad)。DIMBA II 改用前沿的掩码扩散:模型看到带有 [MASK] 标记的文本,直接学习填充。
  • 微调损失计算:只对“响应 + 一个结束记号(EOS)”计算损失,不包含填充尾部。否则模型会默默学会最优答案是空答案。
  • 10% 训练行隐藏提示(prompt):这使得推理时可以使用无分类器指导(classifier-free guidance),是提升质量最重要的杠杆。
  • 抗重复采样器:对每个词的首次使用不惩罚,重复则惩罚,且禁止连续两个相同标记。

实际训练的模型

  • 参数规模约 3 亿(实测 287.9M),从 SmolLM-135M 跨架构蒸馏而来(cross-architecture distillation),使用 LLaDA 风格的掩码扩散 + Mamba 混合器。
  • 在基础模型的 MLP 之上额外训练了 280 亿(28B)个 token。
  • 为什么模型比教师大两倍多?因为双向性需要同时运行前向和后向堆,使混合器参数翻倍;此外扩散需要时间步条件(timestep conditioning),普通 LLM 不需要。实际知识容量仍相当于 135M 参数。

训练中的 Bug 与补救

两个重大 Bug:

  1. 在 28B token 蒸馏阶段,教师模型全程未开启,等于交了学费但老师没来上课。
  2. 目标使用了潜在扩散,结果输出词语沙拉。

发现问题后已无法重来(已花费几百美元),作者进行了补救:

  • 先做 1.6B token 的修复训练,开启教师模型。
  • 然后进行转换阶段,教会模型使用 LLaDA 风格的掩码扩散。
  • 最后在约 422k 指令对上进行监督微调。最终得到一个勉强能说英语的模型。

小模型无法自我评判:六个失败的实验

作者测试了六种让模型自我改进的方法,全部失败:

  1. 困惑度重排序:生成 8 个候选答案让模型选最佳,它总是选择退化循环(重复),因为模型喜欢易预测的循环。
  2. 基于置信度的重掩码:找出最不确定的标记重掩再填充,准确率无变化。
  3. 更智能的重填策略:同样无效。
  4. 修复训练(Repair Training):用随机植入错误训练,检测率从 0 提升到 7.1%;但用自己采样的错误训练时,检测率降为 0。因为自己的错误正是它认为合理的。
  5. 置信度下降重掩码:当已提交标记的概率在后续语境填充后下降时重掩,几乎从不触发。模型对错误只会越来越自信。
  6. 前瞻验证:提交后立即重新评分,撤销变差的标记,同样几乎不触发。

外部批评头(Critic Head)的成功与局限

一个外部小批评头(30 万参数)读冻结模型的内部特征,对每个标记评分正确/错误,用植入错误训练。它能以 52.5% 的精度标记错误标记(随机基准 10%),78.9% 时将错误标记排在正确标记之前(随机基准 50%)。而模型自身的置信度在同样测试中完全随机。但将该批评头接入修正循环时,出现了古德哈特效应(Goodhart's law):批评头分数每轮提升,但实际答案没有变好,因为填充被标记的仍然是同一个小模型。

推理调节旋钮

作者设计了一个有趣的推理级控制旋钮(dial),从“较慢但正确”到“较快但稍差”连续可调。旋钮同时控制两个变量:

  • 扩散步数(16 到 256,步数越多每步提交标记越少,错误越少)
  • 候选答案数量(1 到 8),由一个验证器选优。验证器通过掩码每个完成答案的部分,测量模型在提示条件下的预测与真实文本的一致性,批评头可作决胜局。

旋钮是扩散模型的原生机制,同等规模的自回归模型没有此杠杆。

最终效果:成本轴完美工作(多步数+多候选提高质量但增加推理时间与计算),但质量提升有限,因模型太小。

关键要点

  • 架构创新:DIMBA 首次将双向 Mamba 与掩码扩散结合,突破 Transformer 的二次复杂度瓶颈。
  • 小模型困境:小于一定规模的语言模型无法自我评判或自我改进,自我纠错能力是小尺度的首要牺牲品(self-judgment is the first casualty of small scale)。
  • 训练陷阱:微调时包含填充尾部会偷偷教模型输出空答案;蒸馏时教师模型未开启等于白训;潜在空间扩散生成词语沙拉。
  • 外部辅助比内部反思可靠:一个小批评头能显著检测错误,但接入循环仍失败,因为回填仍是同一个弱模型。
  • 扩散模型的可调性优势:通过调节扩散步数和候选数,可以在推理时权衡速度与质量,自回归模型缺少等价杠杆。
  • 作者年龄与投入:13岁少年用自己零花钱和大量时间完成了端到端的模型训练、架构设计、实验分析,并在文章中展示了深刻的工程直觉和学术思考。

意义与影响

这篇文章虽然以一个“开玩笑”的标题出现,实际上提出了:

  1. 对 Transformer 长上下文计算瓶颈的实质性回应:DIMBA 架构为未来低成本长上下文模型提供了一条新路径,特别是在中小规模设备或实时应用场景。
  2. 对小语言模型自我纠正局限性的系统实证:六个失败的实验清晰地划定了小模型的能力边界——它们无法像大模型那样“自己发现自己错了”,因此现实部署中必须依赖外部约束(如规则、验证器、人机交互)。
  3. 对机器学习社区“盲目优化指标”的警示:作者用惨痛教训展示了微调时包含 padding 如何导致损失曲线漂亮但输出无意义,以及蒸馏时教师缺席带来的无声灾难。这些细节对学术界和工业者都有教育意义。
  4. 展示了年轻一代的研究潜力:13岁少年能够独立完成从论文研读、架构设计、代码实现、实验运行、Bug 排查到深刻反思的全流程,说明开源社区和低成本计算降低了 AI 研究的门槛。

总之,这篇帖子不仅是一个幽默的 Demo,更是一份关于小尺度语言模型架构设计、训练陷阱和自身局限的实践报告,对从事高效模型研制和边缘部署的开发者具有参考价值。

查看原文 →hamiltonianresearch.xyz