自己从零写扩散语言模型比我想的简单多了[P]
摘要
开发者分享了一个极简的750万参数扩散语言模型,用莎士比亚文本从头训练,并开源代码供学习。
最近觉得太依赖 Claude Code 了,就想试试不用任何 AI 生成代码,从头实现一个扩散语言模型到底有多难。于是趁硕士论文训练排队空档,随手写了一个。在 MacBook Air M2 上跑了几个小时,用 Karpathy 的 tiny Shakespeare 数据集练完,我输入提示 "to be, ",模型输出:
To be, fo hend! First her sense ountier to Jupits, be horse.
字字珠玑!
模型只有 750 万参数,词表 66(65 个字符 + \[MASK\])。训练时间确实不够,但时间有限只能到此为止。做这种项目,让我把“离散扩散”“编码器”“解码器”“分词器”这些吓人的大词儿真正搞明白。希望也能给你一点勇气 :)
代码在这儿,有兴趣自取:[https://github.com/Encrux/simple\_dlm](https://github.com/Encrux/simple_dlm)
感谢阅读!Be horse.
相似文章
我从零构建了一个扩散语言模型。它能写出语法完美的句子,但毫无意义,而这正是有趣之处。
作者从零构建了Joey,一个1.7亿参数的掩码扩散语言模型,在FineWeb-Edu上训练并在DailyDialog上微调,由于容量限制,模型能生成流畅但不连贯的句子。该项目突出了与自回归LLM的差异,以及从构建和调试系统中获得的经验教训。
@volokuleshov: 新博客文章:如何构建扩散语言模型。扩散LLM从开放问题变为现实,用了2年时间 (Me…)
由Volodymyr Kuleshov的康奈尔团队撰写的综合博客文章,解释了如何构建扩散语言模型,涵盖了核心技术如掩码扩散、迭代细化、变长生成、可控生成、快速采样器和RL后训练,并以开源模型如Mercury、Gemma Diffusion和Nemotron Diffusion为例。
扩散语言模型:实验分析
一项系统性的实验分析,评估了八种最先进的扩散语言模型在多个基准测试上的表现,分析了生成质量与计算效率之间的权衡。
我用C从头构建了一个深度学习库,可以训练语言模型 [P]
我用C从头构建了一个深度学习库,支持张量操作、自动求导和神经网络模块,并用它训练了一个基于莎士比亚数据的小型语言模型。
生存引导的长度控制以实现高效扩散语言模型
该论文提出了一种针对扩散语言模型的生存引导长度预测器,在推理和代码生成基准测试中,将推理速度提升高达7倍,而不牺牲准确性。