1️⃣理解大语言模型

发布于:2025-07-10 ⋅ 阅读:(24) ⋅ 点赞:(0)

理解大语言模型

本章内容:大语言模型背后基本概念的高级解释;对打语言模型所源自的transformer架构的深入了解;从零开始构建大语言模型的计划



早期的NLP模型通常是为特定任务而设计的。例如文本分类、语言翻译等。虽然这些早期模型在其特定应用中表现出色,但LLM在各种自然语言处理NLP任务展现了更广泛的能力。

LLM的成功归因于支撑LLM的transformer架构,以及llm训练所用的海量数据。这使得他们能够捕捉到多种语言的细微差别、上下文和模式,而这些都是难以手动编码的。

1.1 LLM是什么?

LLM:旨在理解、生成和响应人类文本的神经网络。这些模型是深度神经网络,在海量文本数据上训练,基本涵盖了互联网上大部份公开可用的文本数据集。

“大语言模型”的“大”:指的是模型的参数规模和用于训练的庞大数据集。这类模型通常包含数十亿甚至数百亿的参数,这些参数是网络中可调节权重,训练过程中通过优化来预测序列中的下一个单词。预测下一个单词是合理的,因为利用了语言的序列特性,帮助模型理解文本中的上下文、结构和关系。

LLM采用了transformer架构,使得在做预测时能够对输入的不同部份进行选择性关注,因此特别擅长处理人类语言的细微差别和复杂性。

由于llm能生存文本,因此他们被称为一种生成式人工智能(ai),常缩写为生成式AI或者genAI.
在这里插入图片描述

类别 解释 举例
机器学习 可用从数据中学习并给予数据做出预测或决策的算法研究 垃圾邮件过滤器:标记垃圾邮件和合法邮件的电子邮件示例给机器学习算法;通过最小化训练数据集上的预测误差,模型能够学习识别垃圾邮件的模式和特征,从而将新邮件分类为垃圾邮件或者合法邮件
深度学习 机器学习的一个子集,专注于使用多层或更多层的神经网络来建模数据中的复杂模式和抽象 图像识别系统:使用卷积神经网络(CNN)训练大量带标签的图片(如猫、狗、人脸等),模型能够自动学习图像中的边缘、形状、纹理等特征,最终实现对新图片的准确分类(如识别一张图中是否有猫)

1.2 LLM的应用

具备解析和理解非结构化文本数据的高级能力,LLM在多个领域有着广泛的应用,目前被广泛应用于机器翻译、新文本生成(如下图)、情感分析、文本摘要等多种任务。

在这里插入图片描述

1.3 构建和使用LLM的步骤

从头开始编码一个LLM是理解其工作机制和局限性的绝佳练习。同时,这也使我们具备了对现有开源LLM架构进行与训练或微调的知识,以便将其应用于我们特定领域的数据集或任务。

使用定制的LLM有多个优势,尤其在数据隐私方面。公司因为保密问题不愿与第三方LLM提供商分享敏感数据。

创建LLM的一般过程包括预训练与微调。术语“pre”在“pretraining”中指的是初始阶段,此时模型在一个大型且多样化的数据上进行训练,以便获得对语言的广泛理解。预训练模型随后作为基础资源,可以通过微调进一步优化。微调:模型在一个更针对特定任务或领域的数据集上进行专门训练。

Note:
1.预训练的数据集已经学习好了语言模型的基础能力,包括语法、词汇、语言结构,可以相对准确的预测下一个token。微调则是利用特定领域的数据来让模型适应某些特定的任务。
2.微调的两种方式:
1️⃣全权重微调:在训练过程中对模型的所有预训练权重进行调整,但由于权重已经经过预训练,大多数情况下,微调只会对预训练权重进行微小调整,而不是大幅度改变。这种方式能够让模型保持原有的语言生成能力,同时使其在特定任务上表现得更好。
2️⃣冻结部分权重的微调:一般冻结低层(往往是学习到基础语言特征),对高层的权重进行调整。这种微调方式常在需要加速训练,或者数据量较小,全权重微调可能导致过拟合的情况下使用。

在这里插入图片描述
如图1.3,创建LLM的第一步是用大量文本数据进行训练,这些数据一般被称为原始文本。“raw”指的是这些数据知识普通文本,没有任何标注信息。

LLM的第一阶段被称为预训练,旨在创建一个初始的预训练llm,称为基础模型。gpt-3模型就是一个典型的例子。该模型可以完成文本补全,对用户写了一半的句子进行续写。同时,还具有有限的少量示例学习能力,可以在仅有少量示例的情况下学习执行新任务,不需要大量的训练数据。

