GitHub：GitHub - Mooler0410/LLMsPracticalGuide
本文提供了一份全面而实用的指南，供从事自然语言处理(NLP)下游任务的从业者和最终用户使用大型语言模型(LLMs)。我们从模型、数据和下游任务的角度，提供了对LLMs使用的讨论和见解。首先，我们介绍了当前GPT和BERT风格的LLMs。然后，我们讨论了预训练数据、训练数据和测试数据的影响。最重要的是，我们提供了一个详细的讨论，讨论了大型语言模型在各种自然语言处理任务中的使用和非使用情况，如知识密集型任务、传统的自然语言理解任务、自然语言生成任务、新兴能力和特定任务的考虑。我们提供了各种使用案例和非使用案例，以说明LLMs在实际场景中的实际应用和局限性。我们还尝试了解数据的重要性以及每个NLP任务所面临的具体挑战。此外，我们探讨了偏差对LLMs的影响，以及其他重要考虑因素，如效率、成本和延迟，以确保全面了解在实践中部署LLMs。这份全面的指南旨在为研究人员和从业者提供有价值的见解和最佳实践，以便在各种NLP任务中成功实现这些模型的部署。可在https://github.com/Mooler0410/LLMsPracticalGuide找到一个经过精选的实用指南资源列表，该列表会定期更新。
CCS概念: •计算方法学→自然语言处理；自然语言生成；机器翻译。
其他关键字和短语:大型语言模型、神经语言处理、实用指南、ChatGPT。
近年来，大型语言模型的快速发展正在彻底改变自然语言处理领域[12,128,131]。这些强大的模型已经展示了在解决各种NLP任务方面的巨大潜力，涵盖了从自然语言理解（NLU）到生成任务，甚至为实现人工智能（AGI）铺平了道路。然而，有效且高效地利用这些模型需要对它们的能力和限制，以及NLP中所涉及的数据和任务有一个实际的理解。
本文旨在为从业者和最终用户提供使用LLMs进行下游NLP任务的实际指南。该指南旨在提供实际建议，包括为何选择或不选择LLMs进行特定任务，以及如何选择最合适的LLM，考虑因素包括模型大小、计算要求和特定领域预训练模型的可用性。本文从实际角度全面了解LLMs，因此，为从业者和最终用户提供了成功利用LLMs为自己的NLP任务赋能所需的实际知识。
我们的工作结构如下。首先，我们通过讨论最重要的模型，如GPT风格和BERT风格架构，对LLMs进行了简要介绍。然后，我们从数据角度深入探讨了影响模型性能的关键因素，包括预训练数据、训练/调整数据和测试数据。最后，我们深入探讨了各种具体的NLP任务，提供了有关LLMs在知识密集型任务、传统NLU任务和生成任务中适用性的见解，以及这些模型具有的新兴能力和具有挑战性的现实场景。我们提供了详细的示例，以突显LLMs在实践中的成功用例和局限性。
为了分析大型语言模型的能力，我们将它们与微调模型进行了比较。目前，对于LLMs和微调模型，还没有普遍认可的定义。考虑到实际应用价值，在我们的文章中，我们将它们定义为：LLMs是在大量数据集上进行预训练而没有在特定任务数据上进行微调的巨型语言模型；微调模型通常是较小的语言模型，也进行了预训练，然后在较小的任务特定数据集上进行微调，以优化其在该任务上的性能。本文总结了以下使用LLMs的主要实用指南：
•自然语言理解。在面对分布不均的数据或仅有很少的训练数据时，利用LLMs的出色泛化能力。
•自然语言生成。利用LLMs的能力，为各种应用程序创建连贯、有上下文相关性和高质量的文本。
•知识密集型任务。利用LLMs中存储的广泛知识，完成需要特定领域专业知识或全球知识的任务。
•推理能力。理解并利用LLMs的推理能力，在各种环境中提高决策和问题解决能力。
这个部分提供了对最先进的LLM的简要介绍。这些模型在训练策略、模型架构和使用案例上存在差异。为了更清晰地了解LLM领域的情况，我们将它们分为两类：编码-解码或仅编码语言模型和仅解码语言模型。在图1中，我们展示了语言模型的详细演化过程。从这棵演化树中，我们得出以下有趣的观察结果：
a）仅解码模型逐渐主导了LLM的发展。在LLM发展的早期阶段，仅解码模型不像仅编码和编码-解码模型那么流行。然而，自2021年以来，随着具有变革性的LLM——GPT-3的推出，仅解码模型经历了显著的发展。同时，在BERT带来的初期爆炸性增长之后，仅编码模型逐渐消失了。
b）OpenAI在LLM方面一直保持着领先地位，现在和未来都有可能如此。其他公司和机构正在努力赶上OpenAI，开发与GPT-3和当前的GPT-4相当的模型。这种领导地位可能归因于OpenAI对技术路径的坚定承诺，即使在最初并没有得到广泛认可的情况下也是如此。
c）Meta在开源LLM方面做出了重要贡献，并推动LLM的研究。在考虑对开源社区的贡献时，特别是与LLM相关的贡献，Meta作为最慷慨的商业公司之一脱颖而出，Meta开发的所有LLM都是开源的。
d）LLM表现出向闭源的倾向。在LLM发展的早期阶段（2020年之前），大多数模型都是开源的。然而，随着GPT-3的推出，公司越来越倾向于闭源他们的模型，例如PaLM、LaMDA和GPT-4。因此，学术研究人员在LLM训练方面进行实验变得更加困难。结果，基于API的研究可能成为学术界的主要方法。
e) 编码器-解码器模型仍然具有前景，因为这种架构仍在积极探索中，并且大多数都是开源的。Google为开源编码器-解码器架构做出了重大贡献。然而，解码器模型的灵活性和多功能性似乎使得Google对这个方向的坚持不太有前途。
我们在表格中简要总结了每种类型的特征和代表性LLM模型。
由于自然语言数据易于获取并且无监督的训练范式已经被提出以更好地利用极大的数据集，这激励了自然语言的无监督学习。一种常见的方法是在考虑周围环境的情况下预测句子中的掩码单词。这种训练范式被称为遮蔽语言模型。这种训练方式使模型能够更深入地理解单词之间的关系以及它们使用的上下文。这些模型使用Transformer架构在大语料库中进行训练，并在许多NLP任务中取得了最先进的结果，如情感分析和命名实体识别。遮蔽语言模型的著名例子包括BERT [28]、RoBERTa [65]和T5 [84]。由于它们在各种任务中的成功，MLM已成为自然语言处理领域的重要工具。
尽管语言模型通常在架构上与任务无关，但这些方法需要在特定的下游任务数据集上进行微调。研究人员发现，扩展语言模型可以显著提高少样本甚至零样本的性能 [16]。对于更好的少样本和零样本表现，最成功的模型是自回归语言模型，它们通过给定前面的单词生成序列中的下一个单词来进行训练。这些模型已被广泛用于下游任务，如文本生成和问答。自回归语言模型的例子包括GPT-3 [16]、OPT [126]、PaLM [22]和BLOOM [92]。开创性的GPT-3首次通过提示和上下文学习展示了合理的少样本/零样本表现，从而展示了自回归语言模型的优越性。还有一些模型，例如CodeX [2]针对特定任务进行了优化，如代码生成，BloombergGPT [117]针对金融领域。最近的突破是ChatGPT，它专门为对话任务改进了GPT-3，从而在各种真实世界应用中实现了更具交互性、连贯性和上下文感知的对话。
在本节中，我们将讨论数据在选择下游任务的适当模型中所起的关键作用。数据对模型的效果的影响从预训练阶段开始，并持续到训练和推理阶段。
备注1：（1）在面对分布外数据（例如对抗性示例和领域转移）的下游任务时，LLM比微调模型具有更好的泛化能力。（2）当使用有限的注释数据时，LLM比微调模型更可取，而当有丰富的注释数据可用时，根据具体任务要求，两者都可以是合理的选择。（3）建议选择在与下游任务相似的数据领域中进行预训练的模型。
预训练数据在大型语言模型的开发中起着关键作用。作为LLM的卓越能力[5,47]的基础，预训练数据的质量、数量和多样性显着影响LLM的性能[124]。通常使用的预训练数据包括各种文本来源，包括书籍、文章和网站。这些数据经过精心策划，以确保对人类知识、语言细微差别和文化视角的全面代表性。预训练数据的重要性在于，它能够为语言模型提供丰富的单词知识、语法、句法和语义理解，并具备识别上下文和生成连贯响应的能力。预训练数据的多样性也在塑造模型的性能方面起着至关重要的作用，LLM的选择高度依赖于预训练数据的组成部分。例如，PaLM [22] 和 BLOOM [92] 在使用大量的多语种预训练数据的多语种任务和机器翻译方面表现出色。此外，PaLM通过将大量的社交媒体对话和图书语料库[22]结合到其预训练数据中，增强了其在问答任务中的表现。同样，GPT-3.5（code-davinci-002）的代码执行和代码补全能力得益于将代码数据整合到其预训练数据集中。总之，在选择用于下游任务的LLM时，建议选择在类似的数据领域中进行预训练的模型。
在部署用于下游任务的模型时，基于注释数据的可用性，有三种主要的情况需要考虑：零、少和丰富。在本节中，我们提供了适用于每种情况的合适模型的简明概述。
零标注数据：在没有标注数据的情况下，使用LLM在零样本设置中被证明是最合适的方法。LLM已被证明优于以前的零样本方法[120]。此外，由于不存在参数更新过程，语言模型参数保持不变，从而避免了灾难性遗忘[49]的发生。
少量标注数据：在这种情况下，少量样本直接并入LLM的输入提示中，这被称为上下文学习，并且这些示例可以有效地指导LLM对任务进行泛化。如[16]所报道，一次性和少量训练可以取得显著的进展，甚至可以与SOTA微调的开放领域模型的表现相匹配。通过扩展，LLM的零样本/少样本能力可以进一步提高[16]。另外，一些少样本学习方法被发明用于增强微调模型，如元学习[56]或迁移学习[88]。然而，由于微调模型规模较小且容易出现过拟合，与使用LLM相比，性能可能较差。
大量标注数据：对于特定任务有大量的标注数据可用，可以考虑使用微调模型和LLM。在大多数情况下，微调模型可以很好地拟合数据。尽管如此，LLM可以用于满足某些约束条件，如隐私[99]。在这种情况下，使用微调模型还是LLM是任务特定的，也取决于许多因素，包括所需性能、计算资源和部署约束。简而言之：LLM在数据可用性方面更为通用，而微调模型可以考虑在大量注释数据的情况下使用。
在为下游任务部署LLM时，我们经常面临着来自测试/用户数据与训练数据之间分布差异的挑战。这些差异可能涉及领域转移[132]、分布外变化[31]，甚至对抗性示例[82]。这些挑战显著阻碍了微调模型在实际应用中的有效性。微调模型适合于特定分布，对分布外数据的泛化能力较差。然而，LLM在面对这种情况时表现得非常出色，因为它们没有明确的拟合过程。此外，最近的进展进一步增强了语言模型在这方面的能力。来自人类反馈的强化学习（RLHF）方法显著增强了LLM的泛化能力[77]。例如，InstructGPT在各种任务的遵循指令方面表现出熟练程度，并偶尔遵守不同语言的指令，即使这些指令很少。同样，ChatGPT在大多数对抗性和分布外（OOD）分类和翻译任务上表现出一致的优势[109]。其在理解对话相关文本方面的优越性能导致其在DDXPlus数据集[101]上表现出色，该数据集是设计用于OOD评估的医疗诊断数据集。
在本节中，我们详细讨论了在各种下游NLP任务中使用LLM的用例和不适用用例，以及相应的模型能力。在图2中，我们将所有讨论总结为一个决策流程图，它可以作为在面对任务时进行快速决策的指南。
传统NLU任务是NLP中的一些基本任务，包括文本分类、命名实体识别（NER）、蕴含预测等。其中许多任务旨在作为更大的AI系统的中间步骤，例如NER用于知识图谱构建。
图2是选择LLM或微调模型用于用户NLP应用程序的决策流程。决策流程帮助用户评估他们手头的下游NLP应用程序是否符合特定条件，并基于该评估确定LLM或微调模型是否是其应用程序的最合适选择。在图中的决策过程中，Y表示满足条件，N表示不满足条件。最后一个条件的黄色圆圈的Y表示没有任何模型可以很好地处理这种应用程序。
备注2：在传统的NLU任务中，微调模型通常比LLM更好的选择，但在需要强大的泛化能力时，LLM可以提供帮助。
在大多数自然语言理解任务中，例如GLUE [106]和SuperGLUE [105]中的任务，如果这些任务有丰富的、良好注释的数据，并且在测试集中包含非常少的分布外样例，那么微调模型的表现仍然更好。对于不同的任务和数据集，小型微调模型和LLM之间的差距各不相同。
在文本分类任务中，大多数数据集上，LLM的表现略逊于微调模型。对于情感分析，例如在IMDB [69]和SST [94]上，微调模型和LLM表现相同。对于毒性检测这一标志性的文本分类任务，差距更大。所有的LLM都不能很好地完成这个任务，在CivilComments [13]上，最好的LLM甚至仅仅好于随机猜测 [59]。另一方面，大多数流行的微调模型可以获得更好的性能 [33]，而Perspective API3仍然是检测毒性的最佳选择。该API由基于多语言BERT模型的模型提供支持，该模型在公开的毒性数据和从该模型中提取的几个较小的单语言CNN上进行微调。这可能是因为毒性是由语言表达中的微妙差异所定义的，而大型语言模型无法仅仅依靠提供的输入准确地理解这个任务。
在其他一些任务中，性能差距的趋势也类似。对于自然语言推理（NLI）任务，在大多数数据集上，例如RTE [106]和SNLI [14]上，微调模型的表现比LLM更好，而在某些数据集上，例如CB [105]，LLM已经获得了与微调模型相当的性能[22]。对于问答（QA）任务，在SQuADv2 [86]、QuAC [21]和许多其他数据集上，微调模型具有卓越的性能，而在CoQA [87]上，LLM表现与微调模型一样好[22]。
在信息检索（IR）任务中，LLM尚未被广泛利用。一个主要原因是，IR任务在本质上与其他任务不同。没有自然的方法将成千上万个候选文本转换为LLM所需的少量/零样本形式。在MS MARCO（常规/TREC）[73]的现有评估结果中，基于微调模型的方法具有更好的性能[59]。在这个评估中，LLM以非传统的方式对段落进行排名，需要LLM逐个生成段落的概率。
对于一些低层次的中间任务，这些任务不是为普通用户而设计的，而是为高级任务而设计的，例如命名实体识别（NER）和依存分析，由于LLM的最新评估重点是实际任务，因此没有足够的结果。根据可用的评估结果，对于NER任务，CoNLL03 [89]仍然是LLM的挑战[81]，微调模型的性能大约是LLM的两倍。这些中间任务可能很快就会消失，因为LLM可以在没有这些中间任务的帮助下接管高级任务（例如编码任务的依存分析；某些文本生成任务的NER）。
简而言之，对于大多数传统的自然语言理解（NLU）任务，微调模型在基准数据集的性能和计算成本方面都是更好的选择。LLM的规模通常比微调模型大10倍甚至100倍。LLM在某些任务上表现不佳的一个可能原因是指令/提示的设计。将类似IR和句子标注的输入转换为少量/零样本指令形式并不容易。未来可能有更好的方法将语言模型适应传统的NLP任务。另一个有趣的发现是，在NLU任务中，经过微调的掩码语言模型（如T5[85]）比同样规模的大多数自回归语言模型更好，而一些最近的结果表明，通过扩展可以弥合这种差距[22]。
一个代表性的任务是杂项文本分类 [59]。与情感分析等经典的领域特定文本分类任务不同，杂项文本分类涉及到各种不同主题和类别，它们可能没有明确或强烈的关系。这更接近于现实世界的情况，难以使用fine-tuned models进行格式化。另一个是对抗性NLI（ANLI）[74]。这是一个由三个回合（R1，R2和R3）组成的困难数据集，由对抗性挖掘的自然语言推理问题组成。LLMs在ANLI上表现出了卓越的性能，特别是在R3和R2上。这两个例子展示了LLMs在传统NLP任务中表现出卓越的泛化能力，尤其是在面对分布不均匀、稀疏注释的数据时，超过了fine-tuned models。我们已经在上面的章节中讨论过这一点3.3
自然语言生成涵盖了两大主要类别的任务，目标是创建连贯、有意义和在语境中合适的符号序列。第一类着重于将输入文本转换为新的符号序列，例如段落摘要和机器翻译。第二类“开放式”生成旨在从头开始生成文本或符号，以准确匹配输入描述，例如编写电子邮件、撰写新闻文章、创作虚构故事和编写代码。
备注 3 由于其强大的生成能力和创造力，LLMs在大多数生成任务中显示出优越性。
对于摘要任务，虽然在传统的自动评估指标（如ROUGE [60]）下，大型语言模型与精调模型之间并没有显著优势，但人类评估结果表明，相较于精调模型，人类倾向于更喜欢大型语言模型生成的结果 [38, 127]。例如，在CNN/DailyMail [71]和XSUM [72]数据集上，像Brio [66]和Pegasus [125]这样的精调模型在ROUGE方面表现要比任何大型语言模型都要好得多，但像OPT [126]这样的大型语言模型在人类评估方面表现出更好的忠实度、连贯性和相关性等各个方面的表现 [127]。这证明了大型语言模型在摘要任务中的优越性。另一方面，这也意味着当前的摘要基准不包含高质量的摘要，或者自动度量指标不适用于摘要的评估。
在机器翻译领域，大型语言模型可以进行称职的翻译，尽管从一些自动度量指标如BLEU [78]的角度来看，其平均表现略逊于一些商业翻译工具 [45]。大型语言模型在将一些低资源语言文本翻译为英语文本方面表现尤其出色，例如在WMT'16的罗马尼亚语-英语翻译中，零样本或少样本的大型语言模型可以比SOTA精调模型表现更好 [22]。这主要是因为英语资源占据了预训练数据的主要部分。BLOOM [92]在更多的多语言数据上进行了预训练，从而在丰富资源和低资源翻译中都有更好的翻译质量。另一个有趣的发现是，BLOOM在罗曼语族语言中实现了良好的翻译质量，甚至可以对来自预训练数据中未包括的加利西亚语进行翻译。一个合理的解释是，同一语言组中的某些语言的文本可以帮助大型语言模型从相似性中学习更多。如果在预训练数据中加入更多的多语言文本，翻译能力可能会进一步提高。
此外，大型语言模型在开放式生成方面非常娴熟。其中一个例子是，大型语言模型生成的新闻文章几乎无法被人类区分出真假 [16]。大型语言模型在代码合成方面也非常擅长。无论是用于文本代码生成（例如HumanEval [18]和MBPP [7]）还是用于代码修复（例如DeepFix [39]），大型语言模型都可以表现出非常好的性能。GPT-4甚至可以通过Leetcode中25%的难题，这对大多数人类编码人员来说并不容易 [76]。通过在更多的代码数据上进行训练，大型语言模型的编码能力可以进一步提高 [22]。尽管在这些任务中表现良好，但大型语言模型生成的代码应该经过仔细的测试，以找出任何微小的错误，这是应用大型语言模型进行代码合成面临的主要挑战之一。
精调模型在大多数丰富资源翻译和极低资源翻译任务中仍然表现最佳，例如DeltaLM+Zcode [118]。在丰富资源的机器翻译中，精调模型略微优于大型语言模型 [22,92]。而在极低资源的机器翻译中，例如英语-哈萨克语翻译，精调模型明显比大型语言模型表现更好。
知识密集型自然语言处理（NLP）任务是指一类需要强烈依赖背景知识、领域专业知识或一般的现实世界知识的任务。这些任务超越了简单的模式识别或语法分析，高度依赖于特定实体、事件和现实世界常识的记忆和适当利用。
提示4：
（1）大型语言模型由于其大量的现实世界知识在知识密集型任务中表现出色。
（2）当知识要求与它们所学习的知识不匹配或面对只需要上下文知识的任务时，大型语言模型会遇到困难，在这种情况下，精调模型可以像大型语言模型一样发挥作用。
闭卷问答任务要求模型在没有任何外部信息的情况下回答有关事实知识的给定问题。它确实需要在模型中记忆现实世界的知识。大型语言模型在几乎所有数据集上表现更好，例如在NaturalQuestions [52]、WebQuestions [9]和TriviaQA [46]上。在TriviaQA数据集上，即使是零样本的大型语言模型表现也更好 [22]。
大规模多任务语言理解（MMLU）[40]同样是高度知识密集型的。它包含涵盖57个不同主题的多项选择题，需要模型的通用知识。即使对于大型语言模型来说，它也相当具有挑战性，尽管新发布的GPT-4 [76]在英语方面的准确率达到了令人满意的86.5%，远远优于现有的模型。
此外，Big-bench [96] 中的一些任务旨在探究大型语言模型并推断它们未来的能力，这些任务严重依赖于对现实世界知识的记忆。在这些任务中，一些大型语言模型的性能超过了人类的平均水平，甚至可与最佳人类表现相媲美。例如，任务 Hindu_knowledge 要求模型提供有关印度教神话的事实，Periodic_Elements 要求预测来自周期表的元素名称，而 Physics 则通过要求解决给定物理问题所需的公式来测试模型的物理知识。
有些任务只需要模型捕捉上下文中的自包含知识。输入上下文中的知识足以让模型进行预测。对于这些任务，小型精调模型可以表现出非常好的效果。其中一个例子是机器阅读理解（MRC）。MRC任务提供了几段段落，并要求模型根据这些段落预测问题的答案。我们在前面的部分已经讨论了MRC，因为它也是一种传统的自然语言理解任务。
另一种情况是，大型语言模型对于实际世界的知识对于某些任务来说是无用的，甚至需要的知识与实际世界相反。因此，大型语言模型在这些任务中无法表现良好。在某些情况下，不一致的知识甚至可能使大型语言模型比随机猜测更糟糕。例如，在 Big-Bench 中，Mnist ascii 任务要求模型告诉由ASCII艺术表示的数字。这个任务所需的能力与实际世界知识无关。此外，在逆比例现象竞赛 [70] 中，redefine math 任务重新定义了一个常见符号，要求模型在原始含义和从重新定义中派生的含义之间进行选择。这需要与大型语言模型的知识相反，因此大型语言模型甚至比随机猜测表现更差。
作为对大型语言模型中现实世界知识的替代方案，可以允许访问额外的知识，通过检索增强可以使模型获取足够的任务相关知识。检索增强的基本思想是在进行预测之前添加一个额外的信息检索步骤，在此步骤中，将从大型语料库中检索到与任务相关的一些有用文本。然后，模型将基于输入上下文和检索到的文本进行预测。通过检索到的额外信息，闭卷问答任务可以变成“开卷式”。在这种情况下，由于所需的知识可以通过检索获得，因此精调模型的尺寸更小，因此效果非常好。例如，在 NaturalQuestions [52] 中，通过额外的语料库，检索增强模型 [44,48] 比任何其他方法都要好得多。
预训练语言模型的扩展（例如参数、训练计算等）可以大大增强它们的性能。随着模型的扩大，模型通常在一系列任务中变得更有能力。从一些指标来看，性能表现出与模型规模的幂律关系。例如，用于衡量语言建模性能的交叉熵损失随着模型规模的指数增加而线性下降，这也被称为“缩放定律”[41,47]。对于某些关键能力，例如推理，扩大模型规模逐渐将这些能力从极低状态转化为可用状态，甚至接近人类的能力。在本节中，我们将概述LLM的能力和行为方面与规模相关的使用情况。
备注 5
（1）随着模型规模的指数增长，LLM尤其擅长像算术推理和常识推理之类的推理能力。
（2）随着LLM规模的扩大，新的能力变得有可能，例如单词操纵和逻辑能力。
（3）在许多情况下，性能并不随着规模的增加而稳步提高，这是由于我们对大型语言模型随着规模的扩大而能力变化的理解还很有限。
推理涉及理解信息、进行推断和做出决策，是人类智能的重要方面之一。这对NLP来说是一个挑战。许多现有的推理任务可以分为常识推理和算术推理两类。
算术推理/问题解决。LLM的算术推理能力在模型规模的扩展中得到了极大的提升。例如，对于GPT-3模型，在参数数量超过13B时，它才表现出了两位数加法的能力[16]。用于测试算术推理能力的任务对于人类来说很简单，但它们旨在挑战将自然语言转化为数学符号和多步推理的能力。在GSM8k [26]、SVAMP [79]和AQuA [61]上，作为通用模型，LLM的性能与大多数具有任务特定设计的方法相当竞争。GPT-4甚至优于任何其他方法[76]，甚至是专门针对算术问题进行调整的一些大型模型[104]。尽管如此，需要注意的是，在没有外部工具的干预下，LLM在执行基本计算时可能会偶尔出错，虽然思维链提示（CoT prompting）[115]可以显著提高LLM在计算方面的能力。
常识推理。常识推理不仅需要LLM记住事实知识，还需要进行几个关于这些事实的推理步骤。随着模型规模的增长，LLM在常识推理方面逐渐提高。与精细调整的模型相比，在大多数数据集上，LLM仍然具有优势，例如StrategyQA [36]和ARC-C [25]。特别是在ARC-C上，它包含了从3年级到9年级科学考试中的难题，GPT-4的表现已经接近100％（96.3％）[76]。
模型的规模扩展还赋予了模型一些超越幂律规律的前所未有、奇妙的能力。这些能力被称为“新兴能力”。正如 [113] 中所定义的，LLM（大语言模型）的新兴能力是指在小规模模型中不存在但在大规模模型中存在的能力。这意味着这些能力无法通过在小规模模型上的性能提升来推断，一旦模型的规模超过一定范围，该模型在某些任务上会突然获得出色的性能。新兴能力通常是不可预测的和令人惊讶的，会导致任务随机或意外地出现。我们将具体列举LLM的新兴能力的示例，作为决定是否利用LLM的新兴能力的重要参考。
处理单词操作是一种典型的新兴能力。它指的是学习符号操作的能力，比如颠倒字母顺序 [16]，即模型给出一个字母顺序颠倒的单词，必须输出原始单词。例如，GPT-3 [16] 显示出单词排序和单词解谜任务的新兴能力。PaLM [22] 在ASCII单词识别和倒装句任务上展现了新兴能力。随着模型的扩展，语言模型的逻辑能力也会显现出来，比如逻辑推断、逻辑顺序和逻辑网格谜题。此外，其他任务，比如高级编码（例如自动调试、代码行描述）和概念理解（例如新概念、简单的图灵概念），也是利用大型语言模型的新兴能力的使用案例。
在某些任务上，随着LLM的规模增加，性能开始下降，例如Redefine-math（重新定义数学符号并测试语言模型是否能够使用它们）；Into-the-unknown（要求模型选择哪些信息能够帮助回答问题）；Memo-trap（要求LM用类似名言警句的方式写出一句话但最后不同）[6]。这也被称为逆比例缩放现象。在LLM的扩展中观察到的另一个有趣现象被称为“U型现象”[114]。正如名称所示，这种现象指的是随着LLM的规模增加，它们在某些任务上的性能最初会有所提高，但之后会开始下降，最后再次提高，例如在Hindsight-neglect（测试语言模型是否能够根据其期望值评估一项赌注是否值得进行）；NegationQA（将现有的多项选择数据集取反一部分，以查看语言模型是否敏感于否定）；Quote-repetition（要求模型重复回答问题中给出的句子）等任务上。因此，在选择是否使用巨大的LLM时，应注意到性能下降的风险，特别是当任务类似于上述任务时，应仔细考虑是否使用大规模的LLM。
深入了解LLM中的新兴能力、逆比例缩放现象和U型现象对于推动这个领域的研究是必要的。在某种程度上，U型现象表明小规模模型和大规模模型采用了不同的内部机制进行预测。从这个角度来看，U型现象可以被看作是逆比例缩放现象由于足够大的模型中的一些新兴能力而发生的转化[114]。GPT-4 [76] 在某些情况下展现了逆比例缩放现象的反转，例如在名为“Hindsight Neglect”的任务上。对于LLM在扩展时的这些行为的解释仍然是一个开放性问题。已经提出了一些假设。对于新兴能力，一个解释是可能有多个关键步骤需要完成一个任务，直到LLM足够大才能处理每个步骤，另一个解释则集中于评估度量的粒度[113]。对于逆比例缩放现象和U型现象，解释主要集中在模型对其先验信息而非输入提示的过度依赖、有效但误导的少样例示例以及难题中的分散容易任务[114]。
本节探讨了无法涉及到以前讨论的其他任务，以更好地了解LLM的优缺点。
注6：
(1)在远离LLM预训练目标和数据的任务中，微调模型或指定模型仍然有其用武之地。
(2)LLM在模仿人类、数据注释和生成方面非常出色。它们也可以用于NLP任务的质量评估，并具有可解释性等额外的好处。
虽然LLM在各种自然语言处理任务中取得了显著的成功，但它们在回归任务中的表现并不令人印象深刻。例如，ChatGPT在GLUE STS-B数据集上的表现（这是一个评估句子相似性的回归任务）不如经过微调的RoBERTa [130]。回归任务通常涉及预测连续值而不是离散标签，这对LLM提出了独特的挑战。它们表现不佳的主要原因之一是语言建模目标和回归任务目标之间的固有差异。LLM旨在预测序列中的下一个单词或生成连贯的文本，其预训练侧重于捕捉语言模式和关系。因此，它们的内部表示可能不适合用于建模连续数值输出。此外，LLM主要是在文本数据上进行训练，专注于捕捉自然语言处理的复杂性。因此，它们在多模态数据上的表现仍然很少被探索。而经过微调的多模态模型，如BEiT [110]和PaLI [19]，仍然主导着许多任务，例如视觉问答（VQA）和图像字幕。然而，最近推出的GPT-4 [76]已经迈出了多模态融合的步伐，但其能力的详细评估仍然缺乏。
LLM非常擅长模仿人类，充当聊天机器人，并执行各种任务。由LLM驱动的ChatGPT [7]因其在与人类多次互动中的一致性、可靠性、信息量和鲁棒性而令人惊讶。在获得这些能力时，人类反馈程序起着重要作用。LLM既可以充当良好的注释器，也可以充当数据增强的数据生成器，例如在[27、29、99、121、122]中。在某些任务中，一些LLM已被发现与人类注释者一样优秀 [37]。并且从GPT-3.5 (text-davinci-003)中收集的文本已经被用作类似于人类的指令遵循演示以训练其他语言模型 [100]。LLM也可以用于某些自然语言生成任务的质量评估，例如总结和翻译。在总结任务中，GPT-4作为评估器与人类的相关性要比其他方法高得多 [64]。一些基于LLM的评估器[34、50、64、108]在更多的自然语言生成任务中也显示出良好的人类对齐性，特别是与传统的自动度量方法相比。但LLM评估器可能对LLM生成的文本有偏见 [64]。
此外，正如我们上面讨论的那样，LLM的某些能力除了提高性能之外还带来额外的好处，例如可解释性。LLM的CoT推理能力可以展示LLM如何达到预测结果，这是一个好的实例级别的解释，同时也提高了性能。
在本节的最后一部分，我们将讨论LLM和经过微调的模型在现实世界的“任务”中的使用。我们在这里使用“任务”这个术语并不是严格的定义，因为现实世界的情景通常缺乏像学术界那样精细的定义。许多请求甚至不能被视为自然语言处理任务。模型在现实世界中面临三个方面的挑战：
•噪声/非结构化的输入。现实世界的输入来自于现实世界中的非专家。他们对如何与模型交互几乎没有任何了解，甚至不能流利地使用文本。因此，现实世界的输入数据可能会很混乱，包含错别字、口语和混合语言，不像用于预训练或微调的精心制作的数据那样格式良好。
•学术界未正式定义的任务。在现实世界的场景中，任务通常由学术界定义得很模糊，并且比学术环境中的任务多样化得多。用户经常提出的查询或请求不能很好地划分为预定义的类别，有时一个查询中甚至包含多个任务。
•遵循用户的指示。用户的请求可能包含多个隐含意图（例如，对输出格式的具体要求），或者他们所需的预测可能没有跟进问题是不清楚的。模型需要理解用户的意图并提供与这些意图相一致的输出。
实际上，这些在现实世界中的挑战是由于用户的请求与任何特定任务的NLP数据集的分布显著偏离。公共NLP数据集并不能反映模型的实际使用方式 [77]。
注7：与经过微调的模型相比，LLM更适合处理现实世界的场景。然而，在现实世界中评估模型的有效性仍然是一个未解决的问题。
处理这些现实世界的情况需要应对模糊性、理解上下文和处理噪声的输入。与经过微调的模型相比，LLM更适合处理这些情况，因为它们已经在涵盖各种写作风格、语言和领域的多样化数据集上进行了训练。此外，LLM展示了强大的开放域响应能力，使其非常适合这些场景。另一方面，经过微调的模型通常是针对特定、明确定义的任务进行调整，可能难以适应新的或意外的用户请求。它们严重依赖于明确的目标和格式良好的训练数据，指定模型应该学习遵循的指令类型。由于其更狭窄的关注特定分布和结构化数据，经过微调的模型可能会在嘈杂的输入上遇到困难。经过微调的模型通常需要额外的系统作为助手，以处理非结构化的上下文，确定可能的意图，并相应地调整模型的响应。
此外，一些机制，例如指令调整[91,112]和人类对齐调整[77]，进一步提升了LLM的能力，以更好地理解和遵循用户的指令。这些方法提高了模型生成有用、无害和诚实的响应的能力，同时保持了连贯性和一致性[77,91,112]。虽然这两种方法都可以使LLM更好地推广到未见过的任务和指令，但已经注意到，标注员更喜欢经过人类对齐调整[77]的模型，而不是使用来自公共NLP任务（例如FLAN [112]和T0 [91]）的指令进行调整的模型。这个原因可能类似于精调模型的劣势原因：公共NLP任务/数据集旨在进行简单和自动化评估，它们只能涵盖现实世界使用的一小部分。
在现实世界的场景中，评估模型是否好的主要问题之一是如何进行评估。如果没有任何形式化的任务或指标，模型效果的评估只能依赖于人类标注员的反馈。考虑到人类评估的复杂性和成本，目前还没有大规模系统地比较精调模型和LLM。尽管如此，像chatGPT这样的LLM的巨大成功和普及，已经在一定程度上证实了LLM的优越性。
尽管LLM适用于各种下游任务，但还有一些其他因素需要考虑，例如效率和可信度。我们对效率的讨论涵盖了LLM的训练成本、推理延迟以及LLM的参数效率调整策略。同时，我们对可信度的考虑包括健壮性和校准性、公平性和偏差、潜在的虚假相关性，以及LLM中的安全挑战。
（1）对于那些对成本敏感或有严格延迟要求的人来说，应该考虑轻量级、本地化、精调模型，而不是LLM。参数效率调整可以是模型部署和交付的可行选项。
（2）LLM的零样本方法禁止了从特定任务数据集中学习快捷方式的学习，而这在精调模型中很常见。尽管如此，LLM仍然展示了一定程度的快捷方式学习问题。
（3）应该高度重视与LLM相关的安全问题，因为LLM的潜在有害或有偏见的输出和幻觉可能会导致严重后果。一些方法，如人类反馈，已经显示出缓解这些问题的希望。
在实际部署中，性能、成本和延迟都是重要考虑因素，而不仅仅是模型的性能。尽管已经开发了一些参数效率方法，但实践中从效率和有效性之间取得平衡是实践者必须考虑的问题。
成本。近年来，LLM的规模越来越大，例如GPT-1、GPT-2和GPT-3分别拥有1.17亿、15亿和1750亿个参数。训练LLM的成本受其规模的影响很大，据估计，训练T5 11B参数变体的成本超过了130万美元，而训练单个GPT-3 175B参数的成本则需要460万美元[3]。训练大型模型的能量消耗同样惊人。估计将具有60亿参数的变压器模型训练到完成需要总共约103.5兆瓦时的能量[30]。Google报告称，训练PaLM约耗费了3.4千兆瓦时，大约为两个月的时间[6]。此外，数据集的大小也随着模型的大小而快速扩大，GPT-3 175B的训练数据集达到了4990亿个标记[16]。另一个反映计算成本的关键指标是Flops，GPT-3 175B需要3.14×1023 Flops，而T5 11B模型只需要3.30×1022 Flops，少了10倍。除了这些成本外，硬件要求也很高。OpenAI已经与微软合作，在微软Azure云中托管了一个超级计算机，包括285k个CPU核心和10k个高端GPU，用于支持大型模型的训练。对于OpenAI API的用户，价格根据模型和使用情况而变化，例如，提供聊天服务的GPT-3.5 Turbo的价格为每1k标记0.002美元。但是，对于需要定制模型的用户，训练成本为每1k标记0.03美元，使用成本为每1k标记0.12美元[4]。因此，对于无法承担如此高昂成本的用户，例如小型创业公司、个人用户等，使用小型的精调模型是更好、更合理的选择。
延迟。延迟是考虑LLM在实际应用中的一个关键因素。推理时间是衡量延迟的常用指标，它高度依赖于模型大小、架构和标记大小。例如，当最大标记大小分别设置为2、8和32时，GPT-J 6B模型的推理时间分别为0.077秒、0.203秒和0.707秒。此外，当最大标记大小固定为32时，InstructGPT模型（davinci v2）的推理时间为1.969秒。由于LLM往往过于庞大，无法在单个用户的计算机上运行，因此公司通过API提供LLM服务。API延迟可以根据用户的位置而异，OpenAI API服务的平均延迟时间可在几百毫秒到几秒之间。在不接受高延迟的情况下，大型LLM可能不合适。例如，在许多信息检索应用程序中，可扩展性至关重要。为了在网络上部署信息检索系统，搜索引擎需要非常高效的推理，以便系统有用。InstructGPT davinci v2（175B*）模型的理想去噪推理时间为每个请求0.21秒（即要对查询-段落对进行打分），这对于网络搜索引擎来说太慢了。
参数效率调整。在实践中，我们可以在一些特定的数据集上对模型进行调整。参数效率调整（PET）是一种高效的技术，可以在保持预训练LLM大部分参数不变的情况下，调整模型的一小部分参数（或额外参数）。PEFT的主要目标是大大降低计算和存储成本，同时保持原始模型的性能。PET的常见技术包括LoRA [42]、Prefix Tuning [58]、P-Tuning [62,63]等。例如，LoRA方法保持预训练模型的权重，并将低秩矩阵整合到Transformer架构的每一层中。这种方法大大减少了需要训练后续任务的参数数量，从而提高了整体效率。Alpaca-LoRA8提出将低秩自适应（LoRA）集成到LLaMA-Alpaca中，使得LLaMA能够在单个RTX 4090上几小时内运行。所有这些PET方法都可以帮助将模型精调到特定任务，或调整LLM以满足人类对齐等特殊要求。
考虑到LLM现在涉及到医疗保健、金融和法律等敏感领域，确保它们是可信的且能够产生可靠的输出至关重要。
鲁棒性和校准性。LLM的准确性和鲁棒性显示出非常强的相关性 [59]。在某种场景下准确率高的模型也具有良好的鲁棒性。然而，在调整额外的应用特定任务数据后，零-shot的鲁棒性变得更差 [116]。这可能是由于过度拟合导致的，由于模型的极高复杂度和下游任务的有限训练样本，而导致了较差的泛化能力 [43]。同样，已经观察到对模型进行精细调整会导致显著的校准误差，这是由于过度参数化导致的 [51]。因此，在鲁棒性和校准性是关键考虑因素的情况下，精细调整模型可能不是最优选择。然而，人类对齐被发现是增强模型鲁棒性的潜在解决方案。InstructGPT davinci v2 (175B*)已被证明在鲁棒性和校准性方面优于其他模型。另一方面，实现模型的最佳校准取决于所采用的场景和适应程序。
公平性和偏差。已经表明LLM表现出不同的处理和影响，延续社会偏见，潜在地导致歧视 [10,17]。为确保所有用户的公平和平等，重要的是在NLP模型的开发和部署中解决这些问题。不同人群之间的性能差异可以作为公平问题的指标。LLM特别容易出现公平性问题，因为在方言、宗教、性别和种族等人口统计类别之间观察到了显著的性能差异 [59]。然而，研究表明，无论模型大小如何，通过与人类指令对齐可以提高LLM的性能，InstructGPT模型（davinci v2）表现出的性能差异比其他LLM更小 [23]。
虚假偏差。在预训练和微调范式下，各种自然语言理解任务中都观察到了快捷学习问题，其中模型在微调数据中严重依赖于输入和标签之间的虚假相关性以进行预测[31,35,98]。例如，在阅读理解任务中，微调模型倾向于关注问题和原始文章之间的词汇匹配，忽视了所要解决的阅读理解任务本身[53]。相比之下，大型语言模型并不直接在微调数据集上进行训练，这使得它们学习微调数据集中的快捷特征的可能性较小，从而增强了模型的泛化能力。然而，大型语言模型并非完美无缺，可能在上下文学习期间表现出一些快捷学习现象。例如，最近的初步研究开始调查大规模语言模型中基于提示的方法的鲁棒性[111,129]。其中一项研究评估了GPT-3在文本分类和信息提取任务上的少样本学习性能[129]，并揭示了所研究的大型语言模型易受大多数标签偏差和位置偏差的影响，它们倾向于基于训练数据中答案的频率或位置进行预测。此外，这些大型语言模型表现出常见令牌偏差，偏好于预训练语料库中流行的答案。最近的研究表明，这种位置偏差可以通过选择适当的提示来缓解[68]。总之，尽管大型语言模型显著减少了微调模型中普遍存在的快捷学习问题，但它们仍然存在一些快捷学习问题，因此在将它们部署到下游应用中时应谨慎对待。
大型语言模型在推理、知识保留和编码等许多领域展示了极强的能力。随着它们变得越来越强大和人类化，它们对影响人们的观点和行动的潜力也越来越大。因此，一些新的安全挑战需要考虑，并在近期的工作中引起了广泛关注[75,76]。
幻觉问题。大型语言模型“幻觉”，即生成无意义或不真实的内容，可能会对各种应用中的信息质量和可靠性产生重大负面影响。随着大型语言模型变得越来越具有说服力和可信度，用户可能会过度依赖它们，并相信它们在某些领域中提供准确的信息。如果模型产生完全错误或误导性的内容，这可能特别危险，因为基于这些信息做出的决策或行动会出现错误。在许多领域中，如医疗保健、金融或公共政策等领域，信息的准确性和可靠性至关重要，因此此类结果可能会产生严重后果。为了缓解这些问题，人类反馈的强化学习(RLHF)被广泛应用[75,77]，而大型语言模型本身已被纳入到这个过程中[75]。
有害内容。由于大型语言模型生成的文本具有高度的连贯性、质量和可信度，因此这些模型产生的有害内容可能会造成重大伤害，包括仇恨言论、歧视、煽动暴力、虚假叙述，甚至是社会工程攻击。实施检测和纠正这些内容的安全措施可以缓解这种问题[97]。这些大型语言模型还具有双重用途潜力，可以提供所需的非法信息，导致武器扩散等风险[75]，甚至是恐怖主义攻击计划。确保负责任地使用这些大型语言模型，并采取安全措施以防止危害非常重要。此外，在现有的工作中，来自人类的反馈对于消除有害输出起着重要作用。
隐私问题。大型语言模型可能面临严重的安全问题。例如，用户隐私问题。据报道，三星员工在使用ChatGPT处理工作时不慎泄露了绝密数据，包括新程序的源代码等机密信息、与硬件相关的内部会议纪要等。意大利数据保护机构宣布，ChatGPT的开发者OpenAI非法收集了个人用户数据，引发了隐私方面的担忧，导致意大利成为第一个禁止ChatGPT的政府[1]。
最近大型语言模型的进展正在彻底改变自然语言处理领域。有效地利用大型语言模型需要了解它们在各种NLP任务中的能力和局限性。本文介绍了一个实用的指南，以便在下游的NLP任务中使用大型语言模型。我们首先讨论了著名的模型，如GPT风格和BERT风格的架构以及影响它们性能的因素。然后，我们探讨了使用大型语言模型进行下游任务的方法，包括知识密集型任务、自然语言理解和生成任务，同时提供了成功和限制的具体案例。这个实用的指南提供了关于大型语言模型的深入见解，并介绍了在各种NLP任务中利用大型语言模型的最佳实践。我们希望这个指南能够帮助研究人员和实践者充分发挥大型语言模型的潜力，推动语言技术的创新。
下面，我们来探讨LLMs的未来挑战：
•在真实世界的“数据集”上评估提出的模型。现有的深度学习模型主要在标准学术数据集上进行评估，如ImageNet，这些数据集是深度学习发展的里程碑。然而，标准学术数据集的限制不能完全反映真实世界的性能。随着模型的不断进步，评估更加多样化、复杂和现实的数据反映真实世界的需求变得至关重要。除了学术数据集外，在真实世界的“数据集”上评估模型将为它们的能力提供更严格的测试，并更好地了解它们在实际应用中的有效性。这确保了模型能够应对真实世界的挑战并提供实际解决方案。
•模型对齐。确保日益强大和自主的模型与人类的价值观和优先事项保持一致是至关重要的。必须开发方法来确保这些模型按照预期行事，不会优化不良结果。从模型开发过程开始就集成对齐技术至关重要。模型透明度和可解释性也是评估和确保对齐的重要因素。此外，当我们展望未来时，还存在更为艰巨的挑战：对齐超人类系统。虽然目前这项任务超出了我们的要求，但重要的是要考虑并为对齐这些先进系统的潜在影响做好准备，因为它们可能会出现独特的复杂性和伦理问题[8,15]。
•安全对齐。讨论人工智能存在风险的重要性不言而喻，需要具体的研究来保证先进人工智能的安全发展。这包括解释性技术、可扩展的监督和管理以及模型属性的形式验证。安全不应仅仅是模型构建过程的一个附加功能，而应是其不可或缺的一部分。
• 使用规模预测性能。随着模型大小和复杂度的急剧增加，很难预测模型性能的变化。开发更好的方法来预测模型在扩大规模或开发新架构后的性能将允许更有效地使用资源和加速进展。一些可能性包括：训练较小的“种子”模型并推断其增长，模拟增加规模或模型调整的效果，并在不同规模上对模型的迭代进行基准测试以建立比例定律。这些可能提供有关模型性能的见解，甚至在它们被构建之前就能提供。