LabHub

博客

LLM、Tool Calling、Embedding 基准完全解析:每个基准到底衡量什么

한국어English日本語中文

LLM、Tool Calling、Embedding 基准完全解析

评估 AI 模型时会出现无数个基准名称。MMLU 85 分、HumanEval 90%、MTEB 排名第一——让我们完整搞懂这些数字究竟意味着什么、在什么情况下应该参考哪个基准。

1. LLM 通用基准

MMLU(Massive Multitask Language Understanding)

MMLU 是 UC Berkeley 于 2020 年发布的基准,用来衡量 LLM 的知识广度以及跨多个领域的理解能力。

测量方法:

示例题目:
领域: 高中化学

示例 1: 原子序数为 6 的元素是?
(A)  (B)  (C)  (D)答案: (C)

...5 个示例之后...

测试: 形成离子键的条件是?
(A) 两个非金属原子之间
(B) 金属原子与非金属原子之间
(C) 两个金属原子之间
(D) 贵金属与非金属原子之间
答案: ?

分数解读:

局限:


HellaSwag

2019 年发布的 HellaSwag 衡量的是"常识推理"与"句子补全"能力。名字是 "Harder Endings, Longer contexts, and Low-shot Activities For Situations With Adversarial Generations" 的缩写。

测量方法:

示例:
情境: "一个男人正在烤热狗。他用夹子把热狗翻面。"

接下来最可能发生的是:
(A) 他把热狗扔进火里。
(B) 他把做好的热狗夹进面包里。
(C) 他从冰箱里拿出食材。
(D) 他翻开食谱书。

答案: (B)

分数解读:

局限:


ARC(AI2 Reasoning Challenge)

由 Allen Institute for AI 制作的基准,通过小学到初中水平的科学题目来衡量推理能力。

两个子集:

Easy Set:

Challenge Set:

Challenge Set 示例:
"植物叶片上的气孔(stomata)主要起什么作用?"

(A) 吸收光进行光合作用
(B) 调节气体交换和蒸腾作用
(C) 把水从根部运输到叶片
(D) 把糖分运送到植物的其他部位

→ 仅靠简单检索并不够,需要理解其功能

分数解读:


TruthfulQA

2021 年发布的 TruthfulQA 衡量模型产生幻觉(Hallucination)和错误信念的倾向。

测量方法:

示例问题:
- "我们只使用大脑的 10% 是真的吗?"
  → 错误认知。正确答案: "不,这是一个迷思。"

- "对角线是直角的矩形是什么?"
  → 陷阱问题。矩形的对角线并非直角。

- "拿破仑真的很矮吗?"
实际上是平均身高(以当时标准而言属正常身高)

分数解读:

重要提示: TruthfulQA 被有意设计成在这项测试中拿高分很难。分数低的模型,说明它更擅长生成人们容易相信的错误信息。


WinoGrande

2019 年发布的 WinoGrande 通过 44,000 道常识推理题来衡量代词指代消解能力。

测量方法:

示例:
"The trophy didn't fit in the brown suitcase because ___ was too big."
(A) it [trophy]
(B) it [suitcase]
→ 需要常识判断出是因为奖杯太大才放不进去

"在图书馆里,Sarah 比 Amy 读了更多的书。 ___ 很喜欢阅读。"
(A) Sarah
(B) Amy
→ 需要凭常识判断出是哪一方喜欢阅读

分数解读:


BIG-Bench(Beyond the Imitation Game Benchmark)

包含 204 项多样化任务的大规模基准,用于评估现有基准难以衡量的能力。

BIG-Bench Hard(BBH):

BBH 示例任务:
- Boolean Expressions: 判断 "(True and False) or (not True and True)"
- Causal Judgment: 判断因果关系方向
- Formal Fallacies: 识别逻辑谬误
- Movie Recommendation: 基于偏好的推荐
- Object Counting: 在文本中数出物体数量
- Temporal Sequences: 按时间顺序排列
- Word Sorting: 按字母/条件排序

Chain-of-Thought 效果:


GPQA(Graduate-Level Google-Proof Q&A)

2023 年发布的 GPQA 要求博士水平的科学专业知识,其设计目标是即使用 Google 搜索也难以轻易解答。

测量方法:

分数解读:

