大语言模型评测基准与方法

大语言模型(LLM)的能力在短短几年里飞速跃升,但「模型到底有多强」从来不是一个能凭感觉回答的问题。不同模型在公开演示里都显得聪明,一旦放到同一套任务上比较,差距就会以量化分数的形式暴露出来。评测(evaluation)正是把模糊的「好用与否」转化为可比较、可复现、可归因的信号的学科。本文从评测动机出发,依次讲解学术基准、综合评测框架、开放式众包竞技场与自动评测方法,最后讨论当前评测体系的固有局限。

一、为什么需要评测大模型

评测首先服务于选型:在把某个模型接入产品之前,你需要知道它在你的目标场景上是否达标。其次,评测是研发反馈回路的核心——没有统一的指标,就无法判断一次训练、一次数据清洗、一次对齐微调到底带来了多少真实收益。最后,评测关乎安全与信任:当模型被用于医疗、法律、教育等高风险领域时,必须基于证据而非宣传来建立可信度。

评测的五个核心维度

学术界与工业界的评测通常围绕以下几个维度展开,它们彼此并不完全正交,但足以构成一张能力地图:

  • 知识(Knowledge):模型是否掌握广泛的世界知识与专业事实,例如 MMLU 覆盖的五十多个学科。
  • 推理(Reasoning):模型能否在给定信息上做多步逻辑或数学推导,例如小学数学应用题 GSM8K。
  • 代码(Code):模型能否根据自然语言描述生成功能正确的程序,典型基准是 HumanEval。
  • 指令遵循(Instruction Following):模型能否准确理解并执行用户意图,包括格式、约束与多轮上下文。
  • 安全(Safety):模型是否拒绝有害请求、是否输出带有偏见或毒性的内容、是否在对抗下保持稳健。

需要强调的是,单一分数很容易误导决策。一个在数学基准上领先但在安全性上脆弱的模型,未必适合直接上线。因此现代评测越来越强调多维度、多场景的「整体画像」,而不是一个总分定胜负。

二、学术基准:可控、可复现的「考试」

学术基准的核心优势是可复现与低成本:题目固定、评分客观,任何模型都能在完全相同的条件下被比较。下面介绍三个最具代表性的基准。

MMLU:大规模多任务语言理解

MMLU(Measuring Massive Multitask Language Understanding)由 Hendrycks 等人于 2020 年提出(arXiv:2009.03300)。它包含 57 个学科、约一万五千道四选一选择题,覆盖数学、历史、计算机科学、法律、医学、伦理等领域。评测方式通常是零样本(zero-shot)或少样本(few-shot)下的选择题准确率。

MMLU 的价值在于用「广度」倒逼模型具备通识能力:一个只在单一任务上刷分的模型很难在这五十七个学科上同时取得高分。它也因此成为衡量基础模型知识储备的事实标准之一。使用时需注意,多项选择题天然存在猜对概率(约 25%),且题目语言以英文为主,对中文世界知识的覆盖有限。

GSM8K:小学数学应用题

GSM8K(Grade School Math 8K)由 Cobbe 等人于 2021 年提出(arXiv:2110.14168)。它包含 8500 道高质量、语言多样的小学数学文字题,每道题都配有自然语言解题过程(chain-of-thought)与最终数值答案。这些题目概念上简单,却要求模型进行多步算术与逻辑推理,因此能有效暴露模型「看起来会、算不对」的短板。

GSM8K 推动了两个重要实践:其一,要求模型输出完整推理链再给答案,使错误更易定位;其二,训练「验证器」(verifier)对多个候选解答打分、择优,显著提升大模型在复杂数学任务上的表现。评测指标通常是答案数值的精确匹配准确率。

HumanEval:代码生成的功能正确性

HumanEval 由 Chen 等人于 2021 年提出(arXiv:2107.03374,即 Codex 论文)。它包含 164 道编程题,每道题给出一个函数文档字符串(docstring)作为规格说明,以及一组隐藏的单元测试。模型需要生成完整的函数实现,评分标准是「能否通过全部单元测试」,而不是代码是否看起来像标准答案。

这种「功能正确性」视角比文本相似度(如 BLEU)更贴近真实工程价值。HumanEval 还引入了 pass@k 指标:从模型采样 k 个解,只要至少有一个通过测试即算成功,用以衡量模型在多次尝试下的解题上限。下面的公式给出了 pass@k 的无偏估计:

pass@k = 1 - C(n - c, k) / C(n, k)

其中 n 为采样总数,c 为通过测试的解的数量,C 为组合数。
直观理解:pass@k 衡量的是「在 k 次尝试内至少命中一次」的概率。

三、综合评测框架 HELM

单一基准只能照亮能力地图的一个角落,而 HELM(Holistic Evaluation of Language Models)试图绘制整张地图。HELM 由斯坦福 CRFM 的 Liang 等人于 2022 年提出(arXiv:2211.09110),其核心思想是「场景 × 指标」的矩阵式评测。

HELM 首先把语言模型的潜在用途系统化为一系列场景(scenario),例如问答、摘要、信息抽取等;再把我们希望模型具备的性质系统化为一系列指标(metric),包括准确性(accuracy)、校准度(calibration)、鲁棒性(robustness)、公平性(fairness)、偏见(bias)、毒性(toxicity)与效率(efficiency)。它对每个核心场景尽可能同时报告这七类指标,从而暴露「准确率上升但以公平性下降为代价」这类权衡。

HELM 的另一贡献是标准化:在 HELM 之前,不同模型往往只在各自挑选的场景上被评测,彼此缺乏可比性;HELM 把主流模型放到完全相同的场景与指标下密集评测,使横向比较成为可能。它也因此被视为「活着的基准」,随新场景、新模型持续更新。

四、开放式众包评测:Chatbot Arena 与 Elo 排名

学术基准题目固定,容易被针对性过拟合;而真实用户的提问千变万化、主观性强。Chatbot Arena 由 LMSYS 团队提出,用「众包对战」的方式评测模型在开放场景下的真实表现。该方法在 Zheng 等人 2023 年的工作(arXiv:2306.05685,同时提出 MT-bench 多轮评测集与 Chatbot Arena 平台)中奠基,并在 Chiang 等人 2024 年的平台论文(arXiv:2403.04132)中系统阐述。

其核心机制是成对比较(pairwise comparison):用户提出一个问题,平台把两个匿名模型的回答并排展示,由用户投票选出更好的一个。由于模型名称被隐藏,投票结果能减少「品牌偏好」的干扰。海量人类对战数据被汇总为排行榜,背后通常采用 Bradley-Terry 模型或 Elo 评级来估计每个模型的相对强度。

Elo 的基本更新规则如下:

def update_elo(winner, loser, k=32):
    # 期望胜率,基于双方当前 Elo 分差
    expected_winner = 1 / (1 + 10 ** ((loser - winner) / 400))
    expected_loser = 1 - expected_winner
    # 实际结果:胜者得 1 分,败者得 0 分
    new_winner = winner + k * (1 - expected_winner)
    new_loser = loser + k * (0 - expected_loser)
    return new_winner, new_loser

Chatbot Arena 的优势在于它直接反映「人类偏好」这一最终判据,且题目分布来自真实使用,覆盖面广。它的局限同样明显:投票者群体有偏(多为技术用户)、响应速度等无关因素会影响投票、且匿名对战难以评估事实准确性。它适合衡量「综合好感度」,却不能完全替代面向事实与安全的专项基准。

五、自动评测:LLM-as-Judge

当评测规模扩大到百万级样本、或任务本身开放到没有标准答案时,依赖人类标注既不经济也难扩展。LLM-as-Judge 的思路是用一个强模型(裁判模型)去给另一个模型的输出打分或排序。这一概念由 Zheng 等人于 2023 年系统研究(arXiv:2306.05685)。

其基本流程是把「问题 + 待评回答」连同评分标准一起交给裁判模型,让它输出分数或 pairwise 偏好。该工作验证了强模型裁判(如 GPT-4)与受控人类标注及众包人类偏好的一致性可以超过 80%,达到人类之间的一致性水平,因此被视为一种可扩展且可解释的近似方案。

def llm_judge(prompt, response_a, response_b, judge_model="gpt-4"):
    # 构造成对比较提示,要求裁判只输出偏好结论
    system = "你是一名严谨的评审。请对比下面两个回答,只输出 A、B 或平局。"
    user = (
        f"问题:{prompt}\n"
        f"回答A:{response_a}\n"
        f"回答B:{response_b}\n"
        f"请输出你的偏好:"
    )
    # 实际使用时替换为对应模型 API 调用
    verdict = call_model(system=system, user=user, model=judge_model)
    return verdict

然而 LLM-as-Judge 并非免费午餐,论文系统性地指出了若干偏差:

  • 位置偏差(Position Bias):裁判可能偏好排在前面的回答,与内容质量无关。
  • 冗长偏差(Verbosity Bias):更长的回答更容易被误判为更好。
  • 自我增强偏差(Self-Enhancement Bias):裁判倾向于偏好与自己风格相近的生成内容。
  • 有限的推理能力:面对需要严谨逻辑校验的任务,裁判本身也会犯错。

mitigation 手段包括随机化回答顺序、要求裁判先给理由再下结论、用更强的模型做裁判、以及用人类标注做定期校准。

六、局限与陷阱

即便掌握了上述工具,评测结论仍需谨慎解读。以下是当前评测体系最常被忽视的几类陷阱:

数据污染

许多基准的题目在训练阶段就可能已出现在模型所见过的网页文本中,导致「测试即默写」而非「测试即泛化」。这会让公开榜单分数虚高,也无法反映模型在全新任务上的真实能力。缓解方式包括使用定期更新的、未公开的测试集,以及做 contamination 检测。

基准饱和

当主流模型在某个基准上普遍逼近满分时,该基准便失去区分度,继续刷分边际收益极低。此时需要更难、更贴近真实分布的基准,否则研发精力会被导向「过拟合公开榜单」而非「提升真实能力」。

主观任务难以量化

创意写作、对话自然度、价值观对齐等任务没有唯一正确答案,分数高度依赖评分标准与评分者偏好。纯自动指标(如 Rouge、BLEU)在这些任务上常与人类判断相关性很低,必须结合人类评估或 LLM-as-Judge,并清楚声明其偏差。

语言与文化偏差

绝大多数主流基准以英文、西方文化语境为主,直接平移到中文或多语种场景时未必成立。中文评测需要本土化的题目、单位、常识与价值观设定,否则「英文强、中文弱」或「西方常识强、本地常识弱」的现象会被掩盖。

小结

评测大模型是一项系统工程:学术基准(MMLU、GSM8K、HumanEval)提供可控可复现的客观分数;综合框架 HELM 用「场景 × 指标」矩阵呈现能力全貌;Chatbot Arena 通过众包对战与 Elo 排名逼近真实人类偏好;LLM-as-Judge 则用强模型裁判把评测扩展到开放任务与海量规模。与此同时,数据污染、基准饱和、主观任务量化难、语言文化偏差等陷阱提醒我们:任何一个单一分数都不应被孤立解读,唯有多维度、多方法交叉印证,才能对模型能力形成可靠的判断。

参考与延伸阅读

本文累计阅读