|
Download README.md from jyliuAI/diffusion_baseline: direct link, hf CLI and curl.
- Browser
- Download file 5.65 kB
-
https://huggingface.co/jyliuAI/diffusion_baseline/resolve/main/README.md
- Command line
-
hf download hf://jyliuAI/diffusion_baseline/README.md
-
curl -L -o README.md https://huggingface.co/jyliuAI/diffusion_baseline/resolve/main/README.md
5.65 kB
| # 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 服务器上执行: | |
| ```bash | |
| 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 和启动下载脚本: | |
| ```bash | |
| "$DLB_PYTHON" -m pip install -e ".[dev,data,checkpoints]" | |
| ``` | |
| 同步本仓库代码到 Linux GPU 服务器后,严格按以下顺序执行: | |
| ```bash | |
| 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`: | |
| ```bash | |
| 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 本地并行运行](docs/09_four_gpu_local.md)。 | |
| `smoke_all.sh` 使用独立的 `results/smoke/`,不会被正式汇总接受。若只需先验证一个方法,可运行: | |
| ```bash | |
| bash scripts/run_one.sh --model flm --dataset lm1b --steps 1 \ | |
| --num-samples 1 --seed 42 | |
| ``` | |
| 严格汇总失败时,不要删除失败目录;先查看 `results/summary/failures.csv`,修复后重跑对应阶段。需要先查看当前可用结果时: | |
| ```bash | |
| "$DLB_PYTHON" scripts/aggregate_results.py --root "$DLB_ROOT" --partial | |
| ``` | |
| `--partial` 只用于诊断,不是论文主结果。 | |
| ## 文档索引 | |
| - [源码与可用性](docs/01_sources_and_availability.md) | |
| - [数据下载与预处理](docs/02_datasets.md) | |
| - [Conda 环境](docs/03_environments.md) | |
| - [Checkpoint 下载与校验](docs/04_checkpoints.md) | |
| - [训练与蒸馏](docs/05_training.md) | |
| - [生成、评测与 timing](docs/06_generation_and_evaluation.md) | |
| - [Slurm](docs/07_slurm.md) | |
| - [故障排查](docs/08_troubleshooting.md) | |
| - [4-GPU 本地并行运行](docs/09_four_gpu_local.md) | |
| - [实验矩阵](docs/EXPERIMENT_MATRIX.md) | |
| - [ELF:OWT、前缀续写、WMT14/XSum 与服务器 timing 方案](docs/10_elf_server_runbook.md)(独立入口;先用公开权重建立基线) | |
| - [ELF:GPU 0、1 自动核验并补齐质量实验](docs/15_elf_gpu01_queue.md)(最新执行入口;复用已完成配置) | |
| - [ELF:32格质量结果归档与GPU 0、1正式timing](docs/16_elf_results_and_timing.md)(质量已完成;当前执行入口) | |
| - [ELF:条件4步/8步短输出补评分](docs/19_elf_short_response_rescore.md)(只评分两格,保留全部样本,另存最多64-token结果) | |
| - [ELF:OWT公开权重,对齐旧baseline评分与timing](docs/18_elf_owt_public_baseline.md)(当前执行入口;不训练,复用样本,条件2048条重评分) | |
| - [ELF:OWT 64-token prompt、512-token response](docs/20_elf_owt_c64r512.md)(独立C64-R512实验;重新生成2048条样本) | |
| - [ELF:LM1B/OWT四类任务严格对齐方案](docs/17_elf_matched_baseline_plan.md)(历史设计,已停止执行) | |
| - [ELF:DS210029 数据就绪后的单张 H200 逐步执行清单](docs/11_elf_h200_next_steps.md) | |
| - [ELF:正式条件实验空输入故障、数据诊断与恢复](docs/12_elf_condition_recovery.md) | |
| - [ELF:条件输入 EOS 修复、validation/test 与 timing 恢复](docs/13_elf_eos_fix.md) | |
| - [ELF:9 月 13 日结果总览与剩余质量实验(timing 暂缓)](docs/14_elf_quality_remaining.md) | |
| 所有可复现输入均在 `artifacts/` 和 `configs/` 中锁定。不要把 `data/`、`checkpoints/`、`upstreams/`、`results/` 或 Conda archive 提交到 Git。 | |