大语言模型如何工作:从分词嵌入到转换器逐词元生成流程

大语言模型如何工作,关键在于海量数据预训练、提示词分词、嵌入向量和转换器处理。它会逐词元生成内容,适合理解文本生成、翻译和代码生成机制,以及自然语言处理任务的基本原理。

大语言模型如何工作:从分词嵌入到转换器逐词元生成流程

什么是大语言模型?

大语言模型,也常写作 LLM,是基于大量数据训练或预训练的超大型深度学习语言模型。它通过学习海量文本中的语言结构、表达方式和内容模式,来识别、解释和生成文本。

从概念上看,大语言模型既可以被理解为一种统计语言模型,也通常基于深度学习架构。前者强调它会根据已学习到的语言模式预测后续内容;后者强调它依赖大规模神经网络完成表示、计算和生成。

要点: 大语言模型不是简单复制资料。它在接收提示词后,会根据模型内部学到的模式,逐步生成后续内容。

用简单类比理解大语言模型如何工作

可以把大语言模型理解为一个经过海量语料训练的语言预测系统。它不是只按固定规则检索一个现成答案,而是根据用户提示词、上下文以及已经生成的内容,继续预测更可能出现的下一个词元。

这里的“预测”不等于真正理解世界。更准确地说,大语言模型能够在语言层面识别、解释和生成文本,并在提示词驱动下输出文本、代码块或其他内容。

例如,用户输入“请总结这段文字”时,模型会先处理输入内容,再根据上下文逐步生成摘要;用户输入“写一个函数示例”时,模型也可以根据提示生成代码块。

大语言模型的训练基础包括海量数据和无监督式学习

大语言模型之所以能处理广泛的语言任务,基础在于大规模数据训练。模型会从海量数据集中学习常见的语法结构、词语搭配、表达风格和内容模式,从而获得较通用的语言能力。

海量数据让模型学习语言模式

通过大量数据训练,模型可以接触不同主题、不同写法和不同语言现象,并逐渐形成对文本结构的统计性表示。这些表示会在后续任务中用于文本识别、解释和生成。

无监督式学习降低对人工标注的依赖

大语言模型可以采用无监督式学习。无监督式学习的基本含义是:模型可以使用无标签数据集,在数据中发现先前未知的模式,而不一定依赖每条数据都由人工标注。

预训练提供通用语言能力

预训练可以让模型在进入具体任务之前,先获得较通用的语言处理能力。之后,模型在面对写作、翻译、解释、生成代码块等提示时,就能基于已学习到的语言模式生成相应输出。

从提示词到回答的生成流程可以拆成四步

大语言模型在推理阶段收到提示词后,通常会经历从文本输入到逐词元输出的计算过程。为了便于理解,可以将这一过程拆成四步。

第一步:接收提示词并切分成词元

用户输入的提示词会先被模型处理为更小的单位,这些单位通常称为词元。词元可以理解为模型实际处理文本时使用的基本片段。

第二步:将词元转换为嵌入向量

词元本身不能直接用于神经网络计算,因此会被转换为嵌入向量。嵌入向量是一种数值化表示,使模型能够在计算空间中处理词元及其关系。

第三步:通过转换器处理上下文

随后,模型会使用转换器结构处理这些表示。转换器会结合上下文信息,并利用自注意力相关能力建模词元之间的关系,从而判断当前提示中哪些部分更重要。

第四步:逐词元生成输出

模型通常不是一次性生成完整答案,而是逐词元生成文本。每生成一个词元,模型都会结合提示和已有输出继续计算,直到形成完整的文本、代码块或其他内容。

流程阶段输入或中间结果主要作用
提示词输入用户输入的文本明确任务、问题或上下文
分词词元将文本拆成模型可处理的单位
嵌入嵌入向量将词元转换为可计算表示
转换器处理上下文表示建模词元关系和上下文信息
逐词元生成文本或代码块生成最终输出内容

转换器结构在大语言模型中的作用

转换器,也常对应英文 Transformer,是许多大语言模型的重要底层结构之一。它帮助模型处理输入上下文,并支持模型根据上下文逐词元生成输出。

编码器、解码器和自注意力的位置

在高层流程中,转换器可以包含具有自注意力功能的编码器和解码器神经网络。编码器、解码器和自注意力并不是孤立组件,它们共同服务于一个目标:让模型在处理词元序列时能够利用上下文信息。

自注意力可以帮助模型关注输入中的不同位置,并建模词元之间的关系。本文只解释工作流程层面的机制,不展开复杂数学推导。

为什么转换器适合语言生成

语言生成需要模型持续参考上下文:既要考虑用户输入,也要考虑已经生成的内容。转换器结构能够在词元序列中处理上下文关系,因此适合支持逐词元生成这一过程。

大语言模型能完成哪些自然语言处理任务

大语言模型的能力主要体现在语言和文本相关任务中。根据提示词,它可以生成、翻译、识别和解释文本,也可以生成代码块。

常见任务包括:

  • 文本生成: 根据提示生成文章草稿、摘要、改写内容或问答回复。
  • 文本翻译: 将输入文本转换为另一种语言的表达。
  • 内容生成: 围绕给定主题生成说明、提纲或其他文本内容。
  • 文本识别与解释: 对输入文本进行理解、归纳或解释。
  • 代码块生成: 根据提示生成代码片段或辅助说明。

要点: 大语言模型的典型能力围绕自然语言处理展开,但输出不一定只限于普通文本,也可以包括代码块等结构化内容。

用场景表总结大语言模型的应用方式

下表从用户需求、解决方式和输出结果三个维度,概括大语言模型在常见任务中的使用方式。

用户需求解决方式输出结果
撰写或改写文本根据主题、语气和格式提示生成内容草稿、摘要、改写稿或问答回复
翻译文本根据输入文本和目标语言生成对应表达翻译结果或多版本表达
辅助开发根据需求提示生成代码块或解释代码思路代码片段、说明文本或示例结构
解释文本内容对输入文本进行识别、归纳和解释摘要、要点、分类或说明
处理自然语言任务根据提示执行生成、翻译、识别等任务与任务目标匹配的文本输出

这些场景的共同点是:用户通过提示词表达目标,模型将提示转为可计算表示,再基于上下文逐步生成结果。

理解大语言模型时容易混淆的几个问题

训练阶段和推理阶段不同

训练阶段的重点是让模型从大量数据中学习语言模式。推理阶段的重点是模型接收用户提示,并根据已学习到的模式生成结果。一个是学习过程,一个是使用过程。

提示词、词元和嵌入向量不是一回事

提示词是用户输入给模型的文本;词元是模型处理文本时使用的基本单位;嵌入向量则是词元的数值化表示。理解这三者的区别,有助于理解大语言模型如何从自然语言输入进入神经网络计算。

概念含义在流程中的作用
提示词用户输入的任务或问题指定模型要处理什么
词元模型处理文本的基本片段将输入拆成可处理单位
嵌入向量词元的数值化表示让模型能够进行计算

生成文本不等于直接检索资料

大语言模型的核心过程是基于模型计算逐词元生成输出,而不是简单从某个固定资料库中复制答案。它可以生成看起来连贯的文本,也可以生成代码块,但这些输出来自提示词驱动下的生成过程。

能生成代码块不代表只面向编程任务

代码块生成只是大语言模型提示驱动生成能力的一种表现。它同样可以用于文本生成、翻译、摘要、解释和其他自然语言处理任务。