在 CV 领域,研究者一直把李飞飞等人创建的 ImageNet 奉为模型在下游视觉任务中能力的试金石。
在大模型时代,我们该如何评估 LLM 性能?现阶段,研究者已经提出了诸如 MMLU、GSM8K 等一些评估基准,不断有 LLM 在其上刷新得分。
但这些评估基准真的完美吗?思维链提出者 Jason Wei 在一篇博客中进行了深入的研究。
Jason Wei 首先列举了几种成功的评估基准,然后总结了评估基准失败的常见原因,共七条,包括样本数量少、评估基准太复杂等等。
进一步的,Jason Wei 认为有些评估工具命名方式并不完美,比如 HumanEval 虽然叫做人类评估,实际上并没有用到人类进行评估,只是因为问题是由人类创建的。
Jason Wei 表示如果想让自己创建的评估工具得到广泛使用,一定要帮助研究者使用它,从而得到推广。此外,文中还提到了一些针对特定领域的小众评估工具,Jason Wei 认为这些评估可能不会引起领域之外的任何关注。大家关心的测试集污染问题,Jason Wei 也给出了一些解决方案。
接下来,我们看看 Jason Wei 原博客内容:
成功评估的定义是什么?我想说,如果一个评估基准被用在突破性论文中,并在社区中得到信任,那么它显然就是成功的。
以下是过去五年中一些成功的评估基准:
- GLUE/SuperGLUE:LLM 之前基本上所有 NLP 论文(BERT、T5 等)都使用。
- MMLU:几乎所有 LLM 论文都使用,也是 DeepMind 和 Google 最喜欢的评估基准。
- GSM8K:激发了 LLM 的推理能力,并被用于每一篇关于思维链(chain-of-thought)的论文中。
- MATH:大多数 LLM 论文会使用。
- HumanEval:是 LLM 编码的经典评估基准。
成功的评估往往会有一篇大论文声称使用该评估基准取得了一些突破。例如,GLUE 由 BERT 推广,MMLU 由 Gopher、Chinchilla 和 Flan-PaLM 推广。思维链提示(chain-of-thought prompting)声称在 GSM8K 上取得了突破。Minerva 的超凡能力在 MATH 上得到体现。Codex 等模型使用了 HumanEval。
更深入地说,在评估基准上得到好分数必须意味着一些重要且易于理解的事情,例如实现超越人类的表现、解决小学水平的数学问题。
而大多数不成功的评估基准都至少犯了如下七个错误之一:
1、如果评估没有足够的样本,那么对于研究人员来说,它会很嘈杂(noisy),而且 UI 会很糟糕。例如,有人可能在模型训练过程中运行评估,并发现它在各个检查点之间波动很大。这使得评估对于研究人员来说非常痛苦,因此他们不会喜欢使用该评估基准。评估基准最好有至少 1000 个样本供您评估;如果是多项选择评估,可能需要更多。例如尽管 GPQA 是一个很好的评估基准,但它根据 prompt 而波动的事实使其难以使用。
2、评估基准应该是高质量的。如果评估基准中有很多错误,人们就不会相信它,例如 Natural Questions(NQ)基准。
3、如果你的评估基准太复杂,人们会很难理解它,并且会很少使用它。我认为 HELM 的第一个版本是一项巨大的努力,但它有太多的指标和子集。拥有单一数字指标至关重要 —— 我想不出任何伟大的评估基准是没有单一数字指标的。
4、如果评估需要太多工作来运行,即使其他一切都很好,它也不会有很大的吸引力。BIG-Bench 是我最喜欢的评估基准之一,但运行起来非常痛苦。有对数概率评估和生成评估,这需要不同的基础设施。子集太多,而且有些子集的样本太多,所以评估花了很长时间。我相信这就是为什么 BIG-Bench 没有获得太多关注,尽管它提供了很多优势。
5、如果评估不是针对一项有意义的任务,人工智能研究人员不会深度关注它。例如,在 BIG-Bench Hard 中,有推荐电影等任务。这些任务具有挑战性,并且随着模型大小的变化性能有所变化,但在这些任务上做得好并不能对模型的智能程度做出实质性的结论。成功的评估通常会衡量对智能至关重要的事物,例如语言理解、考试问题或数学。
6、评估的评分应该非常正确。如果有人认为模型评分不正确或者不认同该评分,那么他们可以立即取消使用该评估基准。花时间来尽量减少解析引起的错误,或者尽可能获得最好的自动评分器 prompt 是值得的。
7、为了使评估经得起时间的考验,性能不能太快饱和。例如,GLUE/SuperGLUE 饱和得太快,很难显示出巨大的增益,人们就不再使用它们。
对于评估工具,还有不完善的地方
看起来很多优秀的评估工具都有些糟糕的名字。比如 GSM8K 其实并不需要加上 8K,而 HumanEval 虽然叫做人类评估,实际上并没有用到人类进行评估(之所以叫 HumanEval 是因为问题是由人类创建的)。MATH 这个名字太普通了,所以人们开始称之为「Hendrycks-math」,这应该算是一个聪明的命名方式,以创建者的名字来命名。
如果你想让你的评估工具得到广泛使用,你首先要做的是帮助人们使用它。例如,当我制定了一个评估工具时,我通常会帮助他人在模型上运行它。如果他们的模型在这个评估上表现良好,那么人们通常会喜欢它并进一步的推广它。HELM 就非常擅长为其他人评估模型并公布结果。
此外,如果你能为人们使用你的评估工具创造激励机制也很有帮助。对员工来说,最好的激励之一就是他们领导所重视的东西。因此,获得实验室或公司内部领导的支持对你的评估工具可能会有所帮助,他们会要求底下员工运行它。当我在谷歌创建 MGSM 时,我选择与 Dipanjan Das(Google Deepmind 的研究主管)合作完成,尽管我们不在同一个团队。我与他合作纯粹是因为他是个有趣的人(并不是为了推广这个评估工具),但我认为 Dipanjan 很喜欢这个工具,并且在他的团队中获得了一些人的支持使用。
然而,LLMs 的出现,对评估工具提出了更高的要求。LLMs 具有大规模多任务处理能力并能生成长回答。目前还没有一个单一的评估工具能够充分评估 LLMs。当前流行的评估工具仍然使用非常简单的评分方式(要么是多项选择,要么是检查数字,或者执行单元测试),即便这些方法也存在问题。如果我们能围绕一个单一的提示,比如零样本思维链(zero-shot chain-of-thought),那会很好。我知道由于很多原因这不是一个完美的解决方案,但我认为为了让大家统一标准,这是合理的。
一个新的推动力是人类对模型进行配对评估,比如 LMSYS,但这种评估方式是一把双刃剑。它们之所以强大, 是因为你可以通过一组简单的提示得到一个单一的数字指标来衡量一个语言模型的好坏,并且可以通过大量的样本来平均掉样本级别的噪声。不过,成对评估的危险之处在于你并不完全确定你在测量什么 —— 例如,相对于正确性,风格等这类因素的权重影响有多大。
对模型生成内容(model-generated)的评估也变得有些流行。虽然我倾向于对模型生成的评估比较挑剔,但如果做得好,它们可以用于快速实验和观察性能的大幅提升,这是有可能的。但是创建一个经得起时间考验的伟大的评估需要非常小心,我不想在合成评估中冒任何风险。
一个显而易见的观点是,评估的主题决定了有多少人会关心这个评估。你可以创建一个非常高质量的特定领域评估(例如,法律、医疗等),在这些情况下,最重要的是根据该领域专家所重视的内容来定制评估。
我曾经制作过一个组织病理学图像基准,不出所料,它在医学图像分析领域之外几乎没有引起任何关注,只获得了 40 次引用。话虽如此,一旦更多人意识到其重要性,你创建的特定领域评估也有可能获得更多关注。
评估中一个日益重要的问题是测试集污染。创建了一个好的评估之后,评估的示例往往会传播到互联网的各个地方,如 arxiv 论文、ChatGPT 示例或 reddit。解决这个问题的一个方法是对测试集进行「隐藏」,但这种方法引起了很多分歧。斯坦福大学教授 Chris Manning 提出了一个很好的建议,即对公开测试集、私有测试集都进行评估,并监控模型在这两个测试集上是否有大的偏差。这种方法平衡了在公开测试集上测试的低摩擦性和私密测试集的高可信度。
我注意到的最后一件事是,你关心的评估很大程度上表明了你的身份。一个充满博士的研究室可能会对语言模型在数学、编码和物理上的推理能力感兴趣。相反,我看到像 LMSYS 这样的面向用户的评估被来自软件或产品背景的工程师视为黄金标准。虽然我两者都关心,但我个人更倾向于智能,因为我相信智能是 AI 与人类交互的根本驱动力。
社区应该更多地投资于评估,尽管这可能很痛苦,通常不会像建模工作那样得到很多回报。但归根结底,好的评估工具是 AI 研究人员对模型的客观评价指标,并且是对该领域产生重大影响的一种方式。