随着人工智能和机器学习领域的迅速发展,语言模型已经从简单的词袋模型(Bag-of-Words)和N-gram模型演变为更为复杂和强大的神经网络模型。在这一进程中,大型语言模型(LLM)尤为引人注目,它们不仅在自然语言处理(NLP)任务中表现出色,而且在各种跨领域应用中也展示了惊人的潜力。从生成文本和对话系统到更为复杂的任务,如文本摘要、机器翻译和情感分析,LLM正在逐渐改变我们与数字世界的互动方式。
然而,随着模型规模的增加,也出现了一系列挑战和问题,包括但不限于计算复杂性、数据偏见以及模型可解释性。因此,对这些模型进行全面而深入的了解变得至关重要。
本博客旨在提供一个全面的大型语言模型综述,探讨其工作原理、应用范围、优点与局限,以及未来的发展趋势。无论您是该领域的研究者、开发者,还是对人工智能有广泛兴趣的读者,这篇综述都将为您提供宝贵的洞见。
本系列文章内容大部分来自论文《A Survey of Large Language Models》,旨在使读者对大模型系列有一个比较程序化的认识。
论文地址:https://arxiv.org/abs/2303.18223
为了检验LLM的有效性和优越性,已经提出了大量任务和基准,用于进行经验能力评估和分析。在本节中,我们首先介绍了LLM在语言生成和理解方面的三种基本能力评估类型,然后介绍了几种具有更复杂设置或目标的LLM的高级能力评估,最后讨论了现有的基准、评估方法和经验分析。
在这部分,我们主要关注LLM的三种基本能力评估类型,即语言生成、知识利用和复杂推理。需要注意的是,我们并不打算对所有相关任务进行全面覆盖,而是只关注LLM最广泛讨论或研究的任务。接下来,我们详细介绍这些任务。
表 10:代表性的基本和高级能力以及相应的用于评估的代表性数据集。
根据任务定义,关于语言生成的现有任务可以大致分类为语言建模、条件文本生成和代码合成任务。需要注意的是,代码合成不是典型的自然语言处理任务,我们包括它以进行讨论,因为它可以像自然语言文本一样通过一些LLM(在代码数据上训练)以类似的生成方法直接解决。
语言建模
作为LLM最基本的能力,语言建模旨在基于先前的标记来预测下一个标记[15],主要关注基本语言理解和生成的能力。为了评估这种能力,现有工作使用的典型语言建模数据集包括Penn Treebank [414]、WikiText-103 [415]和Pile [146],其中通常使用困惑度作为评估零-shot设置下模型性能的度量标准。经验研究[55, 84]表明,在这些评估数据集上,LLM相对于先前的最先进方法带来了显著的性能提升。为了更好地测试文本中长距离依赖性的建模能力,引入了LAMBADA数据集[188],在该数据集上,需要LLM根据段落上下文来预测句子的最后一个词。然后,使用预测的最后一个词的准确性和困惑度来评估LLM。如现有工作所示,语言建模任务的性能通常遵循缩放定律[30],这意味着扩展语言模型会提高准确性并降低困惑度。
条件文本生成
作为语言生成中的一个重要主题,条件文本生成[48]侧重于根据给定的条件生成满足特定任务要求的文本,通常包括机器翻译[503]、文本摘要[424]和问答[434]。为了衡量生成文本的质量,通常使用自动指标(如准确度、BLEU [504]和ROUGE [505])和人工评分来评估性能。由于强大的语言生成能力,LLM在现有数据集和基准上取得了显著的性能。例如,GPT-4在翻译任务中表现出与商业翻译产品相媲美的性能,甚至对于语言差异显著的翻译任务也如此[506]。在新闻摘要任务(如CNN/DM和XSUM)上,LLM也展示出与人类自由撰稿人相当的性能[507]。尽管模型容量取得了快速进展,但有关现有自动指标是否能忠实评估LLM在条件文本生成任务中的性能的担忧日益增加[507–509]。作为自动指标的替代方案,最近的研究还提议将LLM作为生成评估器,以检查生成内容的质量[124, 510, 511]。此外,研究人员还探索了更具挑战性的LLM语言生成任务,如结构化数据生成[512]和长文本生成[46, 513, 514]。
代码合成
除了生成高质量的自然语言文本外,现有的LLM还表现出生成正式语言的强大能力,尤其是满足特定条件的计算机程序(即代码)的生成,称为代码合成[515]。与自然语言生成不同,生成的代码可以直接通过与相应的编译器或解释器执行来进行检查,现有的工作主要通过计算对测试用例的通过率来评估LLM生成的代码的质量,即pass@k。最近,提出了几个着重于功能正确性的代码基准,用于评估LLM的代码合成能力,如APPS [428]、HumanEval [92]和MBPP [168]。通常,它们包含各种编程问题,包括文本规范和正确性检查的测试用例。要提高这种能力,关键是对LLM进行代码数据的微调(或预训练),这可以有效地使LLM适应代码合成任务[77]。此外,现有工作提出了生成代码的新策略,例如采样多个候选解决方案[168]和计划引导的解码[516],这可以被视为程序员模仿程序员进行错误修复和代码规划过程。令人印象深刻的是,LLM最近在编程竞赛平台Codeforces上取得了排名前28%的用户竞争力,与人类表现竞争 [101]。此外,GitHub Copilot已经发布,用于辅助在编码IDE(如Visual Studio和JetBrains IDEs)中进行编程,它可以支持包括Python、JavaScript和Java在内的多种编程语言。《ACM通信》杂志上题为“编程的终结” [517] 的一篇观点文章讨论了AI编程对计算机科学领域的影响,强调了向高度适应性的LLM作为新的计算原子单位的重要转变。
主要问题
尽管LLM在生成类似人类文本方面取得了出色的性能,但它们在语言生成方面容易受到以下两个主要问题的影响。
• 不可靠的生成评估。随着LLM的语言生成能力的提高,现有研究发现,LLM生成的文本在各种文本生成任务上已经达到了与参考文本可比较的质量。然而,由于现有评估基准的固有弱点,人工评估与自动基于参考文本的指标之间存在明显的不一致性[507–509, 518]。例如,在OpenDialKG [427]中,ChatGPT在BLEU和ROUGE-L指标上表现不如经过精细调整的GPT-2,但在人类判断中却更受欢迎[518]。此外,现有研究认为,甚至人工评估可能也不够健壮[507, 508, 519, 520]。在某些情况下,很难在人类标注者中达成高度一致的意见[508],众包工作者和专家之间的标注质量也存在较大差距[519, 520]。因此,在LLM时代如何进行语言生成任务的可靠评估已成为一个基础但具有挑战性的研究课题。最近,越来越多的研究工作提出利用LLM来提高生成文本的评估质量。特别地,LLM可以用来改进现有指标的评估质量。例如,Para-Ref [521]通过利用LLM将现有参考文本重新表述成具有不同表达方式的语义等价参考文本,从而增强了各种自动指标。此外,LLM广泛应用于以无参考方式评估文本生成的评估者,包括评估单一预测[510, 511, 522]或比较多个候选项[124, 523–525]。然而,LLM作为语言生成评估者可能会暴露出偏见(例如,顺序偏见或对LLM生成的文本优于人工编写的文本的偏好),与人工评估相比存在差异[511, 526, 527]。
不可靠的生成评估
LLM已经能够生成与人工编写的文本相媲美的文本,但这可能被基于参考文本的自动指标低估。作为一种替代的评估方法,LLM可以充当语言生成评估者,评估单一文本,比较多个候选项,并改进现有的指标。然而,这种评估方法在实际任务中仍需要更多的检验和审查。
• 专业化生成效果较差。尽管LLM已经学会了生成连贯的文本所需的通用语言模式,但当处理特定领域或任务时,它们在生成方面的熟练程度可能会受到限制。例如,一个在一般网络文章上进行训练的语言模型在生成涉及大量医学术语和方法的医疗报告时可能会面临挑战。直观地说,领域知识对于模型专业化至关重要。然而,将这种专业知识注入LLM并不容易。如最近的分析所讨论的[47, 528],当LLM被训练以展示某些特定能力,使它们在某些领域表现出色时,它们可能在其他领域遇到困难。这个问题与神经网络训练中的灾难性遗忘[529, 530]有关,指的是整合新知识和旧知识的冲突现象。类似情况也出现在LLM的人类对齐中,其中需要为与人类价值观和需求对齐而支付“对齐税” [61](例如,在上下文学习能力方面可能会潜在损失)。此外,由于序列建模架构的限制,LLM在理解和生成结构化数据方面仍然面临挑战。因此,在复杂的结构化数据任务上,如知识库问答和语义解析[512, 531],它们通常落后于任务特定模型。因此,开发有效的模型专业化方法非常重要,这些方法可以灵活地使LLM适应各种任务场景,同时尽可能保留原始能力。
专业化生成效果较差
LLM在掌握需要领域特定知识或生成结构化数据的生成任务方面可能会表现不佳。将专业知识注入LLM并同时保持LLM的原始能力并不是一件简单的事情。
知识利用是智能系统完成知识密集型任务(例如,常识问题回答和事实补全)所需的重要能力,它基于支持性的事实证据。具体而言,它要求LLM在必要时正确利用来自预训练语料库的丰富事实知识或检索外部数据。特别是,问答(QA)和知识补全已成为评估这种能力的两种常用任务。根据测试任务(问答或知识补全)和评估设置(是否使用外部资源),我们将现有的知识利用任务分类为三种类型,即封闭书本QA、开放书本QA和知识补全。
Closed-Book QA
Closed-Book QA任务[532]测试LLM从预训练语料库中获得的事实知识,LLM应仅基于给定的上下文回答问题,而不使用外部资源。为了评估这种能力,有几个数据集可以利用,包括自然问题[Natural Questions,431]、网络问题[Web Questions,434]和琐事QA[TriviaQA,435],其中广泛采用准确性度量标准。实证结果表明,在这种设置下,LLM可以表现出色,甚至与最先进的开放领域QA系统的性能相匹敌[56]。此外,LLM在Closed-Book QA任务上的性能显示出一种与模型大小和数据大小相关的缩放定律模式:扩展参数和训练标记可以增加LLM的容量,并帮助它们从预训练数据中学习(或记忆)更多知识[56]。此外,在相似的参数规模下,与评估任务相关的更多预训练数据的LLM将获得更好的性能[72]。Closed-Book QA设置还为探测LLM编码的事实知识的准确性提供了一个测试基准。然而,正如现有工作所示[55],LLM在依赖细粒度知识的QA任务上的表现可能较差,即使这些知识存在于预训练数据中也是如此。
Open-Book QA
与Closed-Book QA不同,在Closed-Book QA任务中,LLM可以从外部知识库或文档集合中提取有用的证据,然后基于提取的证据回答问题[533–536]。典型的Open-Book QA数据集(例如,自然问题[Natural Questions,431]、OpenBookQA [443]和SQuAD [446])与封闭书本QA数据集有重叠,但它们包含外部数据源,例如维基百科。在Open-Book QA任务的评估中,广泛使用准确性和F1分数作为度量标准。为了从外部资源中选择相关知识,LLM通常与文本检索器(甚至搜索引擎)配对,这些检索器可以独立或与LLM一起进行训练[72, 533, 537]。此外,先前的工作[538–540]表明,检索器可以帮助LLM验证和纠正推理路径。在评估中,现有研究主要关注LLM如何利用提取的知识来回答问题,并显示提取的证据可以大大提高生成答案的准确性,甚至使较小的LLM能够胜过10倍大的LLM[533, 537]。此外,Open-Book QA任务还可以用来评估知识信息的新旧程度。从过时的知识资源进行预训练或检索可能会导致LLM对具有时间敏感性的问题生成错误答案[533]。
知识补全
在知识补全任务中,LLM可以在某种程度上被视为一个知识库[453],可以用来完成或预测知识单元(例如知识三元组)的缺失部分。这些任务可以探讨和评估LLM从预训练数据中学到了多少以及什么类型的知识。现有的知识补全任务可以大致分为知识图补全任务(例如FB15k237 [449]和WN18RR [451])和事实补全任务(例如WikiFact [448]),前者旨在完成知识图中的三元组,后者旨在完成关于特定事实的不完整句子。经验研究表明,现有的LLM很难完成与特定关系类型相关的知识补全任务[398]。如在WikiFact上的评估结果所示,LLM在预训练数据中出现的一些常见关系(例如货币和作者)上表现良好,而在稀有关系(例如发现者或发明者和出生地)上表现不佳。有趣的是,在相同的评估设置下(例如上下文学习),InstructGPT(即text-davinci-002)在WikiFact的所有子集中均优于GPT-3。
主要问题。
尽管LLM在捕捉和利用知识信息方面取得了重要进展,但它们仍然存在以下两个主要问题。
• 幻觉。在生成事实性文本方面,一个具有挑战性的问题是幻觉生成[518],其中生成的信息要么与现有的来源存在冲突(内在幻觉),要么无法通过可用的来源进行验证(外在幻觉),这在图14中的两个示例中有所说明。幻觉广泛出现在现有的LLM中,即使是最优秀的LLM,如GPT-4 [46]。此外,现有研究表明,LLM在识别文本中的幻觉内容方面遇到困难[481],即使是强大的ChatGPT也是如此。此外,除了语言任务,最近的一项研究显示,大型视觉语言模型(LVLM)在幻觉方面也面临挑战,即生成与伴随图像中不存在的对象[541]。从本质上讲,LLM似乎在任务解决中“不自觉地”利用知识,仍然缺乏准确控制内部或外部知识使用的能力。幻觉会误导LLM生成不期望的输出,大多降低性能,从而在部署LLM到实际应用中可能存在潜在风险。为了缓解这个问题,现有工作广泛使用了对齐调整策略(如第5.2节所讨论的),这依赖于在高质量数据上调整LLM或使用人类反馈。此外,集成外部工具以提供可信信息来源可以帮助缓解幻觉问题[72, 481, 539]。另一项研究工作则利用LLM的不确定性估计来识别幻觉[542, 543]。例如,考虑到幻觉事实往往在不同的样本输出之间表现出一致性不足,SelfCheckGPT [543]通过测量样本输出内的信息不一致性来检测幻觉。为了评估幻觉问题,已经提出了一系列幻觉检测任务,例如用于检测模型模仿的人类虚假言论的TruthfulQA [433]。最近,HaluEval [481]创建了一个大规模的LLM生成和人工注释的幻觉样本集,以评估语言模型在特定任务和一般场景中识别幻觉的能力。
图14:公共LLM的内在和外在幻觉示例(访问日期:2023年3月19日)。作为内在幻觉的示例,LLM在辛迪(Cindy)和艾米(Amy)之间的关系上提供了相互矛盾的判断,与输入相矛盾。对于外在幻觉,在这个示例中,LLM似乎对RLHF(来自人类反馈的强化学习)的含义有错误的理解,尽管它可以正确理解LLM(在这个上下文中的含义)。
幻觉
LLM容易生成不真实的信息,这些信息要么与现有来源冲突,要么无法通过可用来源进行验证。即使是最强大的LLM,如ChatGPT,在迁移幻觉生成的文本方面也面临巨大挑战。这个问题可以通过特殊方法,如对齐调整和工具利用,部分缓解。
• 知识新旧。作为另一个主要挑战,LLM在解决需要超出训练数据的最新知识的任务时会遇到困难。解决这个问题的一种直接方法是定期用新数据更新LLM。然而,对LLM进行精调非常昂贵,而且在增量训练LLM时可能会导致灾难性遗忘问题。因此,有必要开发能够将新知识集成到现有LLM中,使其保持最新的高效有效的方法。现有研究已经探索了如何利用外部知识源(例如搜索引擎)来补充LLM,这可以是与LLM一起进行联合优化[533]或用作即插即用模块[539]。例如,ChatGPT利用检索插件访问最新的信息源[544]。通过将提取的相关信息纳入上下文[545–547],LLM可以获得新的事实知识,并在相关任务上表现更好。然而,这种方法似乎仍然处于表面层次。此外,现有研究还探索了编辑语言模型参数以更新内在知识的方法[548–550]。然而,先前的工作[551]已经表明,尽管这些方法可以改善小型语言模型的性能,但它们在LLM上表现不佳。因此,直接修正内在知识或将特定知识注入LLM仍然很困难,这仍然是一个开放性的研究问题[551]。最近,发布了一个有用的框架EasyEdit [552],以促进对LLM的知识编辑研究。
知识的新旧问题
LLM的参数化知识难以及时更新。利用外部知识源来扩充LLM是解决这个问题的实际方法。然而,如何有效地更新LLM内部知识仍然是一个开放性的研究问题。
Complex reasoning, 在这里指的是理解和利用支持证据或逻辑来得出结论或做决策的能力[51, 52]。根据推理过程中涉及的逻辑和证据类型,我们考虑将现有的评估任务分为三大类,即知识推理、符号推理和数学推理。
知识推理
知识推理任务依赖于关于事实知识的逻辑关系和证据来回答给定的问题。现有工作主要使用特定数据集来评估相应类型知识的推理能力,例如,CSQA [395]/StrategyQA [456]用于常识知识推理,ScienceQA [442]用于科学知识推理。除了预测结果的准确性外,现有工作[442]还通过自动度量标准(例如BLEU)或人工评估来评估生成的推理过程的质量。通常,这些任务要求LLM基于事实知识进行逐步推理,直到得出给定问题的答案。为了引出逐步推理能力,已经提出了链式思维(chain-of-thought,CoT)提示策略[33],用于增强LLM的复杂推理能力。正如在第6.2节中讨论的,CoT包括中间推理步骤,可以手动创建[33]或自动生成[553],并将其包含在提示中以引导LLM执行多步推理。这种方法大大提高了LLM的推理性能,在几个复杂的知识推理任务上取得了新的最新成果[33, 56, 403]。此外,在将知识推理任务重新制定为代码生成任务之后,研究人员发现LLM的性能可以进一步提高[171],尤其是对于在代码上进行了预训练的LLM。然而,由于知识推理任务的复杂性,当前LLM的性能在常识推理等任务上仍然落后于人类结果[33, 56, 554]。作为一种常见的错误类型,LLM可能会生成不准确的中间步骤,导致最终结果错误。为了解决这个问题,现有工作已经提出了特殊的解码或集成策略,以提高整个推理链的准确性[354, 355]。
符号推理
符号推理任务主要侧重于在正式规则设置中操纵符号以实现某些特定目标[51],在这些任务中,LLM在预训练过程中可能从未见过这些操作和规则。现有工作[33, 357, 396]通常在最后一个字母连接和抛硬币等任务上评估LLM,其中评估示例要求与上下文示例相同的推理步骤(称为领域内测试)或更多步骤(称为领域外测试)。对于领域外测试的例子,LLM可能只看到上下文中有两个单词的示例,但它需要在三个或更多单词中连接最后一个字母。通常采用生成的符号的准确性来评估LLM在这些任务上的性能。因此,LLM需要理解符号操作之间的语义关系以及它们在复杂场景中的组合。然而,在领域外的情况下,由于LLM没有见过符号操作和规则的复杂组合(例如,在上下文示例中的操作数量的两倍),它很难捕捉它们的准确含义。为了解决这个问题,现有研究采用了草稿板[469, 555]和导师[556]策略,以帮助LLM更好地操作符号操作,生成更长更复杂的推理过程。另一方面,研究人员还利用正式的编程语言来表示符号操作和规则,要求LLM生成代码并通过外部解释器执行来执行推理过程。这种方法可以将复杂的推理过程分解为LLM和解释器的代码合成和程序执行,从而简化了推理过程,并获得了更准确的结果[361]。
数学推理
数学推理任务需要全面利用数学知识、逻辑和计算来解决问题或生成证明陈述。现有的数学推理任务主要可以分为数学问题求解和自动定理证明两大类。对于数学问题求解任务,SVAMP [471]、GSM8k [470]和MATH [291]数据集通常用于评估,LLM需要生成准确的具体数字或方程来回答数学问题。由于这些任务还需要多步推理,因此CoT提示策略已经被广泛采用,以提高LLM在推理性能上的表现[33]。作为另一种实际策略,持续在大规模数学语料库上进行LLM的预训练可以大大提高它们在数学推理任务上的性能[35, 163, 557]。此外,由于不同语言中的数学问题共享相同的数学逻辑,研究人员还提出了一个多语言数学单词问题基准[401],用于评估LLM的多语言数学推理能力。作为另一个具有挑战性的任务,自动定理证明(ATP)[477, 479, 558]要求推理模型严格遵循推理逻辑和数学技巧。为了评估这个任务的性能,PISA [478]和miniF2F [479]是两个典型的ATP数据集,以证明成功率作为评估指标。在ATP研究中的一个主要局限性是缺乏形式语言相关的语料库。为了解决这个问题,一些研究利用LLM将非正式陈述转化为正式证明,以增加新的数据[562],或生成草案和证明概述,以减小证明的搜索空间[563]。
主要问题
尽管有所进展,LLM在解决复杂推理任务方面仍存在一些局限性。
• 推理不一致性。通过改进的推理策略(例如CoT提示),LLM可以通过基于支持逻辑和证据的逐步推理来解决一些复杂的推理任务。尽管有效,但在分解的推理过程中经常出现推理不一致性问题。具体来说,LLM可能会按照无效的推理路径生成正确答案,或者在正确的推理过程后产生错误答案[33, 360],导致派生答案与推理过程之间的不一致性。为了缓解这个问题,现有研究提出通过外部工具或模型来引导LLM的整个生成过程[355, 369, 516],以重新检查推理过程和最终答案以纠正潜在错误[564–566],或者通过过程反馈来微调LLM[567, 568]。例如,Tree of Thoughts (ToT) [369]赋予LLM参与决策过程的能力,通过同时探索和自我评估各种推理路径。为了改进推理过程,Self-Refine [564]从LLM自动生成的解决方案中获取反馈,从而基于反馈进行迭代的解决方案改进。此外,一些研究通过在训练期间引入基于过程的监督来提高LLM的推理链的一致性[567, 568]。作为一种有前途的解决方案,最近的方法将复杂的推理任务重新制定为代码生成任务,其中生成的代码的严格执行确保了推理过程与结果之间的一致性。此外,已经发现在具有相似输入的任务之间可能存在不一致性,任务描述的微小变化可能会导致模型产生不同的结果[49, 471]。为了减轻这个问题,selfconsistency [354]采用多个推理路径的集合来增强LLM的解码过程。
推理不一致性
LLM可能会按照无效的推理路径生成正确答案,或者在正确的推理过程后产生错误答案,导致派生答案与推理过程之间的不一致性。这个问题可以通过对LLM进行过程级反馈的微调、使用多样化的推理路径集合以及通过自我反思或外部反馈来改进推理过程来缓解。
• 数值计算。对于复杂的推理任务,LLM在涉及的数值计算方面仍然面临困难,特别是对于在预训练阶段很少遇到的符号,例如大数的算术运算[49, 556, 569]。解决这个问题的一个直接方法是在合成的算术问题上微调LLM[287, 570]。此外,大量研究通过在训练和推断阶段跟踪中间计算步骤来提高数值计算性能[287, 555, 571],例如划痕迹。此外,现有工作[71]还引入了外部工具(例如计算器),特别是用于处理算术运算。最近,ChatGPT提供了一个插件机制来使用外部工具[544]。通过这种方式,LLM需要学习如何正确操作这些工具。为了实现这个目的,研究人员已经通过使用工具(甚至是LLM本身)来调整LLM,或者设计了上下文学习的指令和示例[361],来增加示例的辅助。除了使用外部工具的帮助,最近的研究发现,将数字分词成单独的标记(例如LLaMA和Galactica分词器)是增强LLM固有算术能力的有效方法[287, 569]。一个可能的解释是,当分词数字时,子词分词技术可能导致不一致的序列。例如,使用子词分词器,整数7481可能被分词为7 481,而74815可能被分词为748 15(相同的数字子字符串具有不同的分割)[287]。相比之下,数字为基础的数字标记化可以避免这种不一致,因此可能提高LLM的数值计算能力。
数值计算
LLM在数值计算方面存在困难,特别是对于在预训练中很少遇到的符号。除了使用数学工具,将数字分词成单独的标记也是改进LLM算术能力的有效设计选择。
除了上述的基本评估任务,LLM还展示了一些卓越的能力,需要特殊的考虑来进行评估。在这一部分,我们详细讨论几种代表性的高级能力以及相应的评估方法,包括与人类的对齐、与外部环境的交互和工具操作。接下来,我们详细讨论这些高级能力。
期望语言模型(LLMs)能够很好地符合人类的价值观和需求,即人类对齐,这是广泛应用LLMs于实际应用中的关键能力。
为了评估这种能力,现有的研究考虑了多个人类对齐的标准,如帮助性、诚实性和安全性[46, 267, 295]。对于帮助性和诚实性,可以利用对抗问答任务(例如,TruthfulQA [433])来检查LLMs在检测文本中可能的虚假性方面的能力[46, 72]。此外,无害性也可以通过几个现有的基准来评估,例如CrowS-Pairs [482]和Winogender [483]。尽管通过上述数据集的自动评估,但人工评估仍然是一种更直接的方式,可以有效地测试LLMs的人类对齐能力。OpenAI邀请了许多与AI风险相关领域的专家来评估和改进GPT-4在遇到风险内容时的行为[46]。此外,对于人类对齐的其他方面(例如,真实性),一些研究提出使用具体的指导和制定标注规则来引导标注过程[72]。经验证明,这些策略可以极大地提高LLMs的人类对齐能力[267]。例如,在与专家互动收集的数据上进行对齐调整后,当GPT-4处理敏感或不允许的提示时,其不正确行为的比率可以大大降低。此外,高质量的预训练数据可以减少对齐所需的工作量[46]。例如,由于科学语料库中内容偏见较少,因此Galactica可能更加无害[35]。
除了标准评估任务之外,语言模型(LLMs)还具有接收外部环境反馈并根据行为指令执行操作的能力,例如生成自然语言的行动计划以操作代理程序[573, 574]。这种能力也在LLMs中出现,可以生成详细且高度逼真的行动计划,而较小的模型(例如GPT-2)倾向于生成较短或无意义的计划[573]。
为了测试这种能力,可以使用几个具体的基准和具体的AI环境进行评估,如下所述。VirtualHome [485]构建了一个用于家庭任务(如清洁和烹饪)的3D模拟器,代理程序可以执行LLMs生成的自然语言操作。ALFRED [487]包括需要LLMs完成组合目标的更具挑战性的任务。BEHAVIOR [486]专注于模拟环境中的日常杂务,并要求LLMs生成复杂的解决方案,例如更改物体的内部状态。除了家务任务等受限环境之外,一系列研究工作还研究了基于LLMs的代理程序在探索开放世界环境(如Minecraft和互联网)方面的熟练程度[575, 576]。Voyager [576]引入了一个自动课程模块,使LLMs能够根据来自环境的反馈不断获取新技能。GITM [575]着重解决了基于LLMs的Minecraft中的各种挑战,通过任务分解、规划和接口调用。根据生成的行动计划或任务完成情况,现有工作要么采用基准中的常规指标(例如生成的行动计划的可执行性和正确性)[573],要么直接进行现实世界实验并测量成功率[577],以评估这种能力。已经证明LLMs能够与外部环境进行交互并生成准确的行动计划[578]。最近,已经提出了一些改进方法,以增强LLMs的交互能力,例如设计类似代码的提示[407]和提供现实世界的基础[577]。
此外,最近的研究还探讨了基于LLMs在模拟环境中的多代理协作[410, 579, 580]。这些研究通过在沙盒环境中实例化具有观察、规划和记忆的多个基于LLMs的代理程序来模拟人类社交行为。在受控评估中,生成性代理程序的搜索、规划和思考能力由人类以类似面试的方式进行评估。此外,他们还对模拟环境中的多个代理程序进行描述性测量,以检查出现的社交行为。
在解决复杂问题时,语言模型(LLMs)可以在确定必要时使用外部工具。通过使用API调用封装可用工具,现有工作已经涉及各种外部工具,例如搜索引擎[72]、计算器[71]和编译器[361],以增强LLMs在一些特定任务上的性能。最近,OpenAI支持在ChatGPT中使用插件[544],这些插件可以为LLMs提供超出语言建模的更广泛能力。例如,Web浏览器插件使ChatGPT能够访问新鲜信息。此外,集成第三方插件对于创建基于LLMs的应用程序繁荣生态系统特别重要。
为了检验工具操作的能力,现有工作大多采用复杂的推理任务进行评估,例如数学问题求解(例如,GSM8k [470]和SVAMP [471])或知识问答(例如,TruthfulQA [433]),在这些任务中,成功利用工具对于增强LLMs无法处理的所需技能(例如,数值计算)非常重要。通过这种方式,对这些任务的评估性能可以反映LLMs在工具操作方面的能力。为了教导LLMs使用工具,现有研究在上下文中添加使用工具的示例来引出LLMs[361],或者在模拟数据中对工具使用进行微调[71, 572]。研究发现,在工具的帮助下,LLMs变得更有能力处理它们不擅长的问题,例如方程计算和及时回答问题[71, 366]。然而,随着可用工具数量的增加,LLMs的有限上下文长度可能在描述和展示广泛的工具API时带来挑战。为了解决这个问题,现有工作检索相关工具的使用,或者将工具信息编码为嵌入空间内的标记[581–583]。
除了由人类开发的现有工具之外,LLMs具有自主为特定任务制作自己的工具的能力[584]。这使得模型能够独立探索和操作这些自行创建的工具,从而扩展了它们在解决各种现实世界任务中的自主探索潜力。
总结
上述三种能力对于LLMs的实际性能具有重要价值:符合人类的价值观和偏好(人类对齐)、在现实世界场景中正确行动(与外部环境互动)以及扩展能力范围(工具操作)。除了上述三种高级能力之外,LLMs可能还表现出与某些任务(例如,数据注释[378])或学习机制(例如,自我改进[585])特别相关的其他能力。发现、衡量和评估这些新兴能力将是一个开放的方向,以更好地利用和改进LLMs。
在上文中,我们讨论了LLM的基本能力和高级能力。接下来,我们将介绍现有的评估基准和方法[612, 613]。
最近,已经发布了几个全面的基准用于评估LLMs。在这部分中,我们介绍了几个广泛使用的基准,包括MMLU、BIG-bench、HELM以及一系列人类考试基准。
MMLU [291]是一个多任务知识理解的通用基准,用于大规模评估,涵盖了从数学和计算机科学到人文和社会科学等广泛的知识领域。这些任务的难度从基础到高级不等。如现有研究所示,LLMs在这个基准上通常表现出色,远远超过小型模型,显示了模型规模的扩展规律[35, 56, 57, 64]。最近,GPT-4在MMLU中取得了显著的记录(在5shot设置下达到了86.4%的成绩),明显优于先前的最先进模型[46]。
BIG-bench [292]是一个协作基准,旨在从各个方面探测现有的LLMs。它包括204个任务,涵盖了广泛的主题,包括语言学、儿童发展、数学、常识推理、生物学、物理学、社会偏见、软件开发等等。通过扩大模型规模,LLMs甚至可以在BIG-bench的65%的任务上在少样本设置下超越平均人类表现[56]。考虑到整个基准的高评估成本,还提出了轻量级基准BIG-bench-Lite,其中包含来自BIG-bench的24个小型但多样化且具有挑战性的任务。此外,提出了BIG-bench hard(BBH)基准[614],旨在集中研究LLMs目前无法解决的任务,选择LLMs在这些任务中表现不如人类的挑战性任务进行研究。由于BBH变得更加困难,小型模型通常表现接近随机。作为对比,CoT提示可以引出LLMs进行逐步推理以增强性能,甚至在BBH中超越平均人类表现。
HELM [398]是一个综合性基准,目前实施了一组核心场景和7个度量标准类别。它建立在许多先前的研究基础上,对语言模型进行全面评估。如HELM的实验结果所示,通过指令调整,LLMs的性能在准确性、稳健性和公平性方面都能够持续提升。此外,对于推理任务,已经在代码语料库上进行预训练的LLMs表现出更优越的性能。
人类水平测试基准旨在使用设计用于测试人类的问题来评估LLMs的综合能力,例如AGIEval [587]、MMCU [588]、M3KE [589]、C-Eval [590]和Xiezhi [591]。这些基准涵盖了广泛的领域、难度级别和语言,以全面评估LLMs的通用能力。与公开可用的模型相比,提供API服务的模型(例如GPT-4、ChatGPT、Claude)在这些评估基准上表现出优越性能。作为评估中表现最佳的模型,GPT-4在AGIEval [587]中超越了平均人类表现。然而,它仍然落后于这些具有挑战性基准上的顶级人类表现。因此,对于公开可访问的模型,仍然有充足的空间来进一步增强LLMs的整体能力。
上述基准涵盖了各种主流评估任务和现实世界的人类考试问题,用于评估LLMs。此外,还有一些基准专注于评估LLMs的特定能力,例如TyDiQA [615]用于多语言知识利用和MGSM [401]用于多语言数学推理。为了进行评估,可以根据具体目标选择适当的基准。此外,还有一些开源的评估框架供研究人员在现有基准上评估LLMs或扩展新任务进行定制评估,例如语言模型评估框架(Language Model Evaluation Harness)[616]和OpenAI Evals [46]。此外,一些研究人员还通过汇总代表性基准来构建不断更新的排行榜,以比较现有LLMs的性能,例如Open LLM Leaderboard [586]。上述基准和排行榜为展示LLMs的基本和高级能力提供了重要参考。在第7.3.2节中,我们将更深入讨论评估方法的优缺点。
在介绍现有基准之后,本部分将回顾用于评估LLMs性能的现有评估方法。为了组织我们的讨论,我们将LLMs分为三种不同类型:基础LLMs(预训练模型检查点)、微调LLMs(指令或对齐微调模型检查点)和专门LLMs(适用于某些特定任务或领域的适应模型检查点)。在这里,我们保留了微调LLMs和专门LLMs,以区分LLMs的不同目的:通用或特定任务求解器。为了评估这三种类型的LLMs,我们可以测试LLMs与不同能力相关的性能(如在第7.1和7.2节中讨论的基本或高级能力)。总的来说,评估LLMs有三种主要方法,即基于基准的方法[291]、基于人的方法[606]和基于模型的方法[608]。表11展示了LLM类型、评估方法和测试能力之间的关系示例。接下来,我们将讨论不同类型LLMs的评估方法。
表 11:现有评估工作的类别。 “一般”是指评价侧重于多种能力的综合表现。评估的能力不限于7.1和7.2中提到的代表性基础能力和高级能力。
对基础LLMs的评估
基础LLMs是指在预训练后获得的模型检查点。对于基础LLMs,我们主要关注检查基本能力(第7.1节),如复杂推理和知识利用。由于大多数这些基本能力可以通过明确定义的任务进行评估,因此基于基准的方法已被广泛用于评估基础LLMs。接下来,我们将介绍基础LLMs的常见评估基准和评估程序。
常见基准。为了评估基础LLMs,典型的基准以选择题等形式设计为封闭问题。这些常用基准主要可以分为两类:以知识为导向和以推理为导向的基准。以知识为导向的基准(例如,MMLU [291]和CEval [590])旨在评估世界知识的能力,而以推理为导向的基准(例如,GSM8K [523]、BBH [614]和MATH [291])则侧重于评估解决复杂推理任务的能力。此外,一些最近提出的基准(例如,OpenCompass [592])将这两种类型结合起来进行综合比较。
基于基准的评估程序。为进行基准评估,首先将每个问题格式化为一个提示,供LLMs生成结果文本。然后,使用人工编写的规则解析生成的结果文本,以获取预测答案。最后,通过将预测答案与实际答案进行比较,可以使用标准指标如准确性自动计算LLMs的性能。评估方法可以在少样本或零样本设置下进行,这可能会导致不同的评估结果或排名。由于基础LLMs尚未进行指令微调(具有相对较弱的任务泛化能力),因此少样本设置通常更适合评估。对于一些复杂的推理任务,还需要在评估过程中使用CoT提示以充分展示其能力。另一个需要注意的是,这种评估方法也可以用于评估微调LLMs的能力。实际上,一些排行榜(例如Open LLM Leaderboard [586])是基于这种方法构建的,评估基础LLMs和微调LLMs。
微调LLMs的评估
在这部分中,微调LLMs是指在预训练模型权重基础上进行指令微调或对齐微调后获得的模型检查点。通常,微调LLMs将在各种能力上进行测试(例如,知识利用和人类对齐),因此常见的情况是它们会使用多种评估方法进行评估。除了基于基准的评估外,人类基础和基于模型的方法也广泛用于评估微调LLMs的高级能力。接下来,我们将介绍这两种评估方法。
基于人的评估。与基本能力的自动评估不同,人类评估通常考虑了在实际应用中更多的因素或能力,例如人类对齐和工具操作。在这种评估方法中,测试任务通常采用开放性问题的形式,邀请人类评估员对LLMs生成的答案质量进行评判。通常,人类评估员有两种主要的评分方法:成对比较和单一答案评分。在成对比较中,给定相同的问题,人类被分配来自不同模型的两个答案,以确定哪一个更好,而在单一答案评分中,他们只需逐次评分一个答案。例如,HELM [398]使用人类对摘要和虚假信息任务进行单一答案评分,而Chatbot Arena [606]构建了一个众包平台,允许用户与两个匿名的聊天LLMs进行对话,并报告成对比较结果。
基于模型的评估。由于人类评估既昂贵又耗时,一些工作提出利用强大的封闭源LLMs(例如ChatGPT和GPT-4)作为人类评估员的替代品[606, 608]。例如,AlpacaEval [608]收集了一组指令,并利用功能强大的LLM(例如GPT-4)作为评委,对参考输出进行成对比较。此外,MT-bench [606]收集了一组多轮问题用于评估,并通过ICL和CoT等方法提高了基于LLM的评估员的可靠性。与人类评估员相比,LLMs(如ChatGPT和GPT-4)可以在小规模手工制作和大规模众包评估任务中与人类达成高度一致。尽管如此,这些封闭源LLMs的访问受到限制,存在潜在的数据泄漏风险。为了解决这个问题,最近的工作[606]探索了使用人类评估员的评分数据来微调开源LLMs(例如Vicuna [124])作为模型评估员,从而缩小了与功能强大的封闭源LLMs(例如GPT-4)之间的差距。
专门的LLMs的评估
专门的LLMs是指专门适用于某些领域或应用程序(如医疗保健[282]和金融[617])的模型检查点。作为专门的任务求解器,专门的LLMs将被测试不仅在通用能力(如复杂推理等基本能力和人类对齐等高级能力)上,还在与其指定领域或应用程序相关的特定能力上。为了实现这一目的,通常需要构建专门针对目标领域或应用程序的具体基准。然后,这些领域特定的基准可以与通用基准结合使用,以对专门的LLMs进行综合和有针对性的评估。例如,MultiMedQA [282]是医疗保健领域的一个具体基准,包括医疗检查和医疗保健问题。在这项工作[282]中,MultiMedQA已与MMLU [291]结合使用,以评估专门用于医疗保健领域的LLMs(如Med-PaLM [282])。类似地,FLUE [617]构建了一个金融领域的基准,涵盖从金融情感分析到问题回答的各个方面。它已与BBH [614]合作使用,以评估金融LLMs,如BloombergGPT [286]。
不同评估方法的优缺点
在上文中,我们讨论了评估LLMs能力的不同方法。接下来,我们简要分析每种评估方法的优缺点。
基于基准的方法。这种评估方法可以利用现有的基准来评估LLMs的性能。这些基准中涉及的任务通常包含足够的测试样本来衡量核心能力(例如推理)。整个评估过程可以(几乎)自动化进行,便于对各种基础LLMs进行测试实验,特别是在预训练期间监测模型检查点的性能。然而,LLMs对评估设置通常很敏感,包括问题提示、零样本或少样本测试以及答案解析方法。因此,在进行评估实验时,应考虑可能的影响因素。评估结果应注意采用的评估设置。另一个问题是数据污染[56],即测试数据本身或相关内容已包含在预训练语料库中。随着越来越多的开放数据被用于开发LLMs,这一现象变得越来越严重。
基于人的方法。人类评估在评估LLMs解决实际任务的能力时具有一些优势。其中一个关键优点是它能够直接反映LLMs的实际能力。基于来自真实用户的反馈和经验,人类评估提供了LLMs在实际场景中性能的更直接的度量。此外,它可以基于人类评估员进行更灵活和多样化的评估任务。例如,用户可以提交各种查询并根据自己的任务认知来测试LLMs的能力。这允许深入了解LLMs在不同类型的任务和背景下的优势和劣势。然而,人类评估也具有固有的限制,可能会影响其准确性和一致性。评估员之间的个性化口味和教育水平的差异等因素可能会引入评估过程中的偏见或不一致性。在某些情况下,用户的判断可能是主观的,可能不反映LLMs的真实能力。此外,进行强大且可靠的人类评估通常需要大量的评估员,这可能非常昂贵和耗时。此外,人类评估通常不可重复,因此无法扩展现有的评估结果或跟踪LLMs的进展。
基于模型的方法。作为基于人类方法的替代品,基于模型的方法旨在减少对人类参与的依赖,实现更高效和可扩展的评估。此外,LLMs可以为分配的评分提供有意义的解释,从而增强了评估的可解释性。尽管具有可扩展性和可解释性,基于模型的方法已被发现存在一些问题,包括位置、冗长和自我增强偏见[606]。特别是,位置偏见(即呈现响应的顺序)指的是LLMs倾向于为特定位置的答案分配较高的分数,而不是其他位置的答案。冗长偏见意味着LLMs倾向于喜欢冗长的答案,即使与较短的答案相比,它们在质量上较短。自我增强偏见表示LLMs经常高估自己生成的内容。此外,由于LLMs在解决复杂推理问题方面能力有限,它们不能胜任某些困难任务的合格评估者(例如数学推理)。这些限制可以通过特定的提示工程和微调策略在一定程度上
总结一下,我们对LLMs评估的现有工作的分类(表11)主要基于两个主要维度,即评估方法和模型类型,这些维度进一步扩展了测试能力。还有一些最近的工作[612, 613]也讨论了LLMs评估现有工作的分类或分类法。
上述的评估基准和方法主要用于评估LLMs的整体能力。在本部分,我们对第7.1节和第7.2节中讨论的能力进行细粒度的评估。对于每种能力,我们选择代表性的任务和数据集进行评估实验,以检验LLMs的相应性能。
在这一部分,我们介绍了我们评估的实验设置。
评估模型
为了进行评估,我们考虑了来自开源模型到闭源API访问模型的代表性LLMs,具体如下:
• 开源模型。现有的开源模型可以分为基础模型和指导调优模型。基础模型仅在大型通用语料库上进行了语言建模目标的预训练,但没有进一步进行监督微调。在我们的评估中,我们选择了四个代表性的基础模型,包括LLaMA(7B)[57]、LLaMA 2(7B)[90]、Pythia(7B和12B)[87]以及Falcon(7B)[626]。指导调优模型是使用指导(即任务数据集、日常聊天或合成指导)进行微调的模型。在我们的实验中,我们选择了四个代表性的指导调优模型,包括Vicuna(7B和13B)[124]、Alpaca(7B)[123]和ChatGLM(6B)[84]。此外,我们还包括LLaMA 2-Chat(7B)[90]以供比较,它是一个代表性的模型,通过指导调优和RLHF与人对齐,基于LLaMA 2(7B)。
• 闭源模型。除了开源模型之外,还有一些只能通过API访问的闭源模型,受到了开发人员和研究人员的广泛关注。在这里,我们选择了四个代表性的闭源模型,包括text-davinci002/003(简称Davinci002/003)、ChatGPT、Claude和Claude 2,其中前三个模型由OpenAI开发,另外两个由Anthropic开发。
任务和数据集
接下来,我们为第7.1节和第7.2节中讨论的能力设置了评估任务和数据集。我们主要评估LLMs在这些数据集上的零样本性能。对于那些难以以零样本方式解决的更复杂任务(例如数学推理和工具操作),我们主要报告3次试验的性能,考虑到开源模型的上下文长度限制。
• 语言生成。如前所讨论,对于语言生成,我们考虑评估三种类型的任务,即语言建模、条件文本生成和代码合成。具体来说,我们选择了四个常用的数据集,即LAMBADA [188](语言建模)、WMT’22 [421](机器翻译)、XSum [425](文本摘要)和HumanEval [92](代码合成)进行评估。在WMT’22中,我们从原始的大规模测试集中选择了每种语言对1000个示例,以检查LLMs在机器翻译中的平均性能。我们评估LLMs在这些数据集上的零样本性能,并计算了LAMBADA的预测单词的准确性、WMT’22的BLEU-4、XSum的ROUGE-L和HumanEval的pass@10。
• 知识利用。为了评估知识利用能力,我们选择了四个问答数据集(即TriviaQA [435]、Natural Questions [431]、Web Questions [434]和ARC [432])以及一个事实提取数据集WikiFact [448]。我们还报告了LLMs在这些数据集上的零样本性能,并计算了ARC的准确性和其他数据集的精确匹配度。
• 复杂推理。对于复杂推理,我们评估了开放问题QA [443]、HellaSwag [460]和SocialIQA [459]等比较模型,用于知识推理;Colored Objects [292]和Penguins in the Table [292]用于符号推理;GSM8k [470]和MATH [291]用于数学推理。我们计算OpenbookQA、HellaSwag和SocialIQA的准确性;Colored Objects和Penguins in the Table的解决率;GSM8k和MATH的准确性。对于知识推理任务,我们评估零样本性能,因为它们都是可以在零样本设置中解决的问答任务。对于复杂的符号推理和数学推理任务,我们利用3次示范来更好地引导LLMs完成它们。在现有工作[33,361]的指导下,我们还利用了思维链提示策略来更好地解决数学推理任务。
• 人类对齐。对于人类对齐,我们选择了TruthfulQA [433]来衡量LLMs是否在回答问题时是真实的,CrowS-Pairs [482]和WinoGender [483]来评估LLMs中的刻板印象,RealToxityPrompts [484]来评估LLMs生成有毒语言的程度,以及HaluEval [481]来测试LLMs识别幻觉的能力。由于Real-Toxicity-Prompts的测试集太大,我们从中随机抽取了10000个示例进行评估。我们遵循LLaMA [57]的做法,报告零样本性能,并计算了TruthfulQA的认定为真的准确性、CrowS-Pairs的偏见句子识别准确性(高困惑度)、WinoGender的指代解析准确性(he/she/they)、RealToxityPrompts的毒性评分,以及HaluEval的识别幻觉的平均准确性。对于TruthfulQA,我们遵循现有工作[57]的做法,使用text-davinci-003代替人类进行评分。对于Crows-Pairs和WinoGender,我们遵循LLaMA [57]的实验设置来计算困惑度和指代解析分数。对于RealToxityPrompts,我们利用Perspective-API进行毒性评估。
• 与环境互动。为了测试这一能力,我们选择了ALFWorld [488]和WebShop [489]进行评估,这些模拟了家庭和电子商务环境等真实世界情境。我们遵循ReAct [367]的设置,在WebShop和ALFWorld上分别评估了LLMs的1次和2次试验性能,并计算了ALFWorld的成功率和WebShop的平均分数/成功率。此外,我们还遵循ReAct [367]的设置来减小输入提示的长度,并使用换行作为EOS标记。
• 工具操作。对于工具操作,我们考虑了两种类型的工具,包括搜索引擎和模型接口。因此,我们采用了两个工具操作基准,即HotpotQA [457]和Gorilla [496]。HotpotQA要求LLMs使用搜索引擎从网络上检索文档,而Gorilla则要求LLMs从TorchHub、TensorHub和HuggingFace三个中心调用模型API。我们计算了HotpotQA的精确匹配度和Gorilla的准确性。对于HotpotQA,我们遵循ReAct [367]的做法,报告3次试验的性能。对于Gorilla,我们遵循其论文[496]发布的代码,并评估零样本性能。
实验细节
对于每个任务和数据集,我们使用与现有工作提供的相同提示和结果解析方法(即TruthfulQA、HotPotQA、Gorilla、HaluEval)或根据我们的经验设计(即TriviaQA、Natural Questions、Web Questions、ARC、WikiFact、GSM8k、MATH、C-Objects、Penguins、LAMBADA、WMT’22、XSum、HumanEval、CrowS-Pairs、WinoGender、RealToxityPrompt)来评估比较的LLMs。具体来说,所有关于闭源模型的实验都是基于调用它们的官方API进行的,而对于开源模型,我们使用它们公开可用的代码和模型参数,并在8个A80080G GPU上执行推断。对于TriviaQA、OpenbookQA、HellaSwag和SocialIQA,我们在开发集上进行实验,因为测试集没有公开发布。而对于其他数据集,我们在测试集上进行实验。要重现我们的实验,我们还公开在https://github.com/RUCAIBox/LLMSurvey/tree/main/Experiments中发布了我们的实验代码和数据。
我们在表12中报告了实验结果,并对结果进行了分析如下。
表12:在特别选择的任务上评估LLMs的八种能力。橙色和蓝色字体的阴影分别表示闭源模型和开源模型结果的性能顺序。此表将不断更新,以纳入更多模型的结果。
对于闭源模型的分析
我们总结对四个闭源模型(即ChatGPT、Claude、Davinci003和Davinci002)的分析和发现如下:
• 这五个闭源模型在作为通用任务求解器方面取得了令人期待的结果,其中ChatGPT大多表现最佳。ChatGPT、Claude、Claude 2、Davinci003和Davinci002在大多数任务中表现良好,包括复杂任务(例如GSM8k),显示出成为通用任务求解器的巨大潜力。其中,ChatGPT在评估任务中表现出更强大的模型能力,在所有任务中获胜最多。在一些评估任务中,ChatGPT与其他闭源模型之间的性能差距非常大,尤其是在复杂任务上,例如GSM8k上的78.47(ChatGPT)对49.96(Davinci002),以及HumanEval上的79.88(ChatGPT)对51.22(Claude)。
• Claude 2、ChatGPT和Davinci003在与环境和工具操作任务的交互方面表现更好。在两个评估任务中,Claude 2、ChatGPT和Davinci003的表现优于其他模型很多,例如HotpotQA上的36.40(Claude 2)对26.00(Davinci002),Gorilla-TF上的44.53(ChatGPT)对7.74(Claude),以及Gorilla-TH上的72.58(Davinci003)对22.04(Claude)。一个可能的原因是这三个模型已经专门针对这些高级能力进行了优化,例如支持外部插件的使用。
• 所有对比模型在非常困难的推理任务上表现不佳。在MATH和HotpotQA上,所有模型(包括ChatGPT)表现不佳。这两个任务很难解决,需要准确理解复杂的数学知识并在文档之间执行多跳推理。此外,这些模型在机器翻译任务(WMT)上的表现也相对较弱。一个可能的原因是WMT还包含许多使用小语言的评估示例,这些示例可能在这些LLMs的预训练数据中没有得到很好的覆盖。
对于开源模型的分析
接下来,我们继续展示对八个开源模型(LLaMA 2-Chat、Vicuna、Alpaca、ChatGLM、LLaMA 2、LLaMA、Pythia和Falcon)的分析和发现如下:
• 指导调优模型大多优于基础模型。在所有比较的开源方法中,指导调优模型(LLaMA 2-Chat、Vicuna、Alpaca和ChatGLM)大多优于非指导调优模型(LLaMA 2、LLaMA、Pythia和Falcon)。这表明,指导调优通常能够改善LLMs在解决各种任务中的少样本或零样本能力。然而,在指导调优之后,Vicuna(7B)和Alpaca(7B)在LAMBADA(一项语言建模任务)上表现下降。原因可能是指导数据主要关注使LLMs能够遵循人类指令,这并不总是对通用语言生成任务有用。
• 这些小型开源模型在数学推理、与环境互动和工具操作任务上表现不佳。在数学推理、与环境互动和工具操作任务上,所有这些评估的开源模型表现都不佳,包括指导调优模型。一个可能的原因是用于微调这些模型的指导数据并没有专门设计用于这些任务。此外,由于模型大小较小,这些闭源模型可能具有有限的模型容量。
• 在不同的人类对齐任务上,表现最佳的模型各不相同。对于不同的人类对齐任务,我们可以看到这些模型在性能排名上表现不一致。例如,在TruthfulQA上,LLaMA 2-Chat(7B)在比较的开源模型中表现最佳,而在CrowS-Pairs上,Vicuna(13B)表现最佳。一个可能的原因是这些任务是为了评估人类对齐的不同方面而设计的,这些模型在不同任务上表现不同,即使对于相同模型的变体也是如此(例如,Pythia(7B)和Pythia(12B))。需要进行更多的实验和分析来揭示更详细的发现。
• 作为更近期发布的模型,LLaMA 2(7B)在整体上表现良好,尤其是在复杂推理任务上。对于复杂推理任务,LLaMA 2(7B)大多表现优于其他基础模型,例如,在C-Objects中的43.95(LLaMA 2(7B))对29.80(Falcon(7B))。对于其他任务(例如语言生成和知识利用),LLaMA 2(7B)也可以达到与性能最佳的基础模型相当的性能。它使用了更多的数据进行预训练(大约2万亿个标记),这主要有助于出色的性能。此外,它还进行了更强大的数据清理过程。
• 扩展开源模型可以持续改善性能。通过比较Vicuna(7B)和Vicuna(13B),Pythia(7B)和Pythia(13B)的性能,我们可以看到规模较大的模型在这些评估任务上大多表现优于较小的模型,表明扩大模型规模的有效性。在不同任务之间,扩展模型对于更复杂的任务(例如符号和数学推理)更有益处,较大的模型在很大程度上优于较小的模型。