示例(物理学):
"量子计算机中拓扑量子比特(topological qubit)的主要优势是?"

(A) 只能在绝对零度下工作
(B) 拓扑保护使其对环境噪声具有抗性
(C) 门操作速度比传统晶体管更快
(D) 支持无限数量的量子比特

→ 需要对量子纠错有深入理解

LiveBench

为解决数据污染问题,每月新增题目的动态基准。

测量方法:

为何重要:


2. 编程基准

HumanEval

OpenAI 于 2021 年发布的 HumanEval,是衡量 Python 编程能力、使用最广泛的编程基准。

测量方法:

# 示例题目
def has_close_elements(numbers: List[float], threshold: float) -> bool:
    """
    在给定的数字列表中,检查是否存在两个数字之间的差值
    小于 threshold 的一对。

    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)
    False
    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)
    True
    """
    # 模型需要实现这部分

pass@k 指标:

分数解读:

局限:


MBPP(Mostly Basic Python Problems)

Google Research 发布的、由众包收集的 374 道 Python 题目集合。

与 HumanEval 的差异:

# MBPP 示例
"""
Write a function to find the maximum product subarray.
assert max_product_subarray([6, -3, -10, 0, 2]) == 180
assert max_product_subarray([-1, -3, -10, 0, 60]) == 60
"""

SWE-bench

2023 年发布的 SWE-bench 衡量解决真实 GitHub issue 和 bug 的能力。

测量方法:

示例 issue:
仓库: scikit-learn
issue: "KNeighborsClassifier.predict()      sparse matrix 输入时返回错误结果"

模型需要做的事:
1. 理解 issue 内容
2. 找到相关源代码
3. 生成修复补丁
4. 确认通过已有测试

SWE-bench Lite:

分数解读:

为何重要:


LiveCodeBench

为防止数据污染,从 LeetCode、AtCoder、CodeForces 实时新增题目的动态编程基准。

特点:


3. 推理与数学基准

GSM8K(Grade School Math)

OpenAI 于 2021 年发布的、包含 8,500 道小学水平数学题的基准。

特点:

示例题目:
"Janet 养了一只每天下 16 个蛋的鸡。
她每天早上吃掉 3 个,再用 4 个给朋友们做松饼。
剩下的蛋以每个 2 美元的价格在市场上卖掉。
她每天能赚多少钱?"

Chain-of-Thought 推理:
1. 每天的蛋: 162. 吃掉: 33. 用于松饼: 44. 用于销售的蛋: 16 - 3 - 4 = 95. 收入: 9 * 2 = 18 美元

答案: 18 美元

分数解读:


MATH

2021 年发布的、包含 12,500 道竞赛水平数学题的题库。

7 个领域:

5 个难度等级:

Level 5 示例:
"将 x^4 + 4x^3 - 2x^2 - 12x + 9 因式分解"

答案: (x^2 + 2x - 3)^2 = (x+3)^2(x-1)^2
→ 需要高级代数运算能力

分数解读:


AIME(American Invitational Mathematics Examination)

真实的美国数学奥林匹克预选赛题目。

特点:

分数解读:


4. Tool Calling / Function Calling 基准

BFCL(Berkeley Function Calling Leaderboard)

2024 年 UC Berkeley 发布的、目前最全面的函数调用(Function Calling)基准。

2,000 个以上的函数调用场景:

按类型分类:

  1. Simple Function Calling - 单一函数,参数明确
  2. Multiple Functions - 从多个函数中选出合适的一个
  3. Parallel Functions - 同时调用多个函数
  4. Nested Functions - 在函数内部调用其他函数
  5. REST API - 调用真实的 HTTP API 端点

测量项目:

AST 验证方式:

# 正确的函数调用
get_weather(
    location="Seoul, Korea",
    unit="celsius",
    forecast_days=3
)

# 模型生成的调用
get_weather(
    location="Seoul",  # 部分匹配 - 是否允许?
    unit="C",          # 类型/格式错误
    days=3             # 参数名错误!
)

通过解析 AST(抽象语法树)来确认结构是否精确匹配

支持的语言/环境:

分数解读(截至 2024 年):


τ-bench(tau-bench)

衡量真实 Agent 任务完成度的基准,超越单纯的函数调用准确率,衡量整体任务完成率。

测量方法:

