mcpField
A
advanced-evaluation

advanced-evaluation

github.com/guanyang测试与质量982289 次安装2 天前更新
代码仓库

关于 advanced-evaluation

面向评估模型输出的团队,提供构建 LLM-as-a-Judge 评估的方法,涵盖评分与成对比较、偏差控制、量规设计及与人工判断的验证。

主要功能

  1. 01直接评分与成对比较
  2. 02位置与长度偏差控制
  3. 03量规设计与校准
  4. 04置信度与指标选择
  5. 05对照人工判断验证

适用场景

  1. 01比较模型回答的主观质量
  2. 02按明确标准评估事实准确性
  3. 03排查自动评估结果不一致
  4. 04设计提示词或模型 A/B 评估

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/guanyang/open-agent-hub --skill advanced-evaluation

安装后在 Claude Code 中输入/advanced-evaluation确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bias-mitigation.md
evaluation-pipeline.md
implementation-patterns.md
metrics-guide.md
scripts/
evaluation_example.py

详细介绍

高级评估

本技能介绍使用大模型作为评审来评估大模型输出的生产级技术。它综合了学术论文、行业实践和实际实施经验,提炼出可操作的模式,帮助构建可靠的评估系统。

核心观点:LLM-as-a-Judge 并非单一技术,而是一系列适用于不同评估场景的方法。选择合适的方法并缓解已知偏差,是本技能培养的核心能力。

何时启用

在以下情况下启用本技能:

  • 为大模型输出构建 LLM-as-Judge 系统
  • 比较多个模型的回答并选出最佳答案
  • 在评估团队中建立一致的质量标准
  • 调试结果不一致的评估系统
  • 为提示词或模型变更设计 A/B 测试
  • 专门为大模型评审或人类与大模型混合评审创建评分标准
  • 分析自动评判与人工评判之间的相关性

对于其他技能负责的相关工作,不要启用本技能:

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

核心概念

评估分类

根据是否存在真实标注结果,在两种主要方法中进行选择:

直接评分 —— 用于存在客观标准的情况(事实准确性、遵循指令、毒性)。由单个大模型按既定量表为一份回答评分。对于定义明确的标准,该方法具有中等到较高的可靠性。注意评分校准漂移和量表解读不一致的问题。

成对比较 —— 用于主观偏好(语气、风格、说服力)。由大模型比较两份回答并选出更好的一份。对于主观任务,与开放式直接评分相比,成对比较通常与人类偏好更为一致(claim-advanced-evaluation-position-swap)。注意位置偏差和长度偏差。

偏差类型

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

位置偏差:排在第一位的回答更容易获得优待。可通过交换位置进行两次评估,然后采用多数投票或一致性检查来缓解。

长度偏差:回答越长,得分往往越高,无论质量如何。可通过在提示词中明确要求忽略长度,并采用长度归一化评分来缓解。

自我提升偏差:模型会给自己的输出更高的评分。可通过使用不同的模型生成和评估来缓解。

冗长偏差:即使不必要,过多的细节也会获得更高评分。可通过针对具体标准制定评分规则,对无关细节扣分来缓解。

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

指标选择框架

根据评估任务的结构选择指标:

任务类型主要指标次要指标
二元分类(通过/失败)召回率、精确率、F1Cohen's kappa
序数量表(1-5 分)Spearman's rho、Kendall's tauCohen's kappa(加权)
成对偏好一致率、位置一致性置信度校准
多标签Macro-F1、Micro-F1各标签的精确率/召回率

应优先关注系统性分歧模式,而不是绝对一致率,因为在特定标准上持续与人类评判不一致的评审,比存在随机噪声的评审问题更大。

评估方法

直接评分实现

直接评分包含三个部分:明确的标准、经过校准的量表和结构化输出格式。

标准定义模式:

Criterion: [Name]
Description: [What this criterion measures]
Weight: [Relative importance, 0-1]

量表校准 — 根据评分细则的详细程度选择量表粒度:

  • 1-3:提供中立选项的二元量表,认知负担最低
  • 1-5:标准李克特量表,在粒度和可靠性之间取得最佳平衡
  • 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. 先运行确定性预检查:两个候选项必须满足相同的架构、源证据要求和范围限制。
  2. 第一轮评判:回复 A 排在第一位,回复 B 排在第二位。
  3. 第二轮评判:回复 B 排在第一位,回复 A 排在第二位。
  4. 一致性检查:如果两轮结果不一致,则返回 TIE,并降低置信度。
  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,结论 = TIE
评分细则生成

与开放式评分相比,生成评分细则可以减少评估差异。除非在目标评估集上进行测量,否则应将具体的差异减少幅度视为取决于工作负载。

评分细则应包含以下组成部分:

  1. 等级描述:明确界定各评分等级
  2. 特征:定义各等级的可观察特征
  3. 示例:各等级的代表性文本(可选,但很有价值)
  4. 边缘情况:为模糊情形提供指导
  5. 评分指南:确保评分一致性的通用原则

根据使用场景校准严格程度:

  • 宽松:及格门槛较低,适合鼓励迭代
  • 平衡:符合常见的生产环境预期
  • 严格:适用于安全关键或高风险评估的高标准

根据领域调整评分细则,使用特定领域的术语。代码可读性评分细则应提及变量、函数和注释;医疗准确性评分细则应引用临床术语和证据标准。

实用指南

评估流水线设计

构建生产级评估系统时,应包含以下层级:标准加载器(评分细则 + 权重)-> 主评分器(直接评分或两两比较)-> 偏差缓解(交换位置等)-> 置信度评分(校准)-> 输出(分数 + 理由 + 置信度)。完整的可视化布局请参阅 评估流水线图。

决策框架:直接评分与两两比较

应用以下决策树:

Is there an objective ground truth?
+-- Yes -> Direct Scoring
|   Examples: factual accuracy, instruction following, format compliance
|
+-- No -> Is it a preference or quality judgment?
    +-- Yes -> Pairwise Comparison
    |   Examples: tone, style, persuasiveness, creativity
    |
    +-- No -> Consider reference-based evaluation
        Examples: summarization (compare to source), translation (compare to reference)
扩展评估规模

对于高吞吐量评估,可采用以下策略之一:

  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:评估工具的架构和错误处理。
  • context-optimization:高频评估的令牌和延迟效率。
  • harness-engineering:自主循环的评估器接口锁定和治理。

参考资料

内部参考资料:

外部研究:

此集合中的相关技能:

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

技能元数据

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

评论

支持 Markdown