在从大型文本数据集上训练得到预训练的llm后,该llm会学习预测文本中的下一个单词。我们可以在优质的标注数据上对llm进行进一步训练,这个过程称为微调。

微调llm的两个最流行的类别:指令微调和分类任务微调

						标注数据集                          例子
指令微调         指令和QA对                         翻译文本的查询及其正确翻译
分类微调         文本及其对应类别标签         垃圾邮件和非垃圾邮件标签的电子邮件

1.4 介绍transformer架构

下图是简化版的transformer架构:

在这里插入图片描述
transformer架构由两个子模块组成:编码器和解码器。编码器和解码器都是由多个层通过自注意力机制相连。

类别 作用 例子
编码器 处理文本输入,将其编码为一系列数值表示或向量,以捕捉输入的上下文信息 翻译任务1:编码器将原语言文本编码为向量
解码器 利用编码向量生成输出文本 翻译任务2:解码器会将这些向量解码为目标语言的编码

transformers 和 LLM 的一个关键组成部分是自注意力机制(图中未显示),它使模型能够相对地权衡序列中不同单词或标记的重要性。这个机制帮助模型捕捉输入数据中的远程依赖关系和上下文关系,从而提高生成连贯且与上下文相关的输出的能力。

个人思考:
为什么Bert适合用于文档分类或情感预测,这主要是基于BERT的训练模式,BERT也是基于Transformer架构,但它采用的是 masked language model (MLM) 训练方式,即在训练过程中,它会随机遮掩输入句子中的一些词(称为“masked”),并让模型预测这些被遮掩的词。
这种训练策略被称为掩蔽词预测。这一独特的训练方法使得 BERT 能够更好地理解句子的上下文,因为它需要根据整句话的前后部分来预测被遮掩的词。这种双向(bidirectional)的训练使得 BERT 更适合处理需要全局上下文理解的任务,而文档分类或情感预测正是两种对于上下文语义理解要求非常高的场景。

在这里插入图片描述
另一方面,GPT 专注于原始 Transformer 架构中的解码器部分,被设计用于需要生成文本的任务。这些任务包括机器翻译、文本摘要、小说创作和编写代码等。在本章接下来的部分,我们将更详细地讨论 GPT 架构,并在本书中从零开始实现它。

GPT 模型主要是为文本补全任务设计和训练的,但它们在能力上展现出显著的多样性。这些模型擅长执行zero-shot 和few-shot 学习任务。如图 1.6 所示。

类别 说明
zero-shot 学习 没有先前具体示例的情况下,能够处理完全未见过的任务
few-shot 学习 模型可以从用户提供的极少量示例中进行学习

在这里插入图片描述

Note:
TRANSFORMER与LLM
如今的 LLM 大部分是基于上一节提到的 Transformer 架构来实现。因此,在文献中,Transformers 和 LLM 常常被视为同义词。然而,值得注意的是,并非所有的 Transformers 都是 LLM,因为它们也可以用于计算机视觉。同时,并非所有的 LLM 都是基于 Transformers 的,市场上也有一些基于递归和卷积架构的大语言模型。这些替代方法的主要目的是提高 LLM 的计算效率。不过,这些替代架构能否与基于 Transformer 的 LLM 的能力相竞争,以及它们是否会在实际中得到应用,还需要进一步观察。

1.5 利用大型数据集

流行的GPT和BERT类模型的大型训练数据集代表了丰富而全面的文本语料库,涵盖数十亿个单词,涉及各种主题以及自然语言和计算机语言。
在这里插入图片描述
通过表1.1 得到的主要结论是,这个训练数据集的规模和多样性使得这些模型在各种任务中表现优异,包括不同语言的语法、语义和上下文信息,甚至还可以处理一些需要通用知识的任务。

这些模型的预训练特性使他们在后续任务中的微调变得非常灵活,因此他们也被称为基础模型或基座模型。预训练LLM需要消耗大量资源,且成本非常高。例如,GPT-3 的预训练费用估计为 460 万美元,通过云计算积分来计算。

1.6 深入剖析gpt架构

在本章之前,我们提到了GPT类模型、GPT-3和ChatGPT。现在让我们更深入地了解通用的GPT架构。首先,GPT 是“生成预训练变换器”(Generative Pretrained Transformer)的缩写。GPT-3 是该模型的增强版,具有更多参数,并在更大的数据集上进行训练。而在 ChatGPT 中提供的原始模型是通过在一个大型指令数据集上微调 GPT-3 而创建的,这一过程使用了 OpenAI 的 InstructGPT 论文中的方法。这些模型在文本完成方面表现出色,并且还能够进行拼写纠正、分类和语言翻译等其他任务。考虑到 GPT 模型是在相对简单的下一个单词预测任务上进行预训练的,这一点确实非常惊人,如图 1.7 所示。
在这里插入图片描述
下一个单词预测任务是自监督学习的方法,这是一种自我标注的形式。意味着我们不需要专门手机训练数据的标签,而是可以利用数据本身的结构:我们可以把句子或文档中的下一个单词作为模型需要预测的标签。由于下一个单词预测任务允许我们动态生成标签,因此我们可以利用大量未标记的文本数据集来训练llm,即利用大型数据集。

