· 1 мин чтения

Workflow归因分析作业指南

 

目标:针对每道prompt,通过分析2个模型(exp/base)各7个变量,找出Workflow哪个环节/节点出了问题,最终输出一份标准化归因备注。

每个模型有7个变量needs_human_reviewreview_reasonsreview_rubricreview_claim_judgmentreview_label_mappingreview_score_gatejudge_summary


一、分析顺序(7个变量按此顺序看)

步骤

看哪个变量

一句话目的

1

needs_human_review

先看总开关:True=有技术问题,False=正常产出

2

review_reasons

如果有技术问题,定位是哪个节点出了问题

3

review_rubric

检查Rubric本身设计有没有问题

4

review_claim_judgment

逐条核对模型对每个claim打的分数对不对

5

review_label_mapping

核对标签选得对不对、档位准不准

6

review_score_gate

确认最终分数怎么算出来的、哪步压了分

7

judge_summary

如果前面6个不够用,看完整汇总JSON(前6个变量的超集)

两个模型都要看:先看exp模型的7个变量,再看base模型的7个变量(带_2后缀),分开归因。


二、详细执行步骤

前置准备

每道题你会拿到以下数据:

  • 用户问题(Prompt)

  • exp-answer + 人评分/标签/备注

  • base-answer + 人评分/标签/备注

  • exp模型7个变量 + base模型7个变量(带_2后缀)

Step 0:通读题目和两个回答

先读Prompt和两个模型的回答,自己心里有个判断:这两个回答质量怎么样?哪个好?各自有什么问题?这样后面看变量时心里有底。


Step 1:看 needs_human_review(总开关)

exp模型看 needs_human_review,base模型看 needs_human_review_2

含义

下一步

FALSE

正常产出,无技术异常

→ Step 3

TRUE

有技术问题,需要定位

→ Step 2


Step 2:看 review_reasons(定位技术问题)

exp模型看 review_reasons,base模型看 review_reasons_2

如果 needs_human_review = TRUE,看 review_reasons 里的内容,对照下表定位问题节点:

review_reasons里的文本

问题出在哪个节点

机评分可不可信

你该做什么

逐Claim裁判结构未通过 + 缺少claim_id=x

③裁判模型 + ⑤修复模型都失败了

不可信

从头人工评,标T层

非3分但没有合法答案级标签

⑧人标校准节点没产出标签

分数可信,标签不可信

自己补标签,标L层

输入合同/Rubric校验未通过

①输入合同节点

可能不可信

先看Rubric对不对,标R层

校准节点未产出标签,已按失败claim合成人标标签

⑧校准失败但⑨兜底成功

分数可信,标签是兜底合成的

标签仅供参考,标T层

标签名非法或不在V1.0白名单

⑧校准模型编了不存在的标签

标签不可信

自己补标签,标L层

非法标签档位:xxx-x

⑧校准模型档位错误

标签不可信

自己定档位,标L层

无历史却输出多轮标签

⑧校准模型 + ①输入合同

标签不可信

该标签已拦截,标C层

无媒体却输出多模标签

⑧校准模型 + ①输入合同

标签不可信

该标签已拦截,标C层

review_reasons[](空列表)= 没有技术异常,正常产出。

如果两个模型都没技术问题 → 进入 Step 3


Step 3:看 review_rubric(R层:Rubric质量)

exp模型看 review_rubric,base模型看 review_rubric_2

解析这个JSON,看两个字段:

  • rubric_qualityok = 没问题,suspected_issue = 有问题

  • issues:问题列表,每条有 claim_idissue_typereason

issue_type含义速查

issue_type

含义

举例

duplicate

考点重复

Claim1和Claim4检查的是同一个内容

importance_mismatch

权重失衡

必答点权重和重要点权重差不多

over_specific

考点过细

要求精确到"5~10分钟"才给满分

missing_main_need

漏主需

Rubric没覆盖用户核心需求

irrelevant

无关考点

考了跟问题无关的内容

anchor_ambiguity

锚点模糊

0/1/2分标准不清晰

你需要判断

  • 如果 rubric_quality = suspected_issue,这个问题是否导致了机评偏差?

  • 比如:Rubric说claim过细,模型按过细的标准扣了分,人评认为不该扣 → 分差来自R层


Step 4:看 review_claim_judgment(J层:逐claim裁判)

exp模型看 review_claim_judgment,base模型看 review_claim_judgment_2

解析这个JSON数组,逐条核对:

