跳转到内容

07 SFT、Alpaca 与 LoRA

  • 理解 SFT 和 instruction tuning。
  • 知道 Alpaca 项目的核心思想。
  • 用 JS 理解 LoRA 的低秩更新。

基础模型擅长续写文本,但不一定像助手一样回答问题。SFT 用“指令-回答”样本继续训练,让模型学会遵循任务格式。LoRA 则是在不改动大部分原始参数的情况下,外挂一小组可训练参数。

Alpaca 风格样本:

Instruction: 总结这段话
Input: ...
Output: ...

LoRA 的直觉:

原权重 W 不动
新增低秩更新 ΔW = B × A
训练 A 和 B

Stanford Alpaca 展示如何生成指令数据并做 SFT。LLaMA Factory 是真实微调框架,支持 LoRA、QLoRA、DPO、PPO 和多模态。

源码:labs/07-sft-lora/index.mjs

这个实验把 instruction 样本格式、toy SFT loss 和 LoRA 低秩更新拆开观察。

运行:

Terminal window
npm run lab:07

真实 LoRA 训练仍建议使用 Python 生态,例如:

Terminal window
llamafactory-cli train examples/lora/qwen.yaml

这里保留原命令,因为真实训练依赖深度学习框架、显存管理和模型权重加载。

  • SFT 不会凭空增加可靠事实,只会让模型更像指令助手。
  • LoRA 不是压缩模型本体,而是训练一个低成本适配器。
  • 指令数据质量通常比数量更重要。