Self-Calibration

prompt提示词2026年6月7日2

Self-Calibration(Kadavath et al., 2022)是什么

Self-Calibration(自我校准)是一种两阶段提示方法,用来让模型对自己刚刚给出的答案做一次“正确性判断/置信度评估”。

  • 第1步(Answer):先让模型正常回答问题,得到答案 A。
  • 第2步(Calibrate/Verify):构造一个新提示词,把原问题 Q + 模型答案 A一起喂回去,并追加指令:
    • “这个答案正确吗?你有多确定?”
    • 或“请判断对/错并给出置信度/可能错误点/需要补充的信息”。

它的价值在于:当你在工程上要做“接受答案 vs 触发复核/检索/人工”的决策时,Self-Calibration 可以提供一个可用的自评信号(比如置信度分数、对错判定、风险提示),用来做路由或阈值控制。

重要现实:自我校准不是“保证正确”。它通常能让模型在“明显不确定/易错”任务上暴露犹豫与风险点,但在某些强幻觉或系统性偏差上仍可能“自信地错”。


怎么写(通用提示结构)

模板A:两段式(最常见)

Prompt 1:回答

  • 让模型直接作答,尽量要求:简洁、给最终结论、必要时给依据。

Prompt 2:校准

  • 输入:问题 + 刚才答案
  • 让模型输出:对错判断、置信度、主要不确定点、需要哪些信息才能确认

示例结构(第二阶段):

  • 你刚才对问题Q的回答是A。
  • 请你判断:A 是否正确?
  • 输出要求(建议固定格式):
    • 判定:正确 / 可能正确 / 可能错误 / 错误
    • 置信度:0-100
    • 关键依据:1-3条
    • 若可能错误:指出最可能错在哪里
    • 建议下一步:是否需要检索/计算/询问用户补充信息

模板B:用于工程路由(可直接做阈值)

第二阶段只输出机器可用字段,例如:

{"verdict": "...", "confidence": 0-100, "needs_retrieval": true/false}

方便你在代码里:confidence < 阈值 → 走RAG/人工复核。


适合的应用场景

  1. 答案接收/复核决策(路由)
  • 置信度高:直接返回
  • 置信度低:触发检索(RAG)、多模型复核、人工审核
  1. 高风险任务的“自检闸门”
    医疗、法律、金融、合规建议等:即使不给最终保证,也能提示风险与不确定点。

  2. 需要“知道自己不知道”的问答
    例如用户问得不完整(缺上下文/约束),模型可在校准阶段指出缺什么信息。

  3. 批量生成场景的质量控制
    比如自动生成题解、摘要、标注:用自校准做二次筛选,减少明显错误进入下游。


不适合的应用场景(或需谨慎)

  1. 把自评当成真实正确率
    模型置信度可能与真实正确性相关但不可靠,尤其在“看起来像常识但其实错”的问题上。

  2. 需要严格证明/计算正确的任务
    数学、逻辑、代码安全等:更适合配合外部校验(计算器/单元测试/形式化验证/RAG)。

  3. 存在系统性幻觉或偏见的分布
    如果模型在某类问题上经常“自信错误”,自校准也可能跟着偏。

  4. 校准阶段被提示诱导
    如果第二阶段提示写得暗示“你答得对吗?”过于肯定或过于否定,会影响自评。需要中性措辞和固定格式。


实战例子(至少3个,中文,可直接复制)

下面每个例子都给出:阶段1(回答) + 阶段2(自校准)。

例子1:常见问答 + 置信度门控(适合做产品化)

阶段1 Prompt(回答):

你是知识问答助手。请回答问题,并给出简短依据(不超过3条)。
问题:光合作用的主要产物是什么?

阶段2 Prompt(自校准):

你刚才对下面问题给出了答案。请判断该答案是否正确,并给出置信度。

【问题】光合作用的主要产物是什么?
【你的答案】(粘贴阶段1模型输出)

输出格式固定为:

  • 判定:正确/可能正确/可能错误/错误
  • 置信度:0-100
  • 依据:1-3条
  • 可能的错误点:如果不是“正确”,说明最可能错在哪里
  • 建议下一步:是否需要查证(是/否)+建议查证的关键词

用途:前端可以设阈值,比如置信度<70则提示“我不确定,建议查证/我可以检索”。


例子2:事实性问题(适合配合RAG触发检索)

阶段1 Prompt(回答):

你是百科问答助手。直接回答:2021年诺贝尔化学奖得主是谁?如不确定请也先给出你认为最可能的答案。

阶段2 Prompt(自校准+检索触发字段):

请对你刚才的回答做自我校准。
输入包含:问题与回答。你的任务是判断是否需要检索验证。

问题:2021年诺贝尔化学奖得主是谁?
回答:{粘贴阶段1答案}

只输出严格JSON:
{"verdict":"正确/可能正确/可能错误/错误","confidence":0-100,"needs_retrieval":true/false,"retrieval_queries":["...","..."]}

规则:

  • 如果这是“年份+获奖者”这类强事实题,且你置信度<90,则 needs_retrieval 必须为 true。
  • retrieval_queries 给出2-4条适合搜索的中文或英文关键词。

用途:工程上自动决定要不要走“检索→再回答”。


例子3:用户信息不全时的“自校准→反问补信息”

阶段1 Prompt(回答):

你是旅行规划助手。用户问题:我周末想去杭州玩两天,帮我做行程。请直接给一个你认为合理的行程安排。

阶段2 Prompt(自校准→指出缺失信息并生成澄清问题):

现在请你评估你刚才给出的行程是否“在信息不足的情况下可能不适用”。

【用户问题】我周末想去杭州玩两天,帮我做行程。
【你的行程】{粘贴阶段1输出}

输出格式:

  1. 判定:稳健/可能不稳健
  2. 置信度:0-100
  3. 关键缺失信息(最多5条):例如预算、出发地、是否带娃、偏好等
  4. 你应该追问用户的3个问题(要具体、可直接发给用户)
  5. 如果用户不回答,你将如何给出“保守版行程”(一句话策略)

用途:让助手在不确定时学会“先承认不确定→再要信息”,减少胡编。


例子4:代码/推理任务(自校准 + 建议外部验证)

阶段1 Prompt(回答):

请写一个Python函数,判断字符串是否为回文(忽略大小写与非字母数字),并给出示例。

阶段2 Prompt(自校准→测试建议):

你刚才写了代码。请判断它是否正确,并给出置信度。

要求你输出:

  • 判定:正确/可能正确/可能错误/错误
  • 置信度:0-100
  • 你最担心的bug点(1-3条)
  • 建议的最小测试用例集合(至少6个,覆盖边界)

下面是你的代码:
{粘贴阶段1代码}

用途:让模型“自曝风险点”,并产出测试用例,适合接入CI或单元测试环节。


工程实践建议(很关键但简短)

  • 校准阶段要中性:不要暗示“你肯定对/肯定错”。
  • 用固定输出格式:便于自动化路由与统计。
  • 为不同任务设阈值:事实题阈值高一些(如90),创意写作阈值可以低。
  • 与外部验证配合:低置信度触发 RAG、计算器、单测或人工审核;不要只靠自评。

如果你告诉我你的具体应用(例如:客服、医疗问答、知识库检索、代码生成、内容审核),我可以把上面模板改成更贴合你业务的字段、阈值策略和3个更贴近场景的完整提示词。