
1. 评估的基石与潜藏的裂缝为什么我们需要审视机器学习评估在机器学习的竞技场里基准测试和模型比较是决定胜负的终极裁判。无论是学术论文里宣称的“新SOTA”还是科技新闻头条中“超越人类”的模型发布其背后都依赖于一套看似客观的评估体系在标准数据集上跑分用统一的指标排名。这套体系的原理很简单——通过控制变量让不同模型在同一个“考场”里公平竞争从而衡量其真实能力。这不仅是学术研究推进的燃料更是工业界技术选型、资源投入和产品决策的核心依据。然而作为一名在算法研发一线摸爬滚打了十多年的从业者我亲眼目睹了这个“考场”的规则正在被各种或明或暗的手段所侵蚀。评估这个本应最严谨的环节有时却成了最容易被“操作”的部分。我们常常看到这样的场景一个模型在A团队的测试中表现卓越但在B团队复现时却黯然失色或者一篇论文通过精妙的“技巧”让自家模型在特定榜单上登顶但其宣称的“通用能力”在真实场景中却漏洞百出。这背后往往不是模型能力的真实差距而是评估实践本身出了问题。这些“可疑实践”并非总是出于恶意。很多时候它们源于巨大的发表压力、激烈的商业竞争或者仅仅是研究流程中的疏忽与惯性。但无论动机如何其结果都是一样的它模糊了技术进步的真相误导了社区的研究方向浪费了宝贵的计算资源并最终损害了整个领域的可信度。本文的目的不是进行道德审判而是像一位经验丰富的工程师检修精密仪器一样拆解机器学习评估中那些可能“失准”的环节。我们将深入探讨从数据准备、基准选择、提示工程到结果报告的整个链条看看公平性是如何在不知不觉中流失的以及我们作为从业者该如何构建更坚实、更透明的评估防线。2. 数据与分割的“魔术”训练与测试集构建中的陷阱评估的起点是数据。一个模型性能的好坏首先取决于它是在什么样的数据上被衡量。这里的第一步——将数据分割为训练集和测试集——看似基础实则暗藏玄机。一个不恰当的分割足以让任何严谨的评估结论失去根基。2.1 数据泄露当测试集不再“陌生”最经典也最危险的问题之一是数据泄露。理想情况下测试集对于训练过程应该是完全未知的用以模拟模型面对全新数据时的表现。但泄露发生时模型在训练阶段以某种形式“见过”或“学过”测试数据的信息导致测试性能虚高严重高估其泛化能力。一种隐蔽的泄露形式是基于结构的泄露。这在分子性质预测、图像分类等任务中尤为常见。例如在预测药物分子的活性时如果简单地随机分割分子可能会使结构高度相似Tanimoto相似度很高的分子分别进入训练集和测试集。模型在训练时学到了某个分子支架的特征在测试时遇到其“近亲”自然能轻松预测但这并不能证明模型理解了真正的构效关系。这好比在葡萄园产量预测中将相邻的、土壤、品种、管理方式都几乎相同的两块地随机分入训练和测试集模型学到的可能只是这片特定小区域的局部特征而非普适的产量预测规律。另一种更主动的泄露是脏意译。特别是在大语言模型的指令微调阶段研究者可能会将测试集中的问题通过改写、复述、转述等方式主动加入到训练数据中。虽然字面上不同但语义完全一致。这相当于在考试前老师把考题换了个说法透露给了学生。模型在测试时遇到的不过是“换汤不换药”的老问题其“高分”反映的是记忆能力而非理解和推理能力。随着数据集不断扩展这种语义重复的样本被无意纳入训练集的可能性也在增加使得评估结果的解读变得更加复杂。注意防范数据泄露需要从数据集的源头设计入手。对于可能存在的结构相似性如图像、分子、地理数据应采用基于聚类的分层采样或基于图的划分方法确保相似样本被归入同一集合训练或测试而不是随机分散。对于文本数据应使用去重工具如MinHashLSH在语义层面进行严格去重。2.2 分割黑客寻找“简单模式”的测试集即使没有数据泄露分割过程本身也可能被“黑客”行为操纵。这被称为训练/测试分割黑客。具体做法是不采用一次性的随机分割而是反复多次随机分割数据集并观察每次分割后模型在测试集上的性能最终选择那个让模型表现“最好”的分割方案作为报告结果。这种做法为什么有问题因为任何数据集都包含一定的内在模式或难度分布。通过多次随机尝试你大概率能找到这样一个测试集它恰好包含了更多模型擅长处理的简单样本或者其分布与训练集高度重合。这样得到的“优异”性能并不能代表模型在从总体数据分布中随机抽取的任意测试集上的真实水平。现代许多权威基准如GLUE、SuperGLUE、MMLU会由创建者预先固定好训练/测试分割正是为了封杀这个“自由度”迫使所有研究者站在同一起跑线上。然而当研究者使用自建的新数据集时这个自由度又回来了。更糟糕的是这种黑客行为可以用来暗中削弱基线模型。例如在对比自己的新方法和竞争对手的旧方法时为自己的方法使用一个通过“分割黑客”找到的、相对简单的测试集分割方案而为基线方法使用另一个更困难的分割方案或者直接使用对方论文中报告的、在其特定分割下的结果。这种不对等的比较会人为地放大新方法的优势。实操心得在使用自建数据集时最稳妥的做法是预先定义并公开你的分割策略。例如可以按时间划分用旧数据训练新数据测试按主题/类别分层采样或使用社区认可的工具如scikit-learn的StratifiedShuffleSplit并固定随机种子。在论文中必须明确说明分割依据并将分割代码开源。比较基线时应确保所有方法都在完全相同的数据分割上进行评估。3. 基准与比较的“艺术”如何让模型看起来更强大选定了数据接下来就是选择“考题”——基准测试以及决定“比赛规则”——如何运行和比较模型。这个环节充满了主观选择和优化空间也因此成为可疑实践的重灾区。3.1 基准黑客只考我会的题基准黑客指的是通过精心挑选或设计基准测试来使自己的模型显得更出色。最直接的形式是“选择性报告”在多个基准上测试后只挑那些自己模型表现优于竞争对手的基准列入主报告或摘要而对表现不佳的基准避而不谈。另一种形式是使用过时或过于简单的基准。如果一个任务已经被充分研究现有模型的性能已经接近天花板例如准确率超过99%那么在这个基准上提升0.1%的意义非常有限但宣称“刷新SOTA”却依然能吸引眼球。幸运的是在LLM评估领域社区已经逐渐收敛到一组公认的、难度较高的核心基准如MMLU大规模多任务语言理解、GSM8K小学数学应用题、MATH数学竞赛题、GPQA专业领域QA和HumanEval代码生成。当一个新模型发布时如果它刻意回避报告其中某个关键基准的分数就值得警惕。更隐蔽的一种做法是整体回避某些难题。例如抽象与推理语料库ARC被认为是对当前LLM推理能力的极大挑战但许多主流模型发布时都选择不报告其ARC成绩。这虽然不影响模型之间的相对排名但却将公众注意力从方法的根本性弱点上引开也是一种形式的基准黑客。最有害的情况是当一个相对简单的任务因为历史原因或营销效应被错误地“物化”为衡量某种通用能力的标准。例如HellaSwag基准原本设计用于测试特定叙事场景下的常识推理且数据中存在一定的标签噪声。但它经常被笼统地引用为“常识推理能力”的测试这种过度概括模糊了基准的真实含义和局限性。3.2 子集黑客在难题中挑选软柿子捏当基准整体难度很高时另一种策略是子集黑客。由于全面评估大型模型成本高昂计算资源和时间一些研究团队会选择使用基准的一个子集进行测试。子集的选择就成为了一个新的“自由度”。黑客行为可以表现为反复生成子集不断随机采样生成测试子集直到找到一个你的模型恰好表现较好的子集可能该子集包含的题目类型更简单。难度分层采样如果基准标注了题目难度如MATH在构建子集时可以有倾向性地从较简单的难度层级中抽取更多题目。基于结果的筛选先在完整测试集上用高采样次数如k50运行模型然后只选取那些你的模型能够稳定答对的“难题”来构建一个“代表性”子集。这实际上是用模型的表现来反向定义测试集完全违背了评估的初衷。提示应对子集黑客最透明的做法是由基准的创建者提供官方推荐的、经过难度和主题平衡的验证子集或“开发集”。如果必须自行划分子集应预先确定采样策略如分层随机采样并固定随机种子且在论文中明确报告子集的构成细节如题目ID列表和采样随机种子。3.3 工具链黑客当评估代码本身成为变量我们通常默认同一个基准的分数是可比的。但事实并非如此。评估一个模型在某个基准上的表现需要依赖具体的评估工具链或称“harness”。这个工具链负责加载数据、格式化输入、调用模型、解析输出并计算指标。工具链实现的细微差异可能导致同一模型在同一基准上得到截然不同的分数。一个著名的案例是Falcon-40B发布后在OpenLLM排行榜上Llama-65B的MMLU得分远低于其原论文报告值甚至低于Falcon-40B。调查发现OpenLLM排行榜使用了EleutherAI的LM评估工具链该工具链在提示词格式上与MMLU原论文使用的工具链以及HELM评估框架存在细微差别比如是否在问题前添加“Question:”前缀选项的格式化方式等。正是这些看似微不足道的格式差异导致了巨大的分数偏差。这催生了工具链黑客有意或无意地选择或修改评估代码使其更有利于自己的模型。更恶劣的做法是遍历所有可用的工具链实现然后为每个模型选择报告对其最有利的那个工具链的分数。与此相关的是指标黑客事后选择对自家模型最有利的评估指标。例如在分类任务中当准确率不占优时转而报告F1分数或AUC-ROC在生成任务中选择特定的BLEU或ROUGE变体。公平的做法是要么报告在多个标准指标下的综合表现要么预先约定并始终坚持使用社区在该任务上最公认的单一指标。实操心得在进行模型比较时必须使用完全相同的评估代码和配置。最佳实践是直接复现论文中提供的官方评估脚本。如果官方脚本不可用则应详细记录并开源自己所使用的工具链的所有细节包括提示词模板、代码库版本、评分函数等。在阅读论文时对于未提供完整评估代码或细节模糊的结果应保持审慎态度。4. 运行时“微操”提示工程与超参数调优的公平性困境对于大语言模型而言评估并非一个简单的“输入-输出”过程。在模型权重之外还有一整套运行时参数在深刻影响着输出结果这主要包括提示词工程和采样超参数。这个领域是当前模型比较中公平性争议最集中的地方。4.1 提示削弱不公平的起跑线提示削弱指的是在比较不同模型时对基线模型使用未充分优化或较弱的提示策略而对自己的模型使用精心优化的强力提示。一个被广泛讨论的案例来自Gemini模型的发布报告。在GSM8K数学推理基准上Gemini报告了其使用多数投票从k32个采样中选取最频繁的答案的得分。然而作为对比的GPT-4 Turbo使用的却是5样本思维链提示且未采用多数投票。众所周知对于数学推理任务思维链和多数投票都是能显著提升性能的技术。将使用了高级集成技术的模型得分与只使用了基础提示技术的基线模型得分进行比较显然是不公平的。这相当于让一个使用了复合弓的选手去和一个只用手掷的选手比赛射箭。这种不公平有时是无意的。不同模型对提示的敏感度不同为某个模型通常是研究者最熟悉的自家模型精心设计的“最优提示”套用到另一个模型上可能效果很差。因此机械地要求“使用完全相同的提示”有时也会造成另一种不公即未能让基线模型发挥其最佳水平。但这不能成为使用明显不对等策略的借口。4.2 提示黑客与运行时黑客事后选择最优配置与削弱基线相对的是提示黑客和运行时黑客。这指的是在完成所有模型的测试后回过头来为每个模型单独寻找其最佳的提示词和超参数组合然后选择性地报告这些“最佳”结果。运行时参数包括温度、top-p、top-k、最大生成长度等。例如研究者可以为自己提出的模型尝试多种不同的温度设置如0.2, 0.5, 0.8, 1.0然后报告其中得分最高的那个温度下的结果而对于基线模型则可能只使用一个默认值如温度1.0或文献中报告的值。由于这些尝试是在看到测试结果后进行的这本质上是一种事后假设会严重夸大模型的真实性能。更复杂的情况涉及思维链、自我一致性、自洽性校验等高级推理策略。这些策略本身包含可调参数如推理步骤数、投票样本数k。允许每个模型使用其“专属”的最佳策略组合给了研究者巨大的操作空间使其可以“优化”出对自家模型最有利的配置同时声称这是“公平优化”。4.3 寻找平衡如何制定公平的运行时规则那么如何制定公平的运行时规则呢这里没有完美答案但有一些渐进的准则同策略比较最严格也最清晰的原则是在比较A和B时双方使用完全相同的提示模板和运行时超参数。这适用于比较同一家族模型的不同规模版本或架构高度相似的模型。各自优化但透明报告承认不同模型有其最优提示允许各自优化但必须满足以下条件优化过程隔离用于寻找最佳提示的“开发集”必须与最终的测试集完全独立通常需要使用一个额外的验证集。计算预算对等为每个模型优化提示所投入的计算资源如尝试的提示数量、搜索的步数应对等。完整披露必须在论文中或附录里详细报告每个模型所使用的最终提示词、所有超参数值以及优化过程的细节如搜索空间、验证集性能。报告多种设置的结果一个非常有力的做法是在主要结果表格中同时报告模型在多种标准设置下的性能。例如既报告“零样本”得分也报告“5样本思维链”得分甚至报告“思维链多数投票(k5, k32)”的得分。这为读者提供了全面的视角也封堵了选择性报告的空间。注意对于业界标杆式的模型发布社区期待的是最高水平的性能展示因此使用最先进的提示工程技术是合理的。但关键在于可比性。如果Gemini使用了“不确定性路由的思维链”这种复杂技术那么公平的比较对象应该是同样应用了最先进提示工程的GPT-4版本而不是一个基础版本。任何在提示或运行时策略上的不对等都必须在报告中以醒目的方式说明并讨论其对结果的影响。5. 基线模型的“瘦身”与“化妆”在比较研究中基线模型的选择和配置是决定结论可信度的另一块基石。不恰当的基线处理可以轻易地让新方法“脱颖而出”。5.1 基线削弱让对手变弱基线削弱指的是有意或无意地使用一个配置不全、未充分调优或过时的基线模型进行比较。有意削弱选择明显更弱或更旧的模型作为基线。例如在比较新的对话模型时选择GPT-3.5而不是性能更强的GPT-4作为基线或者在比较推荐算法时选择一个多年前的经典算法而不考虑其现代的高效实现。无意削弱更常见也更隐蔽的情况是对基线模型的超参数调优不足。研究者对自己的新方法会投入大量精力进行网格搜索或贝叶斯优化但对基线方法可能只是简单地复用原论文报告的配置甚至使用默认参数。然而原论文的配置可能并非最优且在不同数据集、不同任务上需要重新调优。许多重现性研究发现当基线方法得到与新颖方法同等程度的调优后其性能差距会大幅缩小甚至消失。一个关键原则是固定成本比较。比较应在公平的计算预算、参数规模或训练时间下进行。例如Kaddour等人在2024年的工作中指出当在固定的总计算预算下评估训练算法时许多声称超越基线的新方法并未显示出显著优势这表明原论文中的基线可能未被充分优化。5.2 模型阶段不对等用“完全体”对比“基础形态”在大语言模型领域一个特别狡猾的削弱策略是利用模型的不同训练阶段。一个现代LLM的诞生通常经历预训练 - 指令微调 - 基于人类反馈的强化学习RLHF或直接偏好优化DPO。每个阶段都会显著改变模型的行为和能力。不公平的比较包括将自家经过指令微调的模型与竞争对手的纯预训练基座模型进行比较。将自家经过RLHF/DPO对齐的模型与竞争对手仅经过指令微调的模型进行比较。这就像让一个完成了全部军事训练的士兵去和一个刚结束新兵营的士兵格斗然后宣称自己的训练体系更优越。正确的比较应在同一阶段进行基座对基座指令微调对指令微调RLHF对RLHF。5.3 人类基线的陷阱在一些任务中人类表现被用作基线或天花板。然而人类基线同样可以被削弱。通过众包平台如Amazon Mechanical Turk收集人类表现数据时参与者的专业水平、任务说明的清晰度、报酬激励的强度都会极大影响结果。近年来众包数据质量危机和机器人账号泛滥的问题使得“人类表现”这一指标本身变得极不可靠。超过半数的响应可能来自机器人这使得超越“人类基线”的宣称变得毫无意义。实操心得在进行模型比较时务必问自己以下几个问题我选择的基线是否是当前该任务上公认的、最强的可比方法我为基线模型的调优投入了与我的新方法同等的努力吗包括超参数搜索范围、搜索次数、计算资源我比较的模型是否处于相同的训练阶段预训练/微调/对齐我是否报告了基线模型在与我方法完全相同的实验设置数据、评估工具链、提示下的结果而不是直接引用其论文中的数字 坚持“复现并重新评估”基线是确保比较公平的黄金标准尽管这需要额外的成本。6. 报告中的“魔术笔”从选择性呈现到公然捏造即使实验过程完全规范最后一步——结果报告——依然可以将真相扭曲。不诚实或具有误导性的报告使得外部研究者无法判断宣称的进步是真实的还是人为制造的。6.1 樱桃采摘只展示最好的那颗樱桃采摘是最常见的报告问题之一。它指的是进行多次实验或测试但只报告结果最好的那一次而对其他结果保持沉默。一种更隐蔽的形式是将最佳结果放在论文主表格或摘要中大力宣扬而将其他变量下的结果可能表现平平甚至更差埋藏在附录的角落或者仅用文字轻描淡写地提及。例如尝试了10个不同的随机种子只报告了性能最高的那个种子下的结果或者在20个不同的基准上测试只在正文中列出其中5个表现优异的基准。这种做法的滋生土壤是实验“上下文因素”记录的缺失或不规范。如果论文不报告所使用的具体随机种子、超参数的确切值、提示词的完整文本那么外部人员根本无法复现结果也更难发现樱桃采摘的行为。6.2 “黄金种子”制造幸运与樱桃采摘紧密相关的是**“黄金种子”**问题。随机种子对深度学习模型的训练特别是微调过程有着巨大且不可预测的影响。通过运行大量不同种子的实验然后挑选那个让模型性能最高的“幸运”种子进行报告可以人为地提升几个百分点的性能。对于小规模数据集或敏感任务这种由种子带来的方差可能远超方法本身带来的改进。虽然对于耗资巨大的大模型预训练反复运行寻找黄金种子不现实但在指令微调、参数高效微调、强化学习等阶段种子选择依然是一个需要被控制的变量。公平的做法是报告多个随机种子下的平均性能和标准差或者至少报告一个预先确定的、固定的种子。6.3 伪创新添加无用的“齿轮”在科研发表的压力下有一种做法是给现有的SOTA模型添加一个额外的、复杂的模块而这个模块实际上对最终性能没有实质性贡献或者贡献微乎其微。这种多余的“齿轮”让论文看起来有了“新颖性”从而得以发表。这种情况有时是无意的研究者真心相信新模块有效但由于时间压力或疏忽没有进行充分的消融实验来证明每个组件都是必要的。当后续研究仔细进行消融实验或对基线进行充分调优后往往发现简单的基线方法性能与之相当甚至更好。例如在推荐系统、时间序列预测等领域多次大规模重现性研究都发现许多复杂新颖的模型在得到正确实现和充分调优后并不比简单的基础模型如矩阵分解、线性回归有显著优势。这些“伪创新”不仅浪费了读者的时间还可能将整个领域引入复杂化的歧途。6.4 夸大宣称与轻描淡写结论与结果的脱节夸大宣称是指从有限的、具体的基准测试结果中得出过于宽泛或绝对化的结论。例如模型在某个数学数据集上从55%提升到58%就宣称“解决了数学推理问题”或者模型在特定风格的诗歌生成上表现好就宣称“具有卓越的创造性”。这忽略了任务本身的局限性、距离人类水平的巨大差距以及模型在其他相关任务上可能完全失败的事实。相反的轻描淡写则较为罕见通常出现在试图质疑或贬低某项技术能力的文章中。例如为了证明LLM在代码生成上存在严重缺陷却只测试了较弱的GPT-3.5模型而对同时期更强的GPT-4模型避而不谈仅在脚注中提及。这种有选择性地使用基线同样扭曲了事实。6.5 物化错把代理当成本体这是评估中一个更深层次的认知陷阱物化。我们将模型在某个代理任务如MMLU、GSM8K上的表现直接等同于其真实世界能力如知识水平、数学能力、推理能力。基准测试本质上是真实能力的一个有噪声的、不完全的代理指标。当基准存在缺陷如题目范围狭窄、存在模式可循、与训练数据有重叠时高分可能仅仅意味着模型“擅长应对这个特定的测试”而非拥有了通用的能力。将“在基准X上获得高分”直接论述为“拥有Y能力”是一种危险的过度推论。我们必须时刻意识到基准的局限性并寻找更多样化、更贴近真实应用的评估方式来交叉验证。7. 构建更稳健的评估文化从业者的行动清单面对这些纷繁复杂的可疑实践作为一线从业者我们并非无能为力。从个人到社区我们可以采取具体行动来推动更诚实、更稳健的评估文化。7.1 论文作者与评审者的自查清单如果你是研究者或工程师在撰写评估报告时请回答以下问题数据完整性训练集和测试集的分割策略是否清晰、合理、可复现是否避免了数据泄露是否对数据进行了去重包括近义句检查如果使用了数据增强增强后的样本是否可能泄露测试集信息基线公平性选择的基线是否是当前最相关的强基线是否为所有比较的方法包括基线提供了同等程度的优化努力超参数调优、提示工程比较的模型是否处于相同的“成熟度”阶段如基座 vs. 基座指令微调 vs. 指令微调评估过程透明化是否使用了完全相同的评估代码、工具链和指标来计算所有模型的结果是否完整报告了所有关键的运行时参数提示词、温度、top-p、采样次数k等是否报告了多次运行不同随机种子的平均值和方差而非单次“幸运”运行的点估计是否报告了在多个核心基准上的完整结果而非选择性报告结论克制性论文中的结论是否严格局限于实验结果所能支持的范围是否避免了将特定基准的高分过度概括为某种通用“智能”或“能力”是否讨论了方法的局限性以及在哪些情况下可能失效如果你是论文或代码评审者请额外关注实验部分是否提供了足以让独立第三方复现的所有细节提供的代码仓库是否包含了完整的评估脚本、数据预处理步骤和确切的依赖版本结果是否“好得令人怀疑”如果是检查其基线是否被充分优化评估设置是否公平。7.2 工具与社区倡议技术进步也为解决这些问题提供了工具标准化评估框架拥抱和使用像HELM、OpenCompass、LLM-Eval这样的综合评估框架。它们提供了统一的、可复现的评估流水线能最大程度减少工具链差异。模型卡与数据表强制要求为发布的模型和数据集创建详细的“模型卡”和“数据表”明确记录其训练数据构成、评估协议、已知偏差和局限性。预注册研究对于假设驱动的研究考虑采用预注册形式提前公开研究假设、实验设计和分析计划防止事后篡改。中心化排行榜的改进像Chatbot Arena这样的人类偏好评测平台通过众包对比减轻了对单一基准的依赖。但需持续改进以对抗风格偏好、长度偏差甚至恶意刷榜等问题。重视重现性研究社区应给予那些进行严谨的、批判性的重现性研究以更高的声誉和认可。这些研究是发现可疑实践、巩固可靠知识的基石。评估不是机器学习研究的终点而是确保我们走在正确道路上的罗盘。当基准测试的分数成为争夺的锦标而不是探索的灯塔时整个领域的发展就会偏离航道。作为从业者我们每个人都有责任在自己的工作中坚守评估的严谨与诚实。这不仅仅是为了发表论文或赢得竞赛更是为了我们能够真正理解这些日益强大的系统并负责任地推动其发展。下一次当你看到一份光鲜的评估报告时不妨多问一句“这背后是否隐藏着一场不公平的比赛”而当你自己成为报告者时则要确保你的比赛经得起最苛刻的审视。