2024版最新大型语言模型教程(非常详细)零基础入门到精通,收藏这一篇就够了

452 篇文章 4 订阅
8 篇文章 0 订阅

生成式人工智能 (GenAI),尤其是 ChatGPT,吸引了所有人的注意力。基于 Transformer 的大型语言模型 (LLM) 经过大规模无标记数据训练,展现出可以推广到许多不同任务的能力。为了理解 LLM 为何如此强大,我们将在这篇文章中深入探讨它们的工作原理。

LLM 进化树

正式来说,仅解码器语言模型只是给定上下文的p(xi|x1···xi−1)下一个标记的条件分布。这种公式是马尔可夫过程的一个例子,该过程已在许多用例中得到研究。这种简单的设置还允许我们以自回归方式逐个标记生成标记。xi``x1 · · · xi−1

在深入探讨之前,我必须指出这种公式在实现_通用人工智能_(AGI)方面的局限性。思考是一个非线性过程,但我们的交流设备——嘴巴,只能线性地说话。因此,语言看起来是单词的线性序列。用马尔可夫过程对语言进行建模是一个合理的开始。很难相信这样的公式能完全捕捉思考过程(或 AGI)。另一方面,思考和语言是相互关联的。一个足够强大的语言模型可能仍然会表现出某种思考能力,就像 GPT4 所展示的那样。接下来,让我们来看看让 LLM 显得_聪明_的科学创新。

Transformer

有很多方法可以对条件分布进行建模/表示p(xi|x1···xi−1)。在 LLM 中,我们尝试使用一种称为 Transformer 的神经网络架构来估计这种条件分布。事实上,神经网络,尤其是各种循环神经网络 (RNN),在 Transformer 之前就已经在语言建模中应用了很长时间。RNN 按顺序处理标记,维护一个状态向量,该向量包含当前标记之前看到的数据的表示。为了处理第 个标记n,模型将表示句子直到标记的状态n-1与新标记的信息相结合,以创建一个新状态,表示句子直到标记n。理论上,如果状态在每个点都继续编码有关标记的上下文信息,那么来自一个标记的信息可以沿着序列任意传播。不幸的是,消失梯度问题使模型在长句子末尾的状态没有关于前面标记的精确、可提取的信息。标记计算对先前标记计算结果的依赖也使得在现代 GPU 硬件上并行计算变得困难。

Transformer中的自注意力机制解决了这些问题。Transformer 是一种避免重复的模型架构,而是完全依靠注意力机制来绘制输入和输出之间的全局依赖关系。注意力层可以访问所有先前状态,并根据学习到的相关性度量对其进行加权,从而提供有关远处标记的相关信息。重要的是,Transformers 使用没有 RNN 的注意力机制,同时处理所有标记并在连续层中计算它们之间的注意力权重。由于注意力机制仅使用有关来自较低层的其他标记的信息,因此可以并行计算所有标记,从而提高训练速度。

输入文本由字节对标记器解析为标记,每个标记转换为嵌入向量。然后,将标记的位置信息添加到嵌入中。Transformer 构建块是缩放的点积注意单元。当一个句子被传递到 Transformer 模型时,会同时计算每个 token 之间的注意权重。注意力单元为上下文中的每个标记生成嵌入,其中包含有关标记本身的信息以及其他相关标记的加权组合,每个标记均由其注意力权重加权。

对于每个注意力单元,Transformer 模型都会学习三个权重矩阵:查询权重 WQ、关键字权重 WK 和值权重 WV。对于每个 token i,输入的词嵌入会与这三个权重矩阵分别相乘,得到一个查询向量 qi、一个关键字向量 ki 和一个值向量 vi。注意力权重是 qi 和 kj 的点积,乘以关键字向量维度的平方根,并通过 softmax 进行归一化。token _i_的注意力单元的输出是所有 token 的值向量的加权和,加权自 token _i_到每个 token _j 的_注意力。所有 token 的注意力计算可以表示为一个大的矩阵计算:

