项目文件夹

文件
2026-07-13 21:37:14 +08:00

15 KiB

name, description
name description
advanced-evaluation 本技能应用于高级 LLM 评估:LLM 作为裁判系统、直接评分、成对比较、量规校准、评估者偏差缓解、置信度评分以及自动化质量评估。

高级评估

本技能涵盖了使用 LLM 作为裁判来评估 LLM 输出的生产级技术。它将来自学术论文、行业实践及实际实施经验的研究成果综合为构建可靠评估系统的可操作模式。

核心见解:LLM 作为裁判并非单一技术,而是一系列方法的统称,每种方法适用于不同的评估场景。选择正确的方法并缓解已知偏差是本技能培养的核心能力。

何时激活

在以下情况激活本技能:

  • 构建针对 LLM 输出的 LLM 作为裁判系统
  • 比较多个模型的回复以选出最佳结果
  • 在评估团队间建立一致的质量标准
  • 调试显示不一致结果的评估系统
  • 设计针对提示词或模型更改的 A/B 测试
  • 专门为 LLM 或人/LLM 混合裁判创建量规
  • 分析自动评估与人工评估之间的相关性

对于其他技能负责的相邻工作,请勿激活本技能:

  • 通用确定性检查、回归套件、生产质量门禁或结果指标:evaluation
  • 自主循环治理、锁定量规、回滚或 PR 审批边界:harness-engineering
  • 评估工具的工具 API 契约:tool-design

核心概念

评估分类法

根据是否存在真实基准,在两种主要方法之间选择:

直接评分——在存在客观标准时使用(事实准确性、指令遵循、毒性)。单个 LLM 按既定量表对一条回复进行评分。对于定义明确的标准,可实现中等到高可靠性。需注意分数校准漂移和不一致的量表解读问题。

成对比较——用于主观偏好(语气、风格、说服力)。LLM 比较两条回复并选出较好者。对于主观任务,成对方法通常比开放式直接评分与人类偏好具有更好的相关性(claim-advanced-evaluation-position-swap)。需注意位置偏差和长度偏差。

偏差全景

在每个评估系统中缓解以下系统性偏差:

位置偏差:处于第一位置的回复会获得更优对待。通过交换位置评估两次,然后应用多数投票或一致性检查来缓解。

长度偏差:较长的回复无论质量如何都能获得更高分数。通过显式提示忽略长度并应用长度归一化评分来缓解。

自我增强偏差:模型对自己输出的评分更高。通过使用不同的模型进行生成和评估来缓解。

冗长偏差:即使不必要,过度详细的回复也能获得更高分数。通过使用惩罚无关细节的特定标准量规来缓解。

权威偏差:无论准确性如何,自信的语气能获得更高分数。通过要求引用证据并增加事实核查层来缓解。

指标选择框架

将指标与评估任务结构匹配:

任务类型 主要指标 次要指标
二分类(通过/不通过) 召回率、精确率、F1 Cohen's kappa
序数量表(1-5 评分) Spearman's rho、Kendall's tau Cohen's kappa(加权)
成对偏好 一致率、位置一致性 置信度校准
多标签 宏平均 F1、微平均 F1 每个标签的精确率/召回率

优先关注系统性不一致模式,而非绝对一致率,因为在特定标准上与人类持续不一致的裁判,比存在随机噪声的裁判问题更严重。

评估方法

直接评分实现

通过三个组件构建直接评分:清晰的标准、校准的量表以及结构化输出格式。

标准定义模式

Criterion: [名称]
Description: [该标准衡量什么]
Weight: [相对重要性,0-1]

量表校准——根据量规详细程度选择量表粒度:

  • 1-3:带中性选项的二分类,认知负荷最低
  • 1-5:标准 Likert 量表,粒度和可靠性的最佳平衡
  • 1-10:仅在有详细逐级量规时使用,因为校准更困难

直接评分提示词结构

You are an expert evaluator assessing response quality.

## Task
Evaluate the following response against each criterion.

## Original Prompt
{prompt}

## Response to Evaluate
{response}

## Criteria
{for each criterion: name, description, weight}

## Instructions
For each criterion:
1. Find specific evidence in the response
2. Score according to the rubric (1-{max} scale)
3. Justify your score with evidence
4. Suggest one specific improvement

## Output Format
Respond with structured JSON containing scores, justifications, and summary.

在评分提示词中要求在分数之前提供证据,以便裁判在给出数字之前必须将其判断锚定在可观察到的输出特征上。

成对比较实现

