第十五章:武功评比——基准测试

武功评比验功力,基准测试知高低。

在这里插入图片描述

【本章导读】

模型修炼完成,如何评估其真实能力?基准测试如同武林大会,让各路模型同台竞技,一较高下。本章将介绍主流评估基准和评估方法。


一、评估的重要性

【评估心法】

没有评估,就没有改进的方向。基准测试帮助我们发现模型的优缺点,指导后续优化。

【评估维度】

┌─────────────────────────────────────────────────────────────┐
│                    模型评估维度                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  能力评估                                                    │
│    ├─ 知识能力:世界知识、专业知识                            │
│    ├─ 推理能力:数学、逻辑、因果                              │
│    ├─ 语言能力:理解、生成、翻译                              │
│    └─ 代码能力:编程、调试、解释                              │
│                                                             │
│  安全评估                                                    │
│    ├─ 有害性:是否产生有害内容                                │
│    ├─ 偏见:是否存在歧视性输出                                │
│    └─ 幻觉:是否编造虚假信息                                  │
│                                                             │
│  效率评估                                                    │
│    ├─ 推理速度:延迟、吞吐量                                  │
│    └─ 资源消耗:内存、计算                                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

二、主流基准测试

1. 综合能力基准

【MMLU(Massive Multitask Language Understanding)】

最权威的综合能力测试,涵盖57个学科:

学科类别 示例
STEM 物理、化学、生物、计算机
人文 历史、哲学、文学
社会科学 经济、政治、心理学
其他 法律、医学、商业

测试方式: 多项选择题,4选1

问题: 以下哪个是Python中的不可变数据类型?
A. list
B. dict
C. tuple
D. set

答案: C

【主流模型MMLU成绩】

模型 MMLU分数
GPT-3.5 70.0%
GPT-4 86.4%
Claude 3 Opus 86.8%
LLaMA 3 70B 82.0%
DeepSeek-V3 88.5%

2. 推理能力基准

【GSM8K(小学数学应用题)】

测试数学推理能力:

问题: 小明有5个苹果,给了小红2个,又买了3个,现在有几个?

模型回答:
小明最初有5个苹果。
给了小红2个,剩下 5 - 2 = 3个。
又买了3个,现在有 3 + 3 = 6个。
答案是6。

【MATH(高中数学竞赛)】

更高级的数学推理测试。

【主流模型推理成绩】

模型 GSM8K MATH
GPT-3.5 57.1% 23.5%
GPT-4 92.0% 52.9%
Claude 3 Opus 95.0% 60.1%
LLaMA 3 70B 93.0% 50.0%
DeepSeek-V3 89.3% 75.9%

3. 代码能力基准

【HumanEval】

Python编程能力测试,164道编程题:

# 问题: 实现一个函数,判断字符串是否是回文

def is_palindrome(s: str) -> bool:
    """判断字符串是否是回文"""
    # 模型生成代码
    return s == s[::-1]

【MBPP(Mostly Basic Python Problems)】

基础Python编程问题。

【主流模型代码成绩】

模型 HumanEval MBPP
GPT-3.5 48.1% 52.2%
GPT-4 86.6% 80.2%
Claude 3 Opus 84.9% -
DeepSeek-V3 82.6% 75.4%

4. 中文能力基准

【C-Eval】

中文综合能力测试,52个学科:

类别 示例
理工科 数学、物理、化学
人文社科 历史、政治、经济
职业资格 法律、医学、会计

【CMMLU】

另一个中文综合能力基准。

【主流模型中文成绩】

模型 C-Eval CMMLU
GPT-4 68.7% 70.3%
Claude 3 67.6% 68.8%
Qwen-72B 83.3% 83.6%
DeepSeek-V3 90.1% 88.0%

5. 长文本能力基准

【LongBench】

测试长文本理解能力:

任务 描述
单文档QA 阅读长文档回答问题
多文档QA 多篇文档综合回答
摘要 长文本摘要
代码理解 长代码理解

【Needle in a Haystack】

测试模型在长文本中找到特定信息的能力:

在100K token的文本中,隐藏一个特定信息(如"密码是12345"),
测试模型能否准确找到并回答。

三、评估方法

1. 自动评估

使用脚本自动评分:

def evaluate_model(model, benchmark):
    """自动评估模型"""
    results = []
    for question in benchmark:
        # 生成答案
        answer = model.generate(question.prompt)
        # 计算分数
        score = compute_score(answer, question.answer)
        results.append(score)
    return sum(results) / len(results)

2. 人工评估

人类专家评估模型输出质量:

维度 评分标准
准确性 信息是否正确
完整性 回答是否完整
相关性 是否回答了问题
流畅性 语言是否通顺

3. LLM-as-Judge

用强模型评估其他模型:

def llm_evaluate(judge_model, prompt, response):
    """用LLM作为评判者"""
    evaluation_prompt = f"""
    请评估以下回答的质量(1-10分):
    
    问题: {prompt}
    回答: {response}
    
    评分标准:
    - 准确性
    - 完整性
    - 相关性
    - 流畅性
    
    请给出总分和理由。
    """
    return judge_model.generate(evaluation_prompt)

四、评估注意事项

【评估陷阱】

陷阱 描述 解决方案
数据泄露 测试数据在训练中出现过 使用新数据、闭源测试集
过拟合 模型针对测试集优化 多样化评估、真实场景测试
提示敏感 不同提示效果差异大 标准化提示、多次测试
随机性 模型输出不稳定 多次采样、取平均

【评估最佳实践】

  1. 多维度评估:不只看单一指标
  2. 真实场景:在实际应用中测试
  3. 对比测试:与基线模型对比
  4. 持续评估:定期重新评估

五、评估工具

【常用评估框架】

工具 用途
lm-evaluation-harness 综合评估框架
HELM 斯坦福评估基准
Open LLM Leaderboard 开源模型排行榜
AlpacaEval 指令遵循评估

【使用示例】

# 使用lm-evaluation-harness评估
lm_eval --model hf --model_args pretrained=meta-llama/Llama-2-7b \
    --tasks mmlu,gsm8k,humaneval \
    --batch_size 8

六、本章心法总结

【口诀】

基准测试验功力,综合推理代码齐。
人工自动相结合,多维评估知高低。

【要点回顾】

要点 说明
评估维度 能力、安全、效率
综合基准 MMLU、C-Eval
推理基准 GSM8K、MATH
代码基准 HumanEval、MBPP
评估方法 自动、人工、LLM-as-Judge

【下一章预告】

下一章,我们将学习模型发布,了解如何将训练好的模型推向市场,服务用户。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