大语言模型 (LLM) 是一种较新的技术,可预测一个令牌或令牌序列,有时甚至可以预测多段落的令牌。请注意,词元可以是字词、子字词(字词的一部分),甚至可以是单个字符。与 N 元语言模型或循环神经网络相比,LLM 的预测结果要好得多,因为:
- 与循环模型相比,LLM 包含的参数要多得多。
- LLM 会收集更多上下文。
本部分介绍了构建 LLM 最成功且最广泛使用的架构:Transformer。
什么是 Transformer?
Transformer 是适用于各种语言模型应用(例如翻译)的先进架构:
![图 1. 输入内容为:I am a good dog. 基于 Transformer 的翻译器会将该输入转换为输出:Je suis un bon chien,即翻译成法语的同一句子。](https://developers.google.cn/static/machine-learning/crash-course/images/Iamagooddog.png?hl=fi)
完整的转换器由编码器和解码器组成:
例如,在翻译器中:
- 编码器会将输入文本(例如英语句子)处理成某种中间表示形式。
- 解码器会将该中间表示法转换为输出文本(例如,等效的法语句子)。
![图 2. 基于 Transformer 的翻译器从编码器开始,编码器会生成英语句子的中间表示法。解码器会将该中间表示法转换为法语输出句子。](https://developers.google.cn/static/machine-learning/crash-course/images/TransformerBasedTranslator.png?hl=fi)
什么是自注意力?
为了增强上下文,Transformer 在很大程度上依赖于一种称为自注意的概念。实际上,自注意机制代表每个输入令牌提出以下问题:
“输入的每个其他令牌对此令牌的解读有何影响?”
“自注意力”中的“self”是指输入序列。某些注意力机制会对输入令牌与输出序列(例如翻译)中的令牌或其他序列中的令牌的关系进行加权。但是,自我注意力机制只会对输入序列中词语之间的关系重要性进行加权。
为简单起见,假设每个令牌都是一个字词,并且完整上下文只有一个句子。请考虑以下句子:
The animal didn't cross the street because it was too tired.
上一个句子包含 11 个字词。这 11 个字词中的每一个都关注着另外 10 个字词,想知道这 10 个字词对自己来说有多重要。例如,请注意该句子包含人称代词 it。人称代词通常含糊不清。代词 it 通常指最近出现的名词或名词短语,但在示例句子中,it 指的是哪个最近出现的名词?是动物还是街道?
自注意力机制会确定每个附近字词与人称代词 it 的相关性。图 3 显示了结果:线条越蓝,相应词语对人称代词“它”的重要性就越高。也就是说,对于人称代词“它”,动物比街道更重要。
![图 3. 以下句子中的 11 个字词与人称代词“it”的相似度:“The animal didn't cross the street because it was too tired”。“animal”一词与人称代词“it”最相关。](https://developers.google.cn/static/machine-learning/crash-course/images/Theanimaldidntcrossthestreet.png?hl=fi)
反之,假设该句子的最后一个字词发生了以下变化:
The animal didn't cross the street because it was too wide.
在这个修改后的句子中,自注意机制有望将街道评为与人称代词“它”相关性高于动物。
有些自注意力机制是双向的,也就是说,它们会为被注意到的词的前面和后面的词法单元计算相关性得分。例如,在图 3 中,请注意系统会检查 it 两侧的字词。因此,双向自注意力机制可以从被关注词的两侧词语中收集上下文。相比之下,单向自注意力机制只能从被关注词的一侧的词汇收集上下文。双向自注意力对于生成整个序列的表示特别有用,而逐个令牌生成序列的应用则需要使用单向自注意力。因此,编码器使用双向自注意力,而解码器使用单向自注意力。
什么是多头自注意力?
每个自注意力层通常由多个自注意力头组成。层的输出是不同 head 输出的数学运算(例如加权平均值或点积)。
由于每个自注意力层都初始化为随机值,因此不同的头可以学习被注意到的每个字词与附近字词之间的不同关系。例如,上一部分介绍的自注意力层侧重于确定人称代词 it 所指的名词。不过,其他自注意力层可能会学习每个词与每个其他词的语法相关性,或学习其他互动。
为什么变压器如此庞大?
转换器包含数百亿甚至数万亿个参数。本课程通常建议构建参数数量较少的模型,而不是参数数量较多的模型。毕竟,与参数数量较多的模型相比,参数数量较少的模型在进行预测时会使用更少的资源。不过,研究表明,参数较多的 Transformer 始终优于参数较少的 Transformer。
但 LLM 如何生成文本?
您已经了解了研究人员如何训练 LLM 来预测缺失的一个或两个字词,这可能不会让您感到惊讶。毕竟,预测一两个字词本质上就是各种文本、电子邮件和创作软件内置的自动补全功能。您可能想知道 LLM 如何生成有关套利的句子、段落或俳句。
事实上,LLM 本质上是一种自动补全机制,可以自动预测(补全)数千个令牌。例如,请考虑以下句子后跟一个经过遮盖的句子:
My dog, Max, knows how to perform many traditional dog tricks. ___ (masked sentence)
LLM 可以为经过遮盖的句子生成概率,包括:
Probability | 字词 |
---|---|
3.1% | 例如,他可以坐下、待在原地和翻滚。 |
2.9% | 例如,他知道如何坐下、待在原地和翻滚。 |
足够大的 LLM 可以为段落和整篇文章生成概率。您可以将用户向 LLM 提出的问题视为“给定”句子,后跟一个虚构的掩码。例如:
User's question: What is the easiest trick to teach a dog? LLM's response: ___
LLM 会为各种可能的回答生成概率。
再举一个例子,使用大量数学“文字题”训练的 LLM 可能会看起来像在进行复杂的数学推理。不过,这些 LLM 基本上只是自动完成算术题提示。
LLM 的优势
LLM 可以为各种各样的目标受众群体生成清晰易懂的文本。LLM 可以针对它们明确训练过的任务进行预测。一些研究人员声称,LLM 还可以针对未明确训练过的输入进行预测,但其他研究人员对此提出了反驳。
LLM 存在的问题
训练 LLM 会遇到许多问题,包括:
- 收集庞大的训练集。
- 需要花费数月时间,并耗费大量计算资源和电力。
- 解决并行性问题。
使用 LLM 进行推理预测会导致以下问题:
- LLM 会产生幻觉,也就是说,它们的预测结果通常会出错。
- LLM 会消耗大量的计算资源和电力。在较大的数据集上训练 LLM 通常会减少推理所需的资源量,但较大的数据集会产生更多训练资源。
- 与所有机器学习模型一样,LLM 也可能存在各种偏差。