在每个成对评估中应用位置偏差缓解:

  1. 首先运行确定性前置检查:两个候选回复必须满足相同的 schema、来源证据要求和范围约束。
  2. 第一次裁判:回复 A 在第一位置,回复 B 在第二位置。
  3. 第二次裁判:回复 B 在第一位置,回复 A 在第二位置。
  4. 一致性检查:如果两次判定的胜者不一致,返回平局并降低置信度。
  5. 最终裁决:一致的胜者,带平均置信度和明确的破平理由。

成对比较提示词结构

You are an expert evaluator comparing two AI responses.

## Critical Instructions
- Do NOT prefer responses because they are longer
- Do NOT prefer responses based on position (first vs second)
- Focus ONLY on quality according to the specified criteria
- Ties are acceptable when responses are genuinely equivalent

## Original Prompt
{prompt}

## Response A
{response_a}

## Response B
{response_b}

## Comparison Criteria
{criteria list}

## Instructions
1. Analyze each response independently first
2. Compare them on each criterion
3. Determine overall winner with confidence level

## Output Format
JSON with per-criterion comparison, overall winner, confidence (0-1), and reasoning.

置信度校准——将置信度映射到位置一致性:

  • 两次判定一致:置信度 = 各次置信度的平均值
  • 两次判定不一致:置信度 = 0.5,裁决 = 平局

量规生成

生成量规可减少与开放式评分相比的评估方差。除非在目标评估集上测量过,否则将确切的方差减少视为特定于工作负载。

包含以下量规组件

  1. 等级描述:每个分数等级的清晰边界
  2. 特征:定义每个等级的可观察特征
  3. 示例:每个等级的代表性文本(可选但有价值)
  4. 边缘情况:针对模糊情况的指引
  5. 评分指南:一致应用的一般原则

根据用例设置严格度校准

  • 宽松:通过门槛较低,适合鼓励迭代
  • 均衡:典型的生产环境期望
  • 严格:对安全关键或高风险的评估采用高标准

使量规适应领域——使用领域特定术语。代码可读性量规提及变量、函数和注释。医学准确性量规引用临床术语和证据标准。

实践指南

评估流水线设计

使用以下层次构建生产级评估系统:标准加载器(量规 + 权重)-> 主要评分器(直接或成对)-> 偏差缓解(位置交换等)-> 置信度评分(校准)-> 输出(分数 + 理由 + 置信度)。参见评估流水线图获取完整可视化布局。

决策框架:直接 vs. 成对

应用以下决策树:

是否存在客观真实基准?
+-- 是 -> 直接评分
|   示例:事实准确性、指令遵循、格式合规
|
+-- 否 -> 是偏好或质量判断吗?
    +-- 是 -> 成对比较
    |   示例:语气、风格、说服力、创造力
    |
    +-- 否 -> 考虑基于参考的评估
        示例:摘要(与原文比较)、翻译(与参考译文比较)

扩展评估

