dLLM 是一个统一扩散语言模型训练与评估的库,致力于为整个开发流程带来透明度和可复现性。
用途:dLLM 面向扩散语言模型的研究与开发,提供从训练、推理到评估的完整工具链,帮助用户以标准化方式复现和扩展扩散语言模型。
主要能力:
- 可扩展训练管线:基于 transformers Trainer,支持 LoRA、DeepSpeed、FSDP 等分布式训练方法,支持数据子集、数据集拼接、4bit 量化、流式加载等。
- 统一评估管线:基于 lm-evaluation-harness,抽象推理细节,简化定制评估。
- 提供开放权重模型(如 LLaDA、Dream)的最小训练/推理/评估配方。
- 实现多种训练算法:MDLM(掩码扩散)、BD3LM(块扩散)、Edit Flows 等。
- 支持 diffu-GRPO 训练(针对掩码扩散语言模型,在 LLaDA 和 Tiny-A2D 上验证,覆盖 GSM8K、MATH、Countdown、Sudoku、Code 五个推理任务)。
- 支持 Fast-dLLM 加速推理与评估(缓存、置信度阈值解码等)。
- 提供 Tiny-A2D 小模型(0.5B/0.6B)及将任意自回归模型(如 Qwen、LLaMA、GPT-2)转换为扩散模型的开放配方。
- 提供 BERT-Chat 及将任意 BERT 编码器(如 BERT、RoBERTa、ModernBERT)转换为扩散模型的开放配方。
使用方式:
- 训练:可使用 accelerate 本地启动,或通过 sbatch 提交到 Slurm 集群。典型训练入口脚本如 examples/llada/sft.py。支持通过命令行参数控制数据集、量化、LoRA、分布式配置等。
- 推理:提供统一采样器,典型推理入口脚本如 examples/llada/sample.py,也提供交互式聊天脚本(如 examples/llada/chat.py)。
- 评估:可基于 lm-evaluation-harness 运行,提供自动评估脚本(如 examples/llada/eval.sh),也支持 Fast-dLLM 评估脚本。
- 示例目录:examples/llada(LLaDA/LLaDA-MoE 预训练、微调、评估)、examples/llada2(LLaDA2.0 推理)、examples/llada21(LLaDA2.1 推理)、examples/dream(Dream 预训练、微调、评估)、examples/a2d(自回归模型微调为掩码/块扩散)、examples/bert(BERT 微调为轻量聊天机器人)、examples/editflow(Edit Flows 训练参考)、examples/fastdllm(Fast-dLLM 推理与评估)、examples/rl(GRPO 训练)。
适用场景:扩散语言模型的研究、训练、微调、推理加速与标准化评估,尤其适合需要复现或扩展 LLaDA、Dream 等模型的开发者与研究者。
限制:资料中未提供具体的硬件要求、模型规模限制、许可证信息或收费模式,这些信息暂未提供。