zhaoruizhi/diffusion_baselines

1

stars

0

commits

Python

primary language

Sep 10, 2026

updated

README

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"

先准备一个能导入 PyYAMLpydantic 的 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 只用于诊断,不是论文主结果。

文档索引

所有可复现输入均在 artifacts/configs/ 中锁定。不要把 data/checkpoints/upstreams/results/ 或 Conda archive 提交到 Git。

zhaoruizhi/diffusion_baselines

1

stars

0

commits

Python

primary language

Sep 10, 2026

updated

README

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"

先准备一个能导入 PyYAMLpydantic 的 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 只用于诊断,不是论文主结果。

文档索引

所有可复现输入均在 artifacts/configs/ 中锁定。不要把 data/checkpoints/upstreams/results/ 或 Conda archive 提交到 Git。

Languages

Python

94.0%

Shell

6.0%