一组 (WQ, WK, WV) 矩阵称为注意力头,Transformer 的每一层都有多个注意力头。有了多个注意力头,模型就可以计算 token 之间的不同相关性。每个注意力头的计算都可以并行执行,输出通过矩阵 WO 连接起来并投影回相同的输入维度。

在编码器中,自注意力机制之后有一个全连接的多层感知器 (MLP)。MLP 块进一步单独处理每个输出编码。在编码器-解码器设置中(例如用于翻译),在解码器的自注意力和 MLP 之间插入了一个额外的注意力机制,以从编码器生成的编码中提取相关信息。在仅解码器的架构中,这不是必需的。无论是编码器-解码器还是仅解码器的架构,解码器都不能使用当前或未来的输出来预测输出,因此必须部分屏蔽输出序列以防止这种反向信息流,从而允许自回归文本生成。为了逐个标记生成标记,最后一个解码器后面跟着一个 softmax 层,以产生词汇表上的输出概率。

监督微调

仅解码器GPT本质上是一种无监督(或自监督)预训练算法,可最大化以下可能性:

其中 k 是_上下文窗口的大小_。虽然该架构与任务无关,但 GPT 表明,通过在多样化的未标记文本语料库上对语言模型_进行生成预训练_,然后对每个特定任务进行判别微调,可以实现自然语言推理、问答、语义相似性和文本分类方面的巨大_进步_。

在使用上述目标对模型进行预训练后,我们可以调整参数以适应监督目标任务。给定一个标记数据集 C,其中每个实例由一系列输入标记 x1、…、xm 以及标签 y 组成。输入通过预训练模型获得最终变压器块的激活 hlm,然后将其输入到具有参数 Wy 的附加线性输出层以预测 y:

相应地,我们有以下目标函数:

此外,将语言建模作为辅助目标也很有帮助,因为它可以提高监督模型的泛化能力并加速收敛。也就是说,我们优化了以下目标:

文本分类可以如上所述直接进行微调。其他任务(如问答或文本蕴涵)具有结构化输入,例如有序的句子对或文档、问题和答案的三元组。由于预训练模型是在连续的文本序列上进行训练的,因此需要进行一些修改才能应用于这些任务。