示例场景:
"帮我找一张 320 日从纽约飞往巴黎的单程机票,
预订最便宜的那趟,并发送确认邮件。"

所需步骤:
1. search_flights(origin="NYC", destination="Paris", date="2026-03-20")
2. select_flight(flight_id="AF001", criteria="cheapest")
3. book_flight(flight_id="AF001", passenger_info=...)
4. send_confirmation_email(booking_id=..., email=...)

→ 衡量每一步的准确性 + 整体完成情况

ToolBench / ToolEval

2023 年发布的、利用 16,000 个真实 REST API 来评估工具使用能力的基准。

测量方法:

Solvable Pass Rate(SoPR)指标:

测量项目:


AgentBench

2023 年发布的、在 8 种环境中衡量 LLM 自主 Agent 能力的基准。

8 种环境:

  1. OS - 操作系统任务(文件操作、命令执行)
  2. DB - 数据库查询与操作
  3. Knowledge Graph - 知识图谱探索
  4. Digital Card Game - 策略卡牌游戏
  5. Lateral Thinking Puzzles - 创造性解题
  6. House Holding - 虚拟环境中的家务管理
  7. Web Shopping - 网络购物任务
  8. Web Browsing - 网页浏览与信息收集
OS 环境示例:
"在当前目录中找出所有 2023 年创建的 .py 文件,
并移动到 'python_files' 文件夹。"

→ 需要组合使用 find、mkdir、mv 等命令
→ 衡量多步决策与错误恢复能力

分数解读:


5. Embedding 基准

MTEB(Massive Text Embedding Benchmark)

2022 年发布的 MTEB,是评估文本嵌入模型最全面的基准。

56 个数据集,8 种任务类型:

1. Retrieval(检索)

示例: "在 Python 中如何对列表排序"
→ 对相关 Stack Overflow 答案、文档进行排序

2. Classification(分类)

3. Clustering(聚类)

4. Semantic Textual Similarity(语义文本相似度)

示例:
句子 1: "一只狗在公园里跑"
句子 2: "一只狗在户外奔跑"
高相似度(4.0/5.0)

句子 1: "今天天气晴朗"
句子 2: "我喜欢披萨"
低相似度(0.5/5.0)

5. Reranking(重排序)

6. Summarization(摘要)

7. Pair Classification(成对分类)

示例:
- 重复问题检测: "对 Python 列表排序" vs "如何在 Python 中对 list 排序"
重复(True)
- "苹果是水果" vs "我喜欢游泳"
无关(False)

8. Bitext Mining(双语文本挖掘)

示例:
英语: "The weather is nice today"
韩语: "오늘 날씨가 좋다"
→ 检测出平行句对

MTEB 排行榜(HuggingFace):


BEIR(Benchmarking Information Retrieval)

2021 年发布的、在 18 个不同检索领域衡量信息检索性能的基准。

18 个数据集:

nDCG@10 指标:

nDCG@10 =10 个结果的归一化折损累计增益

相关度评分:
- 高度相关: 3- 相关: 2- 略微相关: 1- 无关: 0
排名越靠前,权重越高

零样本性能测量:


6. RAG 与文档解析基准

RAGAS(Retrieval Augmented Generation Assessment)

用于全面衡量 RAG 系统质量的框架。

5 项核心指标:

1. Faithfulness(忠实性)

上下文: "Python 由 Guido van Rossum 于 1991 年创造。"
问题: "Python 是什么时候、由谁创造的?"

Faithfulness 答案:
"Python 由 Guido van Rossum 于 1991 年创造。"

Faithfulness 答案(幻觉):
"Python1989 年由 Guido van Rossum 创造,
 当时是在荷兰阿姆斯特丹……"
→ 添加了上下文中没有的日期和地点

2. Answer Relevance(答案相关性)

3. Context Precision(上下文精确率)

4. Context Recall(上下文召回率)

5. Context Entity Recall(实体召回率)


RULER(Retrieval Under Long-context Evaluation Regime)

衡量 Long-context LLM 能力的基准,超越单纯的 Needle-in-a-Haystack,评估复杂的长文本理解能力。

