返回 M01~M90 教材库
M38 · 预习教材教材已备 ≠ 学习已完成

M38:PEFT 引导练习:公平比较 Prompt、冻结模型与 Adapter

PEFT 练习的重点不是成功训练一个“大模型”,而是在同一小任务上明确 prompt-only、冻结表示和 adapter 各自增加了什么能力与成本。

2026-09-30peft、mlx-lm、adapter、baseline、resource-aware

内容类型:预习教材(不代表已完成)
日期:2026-09-30
阶段:P1 · AI Model Engineering 90
周次:W6 · SFT、LoRA/PEFT 与领域适配
节奏:周三引导练习
状态:教材已备;学习未完成
标签:peft、mlx-lm、adapter、baseline、resource-aware

一句话定义

PEFT 练习的重点不是成功训练一个“大模型”,而是在同一小任务上明确 prompt-only、冻结表示和 adapter 各自增加了什么能力与成本。

学习目标

  1. 能设计三条可比较的小型适配路线及公共评估样例。
  2. 能在资源不足时用模拟或 toy model 学习同一机制。
  3. 能记录参数、数据格式和资源约束,而不虚构质量提升。

核心知识

公平比较先固定任务与样例。例如把短支付争议描述归入三个原因类别:

  • 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 无训练成本,但对措辞和上下文敏感。

最小练习或观察步骤

  1. 准备 12~30 条合成、无敏感数据的短文本,先定义固定标签与切分。
  2. 写出统一的输入模板、允许输出和错误类型;评估集在适配前冻结。
  3. 完成 prompt-only baseline;没有可用模型时可只保留协议与预期接口,不填结果。
  4. 选择 frozen head 或 toy linear probe 作为第二条路线。
  5. 在资源允许时使用 PEFT/MLX-LM 做最小 adapter;否则复用 M37 的 LoRA 层模拟。
  6. 记录 base model、精度、rank、target module、trainable 参数、训练样例数与时间。
  7. 比较任务错误、无效格式与资源,不要求三条路线全部跑完。

常见误区

  • prompt、分类头和生成 adapter 使用不同评估集,却直接排名。
  • 训练样例也进入评估,得到记忆型高分。
  • 只报告 adapter 文件大小,忽略运行时仍需完整基座。
  • 资源不足时勉强下载或训练大型模型,而不使用机制等价的小练习。
  • 将 loss 下降写成任务改善,未检查输出和固定样例。

金融 / Web3 / 文档场景连接

对固定 AML 类型或文档类别,冻结表示加分类头往往是有价值的 baseline;对需要生成结构化理由的任务,adapter 可能更合适,但必须保留证据引用和拒答规则。链上状态变化快,应通过工具提供,不能因适配结果流畅就默认事实可靠。

自检问题

  1. 三条路线如何统一比较接口?
  2. 为什么 instruction token 通常不应全部作为回答目标计算 loss?
  3. 资源不足时,什么样的模拟仍能学习 PEFT 机制?
  4. 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 方案包含额外示例却忽略其推理成本。

学后填写区

  • 任务与标签:
  • 实际选择的路线:
  • 公共评估样例位置:
  • 资源与配置事实:
  • 观察(可为空):
  • 未运行部分及原因:
学完后,请把自己的理解、练习结果和仍不确定的问题写入文末“学后填写区”,再到唯一进度账本更新状态。预先阅读后续教材不会自动增加完成数。