文本蕴涵:将前提 p 和假设 h 标记序列连接起来,中间用分隔符标记 (KaTeX parse error: Undefined control sequence: \[ at position 187: …之间添加一个分隔符标记以获得 \̲[̲z;q;;ak]。每个序列都经过独立处理,然后通过 softmax 层进行归一化,以产生可能答案的输出分布。

零样本迁移(又称元学习)

虽然 GPT 表明监督式微调在特定任务数据集上效果良好,但要在所需任务上取得优异表现,通常需要对该任务特定数据集进行微调,该数据集包含数千到数十万个示例。有趣的是,GPT2表明语言模型开始在没有任何明确监督的情况下学习多项任务,并以文档和问题(即提示)为条件。

学习执行单个任务可以在概率框架中表示为估计条件分布p(output|input)。由于一般系统应该能够执行许多不同的任务,即使对于相同的输入,它也应该不仅对输入进行条件设定,还对要执行的任务进行条件设定。也就是说,它应该对进行建模p(output|input, task)。以前,任务条件通常在架构级别或算法级别实现。但是语言提供了一种灵活的方式来将任务、输入和输出全部指定为符号序列。例如,翻译训练示例可以写成序列(translate to french, english text, french text)。具体而言,GPT2 以格式的示例对的上下文为条件english sentence = French sentence,然后在最后的提示之后,english sentence =我们使用贪婪解码从模型中采样并使用第一个生成的句子作为翻译。

类似地,为了诱导总结行为,GPT2 在文章后添加文本TL;DR:,并使用 Top-k 随机采样(k = 2)生成 100 个 token,这减少了重复并鼓励比贪婪解码更抽象的总结。同样,阅读理解训练示例可以写成(answer the question, document, question, answer)

请注意,零样本迁移与下一节中的零样本学习不同。在零样本迁移中,“零样本”是指不执行梯度更新,但它通常涉及为模型提供推理时间演示(例如上述翻译示例),因此并不是真正从零样本中学习。

我发现这种元学习方法与 Montague 语义学之间存在有趣的联系,后者是一种自然语言语义学及其与句法关系的理论。1970 年,Montague 提出了他的观点:

在我看来,自然语言和逻辑学家的人工语言之间没有重要的理论差异;事实上我认为可以用一个自然的、数学上精确的理论来理解这两种语言的语法和语义。

从哲学上讲,零样本迁移和 Montague 语义都将自然语言与_编程语言_同等对待。LLM 通过黑盒方法中的嵌入向量来捕获任务。但我们不清楚它是如何真正起作用的。相比之下,Montague 语义最重要的特征是它遵循组合性原则——即整体的意义取决于其各部分的意义及其句法组合方式。这可能是一种改进 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 相同的模型和架构,但在 Transformer 的各层中使用交替密集和局部带状稀疏注意力模式。

模型尺寸

在 TriviaQA 上,GPT3 的性能随模型规模的扩大而平稳增长,这表明语言模型在容量增加的同时不断吸收知识。一次性和少量性状的性能比零次性状有显著提高。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据质量至关重要

虽然讨论得较少,但数据质量也很重要。语言模型的数据集迅速扩大。例如,CommonCrawl 数据集包含近一万亿个单词,足以训练最大的模型,而无需对同一序列进行两次更新。然而,研究发现,未经过滤或略微过滤的 CommonCrawl 版本的质量往往低于经过精心策划的数据集。

因此,GPT2 创建了一个新的网页抓取工具,通过抓取 Reddit 上所有获得至少 3 个 karma 的出站链接来强调文档质量,这可以作为启发式指标,表明其他用户是否认为该链接有趣、有教育意义或只是有趣。经过重复数据删除和一些基于启发式的清理后,最终数据集包含略多于 800 万个文档,总共 40 GB 的文本。

此外,GPT3 采取了 3 个步骤来提高数据集的平均质量:(1)根据与一系列高质量参考语料的相似性对 CommonCrawl 进行过滤;(2)在文档级别、数据集内和跨数据集进行模糊重复数据删除,以防止冗余并保持保留验证集的完整性作为过度拟合的准确度量;(3)将已知的高质量参考语料添加到训练组合中,以增强 CommonCrawl 并增加其多样性。

类似地,GLaM开发了一个文本质量分类器,以便从原始的大型原始语料库中生成高质量的网络语料库。该分类器经过训练,可以在精选文本集合(维基百科、书籍和一些选定的网站)和其他网页之间进行分类。GLaM 使用此分类器来估计网页的内容质量,然后使用帕累托分布根据网页的得分对其进行抽样。这样就可以包含一些质量较低的网页,以防止分类器出现系统性偏差。

GLaM 训练集中的数据和混合权重

GLaM 还根据较小模型中每个数据组件的性能设置混合权重,以防止对维基百科等小来源进行过度采样。

思绪之链

如前所述,下一个 token 的预测与思考过程并不相同。有趣的是,LLM 的一些推理和算术能力可以通过思维链提示来解锁。_思维链_是一系列中间自然语言推理步骤,可产生最终输出。如果在少样本提示的示例中提供了思维链推理的演示,那么足够大的语言模型就可以生成思维链:⟨输入,思维链,输出⟩。但我们并不清楚它为什么以及如何运作。

通过人类反馈进行强化学习(RLHF)

LLM 使用的语言建模目标(预测下一个 token)与“有用且安全地遵循用户指令”的目标不同。因此,我们说语言建模目标是_错位的_。

InstructGPT通过使用_人类反馈强化学习_(RLHF) ,在各种任务上将语言模型与用户意图保持一致。该技术使用人类偏好作为奖励信号来微调模型。

步骤 1:收集演示数据并训练监督策略。标注员在输入提示分布上提供所需行为的演示。然后使用监督学习在此数据上微调预先训练的 GPT3 模型。

第 2 步:收集比较数据并训练奖励模型。收集模型输出之间的比较数据集,其中标注者指出对于给定的输入他们更喜欢哪种输出。然后训练奖励模型来预测人类更喜欢的输出。

步骤 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 或发明新学习算法范式的领域。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

四、AI大模型商业化落地方案

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值