这份手册对应目录:
11/2-prog/autodl/course_lora-autodl它不是“大模型正式训练方案”,而是第 11 章的最小 LoRA 微调闭环。目标只有一个:
如果你已经跑通一次,说明你已经掌握了后续课程实验最重要的第一步:先验证流程,再升级模型与数据。
它对应第 11 章里讲的四件事:
这正是课上“预训练模型 + PEFT + 最小数据闭环”的落地版本。
00_check_env.ipynb
torch、CUDA、GPU、依赖包是否可用01_lora_demo.ipynb
instruction / input / output 拼成文本,再交给 Trainer02_eval_and_infer.ipynb
train_lora.py
run_train.sh
train_lora.py 的关键参数写成固定命令这套代码的真实流程很清楚:
data/sample_train.json 和 data/sample_val.jsonbuild_text() 把每条样例拼成:Instruction: ...
Input: ...
Response: ...
truncation + padding="max_length",默认 max_length=128AutoModelForCausalLMLoraConfig(r=8, lora_alpha=16, lora_dropout=0.05) 包装模型DataCollatorForLanguageModeling(mlm=False) 做因果语言模型训练Trainer 跑 1 epoch 的最小训练outputs/...02_eval_and_infer.ipynb 中重新加载并生成文本从教学上看,这个链路很合理,因为它把第 11 章最重要的“最小可运行闭环”完整保留下来了。
tiny-gpt2所以它很适合作为:
这点要和学生讲清楚。
它没有做下面这些更真实的大模型工程步骤:
tiny-gpt2target_modulesSFTTrainer因此它的定位不是:
而是:
建议顺序:
00_check_env.ipynb01_lora_demo.ipynb02_eval_and_infer.ipynbtrain_lora.py 和 run_train.sh这样学生会形成一条很清楚的迁移路径:
这套代码不是直接喂 instruction / input / output 三个字段,而是先拼成一段文本。
这能帮助学生理解:
get_peft_model(model, lora_config) 是整个实验的核心。
学生要知道:
训练结束后保存的不是一整个新模型,而是:
这正是第 11 章里“LoRA 保存的是增量参数”的最好例子。
02_eval_and_infer.ipynb 的作用不是追求好结果,而是确认:
在这份最小实验跑通之后,后续升级可以按这个顺序做:
tiny-gpt2 换成课程指定的小型 instruction modeltarget_modulesTrainer 升级到 SFTTrainer这条升级路线,正好对应第 11 章从“概念验证”走向“真实大模型微调”的课程主线。