全套补充材料:评测报告模板 + Bad Case 分类方案 + 评测数据集构建规范

目录

[一、自动化评测报告 Markdown 模板(可直接导出)](#一、自动化评测报告 Markdown 模板(可直接导出))

[二、Bad Case 自动分类脚本思路(Python)](#二、Bad Case 自动分类脚本思路(Python))

目标

[BadCase 标签体系](#BadCase 标签体系)

简化版代码示例

落地说明

三、评测数据集构建规范(混合评测专用)

[1. 数据集结构定义(单样本 JSON)](#1. 数据集结构定义(单样本 JSON))

[2. 样本分类策略(必须混合)](#2. 样本分类策略(必须混合))

[3. 难度分层](#3. 难度分层)

[4. 数据集构建来源](#4. 数据集构建来源)

[5. 数据集质检规范(上线评测前必须做)](#5. 数据集质检规范(上线评测前必须做))

[6. 数据集大小建议](#6. 数据集大小建议)

整套体系完整链路汇总


一、自动化评测报告 Markdown 模板(可直接导出)

适用:混合评测(规则 + LLM-as-judge),每次批量评测自动填充,用于迭代复盘、版本对比

复制代码
# 模型自动化评测报告
评测版本:{{model_version}}
评测时间:{{eval_time}}
评测数据集:{{dataset_name}}
样本总量:{{total_samples}}
Judge模型:{{judge_model_name}}
Judge Prompt版本:{{prompt_version}}

## 1. 评测整体概览
| 指标 | 值 |
| ---- | ---- |
| 规则校验通过样本数 | {{rule_pass_cnt}} |
| 规则校验通过率 | {{rule_pass_rate}} |
| 规则拦截样本数 | {{rule_block_cnt}} |
| 进入LLM Judge评测样本数 | {{llm_eval_cnt}} |
| LLM Judge综合平均分 | {{llm_avg_total_score}} |
| 评测总耗时 | {{eval_duration}} |
| Token总消耗 | {{total_token_cost}} |

> 说明:规则拦截样本不再进入LLM打分,直接判定不合格。

## 2. 规则层评测明细
规则失败类型统计:
{{rule_error_stat_table}}

## 3. LLM Judge多维度得分统计(仅规则通过样本)
| 维度 | 平均分 | 标准差 |
| ---- | ---- | ---- |
| 准确性 | {{score_accuracy_mean}} | {{score_accuracy_std}} |
| 完整性 | {{score_completeness_mean}} | {{score_completeness_std}} |
| 逻辑性 | {{score_logic_mean}} | {{score_logic_std}} |
| 简洁性 | {{score_concise_mean}} | {{score_concise_std}} |

> 标准差越大:Judge打分波动越大,可靠性越差。

## 4. Judge可靠性校验(人工抽样)
抽样样本量:{{human_sample_cnt}}
Judge vs 人工标注 Cohen's Kappa:{{kappa_value}}
Kappa评级:{{kappa_level}}
Judge误判样本数量:{{judge_error_cnt}}

## 5. Bad Case汇总 Top N
| 样本ID | Query | 模型输出 | 失败原因分类 | 规则/LLM错误 |
| ---- | ---- | ---- | ---- | ---- |
{{bad_case_rows}}

## 6. 版本对比(可选,与上一版对比)
| 指标 | 当前版本 | 上一版本 | 变化 |
| ---- | ---- | ---- | ---- |
| 规则通过率 | {{cur_rule_pass}} | {{prev_rule_pass}} | {{delta_rule}} |
| 准确性平均分 | {{cur_acc}} | {{prev_acc}} | {{delta_acc}} |

## 7. 结论与优化建议
1. 整体结论:{{summary_conclusion}}
2. 高频问题:{{top_problem}}
3. 优化方向:{{optimize_suggestion}}
4. 后续动作:{{todo_list}}

二、Bad Case 自动分类脚本思路(Python)

目标

对所有失败样本(规则拦截 + LLM Judge 低分)自动打标签,聚合统计问题分布,减少人工筛选工作量。

分类分为两大类别:规则类 BadCase 、语义类 BadCase

BadCase 标签体系

  1. 规则类标签(规则引擎直接输出)
  • empty_response:空回答
  • too_long:输出超长
  • too_short:输出过短
  • invalid_json:JSON 格式错误
  • sensitive_word:命中敏感词 / 黑名单
  • format_error:不符合指定输出格式
  1. 语义类标签(解析 LLM Judge reason + 关键词匹配,可搭配轻量规则)
  • fact_hallucination:事实幻觉,编造信息
  • incomplete_answer:信息不全,遗漏要点
  • logic_conflict:逻辑矛盾,推理错误
  • irrelevant:答非所问,偏离用户问题
  • redundant:内容冗余啰嗦
  • wrong_prior:错误前提假设
  • refusal_error:不该拒绝却拒绝回答

简化版代码示例

复制代码
import re

# 语义问题分类函数:从judge reason文本匹配标签
def classify_bad_case(rule_errors: list, judge_reason: str):
    tags = []
    # 1. 优先处理规则错误
    for err in rule_errors:
        if "空回答" in err:
            tags.append("empty_response")
        elif "敏感词" in err:
            tags.append("sensitive_word")
        elif "JSON" in err:
            tags.append("invalid_json")
    
    # 2. 规则无错误,则解析Judge理由,匹配语义错误
    if len(tags) == 0 and judge_reason:
        reason_lower = judge_reason.lower()
        if re.search(r"事实.*错误|幻觉|编造", reason_lower):
            tags.append("fact_hallucination")
        if re.search(r"缺少|遗漏|不全", reason_lower):
            tags.append("incomplete_answer")
        if re.search(r"答非所问|无关", reason_lower):
            tags.append("irrelevant")
        if re.search(r"逻辑矛盾|推理错误", reason_lower):
            tags.append("logic_conflict")
    return tags

# 使用示例
# tags = classify_bad_case([], "回答存在事实错误,编造了不存在的数据")
# 输出:["fact_hallucination"]

落地说明

  1. 自动标签只做初步聚类,不可作为最终结论;
  2. 人工复核 BadCase 时,可以修正自动标签,回流训练关键词匹配规则;
  3. 统计:按标签计数,输出饼图 / 柱状图,看模型哪一类问题最多。

三、评测数据集构建规范(混合评测专用)

数据集质量直接决定评测可信度,数据集要分层、覆盖边界 Case,同时区分训练集 / 评测集,禁止数据泄露

1. 数据集结构定义(单样本 JSON)

复制代码
{
  "sample_id": "eval_001",
  "query": "用户提问",
  "reference_answer": "参考答案(可选,开放场景可以无标准答案)",
  "query_type": ["知识问答","创作","推理"],
  "difficulty": "easy/medium/hard",
  "category": "领域分类,如:金融/教育",
  "case_type": "normal/edge/adversarial",
  "expected_constraint": {
    "need_json": false,
    "forbidden_words": []
  },
  "metadata": {
    "source": "人工构造/线上抽样",
    "create_time": "2026-09-27"
  }
}

2. 样本分类策略(必须混合)

  1. 普通样本 normal(60%):常规用户问题,模型大概率正常回答,衡量基础能力
  2. 边界样本 edge(30%)
    • 模糊提问、信息缺失、歧义问题
    • 超长输入、多轮复杂推理
    • 需要指定格式输出(JSON、表格)
  3. 对抗样本 adversarial(10%)
    • 敏感诱导提问、越狱尝试
    • 容易产生幻觉的陷阱问题
    • 误导性前提的问题("太阳从西边升起,为什么?")

3. 难度分层

  • easy:事实类简答,标准答案明确
  • medium:需要简单推理,要点较多
  • hard:复杂逻辑、开放创作、多步骤推理,无唯一标准答案

4. 数据集构建来源

  1. 人工标注构造样本:适合覆盖特定能力、边界 case、对抗 case;可控性最好
  2. 线上真实日志抽样:必须脱敏,过滤隐私;真实分布,贴近线上用户
  3. 开源评测集改造:如 MMLU、GSM8K,适配业务场景;注意领域差异

重要红线:评测集样本不能出现在模型训练 / 微调数据里,防止数据泄露导致虚高评测分数。

5. 数据集质检规范(上线评测前必须做)

  1. 去重:剔除重复 query
  2. 标注校验:人工抽检,确认 reference 和 case_type 打标正确
  3. 样本多样性:领域、难度、case_type 分布均衡,不要全部都是简单题
  4. 版本管理:数据集也要版本化,修改样本后更新版本号,方便复现评测结果
  5. 保持固定:对比模型版本时,使用同一版评测集,不能一边测一边改样本

6. 数据集大小建议

  • 快速迭代小批量评测:≥100 条样本
  • 正式版本发布评测:≥500 条样本
  • Judge 可靠性 Kappa 校验集:≥50 条人工标注样本

整套体系完整链路汇总

  1. 评测数据集(分层 + 边界 + 对抗样本)
  2. 第一层:规则引擎(格式、敏感词、EM/F1,拦截低质样本)
  3. 第二层:LLM-as-judge 打分(多维度 /pairwise/ 二元,结构化输出 reason)
  4. BadCase 自动分类,聚类问题
  5. 生成标准化 Markdown 评测报告
  6. 人工抽样,计算 Cohen's Kappa 校验 Judge 可靠性
  7. 基于报告与 BadCase,迭代模型、Prompt、Judge 规则
相关推荐
智能RPA1 小时前
智能体自动化平台与法务合同管理平台对比评测
大数据·人工智能·自动化·agent·rpa
ai小陈1 小时前
GPU算力平台远程训练监控:TensorBoard与SSH隧道配置实战
运维·人工智能·深度学习·ai·ssh·gpu算力
2401_865261631 小时前
亦唐科技:AI赋能制造业,推动智能化升级
人工智能·百度
PHARMAVISION1 小时前
阿里-法拉比哈萨克斯坦国立大学吐尔逊别克·萨比特(Tursynbek Sabit)教授一行到访晶格码(青岛)智能科技有限公司开展产学研交流
人工智能
魔猴疯猿1 小时前
智能体三大范式详解
人工智能·深度学习·神经网络·自然语言处理
AomanHao1 小时前
【阅读笔记】Weighted Guided Image Filtering(WGIF)权重引导滤波
图像处理·人工智能·笔记·计算机视觉·滤波·引导滤波
高升说2 小时前
避障相机与激光雷达的硬件融合:时基、外参、算力与布局的工程实现
人工智能·数码相机
竹之月2 小时前
MCGS昆仑通态触摸屏背景图分辨率太大,告警解决
人工智能·经验分享
kaka.liulin -study3 小时前
Colulu Agents Workflow:业财一体化分析示例
人工智能·数据分析·multi agents