# LLM · 评价指标


## 评价指标

### 常用

- 分类、选择题：Accuracy
- 短答案问答：EM / F1
- 摘要：ROUGE &#43; Faithfulness
- 翻译：BLEU / COMET
- RAG：Recall@k &#43; Faithfulness &#43; Answer Relevancy
- 代码：pass@k / Test Pass Rate
- 对话模型：Win Rate / Human Preference
- 安全模型：Refusal Accuracy / Jailbreak ASR / Toxicity
- 部署系统：Latency / Throughput / Cost

### 通用正确性指标

| 指标            | 含义                             | 适用场景                             |
| --------------- | -------------------------------- | ------------------------------------ |
| Accuracy        | 准确率，答对样本数 / 总样本数    | 选择题、分类、判断题、数学题最终答案 |
| Exact Match, EM | 模型答案和标准答案完全一致才算对 | 开放域问答、抽取式问答、短答案任务   |
| Precision       | 模型给出的内容中，有多少是正确的 | 信息抽取、检索、实体识别             |
| Recall          | 标准答案中，有多少被模型覆盖到了 | 检索、召回、长答案覆盖度             |
| F1              | Precision 和 Recall 的调和平均   | 问答、信息抽取、开放域 QA            |

&gt; F1 = 2 * Precision * Recall / (Precision &#43; Recall)
&gt;
&gt; 在不同问答数据集上，用 F1 衡量模型答案和标准答案的词级/token 级重合程度。

### 语言建模指标

| 指标            | 含义                                       | 适用场景                           |
| --------------- | ------------------------------------------ | ---------------------------------- |
| Loss            | 模型预测下一个 token 的平均损失            | 训练过程、预训练模型评估           |
| Perplexity, PPL | 困惑度，衡量模型对文本的预测能力，越低越好 | 语言模型预训练、续写能力、文本建模 |

### 问答任务指标

| 指标               | 含义                          | 适用场景                          |
| ------------------ | ----------------------------- | --------------------------------- |
| EM                 | 答案完全匹配                  | 短答案 QA，比如 Natural Questions |
| Token F1           | 答案和标准答案的词级重合程度  | 开放域 QA、阅读理解               |
| Answer Accuracy    | 最终答案是否正确              | 数学题、知识问答                  |
| Supporting Fact F1 | 支撑证据是否找对              | HotpotQA、多跳问答                |
| Hit@k              | 前 k 个候选里是否包含正确答案 | 检索式问答、RAG                   |

常见数据集：

- NQ：Natural Questions，开放域自然问题
- TriviaQA / TQA：百科类事实问答
- HotpotQA / HQA：多跳推理问答
- WebQSP：知识库问答

如果是普通 QA，看 EM/F1；如果是多跳 QA，还要看证据是否正确。

### 文本生成指标

| 指标      | 含义                                        | 适用场景                       |
| --------- | ------------------------------------------- | ------------------------------ |
| BLEU      | n-gram 精确率，生成文本和参考文本的短语重合 | 机器翻译                       |
| ROUGE     | n-gram 召回率，生成文本覆盖参考文本多少内容 | 摘要任务                       |
| METEOR    | 考虑词形变化、同义词，比 BLEU 更柔和        | 翻译、摘要                     |
| BERTScore | 用语义 embedding 比较生成文本和参考文本     | 摘要、开放式生成               |
| chrF      | 基于字符 n-gram 的相似度                    | 翻译，尤其适合形态变化丰富语言 |

这些指标大多依赖“参考答案”。问题是：LLM 的好回答可能有很多种表达方式，所以纯文本重合指标有局限。

所以开放式生成现在经常结合人工评价或 LLM-as-Judge。

### 摘要任务指标

| 指标                | 含义             | 适用场景             |
| ------------------- | ---------------- | -------------------- |
| ROUGE-1             | 单词级重合       | 摘要内容覆盖         |
| ROUGE-2             | 双词短语重合     | 摘要流畅度和局部表达 |
| ROUGE-L             | 最长公共子序列   | 摘要整体结构相似度   |
| Faithfulness        | 摘要是否忠实原文 | 新闻摘要、论文摘要   |
| Factual Consistency | 是否存在事实错误 | 高可信摘要场景       |

摘要不能只看 ROUGE。

因为 ROUGE 高的摘要可能只是复制原文，但不一定简洁；

ROUGE 低的摘要也可能语义很好。

对于 LLM 摘要，更重要的是：

- 是否覆盖关键信息
- 是否压缩得当
- 是否没有幻觉
- 是否没有改变原文事实

### 机器翻译指标

| 指标             | 含义                           | 适用场景       |
| ---------------- | ------------------------------ | -------------- |
| BLEU             | 和参考译文的 n-gram 重合       | 传统机器翻译   |
| COMET            | 基于神经网络的翻译质量评价     | 现代翻译系统   |
| chrF             | 字符级相似度                   | 多语言翻译     |
| Human Evaluation | 人工判断准确性、流畅性、忠实度 | 高质量翻译评估 |

翻译任务里 BLEU 很经典，但现在 COMET、人工评价更能反映真实质量。

### 检索与 RAG 指标

RAG 系统通常分两部分评估：检索质量和生成质量。

* 检索部分

  | 指标        | 含义                            | 适用场景           |
  | ----------- | ------------------------------- | ------------------ |
  | Recall@k    | 前 k 个检索结果是否覆盖相关文档 | RAG 检索器         |
  | Precision@k | 前 k 个结果中有多少是真相关     | 检索质量           |
  | MRR         | 正确结果排得越靠前分越高        | 问答检索、搜索     |
  | nDCG        | 考虑排序位置和相关性等级        | 搜索引擎、推荐系统 |
  | Hit@k       | 前 k 个结果中是否命中正确文档   | 粗略检索评估       |

* 生成部分

  | 指标              | 含义                       | 适用场景          |
  | ----------------- | -------------------------- | ----------------- |
  | Faithfulness      | 回答是否被上下文支持       | RAG 防幻觉        |
  | Answer Relevancy  | 回答是否针对问题           | RAG QA            |
  | Context Precision | 检索上下文里有多少有用内容 | RAG 检索质量      |
  | Context Recall    | 必要证据是否都被检索到     | 多文档问答        |
  | Citation Accuracy | 引用是否支持对应说法       | 带引用的 RAG 系统 |

### 推理与数学指标

| 指标                   | 含义                       | 适用场景                 |
| ---------------------- | -------------------------- | ------------------------ |
| Final Answer Accuracy  | 最终答案是否正确           | GSM8K、MATH、AIME 类任务 |
| Step Accuracy          | 推理步骤是否正确           | 数学推导、逻辑题         |
| Pass Rate              | 一组题目中答对比例         | Benchmark 测试           |
| Consistency            | 多次采样答案是否一致       | 推理稳定性               |
| Majority Vote Accuracy | 多次生成后投票答案是否正确 | self-consistency 推理    |

数学和推理任务不能只看表达流畅度，重点是最终答案和推理链是否可靠。

### 代码生成指标

| 指标             | 含义                                | 适用场景           |
| ---------------- | ----------------------------------- | ------------------ |
| pass@1           | 生成一次代码，能否通过测试          | HumanEval、MBPP    |
| pass@k           | 生成 k 个候选，只要一个通过就算成功 | 代码模型评估       |
| Compilation Rate | 是否能编译/运行                     | 编程语言任务       |
| Test Pass Rate   | 单元测试通过比例                    | 真实代码任务       |
| CodeBLEU         | 结合代码结构和文本相似度            | 代码翻译、代码补全 |

代码任务最重要的通常是能不能运行、能不能过测试

### 对话与人类偏好指标

| 指标                  | 含义                               | 适用场景             |
| --------------------- | ---------------------------------- | -------------------- |
| Win Rate              | A/B 两个模型，人类或评审更喜欢哪个 | 聊天模型、助手模型   |
| Elo Rating            | 根据对战胜负计算模型等级           | Chatbot Arena 类评测 |
| Helpfulness           | 回答是否有帮助                     | 通用助手             |
| Harmlessness          | 是否安全、无害                     | 对齐评估             |
| Honesty               | 不知道时是否承认不知道             | 可信助手             |
| Instruction Following | 是否严格遵循指令                   | 通用 LLM 评估        |

开放式对话很难用单一标准答案评价，所以经常用人类偏好或 LLM-as-Judge。

不过 LLM-as-Judge 也有偏差，比如偏好长回答、格式漂亮的回答，或者偏向某些模型风格。

### 安全与对齐指标

| 指标               | 含义                                | 适用场景            |
| ------------------ | ----------------------------------- | ------------------- |
| Toxicity Rate      | 是否生成攻击性、有害内容            | 安全评估            |
| Bias Score         | 是否存在性别、种族、地域等偏见      | 公平性测试          |
| Refusal Accuracy   | 对有害请求是否拒答                  | 安全对齐            |
| Over-refusal Rate  | 对正常请求是否误拒                  | 可用性评估          |
| Jailbreak ASR      | Attack Success Rate，越狱攻击成功率 | 红队测试            |
| Hallucination Rate | 幻觉比例                            | 知识问答、RAG、摘要 |

安全评估要同时看两个方向：

- 该拒绝时能不能拒绝
- 不该拒绝时会不会乱拒绝

一个模型如果什么都拒绝，安全分可能高，但可用性很差。

### 事实性与幻觉指标

| 指标               | 含义                                  | 适用场景           |
| ------------------ | ------------------------------------- | ------------------ |
| Factual Accuracy   | 事实是否正确                          | 知识问答、报告生成 |
| Hallucination Rate | 生成内容中 unsupported 或错误内容比例 | 长文本生成、RAG    |
| Attribution Score  | 回答是否有可靠来源支撑                | 带引用问答         |
| Faithfulness       | 输出是否忠于输入材料                  | 摘要、文档问答     |
| Claim Verification | 将回答拆成声明逐条验证                | 高可信生成         |

对于论文总结、医疗、法律、金融、RAG 系统，事实性比语言流畅度更重要。

### 工具调用 / Agent 指标

| 指标               | 含义               | 适用场景         |
| ------------------ | ------------------ | ---------------- |
| Tool Call Accuracy | 是否选择了正确工具 | Agent、函数调用  |
| Argument Accuracy  | 工具参数是否正确   | function calling |
| Task Success Rate  | 最终任务是否完成   | Agent 系统       |
| Step Efficiency    | 完成任务用了多少步 | 多步工具调用     |
| Recovery Rate      | 出错后能否自我修正 | 自动化 Agent     |

让模型查天气、写文件、调用数据库、执行代码时，评价重点不只是回答文本，而是任务有没有真的完成。

### 校准与不确定性指标

| 指标            | 含义                                 | 适用场景         |
| --------------- | ------------------------------------ | ---------------- |
| Calibration     | 模型自信程度是否和正确率匹配         | 高风险问答       |
| ECE             | Expected Calibration Error，校准误差 | 概率预测         |
| Brier Score     | 预测概率和真实结果的差距             | 分类、风险预测   |
| Abstention Rate | 不确定时选择不回答的比例             | 医疗、法律、金融 |

理想模型应该是：知道自己什么时候不知道。

### 效率指标

| 指标                  | 含义                       | 适用场景   |
| --------------------- | -------------------------- | ---------- |
| Latency               | 响应延迟                   | 在线应用   |
| Throughput            | 单位时间处理多少请求/token | 服务部署   |
| Tokens/s              | 每秒生成 token 数          | 推理速度   |
| Cost per 1K/1M tokens | 调用成本                   | 商业部署   |
| Memory Usage          | 显存/内存占用              | 本地部署   |
| Context Length        | 可处理上下文长度           | 长文档任务 |


---

> Author: [Ting](Tin10g.github.io)  
> URL: http://localhost:7828/posts/llm-%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87/  