任务类型:

  1. NIAH(Needle-in-a-Haystack): 在长文档中查找特定信息
  2. Multi-key NIAH: 同时查找多条信息
  3. Multi-value NIAH: 从一个 key 中提取多个 value
  4. Multi-hop Tracing: 沿着信息链条进行多步推理
  5. Aggregation: 从整篇文档中聚合信息
  6. QA: 基于长文本上下文的问答
Multi-hop Tracing 示例(128K token 文档中):
"Alice 的上司是 Bob。Bob 的生日是 315 日。
... (数万 token 的无关内容) ...
Alice 的上司的生日是?"

→ 衡量 AliceBob315 日 的链接能力

DocVQA

衡量针对真实文档图像的视觉问答能力。

测量方法:

示例:
[账单图像]
问题: "税费总额是多少?"
→ 需要在图像中找到税费行并提取金额

[医疗表格]
问题: "患者的出生日期是?"
→ 需要定位特定字段并提取其值

ANLS(Average Normalized Levenshtein Similarity)指标:


FinanceBench

基于金融文档(10-K、年度报告、10-Q 季度报告)的问答基准。

测量方法:

示例:
[Apple Inc. 2023 年度报告]
问题: "2023 年服务部门的营收同比增长率是多少?"

所需能力:
1. 找出 2023 年服务部门营收
2. 找出 2022 年服务部门营收
3. 计算增长率: (2023-2022)/2022 * 100

7. 多模态基准

MMBench / MMMU

MMBench:

MMMU(Massive Multi-discipline Multimodal Understanding):

MMMU 示例:
[化学键结构图像]
问题: "该分子结构中的键角是多少?"
→ 需要理解视觉化学结构

DocBench / OCRBench

OCRBench:

DocBench:


8. 基准选择指南

按实际使用场景整理的参考基准:

使用场景主要基准辅助基准
聊天机器人/问答系统MMLU、TruthfulQAHellaSwag、WinoGrande
代码生成工具HumanEval、SWE-benchMBPP、LiveCodeBench
Agent/自动化BFCL、AgentBenchτ-bench、ToolBench
RAG 系统MTEB Retrieval、BEIRRAGAS、RULER
文档处理DocVQA、OCRBenchFinanceBench
数学/科学MATH、GSM8KGPQA、AIME
Embedding 模型选择MTEB 整体BEIR 特定领域
多模态MMMU、MMBenchDocVQA

9. 基准的局限与注意事项

数据污染(Data Contamination)

问题:

应对:

因提示工程而产生的分数波动

同一模型,不同提示:
GSM8K 基本提示: 70%
GSM8K CoT 提示: 92%

→ 未注明提示方式的分数没有意义

实际可用性与基准分数之间的落差

语言偏见

基准饱和(Saturation)


测验:基准理解度测试

测验 1: MMLU 的 5-shot learning 指的是什么?

正确答案: 在解答测试题之前,先在提示词中一并提供 5 道示例题及其答案的方式。

说明: 在 5-shot learning 中,模型在解题之前,提示词里会包含该领域的 5 道示例题及答案。这能引导模型理解题目格式,并生成特定风格的答案。0-shot 指不提供示例直接提问,1-shot 指提供 1 个示例,few-shot 指提供若干个示例。

测验 2: 为什么 GPT-4 在 TruthfulQA 上的分数比人类低?

正确答案: TruthfulQA 是有意设计成测试人类常见的错误信念和迷思的。AI 模型也会学习到训练数据中的错误信息,因而倾向于生成看似合理的错误信息。

说明: TruthfulQA 的核心,是衡量模型生成"看似合理但错误"答案的能力(幻觉)。人类可以回答"我不知道",但 LLM 常常会自信地生成错误信息。由于该基准被有意设计得较难,比起分数本身,比较不同模型之间的分数差异更有意义。

测验 3: 为什么 HumanEval 的 pass@k 指标中,pass@10 总是高于 pass@1?

正确答案: pass@10 只需要在 10 次尝试中至少成功 1 次,因此其成功概率总是大于或等于只尝试 1 次的 pass@1。

说明: pass@k 是指在 k 次尝试中至少成功 1 次的概率,公式上表现为 1 - (失败概率)^k 的形式。k 越大,成功概率越高,因此 pass@100 >= pass@10 >= pass@1 总是成立。该指标也被用来评估模型在代码生成上的多样性与创造力。

测验 4: BFCL 为什么使用 AST 验证方式?

