本章主要是学习《大规模语言模型——从理论到实战》第八章内容的一个总结。
8.4 大语言模型评估实践
针对大语言模型构建不同阶段所产生的模型能力不同,本节中,将分别介绍当前常见的针对基础模型和 SFT/RL 模型的评估整体方案。
8.4.1 基础模型评估
大语言模型构建过程中产生的基础模型就是语言模型,其目标就是建模自然语言的概率分布。 语言模型构建了长文本的建模能力,使得根据可以根据输入的提示词,生成文本补全句子。2020年 OpenAI 的研究人员在 1750 亿参数的 GPT-3 模型上研究发现,在语境学习(In-context Learning) 范式下,大语言模型可以根据少量给定的数据,在不调整模型参数的情况下,在很多自然语言处理任务上取得不错的效果。图8.14展示了不同参数量的语言模型在简单任务中基于语境学习的表现。
这个任务要求模型从一个单词中去除随机符号,包括使用和不使用自然语言任务描述的情况。可以看到大语言模型具有更好的从上下文信息学习任务的能力。在此之后,语言模型评估也不再局限于困惑度、交叉熵等传统语言模型评估指标。而更多的是采用综合自然语言处理任务集合的方式进行评估。
1. GPT-3 评估
OpenAI 研究人员针对 GPT-3的评估主要包含两个部分:传统语言模型评估以及综合任务评估。
- 传统语言模型评估方面
采用了基于 Penn Tree Bank(PTB)语料集合的困惑度评估; LAMBADA语料集用于评估长距离语言建模能力,补全句子的最后一个单词;HellaSwag语料集要求模型根据故事内容或一系列说明选择最佳结局;StoryCloze语料集也是用于评价模型根据故事内容选择结尾句子的能力。
- 综合任务评估方面
GPT-3 评估引入了 Natural Questions、WebQuestions 以及 TriviaQA三种闭卷问答(Closed Book Question Answering)任务,英语、法语、德语以及俄语之间的翻译任务,基于Winograd Schemas Challenge语料集的指代消解任务,PhysicalQA(PIQA)、ARC、OpenBookQA等常识推理数据集,CoQA、SQuAD2.0、RACE等阅读理解数据集,SuperGLUE自然语言处理综合评估集合、Natural Language Inference(NLI)和 Adversarial Natural Language Inference(ANLI)自然语言推理任务集合,以及包括数字加减、四则运算、单词操作、单词类比、新文章生成等综合任务。
由于大语言模型在训练阶段需要使用大量种类繁杂且来源多样的训练数据,因此不可避免地存在数据泄露的问题,即测试数据出现在语言模型训练语料中。为了避免这个因素的干扰,OpenAI的研究人员对于每个基准测试,会生成一个“干净”版本,该版本会移除所有可能泄露的样本。
泄露样本的定义大致为与预训练集中任何13-gram 重叠的样本(或者当样本长度小于13-gram 时,与整个样本重叠)。目标是非常保守地标记任何可能存在污染的内容,以便生成一个高度可信且无污染的干净子集。之后,使用干净子集对GPT-3 进行评估,并将其与原始得分进行比较。
如果干净子集上的得分与整个数据集上的得分相似,表明即使存在污染也不会对结果产生显著影响。如果干净子集上的得分较低,则表明污染可能会提升评估结果。
GPT-3 数据泄露的影响评估如图8.15 所示。x 轴表示数据集中有多少数据可以被高度自信地认为是干净的,而y 轴显示了在干净子集上进行评估时性能的差异。可以看到,虽然污染水平通常很高,有四分之一的基准测试超过50%,但在大多数情况下,性能变化很小。
2. MMLU 基准测试
Massive Multitask Language Understanding(MMLU)基准测试目标是衡量语言模型在预训练期间获取的知识。与此前的评测大都聚焦于自然语言处理相关任务不同,MMLU 基准测试涵盖了 STEM、人文、社会科学等领域的 57 个主题。
- 难度范围从小学到高级专业水平不等,既 测试世界知识,也测试解决问题的能力。
- 主题范围从数学、历史等传统领域,再到法律、伦理学 等更专业的领域。该基准测试更具挑战性,更类似于如何评估人类。
- 主题的细粒度和广度使得该 基准测试非常适合识别模型的知识盲点。
MMLU 基准测试将所收集到的 15908 个问题切分为了少样本开发集、验证集和测试集。少样 本开发集每个主题有 5 个问题,验证集可用于选择超参数,包含 1540 个问题,测试集包含 14079个问题。每个主题至少包含 100 个测试样例。
3. C-EVAL 基准测试
C-EVAL是一个旨在评估基于中文语境的基础模型在知识和推理能力方面的能力的评估工具。
它类似于 MMLU 基准评测,包含了四个难度级别的多项选择题:初中、高中、大学和专业。除了英语科目外,C-EVAL 还包括了初中和高中的标准科目。
- 在大学级别,C-EVAL 选择了我国教 育部列出的所有 13 个官方本科专业类别中的 25 个代表性科目,每个类别至少选择一个科目,以 确保领域覆盖的全面性。
- 在专业层面上,C-EVAL 参考了中国官方的国家职业资格目录,并选择了12 个有代表性的科目,例如医生、法律和公务员等。这些科目按照主题被分为四类:STEM(科学、技术、工程和数学)、社会科学、人文学科和其他领域。
C-EVAL 共包含 52 个科目,并按照其所属类别进行了划分,具体信息可参见图8.17。
8.4.2 SFT/RL 模型评估
经过训练的 SFT 模型以及 RL 模型具备指令理解能力和上下文理解能力,能够完成开放领域问题、阅读理解、翻译、生成代码等能力,也具备了一定的对未知任务的泛化能力。对于这类模型的评测可以采用 MMLU、AGI-EVAL、C-EVAL 等基准测试集合。但是这些基准评测集合,为了测试方便,都采用了多选题的方式,但其无法有效评估大模型最为关键的生成能力。在本节中,将介绍几种针对 SFT/RL 模型的生成能力进行评估的方法。
1. Chatbot Arena 评估
Chatbot Arena 是一个以众包方式进行匿名对比评价的大语言模型基准评测平台。
研究人员构造了多模型服务系统 FastChat。当用户进入评估平台后可以输入问题,同时得到两个匿名模型的回答,如图8.17 所示。在从两个模型中获得回复后,用户可以继续对话或投票选择他们认为更好的模型。一旦提交了投票,系统会将模型名称告知用户。用户可以继续对话或重新开始与两个新选择的匿名模型对话。该平台记录所有用户交互,在分析时仅使用在模型名称隐藏时收集的投票数据。
基于两两比较的基准评测系统应具备以下特性:
- 可伸缩性:系统应能适应大量模型,当前系统无法为所有可能的模型对收集足够的数据时,能够动态扩充;
- 增量性:系统应能通过相对较少的试验评估新模型;
- 唯一排序:系统应为所有模型提供唯一的排序,对于任意两个模型,应能确定哪个排名更高或它们是否并列。
Chatbot Arena 提出以众包方式进行匿名对比评价就是为了解决上述问题, 强调大规模、基于社区和互动人工评估。Chatbot Arena 采用了 Elo 评级系统(具体方法参考LLMEVAL 评估部分介绍)计算模型综合分数。Chatbot Arena 同时也发布了“33K Chatbot Arena Conversation Data”,包含从2023 年4月至6 月通过Chatbot Arena 收集的3.3 万份带有人工标注的对话记录。
根据系统之间两两匿名对比评测,还可以使用 Elo 评分预测系统之间两两胜率,Chatbot Arena 给出的系统之间胜率矩阵(Win Fraction Matrix)如图8.19所示。
矩阵的行表示一个模型,列表示另一个模型。每个元素表示行对应的模型相对于列对应的模型的胜率。例如,根据该矩阵可以看到GPT-4 相对于GPT-3.5-Turbo 的胜率为79%,而相对于LLaMA-13B 的胜率为94%。
2. LLMEVAL 评估
LLMEVAL 中文大模型评估先后进行了二期,LLMEVAL-1 评测涵盖了 17 个大类、453 个问 题,包括事实性问答、阅读理解、框架生成、段落重写、摘要、数学解题、推理、诗歌生成、编程等各个领域。针对生成内容的质量,细化为了 5 个评分项,分别是:正确性、流畅性、信息量、逻辑性和无害性。具体来说:
- 正确性:评估回答是否准确,即所提供的信息是否正确无误。一个高质量的回答应当在事实上是可靠的。
- 流畅性:评估回答是否贴近人类语言习惯,即措辞是否通顺、表达清晰。一个高质量的回答 应当易于理解,不含繁琐或难以解读的句子。
- 信息量:评估回答是否提供了足够的有效信息,即回答中的内容是否具有实际意义和价值。一个高质量的回答应当能够为提问者提供有用的、相关的信息。
- 逻辑性:评估回答是否在逻辑上严密、正确,即所陈述的观点、论据是否合理。一个高质量的回答应当遵循逻辑原则,展示出清晰的思路和推理。
- 无害性:评估回答是否未涉及违反伦理道德的信息,即内容是否合乎道德规范。一个高质量的回答应当遵循道德原则,避免传播有害、不道德的信息。
在构造了评测目标的基础上,有多种方法可以对模型进行评测。包括分项评测、众包对比评 测、公众对比评测、GPT 4 自动分项评测、GPT 4 对比评测等方式。那么,哪种方法更适合评测大 模型,并且这些方法各自的优缺点是什么呢?为了研究这些问题,LLMEVAL-1 采用了上述五种方式进行了效果对比。
- 分项评测:首先根据分项评测目标,制定具体的评测标准,并构造定标集合。在此基础上对人员进行培训,并进行试标和矫正。在此基础上再进行小批量标注,在对齐标准后完成大批量标注。
- 众包对比标注:由于分项评测要求高,众包标注采用了双盲对比测试,将系统名称隐藏仅展示内容,并随机成对分配给不同用户,用户从“A 系统好”、“B 系统好”、“两者一样好”以及“两者都不好”四个选项中进行选择,利用 LLMEVAL 平台分发给大量用户来完成的标注。为了保证完成率和准确率,提供了少量的现金奖励,并提前告知用户,如果其与其他用 户一致性较差将会扣除部分奖励。
- 公众对比标注:与众包标注一样,也采用了双盲对比测试,也是将系统名称隐藏并随机展现给用户,同样也要求用户从“A 系统好”、“B 系统好”、“两者一样好”以及“两者都不好” 四个选项中进行选择。不同的是,公众评测完全不提供任何奖励,通过各种渠道宣传,系统能够吸引尽可能多的评测用户。
- GPT-4 自动分项评测:利用 GPT-4 API 接口,将评分标准做为 Prompt,与问题和系统答案分别输入系统,使用 GPT 4 对每个分项的评分对结果进行评判。
- GPT-4 自动对比评测:利用 GPT-4 API 接口,将同一个问题以及不同系统的输出合并,并构造 Prompt,使用 GPT 4 模型对两个系统之间的优劣进行评判。
对于分项评测,可以利用各个问题的在各分项上的平均分,以及每个分项综合平均分进行系统 之间的排名。但是对于对比标注,采用什么样的方式进行排序也是需要研究的问题。为此,LLMEVAL 评估中对比了 Elo Rating(Elo 评分)和 Points Scoring (积分制得分)。
- Elo 评分(Elo Rating)
Elo 评分系统根据胜者和败者间排名的不同,决定着在一场比赛后总分数的得失。在高排名选手和低排名选手比赛中,如果高排名选手获胜,那么只会从低排名选手处获得很少的排名分。然而,如果低排名选手爆冷获胜,则可以获得更多排名分。虽然这种评分系统非常适合于竞技比赛,但是与顺序有关,并且对噪声非常敏感。
- 积分制得分(Points Scoring)
积分制得分(Points Scoring)也是一种常见的比赛评分系统,用于在竞技活动中确定选手或团队的排名。该制度根据比赛中获得的积分数量,决定参与者在比赛中的表现和成绩。在LLMEVAL 评估中,根据用户给出的“A 系统好”、“B 系统好”、“两者一样好”及“两者都不好”的选择,分别给A 系统+1分,B 系统+1 分,A 和B 系统各+0.5 分。
8.5 实践思考实践思考
评估对于自然语言处理来说至关重要,基于公开数据集(Benchmark)的对比评估有利促进了自然语言处理领域的高速发展。研究人员在特定任务上使用相同的数据、统一的评估标准对算法效果进行对比,可以获取算法在实际应用中的表现,发现其中存在的问题和不足之处。评估也有利促进了学术界和工业界之间的合作与交流,推动了NLP 领域的知识共享和创新。针对传统单一任务的评估体系、评估标注及公开数据集都发展得相当完善。除少量生成类任务(例如机器翻译、文本摘要等)的自动评估方法仍有待研究之外,自然语言处理领域其他任务的评估方法基本都能反映真实环境下的使用情况。
然而,大语言模型评估与传统单一自然语言处理任务的评估非常不同。
- 首先,大语言模型将所有任务都转换成了生成式任务,因此,虽然生成的内容语义正确,但是针对不同的输入,其输出结果在格式上并不完全统一。这就造成很多任务没办法直接进行自动评估。
- 其次,如何评估大语言模型并没有很好的方法,虽然研究人员普遍认为MMLU、AGI-Eval 等评估可以反映大语言模型的基础能力,但是经过有监督学习和强化学习过程之后,模型之间的效果差距与基础语言模型评估又有不同。大语言模型的评估方法仍然是亟待研究的课题。
- 另外,大语言模型的训练并不是单一的过程,很多时候需要融合预训练、有监督微调及强化学习等不同阶段,因此模型复现十分困难。再叠加当前评估的有偏性,使得很多评估中都出现了模型在评估指标上大幅度超过了GPT-4,但在真实场景下效果却很差的情况。
针对大语言模型评估,通过开展了两期LLMEVAL 评估,在实践过程得到以下初步结论。
- 在评估者选择上需要仔细设计,比如在众包对比评估中,用户非常容易受到内容长度的影响,通常会倾向给较长的内容更多好的评价,这对最终的评分会产生较大的影响。公众对比评估参与人数较多,但是每个人的平均评估次数很少,评估的一致性和准确性还较低。在噪声较大的情况下,使用公众评估数据对各系统排序的意义较低。
- 在模型排序问题上,Elo 评分不适合对大语言模型进行排名。通过理论分析,发现在人工评估准确率为70% 的情况下,初始分数为1 500 分时,Elo 评分的估计方差高达1 514。在已有20 万评估点的基础上,仅十余个噪声样本就会造成模型排序的大幅度变化。
- GPT-4 自动评估有自身的局限性,在部分指标上与人工评估一致性不够高,对于前后位置、内容长度等也具有一定的偏见,大语言模型评估应该首选人工分项评估方式,但是如果希望快速获得趋势结果也可以将自动评估作为补充。针对特定任务设计和训练单独的评估模型也是重要的研究方向。