Open LLM 排行榜是 Hugging Face 建立的一个用于评测敞开大言语模型的公开榜单。最近,跟着 Falcon 的发布并在 Open LLM 排行榜 上疯狂屠榜,环绕这个榜单在推特上掀起了一轮热烈的评论。

评论首要环绕排行榜上的四个评测基准其中之一: 大规模多任务言语了解 (Massive Multitask Language Understanding,MMLU) 基准。

社区发现头部模型 LLaMA 在 Open LLM 榜单上的 MMLU 得分比 LLaMA 论文 中声称的数字要低许多,咱们都感觉很奇怪。

因而,咱们决定深入分析一下这个现象,看看到底是什么原因,又应该怎么处理。

在求索的进程中,咱们与 @javier-m 大神进行了评论,他之前参与了 LLaMA 模型的评价; 咱们还与来自 Falcon 团队的 @slippylolo 进行了评论。虽然承教这两位甚多,但文章中所有或许的过错都应该归咎于咱们而不是他们!

在这段旅程中,你将学到许多有关怎么评测模型的知识,因而,假如后边你在网络上或论文中看到了相关的评测数字,相信你就会有一定的判断力了。

预备好了吗?系好安全带,咱们要起飞了。

Open LLM 排行榜是什么?

首要,请留意 Open LLM 排行榜 实际上只是对开源基准测验库 EleutherAI LM Evaluation Harness 的一个封装,该库是由 EleutherAI 非营利性人工智能研究实验室 创立的。EleutherAI 实验室是一支在人工智能范畴资格深厚的团队,他们有许多耳熟能详的作业,如创立 The Pile 数据集,练习 GPT-J 、GPT-Neo-X 20B 以及 Pythia 模型。

Open LLM 排行榜会在 Hugging Face 核算集群闲暇时运转 lm-evaluation-harness 以对众多模型进行评测,将成果保存在 Hub 上的一个数据集中,并终究显现在 排行榜 space 上。

在 EleutherAI lm-evaluation-harness 上运转 LLaMA 模型所得的 MMLU 分数与 LLaMA 论文声称的分数有很大差距。

为什么会这样?

MMLU 的 1001 种测法

事实证明,LLaMA 团队运用的是另一个开源完成: 由最初提出并开发 MMLU 基准的加州大学伯克利分校团队完成的版别,见 这儿,咱们称其为 “原始完成”

跟着查询的进一步深入,咱们还发现了另一个风趣的完成: 斯坦福大学 基础模型研究中心 (CRFM) 开发的一个全面的评价基准: 言语模型全体评价 (Holistic Evaluation of Language Models,HELM) 中也完成了 MMLU 基准,咱们将其称为 HELM 完成

EleutherAI Harness 和斯坦福 HELM 的设计理念殊途同归,两者都在单个代码库中集成了多个评测基准 (包含 MMLU),以为模型供给一个全景式功能评价工具。Open LLM 排行榜也秉持相同的理念,因而咱们在完成 Open LLM 排行榜时挑选了封装 EleutherAI Harness 这样的“全体”基准,而不是集成多个单目标评测代码库。

为了弄清楚得分差异的问题,咱们决定在同一组模型上运转 MMLU 评测的三种不同完成,并依据得分对这些模型进行排名:

  • Harness 完成 (commit e47e01b)
  • HELM 完成 (提交 cab5d89)
  • 原始完成 (由 @olmer 大神集成入 Hugging Face (代码) )

(请留意,Harness 完成最近有更新,更多信息请拜见文末。)

成果很奇特 (下图只是排名,后文有完好的评分):

Open LLM 排行榜近况

咱们发现,MMLU 的不同完成给出的得分居然天壤之别,甚至于改变了模型的排名次序!

下面咱们试着了解下这种差异从何而来。️在此之前,咱们先扼要了解一下咱们都怎么对现代 LLM 进行自动化评价。

现如今,咱们都怎么对 LLM 模型进行自动化评价

MMLU 测验由一组多项挑选题组成,因而相关于敞开式问答题这样的题型而言,该基准算是比较简略了。但正如咱们后边会看到的,即便这么简略,这儿边依然存在一些空间使得完成细节上的差异足以影响评测成果。MMLU 基准包含“人文”、“社会科学”、“STEM” 等 57 个通用知识范畴,里边的每个问题包含四个或许选项,且每个问题只有一个正确答案。

下面给出一个例子:

Question: Glucose is transported into the muscle cell:
Choices:
A. via protein transporters called GLUT4.
B. only in the presence of insulin.
C. via hexokinase.
D. via monocarbylic acid transporters.
Correct answer: A

留意: 你能够运用 Hub 的 数据集查看器 来轻松探索该数据集的更多细节。

大言语模型在所有 AI 模型中其实算比较简略的模型。其输入为“文本字符串”(或称为“提示”),该输入会被切分成词元 (词元能够是单词、子词或字符,具体取决于模型的要求) 并馈送至模型。依据这个输入,模型猜测词汇表中每一个词元是下一输出词元的概率,至此,你就得到了词汇表中每一个词适合作为输入提示的下一个词的或许性。