正确答案: 是为了验证代码的结构性含义,而不是单纯的文本匹配。AST 会将代码解析为语法树,从而能够准确确认函数名、参数名、类型和值。

说明: 单纯的文本比较可能会把 "get_weather(city='Seoul')" 和 "get_weather(city = 'Seoul')" 判定为不同。通过 AST 解析,可以忽略空格、引号风格等表面差异,确认真正的语义一致性。此外,即使参数顺序不同,也能识别为同一个调用,从而实现更准确的评估。

测验 5: MTEB 为什么在 Retrieval 任务中使用 nDCG@10?

正确答案: nDCG@10 在衡量前 10 个检索结果质量的同时,会给排名更靠前的结果赋予更大的权重。由于用户通常只看靠前的结果,这更能反映真实的使用模式。

说明: nDCG(Normalized Discounted Cumulative Gain)会用 log 函数对相关性评分(0~3)进行折损,排名越靠前的结果被赋予越高的重要性。@10 表示只评估前 10 个结果。举例来说,如果相关文档出现在第 1 名,其得分会远高于出现在第 10 名的情况。

测验 6: RAGAS 的 Faithfulness 和 Answer Relevance 有什么区别?

正确答案: Faithfulness 衡量的是答案是否基于检索到的上下文(有没有编造内容),Answer Relevance 衡量的是答案是否真正切中了问题的核心。

说明: 这两个指标捕捉的是不同的失败模式。Faithfulness 低,说明模型编造了上下文中没有的内容(幻觉);Answer Relevance 低,说明虽然忠实于上下文,但回答的内容与问题无关。一个好的 RAG 系统应该在这两项指标上都表现良好。

测验 7: 为什么 SWE-bench 比 HumanEval 更难、也更贴近现实?

正确答案: SWE-bench 使用真实的 GitHub issue 和代码库。与只编写一个函数不同,模型需要理解已有的数千行代码、找出 bug 的根本原因,并以最小的改动进行修复,同时还要通过全部已有测试套件。

说明: HumanEval 是干净的函数实现题,而 SWE-bench 模拟的是真实的软件开发过程。模型需要完成: (1) 理解 issue 描述、(2) 探索相关代码、(3) 找出 bug 原因、(4) 决定修复方式、(5) 生成补丁、(6) 确认通过已有测试,这一整套流程。这与真实开发者的日常工作非常相似。

测验 8: 有哪些方法可以解决数据污染(Data Contamination)问题?

正确答案: 主要解决方案包括动态基准(LiveBench、LiveCodeBench)、非公开测试集、持续新增题目、生成式评估等。

说明: 数据污染是指训练数据中包含测试题目,导致分数高于模型的实际能力。LiveBench 会持续从最新的 arxiv 论文或竞赛编程网站添加新题目,使模型无法提前见过这些题目。此外,也有一些方式会要求模型提交方在提交时声明训练数据中是否包含测试集。

测验 9: 为什么零样本评估在 BEIR 中很重要?

正确答案: 是为了衡量 embedding 模型真正的泛化能力。即使不针对特定领域微调,也能在多个领域中良好运行的模型,才具有更高的实用价值。

说明: 在构建真实的 RAG 系统时,需要处理医疗、法律、金融等多个领域的文档。为每个领域单独训练模型成本过高,因此即使是零样本,也能在多个领域中良好运行的 embedding 模型要实用得多。BEIR 通过衡量在 18 个领域中的零样本性能,来评估这种泛化能力。


结语:明智地使用基准

基准分数只展现了模型能力的一个切面。选择与实际使用场景相符的基准,并综合考虑多个基准而非单一基准,是十分重要的。

核心原则:

  1. 选择与目的相符的基准: 如果目的是代码生成,HumanEval 比 MMLU 更具相关性
  2. 综合考虑多个基准: 在单一基准上排名第一,并不意味着在所有方面都是最好的
  3. 确认提示方式: 确认结果是 CoT 提示还是普通提示得出的
  4. 认识到数据污染的可能性: 结合最新的动态基准一同确认
  5. 亲自测试: 最终还是要用实际使用场景亲自评估

基准是地图,而不是疆域本身。请善用多张好地图,来选出最合适的模型。

评论

还没有评论。

登录后即可发表评论