每条claim有:
  claim_id     → 考点编号
  claim        → 考点文本
  importance   → 必答点/重要点
  weight       → 权重
  claim_score  → 模型打的分(0/1/2)
  failure_type → pass/missing/incorrect/contradicted/irrelevant/not_applicable
  evidence     → 模型引用的回答原文
  reason       → 模型打这个分的理由
  confidence   → high/medium/low

核对方法

  1. 重点看 claim_score 不是2的条目 → 这是模型认为回答有问题的地方

  2. 看模型的 evidencereason,判断打分对不对

  3. 对比你作为人评的判断:这条claim应该打几分?

  4. 如果模型给了2分但你认为该给0分 → J层分歧(裁判偏松)

  5. 如果模型给了0分但你认为该给2分 → J层分歧(裁判偏严)

failure_type核对要点

failure_type

含义

常见错误

pass

满分通过

模型可能对有错误的回答给了pass(偏松)

missing

没写

模型可能把"写了但错了"标成missing(应该是incorrect)

incorrect

写错了

正确标注

contradicted

前后矛盾

模型可能漏标了矛盾

irrelevant

答非所问

模型可能把部分相关当成irrelevant(偏严)


Step 5:看 review_label_mapping(L层:标签选择)

exp模型看 review_label_mapping,base模型看 review_label_mapping_2

解析这个JSON数组:

每个标签有:
  claim_id           → 标签来自哪个claim
  base_label         → 标签名(如"主需真实性")
  tier               → 档位(0/1/2/3)
  label_with_level   → 完整标签(如"主需真实性-1")
  evidence           → 标签依据
  reason             → 为什么选这个标签
  confidence         → 置信度
  is_non_score_affecting → 是否不影响总分的轻微标签

核对方法

  1. 空列表 [] + final_score=3 → 正常(无问题无标签)

  2. 空列表 [] + final_score<3 → ⑧校准节点失败(已在Step 2定位)

  3. 有标签 → 逐个对比人评标签:

对比结果

归因

说明

标签相同、档位相同

L层无问题

继续看Step 6

标签相同、档位不同

L层-档位不准

模型对严重程度判断有偏差

标签不同(机评选A人评选B)

L层-标签选错

看reason和evidence,判断谁对

机评标签比人评多

L层-标签过度映射

模型可能把小问题放大了

机评标签比人评少

L层-标签遗漏

模型可能漏判了某个问题

常见标签选错模式

机评选的

人评选的

错误原因

信息缺失

主需真实性

把"说错了"标成"没写"(经典错误)

主需真实性

次需真实性

把次需错误升成了主需

内容价值

主需真实性

该归到具体标签却用了兜底标签

信息缺失

丰富度

维度不够被标成了信息缺失


Step 6:看 review_score_gate(S层:分数计算)

exp模型看 review_score_gate,base模型看 review_score_gate_2

解析这个JSON,按顺序读分数链路:

claim_score_100              ← claim加权得分(0-100分制)
    ↓ 阈值映射
claim_mapped_score           ← 映射到0-3(≥86→3, ≥65→2, ≥40→1, else→0)
    ↓
calibration_proposed_score  ← 校准模型建议的总分
    ↓ 三取最小
required_claim_cap           ← 必答点封顶分
minimum_effective_label_tier ← 标签档位上限
    ↓
final_score                  ← 最终分 = min(三者)
cap_reasons                  ← 封顶原因说明

判断方法

  1. 如果 final_score = calibration_proposed_score → 没被压分,校准建议就是最终分

  2. 如果 final_score < calibration_proposed_score → 被硬约束压了:

    • required_claim_cap < proposed → 必答点封顶(回Step 4查哪个必答点0分了)

    • minimum_effective_label_tier < proposed → 标签档位压制(回Step 5查标签档位)

  3. 看人评分 vs 机评分的分差来自哪一步:

    • 人评和 claim_mapped_score 差距大 → J层问题(claim分数不对)

    • 人评和 calibration_proposed_score 差距大 → L层问题(标签/建议分不对)

    • 人评和 final_score 差距大但前两者都对 → S层问题(硬约束过严或过松)


Step 7:看 judge_summary(完整汇总,按需查看)

exp模型看 judge_summary,base模型看 judge_summary_2

这个变量是前面6个变量的超集(全部信息打包在一起),正常情况下不需要看。只有在前面6个变量信息不够用时(比如需要看 production_export 确认最终输出的分值/标签/备注),才解析这个JSON。


三、归因层级判定

完成Step 1-6后,填写归因表:

归因层

代号

命中条件

影响程度

Rubric设计

R

review_rubric.rubric_quality = suspected_issue

考点本身不合理导致分差

逐Claim判断

J

review_claim_judgment中有claim分数你不同意

裁判标准偏松/偏严

标签选择

L

review_label_mapping的标签或档位你不同意