然后,咱们能够采取一些策略来从这个概率散布中挑选一个词元作为输出词元,例如能够挑选概率最大的词元 (或许咱们还能够经过采样引进些微噪声,以防止呈现“过于机械”的答案)。接着,咱们把挑选的词元添加到提示中并将其馈送给模型以继续生成下一个词元,依此类推,直至句子结束:

Open LLM 排行榜近况

上图展现了 ChatGPT 或 Hugging Chat 生成答案的进程。

总结一下,从模型中获取信息以对其进行评测,首要有两种办法:

  1. 获取某一组特定词元的输出 概率,并 将其与样本中的备选项进行比较;
  2. 获取模型 生成的文本 (用上文所述的办法一个个迭代生成),并 将这些文本与样本中的备选项进行比较

有了这些知识,咱们就能够开始深入研究 MMLU 的三种完成,以了解馈送到模型的输入是什么、预期的输出是什么以及怎么比较这些输出。

林林总总的 MMLU: 提示

咱们先比较一下对同一个 MMLU 数据集样本,这三种完成都是怎么构建模型输入的:

原始完成 Ollmer PR HELM 完成commit cab5d89 Harness 完成commit e47e01b
The following are multiple choice questions (with answers) about us foreign policy.
How did the 2008 financial crisis affect America’s international reputation?
A. It damaged support for the US model of political economy and capitalism
B. It created anger at the United States for exaggerating the crisis
C. It increased support for American global leadership under President Obama
D. It reduced global use of the US dollar
Answer:
The following are multiple choice questions (with answers) about us foreign policy.

Question: How did the 2008 financial crisis affect America’s international reputation?
A. It damaged support for the US model of political economy and capitalism
B. It created anger at the United States for exaggerating the crisis
C. It increased support for American global leadership under President Obama
D. It reduced global use of the US dollar
Answer:
Question: How did the 2008 financial crisis affect America’s international reputation?
Choices:
A. It damaged support for the US model of political economy and capitalism
B. It created anger at the United States for exaggerating the crisis
C. It increased support for American global leadership under President Obama
D. It reduced global use of the US dollar
Answer:

能够看到,三者之间差异虽小,但仍不行忽视:

  • 首句 (或指令): 差异不大。HELM 完成额定多加了一个空格,但留意 Harness 完成是没有指令句的;
  • 问题: HELM 完成和 Harness 完成都加了 Question: 前缀;
  • 选项: Harness 完成在选项之前加了 Choice: 前缀。

咱们怎么用上面构建的提示评价模型?

咱们首要看看 原始完成 是怎么做的: 其仅比较模型对四个选项字母的猜测概率。

Open LLM 排行榜近况

这种办法其实是有点放水的,举个例子:

Open LLM 排行榜近况

在上图这种情况下,由于在模型给 D 选项的概率在 4 个选项中是最高的,因而原始完成以为模型猜测正确,给加了 1 分。但假如咱们抬起头来看一下完好的概率输出,单词 “Zygote” 的概率其实是最高的,而它并不归于 4 个选项之一 (这仅是一个示例,而不是一个真实的例子)。

那么,怎么保证模型尽或许少犯这类过错呢?

咱们能够运用“ 少样本 ”办法,在提示中为模型供给一个或多个典范 (包含示例问题及其答案),如下:

Open LLM 排行榜近况

上图,咱们在提示中加了一个典范,用于告知模型咱们的预期,这样在猜测时模型就不太或许给出超出选项规模的答案。

由于这种办法能够进步功能,因而在悉数 3 种完成中,咱们均挑选了以 5 样本方法进行 MMLU 评价 (即每个提示中都含有 5 个典范)。(留意: 在每个基准测验中,虽然咱们用了同样 5 个典范,但它们的排列次序或许有所不同,这也有或许导致功能差异,但咱们在此不深入。别的,咱们还必须留意防止典范中的某些答案泄漏到猜测样本中 ……)

HELM 完成: 咱们再看看 HELM 完成。其少样本提示的完成与原始完成类似,但其模型评价方法与咱们刚刚看到的原始完成有很大不同: 其依据模型猜测的下一个输出词元的概率来挑选输出文本,并将生成的文本与正确答案的文本进行对比,如下所示:

Open LLM 排行榜近况

此时,假如输出词元中 “Zygote” 概率最高 (如上图),则模型会输出 “Zygote”,然后 HELM 完成就将其判为过错,模型就无法得分:

Open LLM 排行榜近况

Harness 完成: 终究咱们看下 到 2023 年 1 月 的 Harness 完成,Open LLM 排行榜运用了该完成。它对同一个数据集的得分核算办法又不一样 (请留意,该完成最近有严重更新,文末有具体信息)。

这儿,咱们仍然运用概率,但这次用的是完好答案序列的概率,这个完好序列包含选项字母及其后边的答案文本,例如 “C. The second pharyngeal arch”。为了核算整序列的概率,咱们获取每个词元的概率 (与上面其他完成一样) 并求它们的联合概率。为了数值稳定性,在核算联合概率时咱们首要核算对数概率并对其进行求和,终究对其进行归一化 (可选,也能够不做),归一化首要是将对数联合概率除以词元数,以防止长答案有不公平的得分优势 (稍后会具体介绍)。作业原理如下图所示:

Open LLM 排行榜近况

下表总结了每种完成对模型的输出方法的要求:

原始完成 HELM 完成 Harness 完成(到 2023 年 1 月)
比较选项字母的猜测概率: 期望模型输出正确选项的字母: 比较所有答案文本的概率:
A
B
C
D
A A. It damaged support for the US model of political economy and capitalism
B. It created anger at the United States for exaggerating the crisis
C. It increased support for American global leadership under President Obama
D. It reduced global use of the US dollar

搞清楚这些之后,咱们比较一下多个模型在这三种完成上的得分:

MMLU (HELM 完成) MMLU (Harness 完成) MMLU (原始完成)
huggingface/llama-65b 0.637 0.488 0.636
tiiuae/falcon-40b 0.571 0.527 0.558
huggingface/llama-30b 0.583 0.457 0.584
EleutherAI/gpt-neox-20b 0.256 0.333 0.262
huggingface/llama-13b 0.471 0.377 0.47
huggingface/llama-7b 0.339 0.342 0.351
tiiuae/falcon-7b 0.278 0.35 0.254
togethercomputer/RedPajama-INCITE-7B-Base 0.275 0.34 0.269

能够看到,即便关于相同的 MMLU 数据集,模型的肯定分数和相对排名 (拜见第一张图) 对评测基准的完成方法仍十分敏感。

假定你已经完美复刻了一个 LLaMA 65B 模型,并运用 Harness 对其进行了评价 (得分 0.488,见上表)。现在,你想要将其与其别人发表的公开成果进行比较 (假定他是在原始 MMLU 完成上进行评价的,得分为 0.637),分数竟相差 30% 之巨。你或许会想: “天哪,我的练习彻底毁了”。但事实并非如此,这些都只是毫无可比性的数字,即便它们都叫 “MMLU 分数”,且都是在同一个 MMLU 数据集上进行评测的。

那么,是否存在一个评价 LLM 模型功能的“最佳办法”呢?这个问题欠好答复。正如咱们在上文看到的,运用不同的评测方法对不同的模型进行评价时,其排名会变得混乱。为了尽或许保持公平,人们或许会倾向于挑选那个平均打分最高的评测办法,由于看上去如同它更能“解锁”模型的实力。在本文中,这意味着咱们应该运用原始完成。但正如咱们在上面看到的,运用仅对四个选项的概率进行排序的方法有或许以某种方法给模型放水,并且它更偏心那些功能较弱的模型。此外,从开源模型中获取词元猜测概率 (或似然) 或许很容易,但闭源 API 模型或许并不会供给这样的 API。

亲爱的读者,咱们说了这么多,你有何高见?无妨到 Open LLM 排行榜的这个帖子中说上两句: hf.co/spaces/Hugg…

总结

整个进程走下来,咱们学到了一个重要的经验: 评测得分与完成紧密相关 —— 具体到提示、分词等微小细节的差异都有或许导致终究得分的差异。仅靠 “MMLU 得分” 这几个字不足以带来什么信息量,由于它们所运用的评测代码完成或许不同,所以根本没有可比性。

这便是为什么咱们需求敞开、标准化、可重复的基准测验。诸如 EleutherAI Eval Harness 或 Stanford HELM 这样的敞开基准对社区来说是无价的,假如没有它们,咱们就无法比较模型和论文之间的成果,更谈不上改善 LLM 了。

跋文: 就 Open LLM 排行榜而言,咱们决定坚持运用社区维护的评价库。值得庆幸的是,本文编撰期间,优秀的 EleutherAI Harness 的社区,尤其是 ollmer ,完成了一项豪举: 更新了 Harness 完成中的 MMLU 的评测代码,使其不管是完成仍是得分都与原始完成更类似。

现在,咱们正在用新版的 EleutherAI Eval Harness 重刷排行榜,在未来的几周内你将看到根据 Eleuther Harness v2 的跑分,敬请期待!(重新运转所有模型需求一些时刻,请耐心等候,:抱抱:)

致谢

十分感谢 LLaMA 团队的 Xavier Martinet、Aurlien Rodriguez 和 Sharan Narang 对本文内容的名贵建议,并拨冗答复了咱们所有的问题。

可用于复现的软件及其版别

以下是本文运用的各代码库的 commit 版别。

  • EleutherAI LM harness 完成 commit e47e01b: github.com/EleutherAI/…
  • HELM 完成 commit cab5d89: github.com/stanford-cr…
  • 原始 MMLU 完成 (由 @olmer 大神集成至 Hugging Face): github.com/hendrycks/t…

英文原文: hf.co/blog/evalua…

原文作者: Clmentine Fourrier, Nathan Habib, Julien Launay, Thomas Wolf

译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,作业方向为 transformer-family 模型在各模态数据上的应用及大规模模型的练习推理。

审校/排版: zhongdongy (阿东)