附录 B 命令速查表
按场景分类的常用命令一览,方便随时查阅。所有命令在项目根目录下执行。
B.1 环境与安装
# 创建虚拟环境
python -m venv .venv
# 激活(Windows)
.venv\Scripts\activate
# 激活(Linux / macOS)
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 验证安装
python -c "import torch,transformers,tiktoken; print('OK')"
B.2 训练命令
基础训练
# 默认配置训练(教师=gpt2,学生=2L/4H/256D,5000 步)
python train.py
极小配置冒烟测试
# 快速验证环境是否打通(只跑几步)
python train.py --block-size 32 --batch-size 4 --max-iters 5 \
--warmup-iters 1 --log-iter 1 --save-iter 5
调整蒸馏超参
# 改温度
python train.py --temperature 4.0
# 改硬标签权重
python train.py --alpha 0.3
# 同时改温度和权重
python train.py --temperature 4.0 --alpha 0.3
调整学生规模
# 更大的学生(约 30M 参数)
python train.py --student-n-layer 4 --student-n-embd 512 --student-n-head 8
# 更小的学生(约 3M 参数)
python train.py --student-n-layer 1 --student-n-embd 128 --student-n-head 2
# 换更大的教师
python train.py --teacher-name gpt2-medium
启用教师缓存
# 预跑教师并缓存(适合长训练)
python train.py --cache-teacher
断点续训
# 从指定 checkpoint 继续
python train.py --resume checkpoints/student_step1000.pt
调整训练流程
# 改学习率与步数
python train.py --learning-rate 1e-4 --max-iters 10000
# 改批大小与上下文长度
python train.py --batch-size 16 --block-size 256
# CPU 强制
python train.py --device cpu
B.3 评估命令
# 评估默认最终学生
python eval.py
# 评估指定 checkpoint
python eval.py --checkpoint checkpoints/student_step3000.pt
# 指定报告保存路径(便于多次实验对比)
python eval.py --report results/T4_alpha03.json
# 指定设备
python eval.py --device cpu
B.4 推理命令
单次生成
# 基础生成
python inference.py --prompt "ROMEO:"
# 控制生成长度与采样
python inference.py --prompt "To be, or" \
--max-new-tokens 200 \
--temperature 0.8 \
--top-k 40
交互模式
# 不传 prompt,进入交互(输入 quit 退出)
python inference.py
# 指定 checkpoint
python inference.py --checkpoint checkpoints/student_final.pt
不同采样策略
# 近贪心(确定、保守)
python inference.py --prompt "ROMEO:" --temperature 0.01 --top-k 1
# 高随机(多样、可能不连贯)
python inference.py --prompt "ROMEO:" --temperature 1.2 --top-k 100
B.5 实验对比工作流
一组完整的调参对比实验:
# 1. 跑基线(纯硬标签)
python train.py --alpha 1.0 --max-iters 3000
python eval.py --report results/baseline.json
# 2. 跑蒸馏组(不同温度)
python train.py --temperature 2.0 --alpha 0.5 --max-iters 3000
python eval.py --report results/T2.json
python train.py --temperature 4.0 --alpha 0.5 --max-iters 3000
python eval.py --report results/T4.json
python train.py --temperature 8.0 --alpha 0.5 --max-iters 3000
python eval.py --report results/T8.json
# 3. 汇总 results/ 下所有 JSON 做对比
B.6 命令行参数全表
训练参数
| 参数 |
类型 |
默认 |
说明 |
--batch-size |
int |
32 |
批大小 |
--learning-rate |
float |
3e-4 |
学习率 |
--max-iters |
int |
5000 |
总训练步数 |
--warmup-iters |
int |
100 |
预热步数 |
--save-iter |
int |
500 |
每 N 步存 checkpoint |
--log-iter |
int |
10 |
每 N 步打印日志 |
--eval-iter |
int |
1000 |
每 N 步做验证评估 |
--num-workers |
int |
0 |
DataLoader 进程数 |
--device |
str |
auto |
设备 |
--seed |
int |
42 |
随机种子 |
--resume |
str |
- |
续训 checkpoint 路径 |
模型参数
| 参数 |
类型 |
默认 |
说明 |
--teacher-name |
str |
gpt2 |
教师模型名 |
--student-n-layer |
int |
2 |
学生层数 |
--student-n-head |
int |
4 |
学生头数 |
--student-n-embd |
int |
256 |
学生嵌入维度 |
--block-size |
int |
128 |
上下文长度 |
--dropout |
float |
0.1 |
dropout |
蒸馏参数
| 参数 |
类型 |
默认 |
说明 |
--temperature |
float |
2.0 |
蒸馏温度 T |
--alpha |
float |
0.5 |
硬标签权重 |
--cache-teacher |
flag |
False |
启用教师缓存 |
评估参数
| 参数 |
类型 |
默认 |
说明 |
--checkpoint |
str |
student_final.pt |
学生权重路径 |
--report |
str |
eval_report.json |
报告保存路径 |
--eval-ratio |
float |
0.1 |
验证集比例 |
推理参数
| 参数 |
类型 |
默认 |
说明 |
--checkpoint |
str |
student_final.pt |
学生权重路径 |
--prompt |
str |
- |
提示文本(不填进交互模式) |
--max-new-tokens |
int |
100 |
生成 token 数 |
--temperature |
float |
0.8 |
采样温度 |
--top-k |
int |
40 |
top-k 截断 |
更多报错排查请参考《附录 C 常见问题》。