对于高流量评估,应用以下策略之一:

  1. LLM 面板(PoLL:使用多个模型作为裁判并汇总投票,以减少单个模型偏差。成本更高,但对于高风险决策更可靠。

  2. 分层评估:使用快速廉价的模型进行筛选,使用昂贵模型处理边缘情况。需要对筛选阈值进行校准。

  3. 人在回路中:自动化处理明确案例,将低置信度决策路由到人工审核。设计反馈循环以逐步改进自动评估。

示例

示例 1:准确性直接评分

输入

Prompt: "What causes seasons on Earth?"
Response: "Seasons are caused by Earth's tilted axis. As Earth orbits the Sun,
different hemispheres receive more direct sunlight at different times of year."
Criterion: Factual Accuracy (weight: 1.0)
Scale: 1-5

输出

{
  "criterion": "Factual Accuracy",
  "score": 5,
  "evidence": [
    "Correctly identifies axial tilt as primary cause",
    "Correctly explains differential sunlight by hemisphere",
    "No factual errors present"
  ],
  "justification": "Response accurately explains the cause of seasons with correct
scientific reasoning. Both the axial tilt and its effect on sunlight distribution
are correctly described.",
  "improvement": "Could add the specific tilt angle (23.5 degrees) for completeness."
}

示例 2:带位置交换的成对比较

输入

Prompt: "Explain machine learning to a beginner"
Response A: [Technical explanation with jargon]
Response B: [Simple analogy-based explanation]
Criteria: ["clarity", "accessibility"]

第一次判定(A 在前)

{ "winner": "B", "confidence": 0.8 }

第二次判定(B 在前)

{ "winner": "A", "confidence": 0.6 }

(注意:胜者是 A,因为 B 处于第一位置)

映射后的第二次判定

{ "winner": "B", "confidence": 0.6 }

最终结果

{
  "winner": "B",
  "confidence": 0.7,
  "positionConsistency": {
    "consistent": true,
    "firstPassWinner": "B",
    "secondPassWinner": "B"
  }
}

示例 3:量规生成

输入

criterionName: "Code Readability"
criterionDescription: "How easy the code is to understand and maintain"
domain: "software engineering"
scale: "1-5"
strictness: "balanced"

输出(节选):

{
  "levels": [
    {
      "score": 1,
      "label": "Poor",
      "description": "Code is difficult to understand without significant effort",
      "characteristics": [
        "No meaningful variable or function names",
        "No comments or documentation",
        "Deeply nested or convoluted logic"
      ]
    },
    {
      "score": 3,
      "label": "Adequate",
      "description": "Code is understandable with some effort",
      "characteristics": [
        "Most variables have meaningful names",
        "Basic comments present for complex sections",
        "Logic is followable but could be cleaner"
      ]
    },
    {
      "score": 5,
      "label": "Excellent",
      "description": "Code is immediately clear and maintainable",
      "characteristics": [
        "All names are descriptive and consistent",
        "Comprehensive documentation",
        "Clean, modular structure"
      ]
    }
  ],
  "edgeCases": [
    {
      "situation": "Code is well-structured but uses domain-specific abbreviations",
      "guidance": "Score based on readability for domain experts, not general audience"
    }
  ]
}

指南

  1. 始终在分数之前要求提供证据——证据优先的提示词使判断更易于审计,并减少无依据的数字评分

  2. 在成对比较中始终交换位置——单次判定会被位置偏差污染

  3. 使量表粒度与量规详细程度匹配——没有详细等级描述时不要使用 1-10 分制

  4. 区分客观标准和主观标准——客观标准使用直接评分,主观标准使用成对比较

  5. 包含置信度分数——根据位置一致性和证据强度进行校准

  6. 显式定义边缘情况——模糊情况导致的评估方差最大

  7. 使用领域特定的量规——通用量规会产生通用(不太有用)的评估结果

  8. 针对人工判断进行验证——自动评估只有在与人工评估相关时才有价值

  9. 监控系统性偏差——按标准、回复类型、模型追踪不一致模式

  10. 为迭代而设计——评估系统通过反馈循环不断改进

注意事项

  1. 评分没有理由:分数缺乏依据,难以调试。始终要求在分数之前提供基于证据的理由。

  2. 单次成对比较:位置未交换时,位置偏差会污染结果。始终交换位置评估两次并检查一致性。

  3. 标准过载:同时衡量多个方面的标准会产生不可靠的分数。强制一个标准 = 一个可衡量的方面。

  4. 缺少边缘情况指引:没有显式指令时,评估者处理模糊情况的方式不一致。在量规中包含边缘情况及其明确解决规则。

  5. 忽略置信度校准:高置信度的错误判断比低置信度的更糟糕。将置信度校准到位置一致性和证据强度。

  6. 量规漂移:随着质量标准演变或模型能力提升,量规会变得不准确。安排定期量规审查,并对照新的人工标注示例重新锚定分数等级。

  7. 评估提示词敏感性:评估提示词中的微小措辞变化可能导致分数大幅波动。对评估提示词进行版本控制,并在部署提示词更改前运行回归测试。

  8. 未控制的长度偏差:即使简洁性更受偏好,较长的回复也会系统性地获得更高分数。在评估提示词中添加显式的长度中立指令,并通过长度控制的测试对进行验证。

集成

本技能负责裁判设计和偏差缓解。相邻技能负责更广泛的质量门禁和基础设施:

  • evaluation:通用确定性检查、回归套件、质量门禁和生产监控
  • context-fundamentals:裁判提示词的上下文结构
  • tool-design:评估工具的 schemas 和错误处理
  • context-optimization:高流量评估的令牌和延迟效率
  • harness-engineering:自主循环的锁定评估器表面和治理

参考资料

内部参考:

外部研究:

本集合中的相关技能:

  • evaluation——基础评估概念
  • context-fundamentals——评估提示词的上下文结构
  • tool-design——构建评估工具

技能元数据

创建日期2025-12-24 最后更新2026-05-15 作者Agent Skills for Context Engineering 贡献者 版本2.1.0