M38:PEFT 引导练习:公平比较 Prompt、冻结模型与 Adapter
PEFT 练习的重点不是成功训练一个“大模型”,而是在同一小任务上明确 prompt-only、冻结表示和 adapter 各自增加了什么能力与成本。
内容类型:预习教材(不代表已完成)
日期:2026-09-30
阶段:P1 · AI Model Engineering 90
周次:W6 · SFT、LoRA/PEFT 与领域适配
节奏:周三引导练习
状态:教材已备;学习未完成
标签:peft、mlx-lm、adapter、baseline、resource-aware
一句话定义
PEFT 练习的重点不是成功训练一个“大模型”,而是在同一小任务上明确 prompt-only、冻结表示和 adapter 各自增加了什么能力与成本。
学习目标
- 能设计三条可比较的小型适配路线及公共评估样例。
- 能在资源不足时用模拟或 toy model 学习同一机制。
- 能记录参数、数据格式和资源约束,而不虚构质量提升。
核心知识
公平比较先固定任务与样例。例如把短支付争议描述归入三个原因类别:
- prompt-only:模型权重不变,通过说明与少量示例生成类别。
- frozen:冻结 encoder/LM 表示,只训练小分类头;更像监督分类 baseline。
- adapter/LoRA:在目标线性层上训练增量参数,可能改变生成或分类行为。
三条路线输出接口不同,不能只比较训练 loss。应先统一可观察结果,例如最终都映射为同一类别集合,并同时记录无效格式、拒答与资源使用。若本机无法加载模型,可用小线性网络或保存好的合成 logits 模拟“冻结基座 + 可训练增量”;机制学习仍然成立。
数据格式是适配的一部分。SFT 常将 instruction、input 和 expected output 串成序列,但通常只对目标回答 token 计算 loss;若把用户输入也纳入目标,模型会被训练去复述 prompt。padding token 也应通过 attention/loss mask 排除。
机制/推导
假设样例由输入 x 和目标 y 组成。prompt-only 估计 p_θ(y|template(x));冻结分类头学习 softmax(Wh_θ(x));LoRA 则估计 p_(θ,φ)(y|template(x)),其中只更新适配器参数 φ。
比较的实质是不同归纳偏置:分类头限制输出空间,数据效率可能更高;生成式 adapter 更灵活,却承担格式与解码误差;prompt 无训练成本,但对措辞和上下文敏感。
最小练习或观察步骤
- 准备 12~30 条合成、无敏感数据的短文本,先定义固定标签与切分。
- 写出统一的输入模板、允许输出和错误类型;评估集在适配前冻结。
- 完成 prompt-only baseline;没有可用模型时可只保留协议与预期接口,不填结果。
- 选择 frozen head 或 toy linear probe 作为第二条路线。
- 在资源允许时使用 PEFT/MLX-LM 做最小 adapter;否则复用 M37 的 LoRA 层模拟。
- 记录 base model、精度、rank、target module、trainable 参数、训练样例数与时间。
- 比较任务错误、无效格式与资源,不要求三条路线全部跑完。
常见误区
- prompt、分类头和生成 adapter 使用不同评估集,却直接排名。
- 训练样例也进入评估,得到记忆型高分。
- 只报告 adapter 文件大小,忽略运行时仍需完整基座。
- 资源不足时勉强下载或训练大型模型,而不使用机制等价的小练习。
- 将 loss 下降写成任务改善,未检查输出和固定样例。
金融 / Web3 / 文档场景连接
对固定 AML 类型或文档类别,冻结表示加分类头往往是有价值的 baseline;对需要生成结构化理由的任务,adapter 可能更合适,但必须保留证据引用和拒答规则。链上状态变化快,应通过工具提供,不能因适配结果流畅就默认事实可靠。
自检问题
- 三条路线如何统一比较接口?
- 为什么 instruction token 通常不应全部作为回答目标计算 loss?
- 资源不足时,什么样的模拟仍能学习 PEFT 机制?
- adapter 小是否意味着部署时不需要基座模型?
专业课程对齐
- 必读 HF PEFT LoRA 的配置、adapter 注入与初始化选项,核对未训练 adapter 在默认初始化下是否应为 identity/no-op。
- 精读 Hugging Face LLM Course 的 tokenizer、data collator、fine-tuning 与 evaluation 章节,用统一 pipeline 约束对照组。
- 选读 PyTorch Tutorials 的 reproducibility 与 profiling 主题,用于固定 seed 并记录显存/时间。
深入学习提示
阅读顺序为 PEFT API→HF 数据与评估→PyTorch 度量。对 prompt-only、冻结模型和 LoRA 使用同一 base checkpoint、tokenizer、train/validation split、评分函数与生成参数,并把可训参数、GPU/CPU 峰值内存、tokens/s 和输入 token 数并列报告。代码检查 print_trainable_parameters、adapter state dict 和 merge 前后 logits 容差。反例是给 LoRA 更多训练 tokens,却用相同 step 当作公平比较;另一反例是 prompt 方案包含额外示例却忽略其推理成本。
学后填写区
- 任务与标签:
- 实际选择的路线:
- 公共评估样例位置:
- 资源与配置事实:
- 观察(可为空):
- 未运行部分及原因: