偏好对齐与微调效果验收

约 45 分钟L2L3T1D3

课程来源

[来源]《ModelScope Cookbook · 魔搭紫皮书》第 14 章〈模型已经会回答了,为什么还要做偏好对齐?〉与第 15 章〈微调有没有用,测才知道?〉 · ModelScope ms-cookbook 团队与共建者著

原文:github.com/modelscope/ms-cookbook(Apache License 2.0)

[收录说明] 本课为蒸馏改编收录(非全文照录),面向 FDE 培训场景重构结构与补充指标速查;概念与公式以原著为准。

本课目录(5 节)

偏好对齐与微调效果验收

微调完,模型能按要求回答了——但把几条回复摆在一起看,有好有坏。拿退款咨询来说:一个回答只给操作入口,另一个还说明了审核条件、到账以实际审核为准。两条都没错,但第二条把用户接下来会遇到的情况交代得更清楚。

让模型从"会答"进化到"答得更好",靠偏好对齐;证明"确实更好",靠验收评测。这一课把两件事一次讲清。

一、后训练地图:SFT 是教,对齐是调

后训练不是固定流程,而是一组方法的总称,各司其职:

  • SFT:用"指令 + 期望回答"示范,教模型任务格式、回答方式、领域表达——教的是"怎么答";
  • 偏好对齐:在模型已会回答之后,用"同一问题的多个回答 + 优劣标注"教它"怎样答得更好";
  • 奖励模型(RM):把人工偏好学成一个自动评分函数(学习目标:chosen 得分 > rejected),供强化学习使用;
  • PPO / GRPO:按奖励信号优化生成策略;DPO:跳过奖励模型,把偏好关系直接写进训练目标。

实际项目不必全用,按模型能力、任务目标和资源灵活组合。注意:偏好对齐学的不是抽象的"人类价值观",而是你为具体任务定义的评价标准——先想清楚"什么叫更好",否则标注员会给出互相矛盾的选择。

二、偏好数据怎么造:prompt + chosen + rejected

一条偏好数据长这样:

{
  "prompt": "会员昨天自动续费,我想申请退款。",
  "chosen": "请先查看订单状态。符合退款条件时,可在订单详情中提交申请;如果没有退款入口,请联系人工客服核验。",
  "rejected": "可以,退款会在三个工作日内到账。"
}

rejected 的问题不在"错",在于遗漏必要条件 + 承诺了不确定的到账时间。偏好数据表达的是相对关系,不是永久的好坏标签。

构造五步:准备有代表性的 Prompt → 用当前模型/不同版本/不同采样参数生成多个候选 → 按统一标准两两比较或排序 → 转成 chosen/rejected 数据对 → 抽查标注一致性,冲突样本交复核。

三个标注偏差要主动防:更长的回答显得更完整、更自信的措辞显得更可靠、排在前面的候选更易被选中。对策:随机调整候选顺序、隐藏模型名称、分维度独立检查(事实/完成度/风格/安全)、部分样本多人重复标注。

三、微调有没有用,测才知道:分任务指标速查

分类任务:从混淆矩阵四格(TP/TN/FP/FN)出发——

  • Accuracy:整体正确率。类别不均衡时会骗人:1000 条里只有 20 条负样本,全预测"正向"也有 98% 准确率,但 20 条负样本一条没识别出来;
  • Precision(预测为正中有多少真是正)/ Recall(真实为正中识别出多少)/ F1(两者平衡);
  • 混淆矩阵看哪些类别互相混淆:如"软件故障"常被误判为"网络故障",就说明这两类的区分要补数据。

信息抽取任务:字段准确率(抽对的字段/应抽字段)+ 实体级 Precision/Recall/F1(应对多实体任务,字段准确率看不出漏抽)。

生成任务:五个维度——正确性(事实与结论对不对)、完整性(该答的都答了吗)、相关性(是否围绕问题)、格式遵循(JSON/字段顺序能否被下游解析——格式不对,内容再对程序也用不了)、幻觉(是否编造看似合理的事实)。

四、FDE 视角:验收报告是尾款的关键证据

  • 基线对比是铁律:基础模型与微调模型在同一测试集上的对比表,是"微调产生了价值"的唯一硬证据——没有基线的验收报告等于没有报告;
  • 指标跟着任务走:给抽取任务汇报 Accuracy 会被追问,直接上实体级 P/R/F1;给生成任务加格式遵循率——下游系统解析成功率客户最关心;
  • 偏好标准文档化:把"什么叫更好的回答"写成评审标准(哪些算遗漏、哪些算过度承诺),既是标注依据,也是将来验收争议时的仲裁标准。

本课自测

  1. SFT 和偏好对齐分别教模型什么?用退款回答 A/B 的例子说明。
  2. 偏好数据的三元组结构是什么?rejected 回答常见的三类问题是什么?
  3. 为什么类别不均衡时只看 Accuracy 会误判?应该补看哪些指标?
  4. 生成任务的五个评测维度是什么?哪个维度出问题会直接导致下游程序无法解析?

随堂测

逐题作答,即时反馈

0 / 3 已作答
  1. 1. SFT 和偏好对齐分别教模型什么?

  2. 2. 一条偏好数据的三元组结构是什么?

  3. 3. 1000 条情感分类数据里只有 20 条负样本,模型全预测『正向』也有 98% 准确率——这说明什么?