当前位置: 首页 > 科技观察

为NLP选择正确的语言模型

时间:2023-03-21 12:36:42 科技观察

Translator|崔浩评论|SunShujuanI.OpeningLargelanguagemodels(LLMs)是经过训练生成文本的深度学习模型。凭借令人印象深刻的能力,LLM已成为现代自然语言处理(NLP)领域的最先进技术。传统上,它们由学术机构和大型科技公司(如OpenAI、微软和英伟达)进行预训练。其中大部分随后都可供公众使用。这种即插即用的方法是迈向大规模采用人工智能的重要一步——公司现在可以专注于针对特定用例微调现有的LLM模型,而不是扩展知识资源模型。然而,为应用程序选择正确的模型仍然很棘手。用户和其他利益相关者必须在动态语言模型和相关创新场景之间做出选择。这些改进涉及语言模型的不同组成部分,包括它的训练数据、预训练目标、架构和微调方法——每一个都可以写一本书。除了所有这些研究之外,围绕语言模型的营销和人工智能光环让事情变得更加模糊。本文解释了LLM背后的主要概念和原则。其目的是为非技术利益相关者提供直观的理解和一种与开发人员和AI专家进行有效交互的语言。为了扩大覆盖范围,本文包含了一项基于大量NLP相关出版物的分析。虽然我们不会深入研究语言模型的数学细节,但可以很容易地从参考文献中检索到这些细节。文章结构如下:首先,将语言模型置于NLP不断发展的语境中。第二部分解释了LLM是如何构建和预训练的。最后,描述了微调过程,并提供了一些模型选择指导。二。语言模型的世界1.弥合人机鸿沟语言是人类思维的一项迷人技能——它是一种通用的知识交换协议,可以表达主观想法,例如意图、意见和情感。在人工智能的历史上,曾出现过在数学上逼近(“建模”)人类语言的研究浪潮。在深度学习时代之前,表示基于简单的代数和概率概念,例如单词的单热表示、顺序概率模型和递归结构。随着过去几年深度学习的发展,语言表示的准确性、复杂性和表达能力都有所提高。2018年,BERT作为第一个基于新Transformer架构的LLM推出。从那时起,基于Transformer的LLM获得了强劲的发展势头。语言建模由于其通用性而特别有吸引力。虽然许多现实世界的NLP任务(如情感分析、信息检索和信息提取)不需要语言生成,但假设语言生成模型也具有解决各种更专业的语言挑战的技能。2.维度问题学习是在参数的基础上发生的——在训练过程中优化的变量以获得最佳的预测质量。随着参数数量的增加,模型能够获得更细粒度的知识并改进其预测。自2017-2018年推出第一批LLM以来,我们看到参数大小呈指数级增长——开创性的BERT使用340M参数进行训练,而2022年发布的模型Megatron-TuringNLG使用530B参数进行训练——增加了超过一千次。图1:语言模型的参数大小随时间呈指数级增长因此,主流是哗众取宠,使用不断增加的参数。然而,批评者指出,模型性能的增长速度与模型规模的增长速度并不一致。另一方面,模型预训练会留下相当大的碳足迹。缩小规模对于在语言建模方面取得更可持续的进展势在必行。3.语言模型的生命周期LLM的愿景是竞争,创新是昙花一现。下图显示了2018-2022年期间前15名最受欢迎的LLM模型,以及它们随时间推移的份额。图2:Top15最流行语言模型的提及和分享我们可以看到,大多数模型在较短的时间内变得不那么流行了。为保持领先地位,用户应监控当前的创新并评估升级是否值得。大多数LLM遵循类似的生命周期:首先,“上游”,模型是预训练的。由于数据量大和计算要求高,这主要是大型科技公司和大学的特权。最近也有一些合作(比如BigScienceworkshop)共同推进LLM领域。一些资金充足的初创公司,如Cohere和AI21Labs,也提供预训练的法学硕士。发布后,该模型被以应用程序为中心的开发人员和企业采用并部署到“下游”。在此阶段,大多数模型需要额外的微调步骤以适应特定领域和任务。其他的,如GPT-3,更方便,因为它们可以在预测期间直接学习各种语言任务(零个或几个预测)。最后,时间敲响了大门,一个更好的模型即将出现——要么参数更多,硬件使用效率更高,要么在人类语言建模方面有更根本的改进。带来实质性创新的模型可以催生整个模型家族。例如,BERT在BERT-QA、DistilBERT和RoBERTa中继续存在,它们都是基于原始架构的。在接下来的部分中,我们将探讨此生命周期的前两个阶段-预训练和部署微调。3.预训练:LLM是如何诞生的大多数团队和NLP从业者不会参与LLM的预训练,而是参与其微调和部署。然而,要成功地选择和使用模型,重要的是要了解“幕后”发生的事情。在本节中,我们将了解LLM的基本要素。训练数据输入表示训练前的目标模型结构(编码器-解码器)。每一项不仅会影响选择,还会影响LLM的微调和部署。1.训练数据LLM训练使用的数据大部分涵盖不同风格的文本数据,例如文学、用户生成的内容和新闻数据。在看到各种不同的文本类型之后,生成的模型就会意识到语言细节。除了文本数据,代码通常用作输入,教模型生成有效的程序和代码片段。不出所料,训练数据的质量直接影响模型的性能——以及所需的模型大小。如果您以更智能的方式准备训练数据,则可以在减少数据大小的同时提高模型的质量。一个例子是T0模型,它比GPT-3小16倍,但在一系列基准测试任务上表现优于它。诀窍是:它不是只使用任何文本作为训练数据,而是直接使用任务公式,使其学习信号更加集中。图3说明了一些训练示例。图3:T0在广泛的显式语言任务上接受过训练关于训练数据的最后说明:我们经常听说语言模型是以无监督方式训练的。虽然这种方法很有吸引力,但它在技术上是错误的。相反,格式良好的文本已经提供了必要的学习信号,将我们从繁琐的手动数据注释过程中解放出来。要预测的标签对应于句子中过去和/或未来的单词。因此,注释会自动且大规模地发生,从而使该领域取得相对快速的进展。2.Inputrepresentation训练数据组装好后,我们需要将其打包成模型可以应用的形式。神经网络以代数结构(向量和矩阵)为输入,而语言的最佳代数表示是一种持续的搜索——从简单的短语到包含高度差异化的上下文信息的短语。每一个新步骤都增加了自然语言的复杂性,暴露了当前表示的局限性。语言的基本单位是词。在NLP的早期,这产生了词袋表征,它将文本中的所有词放在一起,而不考虑它们的顺序。看看这两个例子。在词袋世界中,这些句子会得到完全相同的表示,因为它们由相同的词组成。显然,这只涵盖了它们的一小部分含义。序列表示保存有关词序的信息。在深度学习中,序列的处理最初是在顺序感知循环神经网络(RNN)中实现的。然而,更进一步,语言的基本结构并不是纯粹的顺序性的,而是层次性的。换句话说,我们不是在谈论列表,而是树。相距较远的词实际上可以比相邻的词具有更强的句法和语义联系。请看下面的例子。在这里,她指的是女孩。当RNN到达句子末尾并最终看到她时,它对句子开头的记忆可能已经消失,因此无法恢复关系。为了解决这些长期依赖性,已经提出了更复杂的神经架构来构建更具辨别力的上下文记忆。这个想法是在记忆中保留与未来预测相关的词,而忘记其他词。这是长短期记忆(LSTM)单元和门控循环单元(GRU)的贡献。但是,这些模型并未针对要预测的特定位置进行优化,而是针对一般的未来背景进行了优化。此外,由于结构复杂,它们的训练速度甚至比传统的RNN慢。最后,人们放弃了递归,提出了一种注意力机制,并将其纳入到Transformer架构中。Attention允许模型在预测过程中在不同的词之间来回聚焦。每个词根据其与被预测的特定位置的相关性进行加权。对于上面的句子,一旦模型到达“her”的位置,girl就会被赋予比at更高的权重,尽管它在线性顺序中远得多。在信息处理方面,注意力机制是迄今为止最接近人脑的生物学运作方式的。研究表明,注意力可以学习层次句法结构,包括一系列复杂的句法现象。它还允许并行计算以实现更快、更高效的训练。3.预训练目标有了训练数据的适当表示,我们的模型就可以开始学习了。预训练语言模型有三个总体目标:序列到序列的翻译、自动回归和自动编码。所有这些都需要模型具有广泛的语言学知识。encoder-decoder架构和Transformer模型解决的最初任务是sequence-to-sequenceconversion:将一个序列转换为不同表示框架下的序列。经典的序列到序列任务是机器翻译,但其他任务(例如摘要)也经常以这种方式表述。请注意,目标序列不一定是文本-它也可以是其他非结构化数据,例如图像,以及结构化数据,例如编程语言。序列到序列LLM的一个例子是BART系列。第二个任务是自动回归,这也是最初的语言建模目标。在自动回归中,模型学习根据先前的标记预测下一个输出(标记)。学习信号受限于公司的单向性质——模型只能使用来自预测标记右侧或左侧的信息。这是一个主要的限制,因为单词可以依赖于过去和未来的位置。例如,考虑书面动词如何从两个方向影响以下句子。在这里,纸张的位置仅限于可写的东西,而学生的位置仅限于一个人,或者至少是另一个能够书写的智能实体。今天头条的LLM很多都是自回归的,包括GPT系列、PaLM、BLOOM。第三个任务——自动编码——解决了单向性问题。自动编码与经典词嵌入的学习非常相似。首先,我们通过在输入中隐藏一定比例(通常为10-20%)的标记来破坏训练数据。然后,该模型会学习从周围环境中重建正确的输入,同时考虑前后标记。自动编码器的一个典型示例是BERT系列,其中BERT代表来自Deformers的双向编码器表示。4.模型结构(编码器-解码器)语言模型的基本组成部分是编码器和解码器。编码器将原始输入转换为高维代数表示,也称为“隐藏”向量。等一下——隐藏?好吧,在这一点上实际上没有什么大秘密。当然,您可以查看表示形式,但是冗长的数字向量不会向人类传达任何有意义的信息。这需要我们模型的数学智能来处理它。解码器以可理解的形式再现隐藏的表示,例如另一种语言、编程代码、图像等。图4:编码器-解码器架构的基本模式编码器-解码器架构最初是为递归神经网络引入的。自从引入基于注意力的Transformer模型以来,传统的递归已经不再流行,而编码器-解码器的思想仍然存在。大多数自然语言理解(NLU)任务都依赖于编码器,而自然语言生成(NLG)任务需要解码器,而序列到序列的转换则需要这两个组件。我们不会在这里讨论Transformer架构和注意力机制的细节。对于那些想要掌握这些细节的人来说,要准备好花很多时间来搞清楚。4.在现实世界中使用语言模型1.微调语言模型是一项强大的上游任务——如果你有一个成功的语言模型,恭喜——它是一个智能模型。相反,NLP主要用于更具针对性的下游任务,例如情感分析、问答和信息提取。现在是应用迁移学习和重用现有语言知识以应对更具体挑战的时候了。在微调期间,部分模型被“冻结”,而其余部分则使用特定领域或特定任务的数据进行进一步训练。显式微调增加了LLM部署道路上的复杂性。它还会导致模型爆炸,其中每个业务任务都需要自己经过微调的模型,从而升级为无法维护的各种模型。因此,已经努力使用少量或零样本学习来摆脱微调步骤(例如在GPT-3中)。这种学习发生在预测过程中:模型被赋予“线索”——任务描述和可能的一些训练实例——以指导其对未来实例的预测。虽然实施起来要快得多,但零学习或很少学习的便利因素被其较低的预测质量所抵消。此外,其中许多模型需要通过云API进行访问。在开发的早期阶段,这可能是一个受欢迎的机会-然而,在更高级的阶段,它可能会变成另一种不需要的外部依赖。2.为下游任务选择合适的模型鉴于AI市场上新语言模型的不断供应,为特定的下游任务选择合适的模型并跟上最新的发展趋势可能会很棘手艺术。研究论文通常针对特定的下游任务和数据集对每个模型进行基准测试。标准化的任务套件,如SuperGLUE和BIG-bench,可以为众多的NLP任务提供统一的基准,提供比较的依据。但是,我们应该记住,这些测试是在高度受控的环境中准备的。时至今日,语言模型的泛化能力相当有限——因此,转移到现实生活中的数据集会极大地影响模型的性能。评估和选择合适的模型应包括对尽可能接近生产数据的数据进行试验。根据经验,预训练目标提供了一个重要提示:自回归模型在会话AI、问答和文本摘要等文本生成任务上表现良好,而自动编码器擅长“理解”和结构化语言,例如情感分析和各种信息提取任务。理论上,用于零样本学习的模型只要接收到适当的提示就可以执行各种任务——但是,它们通常不如微调模型准确。为了使事情更具体,下图显示了流行的NLP任务与NLP文献中突出的语言模型的关系。这些关联是基于多种相似性和聚合度量计算的,包括嵌入相似性和距离加权共现。得分较高的模型-任务对,例如BART/文本摘要和LaMDA/对话式AI,表明基于历史数据的拟合很好。图5:语言模型与下游任务之间的相关强度V.关键要点在这篇文章中,我们介绍了LLM的基本概念和正在发生的主要创新层。下表总结了最受欢迎的LLM的主要特征。表1:最流行的大型语言模型的特征总结让我们总结一下选择和LLM的一般准则。1.在评估潜在模式时,要清楚自己在AI旅程中所处的位置。一开始,尝试使用通过云API部署的LLM可能是个好主意。找到产品市场契合点后,请考虑在您这一边托管和维护您的模型,以获得更多控制权并进一步提高模型的性能以适合您的应用程序。2.为了与您的下游任务保持一致,AI团队应根据以下标准创建模型候选名单。学术文献中关于预训练目标和下游任务之间一致性的基准测试结果,重点是下游任务:考虑NLGU的自动编码和NLG的自回归。以前报告过此模型任务组合的经验。3.在真实世界的任务和数据集上测试入围模型以获得性能的初步感受。4.在大多数情况下,通过专门的微调可以获得更好的质量。但是,如果你没有内部技术能力或预算进行微调,或者你需要覆盖大量任务,则可以考虑很少/零样本学习。5.LLM的创新和趋势是短暂的。使用语言模型时,请注意它们在LLM领域的生命周期和整体活动,并注意提高游戏机会。最后,请注意LLM的局限性。虽然他们拥有惊人的、类似人类的语言能力,但他们的整体认知能力不如我们。这些模型的世界知识和推理能力严格限于它们在语言表面发现的信息。他们也未能及时提供事实,并且可能会不眨眼地向您提供过时的信息。如果您正在构建依赖于生成最新甚至原始知识的应用程序,请考虑将您的LLM与其他多模式、结构化或动态知识源相结合。原文链接:https://www.topbots.com/choosing-the-right-language-model/译者介绍崔浩,社区编辑,高级架构师,18年软件开发和架构经验,10年分布式架构经验.