标签选错/档位不准

分数约束

S

review_score_gate的硬约束压制不合理

分数被压太多/压太少

非分值告警

N

review_reasons有格式类告警

非核心问题但需记录

上下文门控

C

review_reasons有上下文门控告警

无多轮/多模但输出了对应标签

技术异常

T

needs_human_review=True

节点运行失败,结果不可信

一道题可以有多个归因层,分主归因和次归因。


四、备注格式可以参考

每道题分析完后,按以下格式填写备注(两个模型分开写):

【题目】{用户问题}

===== exp模型 =====
机评分:{exp机评结论} 人评分:{exp-得分} 分差:{机评-人评}
机评标签:{exp-标签}
人评标签:{exp机评结论_2}

【主归因】{R/J/L/S/N/C/T}层 - {一句话说明}
【次归因】{R/J/L/S/N/C/T}层 - {一句话说明}(如无次归因写"无")

【R层】Rubric质量:{ok/suspected_issue};issue_type:{具体问题};是否影响分差:{是/否}
【J层】分歧claim:{claim_id列表};模型给的分数:{x分};你认为该给:{x分};分歧原因:{一句话}
【L层】标签差异:{机评标签 vs 人评标签};差异类型:{标签选错/档位不准/标签遗漏/标签过度/无差异}
【S层】claim_score_100={x} → claim_mapped={x} → proposed={x} → cap={x} → label_cap={x} → final={x};分差来源:{哪一步}
【T层】needs_review={True/False};review_reasons={具体内容或"空"}

【修改建议】{如果让你改这个Workflow,你会改哪个节点/规则?}

===== base模型 =====
机评分:{base机评结论} 人评分:{base-得分} 分差:{机评-人评}
机评标签:{base-标签}
人评标签:{base机评结论_2}

【主归因】{R/J/L/S/N/C/T}层 - {一句话说明}
【次归因】{R/J/L/S/N/C/T}层 - {一句话说明}(如无次归因写"无")

【R层】Rubric质量:{ok/suspected_issue};issue_type:{具体问题};是否影响分差:{是/否}
【J层】分歧claim:{claim_id列表};模型给的分数:{x分};你认为该给:{x分};分歧原因:{一句话}
【L层】标签差异:{机评标签 vs 人评标签};差异类型:{标签选错/档位不准/标签遗漏/标签过度/无差异}
【S层】claim_score_100={x} → claim_mapped={x} → proposed={x} → cap={x} → label_cap={x} → final={x};分差来源:{哪一步}
【T层】needs_review={True/False};review_reasons={具体内容或"空"}

【修改建议】{如果让你改这个Workflow,你会改哪个节点/规则?}

五、示例(用第1题"吸烟后测量血压"演示)

【题目】吸烟后测量血压突然升高是怎么回事?

===== exp模型 =====
机评分:3 人评分:3 分差:0
机评标签:(空)
人评标签:(空)

【主归因】无(机评人评一致)
【次归因】无

【R层】Rubric质量:suspected_issue;issue_type:duplicate(Claim1与Claim4重复)+importance_mismatch(必答点权重偏低);是否影响分差:否(本题未触发分差)
【J层】分歧claim:无(9条claim全部2分,与人评一致)
【L层】标签差异:机评无标签,人评无标签;差异类型:无差异(3分无问题,标签为空正确)
【S层】claim_score_100=100 → claim_mapped=3 → proposed=3 → cap=3 → label_cap=3 → final=3;分差来源:无分差
【T层】needs_review=False;review_reasons=空

【修改建议】Rubric中Claim1(解释原因/机制)与Claim4(尼古丁机制)内容重复,建议合并或区分。必答点权重(0.10)与重要点(0.07)差距过小,建议调大必答点权重。

===== base模型 =====
机评分:3 人评分:3 分差:0
机评标签:(空)
人评标签:(空)

【主归因】无(机评人评一致)
【次归因】R层 - Rubric诊断claim8过细,但未影响本题分差

【R层】Rubric质量:suspected_issue;issue_type:over_specific(claim8要求精确到"5~10分钟"过于苛刻);是否影响分差:否(base模型碰巧答了5~10分钟,但换一个回答可能就误判)
【J层】分歧claim:无(9条claim全部2分,与人评一致)
【L层】标签差异:无;差异类型:无差异
【S层】claim_score_100=100 → claim_mapped=3 → proposed=3 → cap=3 → label_cap=3 → final=3;分差来源:无分差
【T层】needs_review=False;review_reasons=空

【修改建议】claim8(测血压前静息要求)对"怎么回事"类机制问题过于细化,建议降为附加点或放宽锚点标准。