07 SFT、Alpaca 与 LoRA
- 理解 SFT 和 instruction tuning。
- 知道 Alpaca 项目的核心思想。
- 用 JS 理解 LoRA 的低秩更新。
基础模型擅长续写文本,但不一定像助手一样回答问题。SFT 用“指令-回答”样本继续训练,让模型学会遵循任务格式。LoRA 则是在不改动大部分原始参数的情况下,外挂一小组可训练参数。
Alpaca 风格样本:
Instruction: 总结这段话Input: ...Output: ...LoRA 的直觉:
原权重 W 不动新增低秩更新 ΔW = B × A训练 A 和 B参考项目里的对应实现思路
Section titled “参考项目里的对应实现思路”Stanford Alpaca 展示如何生成指令数据并做 SFT。LLaMA Factory 是真实微调框架,支持 LoRA、QLoRA、DPO、PPO 和多模态。
最小代码实验
Section titled “最小代码实验”这个实验把 instruction 样本格式、toy SFT loss 和 LoRA 低秩更新拆开观察。
运行命令与预期输出
Section titled “运行命令与预期输出”运行:
npm run lab:07真实 LoRA 训练仍建议使用 Python 生态,例如:
llamafactory-cli train examples/lora/qwen.yaml这里保留原命令,因为真实训练依赖深度学习框架、显存管理和模型权重加载。
- SFT 不会凭空增加可靠事实,只会让模型更像指令助手。
- LoRA 不是压缩模型本体,而是训练一个低成本适配器。
- 指令数据质量通常比数量更重要。