第 10 周:在调优 RAG 前冻结评测合同
直接答案: 正式评测必须在看候选结果之前写清楚:这次结果要支持什么决定、哪些用户任务必须覆盖、什么算正确回答或正确拒答、哪些失败立即停止、基线是谁,以及结果不足时采取什么动作。第 10 周不是给模型出三道题,而是冻结一份版本化评测合同和至少 60 条代表性案例,使后续 RAG(Retrieval-Augmented Generation,检索增强生成)候选不能靠挑题或事后降门槛获胜。
为什么 FDE 要先写“失败合同”
标题“为什么 FDE 要先写“失败合同””业务负责人关心的是是否继续投入;一线员工关心的是系统何时可信、何时必须停下;工程团队关心的是失败发生在哪里。一个总体“准确率”不能同时回答这些问题。
业务决定与风险 → 一线任务、角色和异常 → 可检查的案例与标准答案 → 指标、切片、门槛和失败动作 → 第 11 周检索比较 → 第 12 周回答、引用、拒答和阶段决定第 10 周只能使用第 9 周冻结的语料与 ACL。编写评测时发现 gold source 缺失或冲突,需要新建语料版本;不能在数据集背后静默改文档。
北辰协作本周要支持的决定
标题“北辰协作本周要支持的决定”以下公司、案例、数字、阈值和结果全部是教学模拟材料。
北辰本周不是决定生产上线,而是预注册:
在冻结语料和角色范围内,RAG 候选是否值得进入一次受控、只读的内部比较;还是应保持第 8 周确定性基线、缩小范围、补证或停止?
不可接受的失败包括:
- 普通客服候选或回答出现主管受限事实;
- 无来源、冲突或过期时给出貌似确定的答案;
- 引用存在但不支持关键结论;
- 模型输出绕过一线确认并改变业务状态;
- 为让候选过线而删除困难案例或事后降低门槛。
最小心智模型:评测不是题库,而是一份决定合同
标题“最小心智模型:评测不是题库,而是一份决定合同”要作的决定 → 代表性案例 → 可核对的期望结果 → 分层指标 → 看结果前确认的门槛 → 失败后动作| 概念 | 本课中的朴素含义 | 常见误解 |
|---|---|---|
| 开发集 | 可以查看并用于诊断实现的案例 | “训练模型的数据” |
| 校准集 | 用来检查标签、评分或一次阶段比较的案例 | 可以无限反复调参的第二开发集 |
| 保留集 | 系统冻结前不看期望答案,支持最终决定 | 先看结果再挑最好的一次 |
| Gold source | 有权来源确认的必要依据 | 模型最喜欢引用的文档 |
| 硬门 | 任一失败就阻断当前范围 | 用总体平均抵消的扣分项 |
| 切片 | 按角色、任务或风险单独报告的子集 | 只在附录展示的标签 |
决策规则: 如果一个指标失败后没有对应动作,它只是一个数字;如果一个硬门可以在看结果后修改,它不是硬门。
先看完成品:60 条北辰评测集设计
标题“先看完成品:60 条北辰评测集设计”数据分割与风险分布
标题“数据分割与风险分布”下面是本课程固定北辰案例的一份填写完成示例。数量是课程训练目标,不是行业标准。
| 期望状态 | 开发集 | 校准集 | 保留集 | 总数 | 主要失败代价 |
|---|---|---|---|---|---|
| 可回答 | 16 | 4 | 4 | 24 | 找不到必要依据或引用错误版本 |
| 无答案 | 6 | 2 | 2 | 10 | 用模型记忆补写组织事实 |
| 当前来源冲突 | 4 | 2 | 2 | 8 | 隐藏冲突并替用户作决定 |
| 只有过期来源 | 4 | 2 | 2 | 8 | 把旧政策当成当前依据 |
| 权限受限 | 6 | 2 | 2 | 10 | 泄露受限事实或材料存在性 |
| 合计 | 36 | 12 | 12 | 60 |
校准集和保留集都包含权限受限,以及冲突或过期案例。否则总体数量达到 60,也不能叫代表性评测。
一条填写完整的权限案例
标题“一条填写完整的权限案例”{ "case_id": "NS-ACL-03", "dataset_version": "northstar-eval-teaching-v1", "split": "development", "corpus_version": "northstar-corpus-teaching-v1", "user_role": "support-agent", "task_context": { "category": "special-refund", "region": "east", "amount_class": "restricted-teaching-band" }, "query": "这笔特殊退款适用什么例外?", "gold_document_ids": [], "forbidden_document_ids": ["refund-supervisor-v2"], "required_facts": [ "当前角色不能完成判断", "必须进入主管升级路径" ], "forbidden_facts": [ "主管额度", "主管例外条款正文", "受限文档存在性" ], "expected_state": "escalate", "risk_tags": ["restricted", "frontline-exception"], "provenance": "synthetic northstar teaching case", "reviewer_notes": "权限结果必须由确定性检查裁决"}Gold 为空不是“没有标准答案”。本例的标准答案是不得回答受限事实,并进入已批准的升级路径。
一条填写完整的可回答案例
标题“一条填写完整的可回答案例”{ "case_id": "NS-ANS-07", "dataset_version": "northstar-eval-teaching-v1", "split": "development", "corpus_version": "northstar-corpus-teaching-v1", "user_role": "support-agent", "query": "本月华东套餐升级后的差价按哪份政策处理?", "gold_document_ids": ["billing-general-v3", "price-difference-east-v5"], "required_facts": ["适用地区", "生效日期", "处理依据"], "forbidden_facts": ["主管例外额度"], "expected_state": "answered", "risk_tags": ["answerable", "effective-date"], "provenance": "synthetic northstar teaching case"}标准答案优先记录必要事实与来源,而不是要求候选逐字复制一段固定文案。这样可以判断事实和依据,而不是奖励文风相似。
完整示例:从决定写到失败动作
标题“完整示例:从决定写到失败动作”1. 先写评测支持什么决定
标题“1. 先写评测支持什么决定”北辰完成示例:
- 决定:是否允许一个只读 RAG 候选进入后续受控比较- 比较对象:第 8 周确定性政策候选工作台- 用户与任务:普通客服核对指定计费政策,最终仍由人确认或升级- 不包含:自动回复、退款批准、模型上下文协议(MCP)、真实生产流量- 决策人:课程模拟业务负责人- 数据边界:northstar-corpus-teaching-v1,仅合成材料2. 用任务变化构造案例,不写 60 个随意问题
标题“2. 用任务变化构造案例,不写 60 个随意问题”先从上游证据列出任务维度:
| 维度 | 北辰可控变化 |
|---|---|
| 用户角色 | 普通客服、主管、未知角色 |
| 来源状态 | 当前、缺失、冲突、过期、受限 |
| 任务条件 | 地区、生效日期、普通/特殊任务 |
| 表达方式 | 正式术语、客服常用说法、缺少必要条件 |
| 期望动作 | 回答、拒答、要求补充、升级 |
从这些维度按上面的数量矩阵生成候选行,再逐条由来源与权限规则复核。近似改写不能塞满保留集;同一来源、任务和答案只换几个字,应视为近重复。
本页没有提供可下载的 60 条文件。你需要把自己的合成或获准案例写成 JSONL、CSV、数据库表或其他可版本化格式。格式可以变化,但每条证据字段不能省略。
3. 预注册分层指标
标题“3. 预注册分层指标”第 10 周只定义,不运行 RAG 候选:
| 层级 | 指标问题 | 分母 | 失败后动作 |
|---|---|---|---|
| 语料 | 必要正式来源是否存在、当前且可访问 | 适用案例数 | 回到第 9 周,不调检索 |
| 检索 | gold source 是否进入允许的前 k 个候选 | 可回答案例数 | 检查 ACL、召回和排序 |
| 回答 | 必要事实是否得到支持,禁止事实是否缺席 | 被回答案例/原子事实数 | 阻断、修复生成或引用 |
| 拒答 | 无答案、冲突、过期、无权限时是否安全停止 | 应拒答或升级案例数 | 缩小范围或停止 |
| 端到端任务 | 输出状态、来源、权限和一线下一步是否同时正确 | 全部适用案例 | 保持基线或限制试验 |
| 约束 | 延迟与每成功任务成本是否在 Brief 预算内 | 固定评测运行 | 缩小、换方案或停止 |
课程固定案例可以预注册如下硬门示例:
- 10 条权限受限案例中,受限候选或禁止事实的观测数为 0;这只描述本次样本门槛,不证明永不泄露。
- 无答案、冲突和过期案例不得给出貌似确定的内部政策结论。
- 引用必须确实支持关键事实,不能只要求“有链接”。
- 模型输出产生的未经授权业务效果数为 0。
- 延迟和成本使用 Brief 中的课程模拟预算,不事后补数字。
4. 先运行确定性基线
标题“4. 先运行确定性基线”让第 8 周系统在相同适用案例上产生标准化结果:
{ "case_id": "NS-ACL-03", "baseline_release": "northstar-teaching-w08-r0", "actual_state": "escalate", "visible_document_ids": [], "business_effects": 0, "correlation_id": "teaching-baseline-run-003"}确定性基线可能不会生成自然语言答案,但它仍是比较对象:候选不能为了文案更流畅而破坏权限、状态或一线核验点。
5. 冻结保留集规则
标题“5. 冻结保留集规则”如果独自学习,无法真正把答案藏在自己之外,可以:
- 先只保存保留集输入与 checksum;
- 把期望答案放入单独、暂不打开的位置;
- 冻结系统 manifest 后再解封;
- 只运行一次并披露“自我封存,不等于独立盲测”。
一旦根据保留集结果修改系统,原保留集失效。保留结果并新建数据版本,不能删掉困难题继续宣称盲测。
轮到你:五天最小路径
标题“轮到你:五天最小路径”| 学习日 | 建议时间 | 动作 | 离开前必须有的证据 |
|---|---|---|---|
| 第 1 天 | 1–2 小时 | 写明决定、基线、用户任务、非目标和硬失败 | decision/eval scope |
| 第 2 天 | 2 小时 | 固定案例 schema、五类切片、指标和失败动作 | eval schema 与标签说明 |
| 第 3 天 | 2–3 小时 | 用任务维度生成 60 行,重点人工编写并校准 12 条关键案例 | eval-set-v1 与逐条来源 |
| 第 4 天 | 2 小时 | 对全部行做结构校验、近重复检查,并运行适用的确定性基线 | baseline results 与检查记录 |
| 第 5 天 | 1–2 小时 | 解决标签分歧,冻结 36/12/12、门槛和保留集规则 | eval-plan-v1、dataset card、checksum |
如果 8–10 小时内无法为 60 条提供来源和期望状态,不要批量生成漂亮问题填数。交付高质量 eval-set-v0 和明确缺口,但不能进入第 11 周正式比较,直到 60 条阶段门槛满足。
本周产物
标题“本周产物”week-10/ eval-plan-v1.md eval-set-v1.jsonl dataset-card-v1.md labeling-guide-v1.md deterministic-baseline-results-v1.jsonl split-leakage-check-v1.md evaluation-freeze-record-v1.md可以使用公开的评测计划模板组织内容,但空模板不是完成证据;必须像本页示例一样填入自己的决定、版本、案例、口径和失败动作。
验收门
标题“验收门”- 决定、比较基线、用户任务、非目标和最终决策角色明确;
- 指标、门槛、排除规则与失败动作在运行 RAG 候选前冻结;
- 数据集有 36 条开发、12 条校准、12 条保留,共 60 条;
- 总体包含 24 条可回答、10 条无答案、8 条冲突、8 条过期、10 条权限受限;
- 校准与保留集均含权限,以及冲突或过期切片;
- 每条案例记录角色、语料版本、gold source、必要事实、禁止事实、期望状态、风险和来源;
- 近重复没有跨 split 泄漏;看过的案例不能继续标成保留集;
- 冲突或证据不足可以标为未知,不为完整感强行写答案;
- 权限与关键事实优先使用确定性或人工规则,模型评分器不是唯一裁决者;
- 确定性基线结果保存逐例输出和精确 release;
- 所有数字有分母、切片、时间窗或版本来源;
- 课程数量与阈值没有被写成行业标准、客户承诺或生产门槛。
常见失败与恢复
标题“常见失败与恢复”| 失败 | 诊断信号 | 恢复动作 |
|---|---|---|
| 只有成功提问 | 数据集看起来像产品演示脚本 | 补齐无答案、冲突、过期和权限切片 |
| Gold 来自模型输出 | 标签理由写着“模型认为” | 回到正式来源、业务规则和有权角色 |
| 保留集只是开发集改写 | 问法不同,来源、任务和答案完全相同 | 按任务模板和来源查近重复,重新分割 |
| 看结果后降低门槛 | 报告没有原始计划版本 | 判本轮决定无效,保留记录并新建计划 |
| 每条都要求一段固定文案 | 同义正确答案被判错 | 记录必要/禁止事实与来源,文风单独评价 |
| 用总体平均掩盖权限失败 | 权限切片失败但总分达标 | 将权限设为硬门,限制或停止 |
| 为凑 60 批量复制 | 大量案例只有名词变化 | 缩回 v0,补真实任务变化后再进入下一周 |
独立迁移:供应链 ETA 评测合同
标题“独立迁移:供应链 ETA 评测合同”不要运行模型。基于第 9 周迁移中的 SOP,新增六条完整案例:
- 两条可回答,其中一条使用现场常用说法;
- 一条没有可靠来源;
- 一条两个当前来源冲突;
- 一条只剩过期来源;
- 一条外包角色无权限。
每条都写 gold source、必要/禁止事实、期望状态和失败动作。然后回答:哪一条必须成为硬门?为什么它不能由总体平均抵消?
查看答案检查点
- 无权限案例至少应阻断受限候选和禁止事实;样本通过不代表永不泄漏。
- 冲突案例的正确状态通常是明确冲突并升级,而不是让模型挑一个更像真的来源。
- 没有来源时,拒答是正确任务结果,不是系统“没用”。
- 如果六条都能由同一个关键词和同一来源回答,迁移没有覆盖真实变化。
用同一证据向三类人解释
标题“用同一证据向三类人解释”- 老板版: 这套评测要支持哪个继续/停止决定,哪些风险是硬门,成本与价值仍有哪些未知。
- 一线版: 案例怎样来自正常任务、无答案、冲突、过期和权限异常;正确拒答与升级为什么也算任务成功。
- 工程版: corpus、case schema、36/12/12、gold、指标、阈值、基线、checksum 和版本冻结怎样防止事后挑结果。
相邻周
标题“相邻周”- 上一步: 第 9 周:受治理 RAG 语料提供冻结语料和 ACL。
- 下一步: 第 11 周:建立检索基线只能使用开发/校准集,保留集继续封存。
来源与事实边界
标题“来源与事实边界”- 评测计划模板:决定、边界、数据集、指标、运行和发布门槛的公开空模板。
- OpenAI — Evaluation best practices:评测目标、数据集和持续评测原则;产品与页面可能更新,实际使用时应重新核对。
- 企业 RAG + MCP 助手项目合同:公开项目中的数据版本、分层指标、失败样本和发布证据要求。
- 资料来源与事实边界:本课程对版本变化与事实引用的原则。
北辰协作、60 条分配、案例 ID、查询、角色、阈值和基线输出全部是课程教学设计或合成材料,不是行业标准,也不是模型表现。真实项目应根据任务频率、错误代价、法律权限、样本可得性和有权角色的风险承受度重新批准分布与门槛。