微调:Hugging Face 文章复现与解释

作业定位

这份作业接在第 11 章的下面两组材料之后完成:

目标不是让你“泛泛做一次微调练习”,而是围绕这一篇 Hugging Face 文章,真正看清:

  1. 一条最小 LLM 微调链路到底由哪些部分组成
  2. 文章里的工程细节,如何映射到课程讲义和 notebook
  3. 为什么量化、LoRA、数据格式、chat template、trainer 和保存 adapter 必须连成一个闭环

作业目标

请你基于文章说明、讲义和图书中的对应内容,完成一次 “Hugging Face 文章复现与解释”

你需要:

  1. 读懂文章里的微调主线
  2. 尽可能复现文章中的关键步骤
  3. 解释每一步背后的工程含义
  4. 总结你在这条链路里最容易踩坑的三个细节

推荐完成路径

第 0 步:先完成阅读,不要一上来就跑代码

请先读 Hugging Face 文章

你至少要能回答:

第 1 步:围绕文章本身整理复现链路

这份作业只有一条主线:

任务要求

Part A:把文章主线整理成你自己的“微调地图”

请用 1 页左右内容,重新整理 Hugging Face 文章的核心链路。

至少要包含下面 6 步:

  1. 加载量化基础模型
  2. 配置 LoRA adapter
  3. 整理数据格式
  4. 加载 tokenizer 与 chat template
  5. 用 trainer 跑监督微调
  6. 生成验证并保存 adapter

对每一步,请回答:

Part B:做文章复现

请尽可能复现文章中的关键步骤。

优先级从高到低建议如下:

  1. 成功加载量化模型
  2. 成功配置 LoRA
  3. 成功整理数据为文章所需格式
  4. 成功加载 tokenizer 并检查 chat template
  5. 成功建立 SFTTrainer / SFTConfig
  6. 如果条件允许,完成训练、生成测试和保存 adapter

如果你无法完整训完,也可以提交“部分复现”,但必须明确说明:

注意:

Part C:解释文章里的每一个关键步骤

这是这份作业最重要的一部分。

请按文章主线解释下面这些环节:

Part D:写出 3 个你认为最关键的“注意细节”

请从文章和你的复现过程中,选出你认为最容易踩坑的 3 个细节。

例如:

对每个细节,请回答:

建议提交内容

请提交一个压缩包,包含:

  1. 你的实验记录文档(PDF 或 Markdown)
  2. 你运行过的 notebook、脚本或命令记录
  3. 至少 2 张运行截图
  4. 至少 1 段训练后生成结果,或对应的失败日志
  5. 如果训练未完成,提供错误信息和排查记录

报告建议结构

1. 材料阅读总结

2. 复现路径

3. 结果与证据

4. 对照分析

5. 关键细节与反思

评分重点

这份作业不按“谁训练得更大、更久”来评分,而更看重下面五点:

  1. 是否真的读懂了文章和课程材料
  2. 是否完成了有质量的文章复现或部分复现
  3. 是否能说清文章每一步背后的工程含义
  4. 是否真正理解了工程细节,而不是只会抄命令
  5. 是否能用证据说明你做到了哪一步

你真正要带走什么

如果做完这份作业后只记住一句话,那应该是:

复现一篇微调教程,不是照着敲命令,而是要真正理解:装载、适配、格式化、训练、验证和保存为什么缺一不可。

这一章最重要的能力,也不是记住某个 API 名字,而是开始具备下面这种判断: