category
生成人工智能(GenAI),尤其是ChatGPT,吸引了每个人的注意力。基于转换器的大型语言模型(LLM)在大规模的大量未标记数据上进行训练,展示了将其推广到许多不同任务的能力。为了理解LLM为什么如此强大,我们将在本文中深入研究它们是如何工作的。
形式上,仅解码器的语言模型只是给定上下文x1···xi−1的下一个令牌xi上的条件分布p(xi |x1··.xi−1)。这样的公式是马尔可夫过程的一个例子,已经在许多用例中进行了研究。这种简单的设置还允许我们以自回归的方式逐个生成令牌。
在我们深入研究之前,我必须指出这个公式对通用人工智能(AGI)的局限性。思维是一个非线性的过程,但我们的沟通工具,嘴巴,只能线性地说话。因此,语言呈现出一个线性的单词序列。用马尔可夫过程对语言建模是一个合理的开端。很难相信这样的公式能够完全捕捉思维过程(或AGI)。另一方面,思维和语言是相互联系的。如GPT4所示,一个足够强大的语言模型可能仍然显示出某种思考能力。在接下来的内容中,让我们来看看使LLM智能化的科学创新。
变压器
对条件分布p(xi|x1···xi−1)进行建模/表示有多种方法。在LLM中,我们试图使用称为Transformer的神经网络架构来估计这种条件分布。事实上,在Transformer之前,神经网络,特别是各种递归神经网络(RNN)已经在语言建模中应用了很长一段时间。RNN按顺序处理令牌,维护一个状态向量,该向量包含当前令牌之前看到的数据的表示。为了处理第n个令牌,该模型将表示直到令牌n-1的句子的状态与新令牌的信息相结合,以创建表示直到令牌n的句子的新状态。理论上,如果在每一点上该状态继续编码关于该令牌的上下文信息,则来自一个令牌的信息可以在序列中任意向下传播。不幸的是,消失梯度问题使模型在长句末尾的状态没有关于先前标记的精确、可提取的信息。令牌计算对先前令牌计算结果的依赖性也使得难以在现代GPU硬件上并行化计算。
Transformer中的自注意机制解决了这些问题。Transformer是一种避免重复的模型架构,而是完全依赖于注意力机制来绘制输入和输出之间的全局依赖关系。注意力层可以访问所有先前的状态,并根据学习到的相关性度量对其进行加权,从而提供关于遥远代币的相关信息。重要的是,Transformers使用了一种没有RNN的注意力机制,同时处理所有令牌,并在连续的层中计算它们之间的注意力权重。由于注意力机制只使用来自较低层的关于其他令牌的信息,因此可以并行地为所有令牌计算注意力机制,这提高了训练速度。
字节对标记器将输入文本解析为标记,并将每个标记转换为嵌入向量。然后,令牌的位置信息被添加到嵌入中。变压器构建块是按比例缩放的点积注意力单元。当一个句子被传递到转换模型中时,每个标记之间的注意力权重会同时计算。注意力单元为上下文中的每个令牌生成嵌入,该嵌入包含关于令牌本身的信息以及其他相关令牌的加权组合,每个相关令牌由其注意力权重加权。
对于每个注意力单元,变换器模型学习三个权重矩阵;查询权重WQ、关键字权重WK和值权重WV。对于每个标记i,输入单词嵌入与三个权重矩阵中的每一个相乘,以产生查询向量qi、关键向量ki和值向量vi。注意权重是qi和kj之间的点积,按关键向量的维度的平方根进行缩放,并通过softmax进行归一化。令牌i的注意力单元的输出是所有令牌的值向量的加权和,由从令牌i到每个令牌j的注意力加权。所有令牌的注意力计算可以表示为一个大矩阵计算:
一组(WQ,WK,WV)矩阵称为注意力头,每层变换器都有多个注意力头。对于多个注意力头,该模型可以计算令牌之间的不同相关性。每个注意力头的计算可以并行执行,并且输出被级联并通过矩阵WO投影回相同的输入维度。
在编码器中,自注意机制之后有一个完全连接的多层感知器(MLP)。MLP块进一步单独地处理每个输出编码。在编码器-解码器设置中(例如,用于翻译),在解码器中的自注意和MLP之间插入额外的注意机制,以从编码器生成的编码中提取相关信息。在仅解码器的体系结构中,这是不必要的。无论是编码器-解码器还是仅解码器架构,解码器都不能使用当前或未来的输出来预测输出,因此必须部分屏蔽输出序列,以防止这种反向信息流,从而允许自回归文本生成。为了逐个令牌地生成,最后一个解码器后面是softmax层,以生成词汇表上的输出概率。
监督微调
仅解码器GPT本质上是一种无监督(或自监督)的预训练算法,可最大化以下可能性:
其中k是上下文窗口的大小。虽然该体系结构与任务无关,但GPT证明,通过在未标记文本的不同语料库上生成语言模型的预训练,然后对每个特定任务进行有区别的微调,可以在自然语言推理、问答、语义相似性和文本分类方面实现巨大的收益。
在对具有上述目标的模型进行预训练后,我们可以将参数适应监督的目标任务。给定标记的数据集C,其中每个实例由输入令牌序列x1,…组成,xm以及标签y。输入通过预训练的模型以获得最终变压器块的激活hlm,然后将其馈送到具有参数Wy的添加的线性输出层中以预测y:
相应地,我们有以下目标函数:
此外,将语言建模作为辅助目标也很有帮助,因为它提高了监督模型的泛化能力并加速了收敛。也就是说,我们优化了以下目标:
文本分类可以如上所述直接进行微调。其他任务,如问答或文本隐含,具有结构化输入,如有序的句子对,或文档、问题和答案的三元组。由于预训练的模型是在连续的文本序列上训练的,因此需要进行一些修改才能应用于这些任务。
文本隐含:连接前提p和假设h的标记序列,中间有一个分隔符标记($)。
相似性:被比较的两个句子没有内在的顺序。因此,输入序列包含两个可能的句子顺序(中间有一个分隔符),并独立处理每个顺序以产生两个序列表示,在输入到线性输出层之前逐元素添加。
问答和常识推理:每个样本都有一个上下文文档z、一个问题q和一组可能的答案{ak}。GPT将文档上下文和问题与每个可能的答案连接起来,并在两者之间添加一个分隔符标记以获得[z;q;$;ak]。这些序列中的每一个都被独立处理,然后通过softmax层进行归一化,以在可能的答案上产生输出分布。
零样本迁移(又称元学习)
虽然GPT表明监督微调在特定任务的数据集上效果良好,但要在所需任务上实现强大的性能,通常需要在该任务特定的数千到数十万个示例的数据集进行微调。有趣的是,GPT2证明了语言模型在没有任何明确监督的情况下开始学习多个任务,条件是文档加上问题(也称为提示)。
学习执行单个任务可以在概率框架中表示为估计条件分布p(输出|输入)。由于通用系统应该能够执行许多不同的任务,即使是对于相同的输入,它不仅应该以输入为条件,还应该以要执行的任务为条件。也就是说,它应该对p(输出|输入,任务)进行建模。以前,任务条件通常在体系结构级别或算法级别实现。但语言提供了一种灵活的方式来指定任务、输入和输出,所有这些都是一系列符号。例如,翻译训练示例可以写成序列(翻译成法语、英语文本、法语文本)。特别地,GPT2以英语句子=法语句子的格式的示例对的上下文为条件,然后在英语句子=的最后提示之后,我们通过贪婪解码从模型中进行采样,并使用第一个生成的句子作为翻译。
类似地,为了诱导摘要行为,GPT2添加文本TL;DR:在文章之后,使用k=2的Top-k随机采样生成100个令牌,这减少了重复,并鼓励比贪婪解码更抽象的摘要。同样,阅读理解训练示例可以写成(回答问题、文档、问题、答案)。
请注意,零样本转移不同于下一节中的零样本学习。在零样本转移中,“零样本”是指不执行梯度更新,但它通常涉及为模型提供推理时间演示(例如,上述翻译示例),因此不是真正从零示例中学习。
我发现这种元学习方法与Montague语义之间有一个有趣的联系,Montague语义学是一种自然语言语义及其与语法关系的理论。1970年,蒙塔古提出了他的观点:
在我看来,逻辑学家的自然语言和人工语言之间没有重要的理论区别;事实上,我认为用一个自然的、数学上精确的理论来理解这两种语言的语法和语义是可能的。
从哲学上讲,零样本转移和蒙塔古语义都把自然语言当作编程语言来对待。LLM通过在黑盒方法中嵌入向量来捕获任务。然而,我们还不清楚它到底是如何运作的。相比之下,蒙塔古语义最重要的特征是它坚持复合性原则——即整体的意义是其各部分的意义及其句法组合模式的函数。这可能是一种改进LLM的方法。
语境学习
GPT3表明,扩展语言模型大大提高了与任务无关的少样本性能。GPT3根据推理时提供的演示数量,进一步将描述专门化为“零样本”、“单次”或“少次”:(a)“少次学习”或上下文学习,其中我们允许尽可能多的演示进入模型的上下文窗口(通常为10到100),(b)“单次学习”,其中我们只允许一次演示,以及©“零样本”学习,其中不允许演示,只向模型提供自然语言指令。
对于少样本学习,GPT3通过从任务的训练集中随机抽取K个示例作为条件,来评估评估集中的每个示例,根据任务由1或2个换行符分隔。K可以是从0到模型的上下文窗口所允许的最大值的任何值,对于所有模型,该值为nctx=2048,并且通常适合10到100个示例。K的值越大通常但并不总是越好。
对于某些任务,GPT3除了(或对于K=0,而不是)演示之外,还使用自然语言提示。对于涉及从多个选项中选择一个正确完成的任务(多选),提示包括K个上下文加上正确完成的示例,然后仅包括一个上下文示例,评估过程比较每个完成的模型可能性。
在涉及二进制分类的任务上,GPT3为选项提供了更有语义意义的名称(例如“True”或“False”,而不是0或1),然后将任务视为多选。
在自由形式完成的任务中,GPT3使用波束搜索。评估过程使用F1相似性得分、BLEU或精确匹配对模型进行评分,这取决于手头数据集的标准。
模型大小很重要(到目前为止)
语言模型的能力对于任务不可知学习的成功至关重要,增加它可以以对数线性的方式提高任务的性能。GPT-2是作为GPT-1的直接放大创建的,其参数计数和数据集大小都增加了10倍。但它可以在零样本传输设置中执行下游任务,而无需任何参数或架构修改。
GPT3使用与GPT2相同的模型和架构,只是在转换器的层中使用交替的密集和局部带状稀疏注意力模式。
型号尺寸
在TriviaQA上,GPT3的性能随着模型大小的增加而平稳增长,这表明语言模型随着容量的增加而继续吸收知识。单次和少次性能显著优于零样本性能。
数据质量问题
虽然讨论较少,但数据质量也很重要。语言模型的数据集已经迅速扩展。例如,CommonCrawl数据集包含近一万亿个单词,这足以训练最大的模型,而无需对同一序列进行两次更新。然而,研究发现,未经过滤或轻度过滤的CommonCrawl版本往往比精心策划的数据集质量更低。
因此,GPT2创建了一个新的网络抓取,通过抓取来自Reddit的所有出站链接来强调文档质量,Reddit至少收到了3个因果报应,这是其他用户是否觉得该链接有趣、有教育意义或只是有趣的启发式指标。经过重复数据消除和一些基于启发式的清理,最终的数据集包含略多于800万个文档,总共40 GB的文本。
此外,GPT3采取了3个步骤来提高数据集的平均质量:(1)基于与一系列高质量参考语料库的相似性对CommonCrawl进行过滤。
类似地,GLaM开发了一个文本质量分类器,从原始较大的原始语料库中生成高质量的网络语料库。该分类器经过训练,可以在一组精心策划的文本(维基百科、书籍和一些选定的网站)和其他网页之间进行分类。GLaM使用该分类器来估计网页的内容质量,然后使用Pareto分布根据网页的得分对网页进行采样。这允许包括一些质量较低的网页,以防止分类器中的系统偏差。
GLaM训练集中的数据和混合权重
GLaM还根据较小模型中每个数据组件的性能设置混合权重,以防止维基百科等小型来源被过度采样。
思想链
正如前面所指出的,对下一个代币的预测与思考过程并不相同。有趣的是,LLM的一些推理和算术能力可以通过思维链提示来解锁。思维链是一系列中间的自然语言推理步骤,这些步骤会导致最终的输出。如果在少样本提示的示例中提供了思维链推理的演示,那么足够大的语言模型可以生成思维链:输入、思维链、输出。然而,我们还不清楚它为什么以及如何工作。
从人的反馈中强化学习(RLHF)
LLM所使用的语言建模目标——预测下一个令牌——与“帮助和安全地遵循用户的指示”的目标不同。因此,我们认为语言建模目标是错位的。
InstructionGPT通过使用来自人类反馈的强化学习(RLHF),使语言模型与用户在广泛任务中的意图相一致。这项技术使用人类的偏好作为奖励信号来微调模型。
步骤1:收集示范数据,并制定有监督的政策。标签提供了输入提示分布上所需行为的演示。然后使用监督学习在此数据上微调预训练的GPT3模型。
第二步:收集比较数据,并训练奖励模型。收集模型输出之间的比较数据集,其中标注器指示他们更喜欢给定输入的输出。然后训练一个奖励模型来预测人类的偏好输出。
步骤3:使用PPO针对奖励模型优化策略。将RM的输出用作标量奖励。使用PPO算法对监督策略进行微调以优化此奖励。
步骤2和步骤3可以连续迭代;收集关于当前最佳策略的更多比较数据,该当前最佳策略用于训练新RM,然后训练新策略。
指令微调
虽然GPT-1中引入的监督微调侧重于特定任务的调整,但T5是以最大似然目标(使用“教师强制”)进行训练的,而与任务无关。从本质上讲,T5利用了与零样本转移相同的直觉,即NLP任务可以通过自然语言指令来描述,例如“这部电影评论的情绪是正面的还是负面的?”或“将‘你好吗’翻译成中文。”为了指定模型应执行的任务,T5在将其输入到模型之前,在原始输入序列中添加特定任务(文本)前缀。此外,FLAN探索指令微调,特别关注(1)缩放任务数量,(2)缩放模型大小,以及(3)微调思想链数据。
对于每个数据集,FLAN手动组成十个独特的模板,这些模板使用自然语言指令来描述该数据集的任务。虽然十个模板中的大多数描述了原始任务,但为了增加多样性,对于每个数据集,FLAN还包括最多三个“扭转任务”的模板(例如,对于情绪分类,我们包括要求生成电影评论的模板)。然后,我们在所有数据集的混合上对预训练的语言模型进行指令调优,每个数据集中的示例通过该数据集的随机选择的指令模板进行格式化。
所谓的即时工程本质上是一种反向工程,即如何为教学微调和上下文学习准备训练数据。
检索增强生成(RAG)
由于成本和时间的原因,生产使用中的LLM在训练数据新鲜度方面往往滞后。为了解决这个问题,我们可以以检索增强生成(RAG)的方式使用LLM。在这个用例中,我们不希望LLM仅基于它所训练的数据来生成文本,而是希望它以某种方式结合其他外部数据。使用RAG,LLM还可以回答(私有)领域特定的问题。因此,RAG也被称为“开卷”问答。LLM+RAG可以替代传统的搜索引擎。换句话说,它起到了幻觉信息检索的作用。
目前,RAG的检索部分通常被实现为在包含外部文本数据的向量嵌入的向量数据库上的k近邻(相似性)搜索。例如,DPR将编码器训练公式化为度量学习问题。然而,我们应该注意到,信息检索通常是基于相关性的,这与相似性不同。我预计今后在这方面会有更多的改进。
结论
LLM是一个令人兴奋的领域,将经历快速的创新。我希望这篇文章能帮助你稍微了解一下它是如何工作的。除了兴奋之外,我们还应该注意到,LLM学习语言的方式与人类截然不同——它们缺乏人类语言学习者用来推断话语与说话者心理状态之间关系的社会和感知环境。他们也以不同于人类思维过程的方式接受训练。这些可能是改进LLM或发明新的学习算法范式的领域。
- 登录 发表评论
- 20 次浏览
最新内容
- 1 week 5 days ago
- 2 weeks 6 days ago
- 3 weeks 2 days ago
- 3 weeks 2 days ago
- 3 weeks 5 days ago
- 3 weeks 6 days ago
- 4 weeks ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago