自己从零写扩散语言模型比我想的简单多了[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为例。
扩散语言模型:实验分析
一项系统性的实验分析,评估了八种最先进的扩散语言模型在多个基准测试上的表现,分析了生成质量与计算效率之间的权衡。
改进的大型语言扩散模型
iLLaDA是一个80亿参数的掩码扩散语言模型,具有完全双向注意力机制,从头开始在12万亿token上训练。与LLaDA相比,它在多个方面都有显著改进,并在多个基准测试上与Qwen2.5 7B保持竞争力。模型和代码已开源。
我以独立研究项目的形式,从零开始开发了一个拥有2.7亿参数的语言模型
一个从零开始在英文维基百科上训练、并经过指令微调以用于对话式AI的2.7亿参数语言模型,作为独立研究项目开发。