YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Diffusion Language Baselines
这是一个面向 Linux GPU 服务器的可复现实验框架,用于比较连续、离散、混合扩散语言模型及其少步蒸馏版本。当前 Mac/worktree 只保存代码、锁文件、脚本和文档;数据、源码仓库快照、checkpoint、Conda 环境、训练和推理都必须在服务器执行。
实验范围
- 多步生成:FLM、LangFlow、Duo、MDLM、CANDI、RDLM。
- 少步/单步蒸馏:FMLM、Duo+DCD、Duo+Di4C、MDLM+SDTT、MDLM+Di4C。
- LM1B 使用
bert-base-uncased、长度 128;OWT 使用gpt2、长度 1024。 - 多步步数:多数 many-step 方法使用
1 2 4 8 16 32 1024;RDLM 只使用官方默认1000和本项目原保留的1024;少步步数:1 2 4 8 16 32。 - 每个受支持配置生成 1,024 个样本,seed 固定为 42。
- 质量指标:GPT-2 Large Generative PPL、平均 unigram entropy、Self-BLEU;主延迟指标:独立 CUDA timing 的 seconds/sample。
132 个受支持 generation cell 会写入 results/matrix/generation.tsv。RDLM/OWT 不会伪造任务,原因写入 results/matrix/unsupported.tsv。RDLM 的 1/2/4/8/16/32 不作为主 baseline:原始方法是约 1000 步 SDE 采样,低步数只是强行截断迭代次数,已在服务器诊断中表现出非规范 token 与异常低 PPL。
服务器最短路径
在 Linux GPU 服务器上执行:
git clone <你的 GitHub 仓库地址> diffusion_baseline
cd diffusion_baseline
conda create -n dlb-bootstrap python=3.11 -y
conda activate dlb-bootstrap
export DLB_ROOT="$PWD"
export DLB_PYTHON="$CONDA_PREFIX/bin/python"
先准备一个能导入 PyYAML、pydantic 的 bootstrap Python;它只用于解析 manifest 和启动下载脚本:
"$DLB_PYTHON" -m pip install -e ".[dev,data,checkpoints]"
同步本仓库代码到 Linux GPU 服务器后,严格按以下顺序执行:
bash scripts/fetch_sources.sh
"$DLB_PYTHON" scripts/verify_sources.py --root "$DLB_ROOT"
"$DLB_PYTHON" scripts/fetch_data.py --root "$DLB_ROOT"
"$DLB_PYTHON" scripts/preprocess_data.py --root "$DLB_ROOT" --dataset all
"$DLB_PYTHON" scripts/verify_data.py --root "$DLB_ROOT" --dataset all
"$DLB_PYTHON" scripts/fetch_checkpoints.py --root "$DLB_ROOT" --all-public
"$DLB_PYTHON" scripts/verify_checkpoints.py --root "$DLB_ROOT"
bash envs/create_all.sh
bash envs/verify_all.sh
bash scripts/smoke_all.sh
bash scripts/run_all.sh
bash scripts/evaluate_all.sh
bash scripts/benchmark_all.sh
"$DLB_PYTHON" scripts/aggregate_results.py --root "$DLB_ROOT"
单机 4 卡服务器可使用本仓库的本地并行入口,默认绑定 GPU 0,1,2,3:
export DLB_GPUS=0,1,2,3
export DLB_MAX_JOBS=4
bash scripts/smoke_4gpu.sh
bash scripts/run_4gpu.sh
bash scripts/evaluate_4gpu.sh
bash scripts/benchmark_4gpu.sh
"$DLB_PYTHON" scripts/aggregate_results.py --root "$DLB_ROOT"
这条路径仍要求先补齐 reference_reproduction checkpoint。更多说明见
4-GPU 本地并行运行。
smoke_all.sh 使用独立的 results/smoke/,不会被正式汇总接受。若只需先验证一个方法,可运行:
bash scripts/run_one.sh --model flm --dataset lm1b --steps 1 \
--num-samples 1 --seed 42
严格汇总失败时,不要删除失败目录;先查看 results/summary/failures.csv,修复后重跑对应阶段。需要先查看当前可用结果时:
"$DLB_PYTHON" scripts/aggregate_results.py --root "$DLB_ROOT" --partial
--partial 只用于诊断,不是论文主结果。
文档索引
- 源码与可用性
- 数据下载与预处理
- Conda 环境
- Checkpoint 下载与校验
- 训练与蒸馏
- 生成、评测与 timing
- Slurm
- 故障排查
- 4-GPU 本地并行运行
- 实验矩阵
- ELF:OWT、前缀续写、WMT14/XSum 与服务器 timing 方案(独立入口;先用公开权重建立基线)
- ELF:GPU 0、1 自动核验并补齐质量实验(最新执行入口;复用已完成配置)
- ELF:32格质量结果归档与GPU 0、1正式timing(质量已完成;当前执行入口)
- ELF:条件4步/8步短输出补评分(只评分两格,保留全部样本,另存最多64-token结果)
- ELF:OWT公开权重,对齐旧baseline评分与timing(当前执行入口;不训练,复用样本,条件2048条重评分)
- ELF:OWT 64-token prompt、512-token response(独立C64-R512实验;重新生成2048条样本)
- ELF:LM1B/OWT四类任务严格对齐方案(历史设计,已停止执行)
- ELF:DS210029 数据就绪后的单张 H200 逐步执行清单
- ELF:正式条件实验空输入故障、数据诊断与恢复
- ELF:条件输入 EOS 修复、validation/test 与 timing 恢复
- ELF:9 月 13 日结果总览与剩余质量实验(timing 暂缓)
所有可复现输入均在 artifacts/ 和 configs/ 中锁定。不要把 data/、checkpoints/、upstreams/、results/ 或 Conda archive 提交到 Git。
- Downloads last month
- -