与我们在 1.4 节讨论的原始 Transformer 架构相比,通用 GPT 架构相对简单。实际上,它仅包含解码器部分,而没有编码器,如图 1.8 所示。由于像 GPT 这样的解码器模型是通过逐字预测生成文本,因此它们被视为一种自回归模型。自回归模型会将之前的输出作为未来预测的输入。因此,在 GPT 中,每个新词的选择都是基于之前的文本序列,这样可以提高生成文本的连贯性。

像 GPT-3 这样的模型架构明显大于原始的 Transformer 模型。例如,原始的 Transformer 将编码器和解码器块重复了六次,而 GPT-3 具有 96 层 Transformer,总共有 1750 亿个参数
在这里插入图片描述
最后,值得注意的是,原始的 Transformer 模型由编码器和解码器块组成,专为语言翻译设计,但 GPT 模型虽然架构更大且仅包含解码器,却主要用于下一个词预测,但同时也具备执行翻译任务的能力。这一能力最初让研究人员感到意外,因为它出现在一个主要针对下一个词预测任务的模型中,而这个任务并没有专门针对翻译。

模型能够执行未明确训练的任务被称为涌现行为。这种能力不是通过明确的训练获得的,而是模型接触大量多语言数据和多样化上下文后自然而然涌现的结果。GPT 模型能够“学习”不同语言之间的翻译模式,并执行翻译任务,尽管它们并没有专门针对这些任务进行训练,这展示了这些大语言模型的优势和能力。我们可以在不需要为每个任务使用不同模型的情况下,完成多种任务。

1.7 构建大语言模型

在接下来的部门,将从零开始编码一个LLM,使用GPT的基本理念作为框架,并分为三个阶段进行,如图1.9
在这里插入图片描述
首先,我们将学习基本的数据预处理步骤,并编写 LLM 核心的注意力机制代码。

接下来,在第二阶段,我们将学习如何编写代码并预训练一个类似 GPT 的 LLM,能够生成新的文本。同时,我们还会介绍评估 LLM 的基本原理,这对开发强大的 NLP(自然语言处理)系统至关重要。

请注意,从头开始预训练一个 LLM 是一项庞大的工程,对于类似 GPT 的模型,计算成本可能高达数千到数百万美元。因此,第二阶段的重点是进行教学目的的训练,使用小型数据集。

最后,在第三阶段,我们将使用一个预训练好的 LLM,对其进行微调,使其能够执行指令,例如回答查询或进行文本分类——这些是在许多现实世界应用和研究中最常见的任务。

1.8 本章摘要

  • LLM 已经彻底改变了自然语言处理的领域,之前自然语言处理主要依赖于显式的规则系统和较为简单的统计方法。LLM 的出现引入了新的深度学习驱动的方法,推动了对人类语言的理解、生成和翻译的进步。
  • 现代 LLM 的训练通常分为两个主要步骤:
    • 首先,它们在一个大型未标注的文本语料库中进行预训练,通过使用句子中下一个单词的预测作为“标签”。
    • 这些模型接下来会在一个较小的、有标签的目标数据集上进行微调,以遵循指令或执行分类任务。
  • LLM 基于Transformer架构。Transformer架构的核心理念是注意力机制,这使得 LLM 在逐字生成输出时,能够选择性地访问整个输入序列。
  • 原始的Transformer架构由一个用于解析文本的编码器和一个用于生成文本的解码器组成。
  • 生成文本和执行指令的 LLM,例如 GPT-3 和 ChatGPT,仅实现解码器模块,这使得架构更加简化。
  • 由数十亿个单词构成的大型数据集对预训练 LLM 至关重要。在本书中,我们将实现并在小型数据集上训练 LLM,以便用于教学,同时也会探讨如何加载公开可用的模型权重。
  • 类似 GPT 的模型的普遍预训练任务是预测句子中的下一个单词,但这些 LLM 显示出了“涌现”特性,例如具备分类、翻译或文本总结的能力。
  • 一旦 LLM 完成预训练,得到的基础模型就可以更高效地微调,以应对各种下游任务。
  • 在自定义数据集上微调过的 LLM 能够在特定任务上超越通用 LLM。

网站公告

今日签到

点亮在社区的每一天
去签到