Open-dLLM
首个全栈开源的扩散式代码生成大语言模型(Open-dCoder),开源预训练、评测、推理与模型权重
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
首个全栈开源的扩散式代码生成大语言模型(Open-dCoder),开源预训练、评测、推理与模型权重
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:深夜,你正为一段复杂的算法实现绞尽脑汁。传统的大语言模型给出了答案,但你不确定它是否正确——因为模型的「思考过程」是一个黑箱。而 Open-dLLM 项目正在改变这一切:它不仅开源了模型权重,还把从数据处理、模型训练到推理评估的全流程代码都摊开在阳光下,让每个研究者都能亲手复现、甚至改进这个过程。
这一项目来自杜克大学研究者 Fred Z. Peng 团队,核心成果是 Open-dCoder——全球首个完全开源的扩散式代码生成大语言模型。与其他只开源推理代码的扩散 LLM 项目(如 LLaDA、Dream)不同,Open-dLLM 打出了「全栈开源」的旗帜:训练数据、预训练代码、评测框架、模型权重,全部可获取。

图1:Open-dCoder (0.5B) 生成快速排序算法的演示
自回归模型(AR-LLM)统治语言模型领域多年,其核心机制是逐 token 预测——像多米诺骨牌一样,一个接一个地生成下一个词。这种范式在 GPT 系列中取得了巨大成功,但也有明显局限:生成过程无法并行,一旦出错会「一错到底」。
扩散模型(Diffusion Model)则走了另一条路:它从噪声中逐步去噪生成内容,天然支持并行采样。2023-2024 年,学界开始探索将扩散机制引入语言建模(LLaDA、Dream 等),但这些项目大多只开源推理代码和权重,训练细节和训练数据始终是黑箱。Open-dLLM 的出现,正是要打破这个壁垒——让扩散 LLM 的训练过程从「玄学」变成「显学」。
更重要的是,Open-dLLM 团队还提出了 Representation Alignment 技术,可以将自回归 LLM 快速适配为扩散 LLM,推理速度提升 4 倍,相关论文已挂在 arXiv(2605.06885)。
Open-dLLM 的架构基于修改后的 Qwen2.5-Coder 模型,采用**掩码扩散语言建模(MDM)**机制。区别于传统逐 token 预测,MDM 在每一步对多个位置同时去噪,生成效率更高。核心推理通过 model.diffusion_generate() 方法实现,支持自定义生成步数(steps)、温度(temperature)、top-k 采样等参数。
从代码结构看,项目采用模块化设计:
veomni/models/transformers/qwen2/:核心模型实现,包含自定义 generation_utilsveomni/data/:数据处理管道veomni/distributed/:分布式训练支持veomni/ops/:算子优化veomni/checkpoint/:断点管理与 HF 格式转换推理示例(sample.py)仅需 50 行代码即可完成代码生成调用:
model = Qwen2ForCausalLM.from_pretrained(
"fredzzp/open-dcoder-0.5B",
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
outputs = model.diffusion_generate(inputs=input_ids, generation_config=gen_cfg)
评测方面,项目集成了 lm-evaluation-harness,支持 HumanEval、MBPP 等标准代码评测基准,并提供了 Infilling 评测任务和自定义指标。
| 层次 | 技术选型 |
|---|---|
| 深度学习框架 | PyTorch 2.5.1 + NVIDIA PyTorch 容器 |
| 模型架构 | Qwen2.5-Coder 扩散式改造 |
| 推理加速 | vLLM 0.7.3(集成在 Dockerfile 中) |
| 注意力优化 | Flash Attention 2.6.3 |
| 训练加速 | Liger Kernel 0.5.5 |
| 分词器 | Tiktoken |
| 实验管理 | WandB |
| 模型托管 | HuggingFace Hub |
| 评测框架 | lm-evaluation-harness |
依赖项通过 requirements.txt 明确声明,Python 版本要求 >= 3.8,构建系统使用 setuptools。
需要客观指出的是,Open-dLLM 当前的模型规模(0.5B 参数)相对较小,与 GPT-4、Claude 等大型模型存在数量级差距,生成质量受限于模型容量。扩散 LLM 本身仍是学术研究方向,尚未在工业界大规模验证。
此外,训练需要 A100/H100 等高端 GPU,配合 flash-attn 等编译依赖,部署门槛较高。项目未提供 docker-compose 或 Kubernetes manifest,缺少 Web UI,仅支持命令行调用。
| 维度 | Open-dLLM | LLaDA | Dream |
|---|---|---|---|
| 训练数据 | 完全开源 | 不提供 | 不提供 |
| 训练代码 | 完全开源 | 不提供 | 不提供 |
| 推理代码 | 完全开源 | 完全开源 | 完全开源 |
| 评测套件 | 完整套件 | 有限 | 有限 |
| 模型权重 | 完全开源 | 完全开源 | 完全开源 |
从对比可见,Open-dLLM 在开放性上具有显著优势,是目前扩散式代码生成 LLM 领域最透明的项目。
Open-dLLM 的意义不仅在于一个 0.5B 的模型,更在于它证明了扩散模型可以在语言建模领域实现全流程开源。Representation Alignment 技术的提出(将 AR-LLM 适配为扩散 LLM 提速 4 倍),为行业提供了一条低成本复用的路径。
随着扩散机制的进一步成熟,我们有理由期待更大规模的扩散 LLM 出现。Open-dLLM 为这一天做好了准备——它不只是一个模型,更是一套完整的方法论和工具链。

图2:Open-dLLM / Open-dCoder 项目概览