展示 HN:我训练了一个语言模型,它认为日本的首都是巴黎
写作 · 技术报告 我13岁,花了数小时和自己的资金来训练一个认为日本首都是巴黎的语言模型。首先你应该知道的是:与普遍看法相反,日本的首都是东京。现在我知道你在想什么……这个模型的意义何在?你可能认为我只是构建了另一个 ChatGPT 的包装,但事实并非如此。变换器架构,由论文《注意力是你所需要的一切》(Vaswani 等人,2017)推广,是目前大规模语言模型(LLMs)的最新状态架构。我不会详细介绍它的工作原理,因为这是一个不同架构的技术概述,但你可以阅读论文。明确来说,我并不是在贬低变换器。如果没有它,我们不会拥有(可以说在某种程度上是)当今时代的人工通用智能(AGI)。但强大的能力也带来了巨大的计算复杂性:注意力成本随着上下文长度的平方增长。而今天我们对人工智能的要求(编码代理持有整个代码库的上下文,助手携带几周的聊天历史,检索管道将数十份文档塞入一个提示中,而且所有这些都希望快速且便宜)使我们目前处理文本的方式开始出现问题。这就是 DIMBA 的用武之地。从技术上讲,这是 DIMBA II,第二代架构。第一代从未脱离 GPU,因此就世界而言,这就是 DIMBA。DIMBA 架构结合了 Mamba-2(Dao 和 Gu,2024)的极端上下文效率与扩散语言模型的并行生成。据我所知,没有人发布过这种组合:我所知道的每个掩码扩散文本模型(LLaDA,MDLM,Dream)都依赖于变换器主干。DIMBA 则基于双向 Mamba 骨架。关于 DIMBA II 与 DIMBA I 的一些修复,简而言之:DIMBA I 使用潜在空间扩散,早期的 DIMBA II 构建也是如此。经过测试,这被证明在文本生成过程中问题重重(稍后会详细说明)。我们可能仍会在更大基础的训练中将其作为“规划模式”引入,它在潜在空间中勾画答案,然后再生成文本。DIMBA I 在连续空间中扩散高斯噪声,然后将结果固定到最近的单词。那个最终的固定是所有问题的根源:光滑的向量解码为词语沙拉。DIMBA II 切换到当前的前沿技术,掩码扩散,在这种情况下,模型查看带有 [MASK] 标记的文本,并学习直接填充它们。微调损失在响应上计算,加上恰好一个序列末尾标记,从不在填充尾部计算。训练时的填充默默地教会模型最佳答案是一个空白,而损失图看起来很不错。问我怎么知道的。训练行的10%完全隐藏提示,这在推理时解锁了无分类器引导。这被证明是整个项目中最大的质量杠杆。一个反重复抽样器:宽恕每个单词第一次使用的频率处罚和惩罚重复使用的频率,另外禁止连续两次使用相同的标记。 我实际构建的模型 我们训练了一个大约300M参数的模型(测量为287.9M),基于DIMBA II架构,从SmolLM-135M中跨架构提炼,使用LLaDA风格的掩码扩散与基于Mamba的混合器,在28B个标记的基础上,提取自基模型的MLPs。现在你可能在想:等一下,为什么这个模型的规模是其教师的两倍多?因为双向性是昂贵的。为了查看掩码标记两侧的上下文,DIMBA运行一个前向栈和一个后向栈,这大致上使混合器的大小翻倍,而且扩散也支付了正常的LLM不需要的时间步条件。诚实地说,标签是288M参数,具有135M级的知识容量,因为这两个方向大多数情况下重复存储相同的事实。记住这个“重复”,因为我在这篇帖子中最喜欢的结果之一就是关于删除它。该模型的训练效果没有我希望的那样好,因为有两个特定的bug。第一个:在28B标记的蒸馏阶段,教师模型实际上关闭了整个运行。我支付了一个导师,但导师从未出现在课堂上。第二个如上所述:整个运行目标是潜在扩散,而潜在扩散给了我词语沙拉。在我理解这两个问题的时候,已经太晚了,无法重新开始。我在这些权重上倾注了几百美元。我能做的是补救:在同一模型上进行了16亿标记的修复运行,开启教师,然后一个转换阶段,教会模型用LLaDA风格的掩码扩散进行说话,然后在约422k对指令上进行监督微调。于是,得到了一个实际上能(算是)说英语的模型。小模型无法自我评判 你使用的大多数大型最新模型足够智能,可以判断并纠正自己的错误。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