大型语言模型(入门篇)A
- 一、大型语言模型的定义
- 二、大型语言模型的工作原理
-
- [1. 词语表示:分词和嵌入](#1. 词语表示:分词和嵌入)
-
- [1.1 将分本分解为分词](#1.1 将分本分解为分词)
- [1.2 从分词到嵌入:捕捉含义](#1.2 从分词到嵌入:捕捉含义)
- [2. 预测下一个词](#2. 预测下一个词)
- [3. 训练数据规模的作用](#3. 训练数据规模的作用)
- [4. 模型参数](#4. 模型参数)
- [5. Transformer架构简介](#5. Transformer架构简介)
-
- [5.1 核心思想:注意力机制](#5.1 核心思想:注意力机制)
- [5.2 结构简化视图](#5.2 结构简化视图)
- [5.3 位置信息](#5.3 位置信息)
一、大型语言模型的定义
大型语言模型,通常缩写为LLMs,是人工智能(AI)和自然语言处理(NLP)的一部分。LLM本质上是一种AI模型,专门用于理解、生成和与人类语言文本交互,可以将其视为一个经过训练、能处理单词、句子和段落的复杂系统。
"大型语言模型"名称拆解:
- 模型: 在AI和机器学习中,"模型"是一个经过数据训练的系统,用于识别模式或进行预测。它不是一个物理实体,而是一个复杂的数学和计算结构。
- 语言: 表明模型的处理对象。它专门处理人类语言------阅读、处理和生成。这使其与训练于图像、声音或数字数据的AI模型有所不同。
- 大型:
- 用于训练的文本数据量之大: LLMs在庞大的数据集上进行训练,这些数据通常包含互联网上可用的大部分文本、数字化书籍、文章及其他来源。这种广泛的接触使它们能够学到文本中复杂的模式、语法、事实,甚至推理方式。
- 模型拥有的参数数量: 参数使模型在训练过程中调整的内部变量或"旋钮"。它们存储从数据中学到的模式。
简单来说,LLM接收输入文本("提示词"),并根据其训练中学到统计模式生成输出文本。其基本运作方式通常是根据前面的一串文本预测最有可能的下一个词(或词的一部分)。通过反复预测下一个元素,它可以生成完整的句子、段落或文档。
二、大型语言模型的工作原理
1. 词语表示:分词和嵌入
计算机不像人类那样理解词语和句子,它们处理的是数字。让机器处理语言主要包括两个步骤:将文本分解为易于处理的小块,称作分词 ;然后将这些分词表示为数字列表,称作嵌入。
1.1 将分本分解为分词
假设你有一个句子:"I love you!"
LLM通常不会直接处理整个句子,甚至不是逐词处理,而是将文本分解成更小的单位,称作分词。一个分词可能是一个完整的词、一个词的一部分(子词),甚至只是标点符号。
将文本分解为分词的过程称为分词处理。特定文本如何分词,取决于所使用的分词器,它通常与LLM本身一同选择和训练。
举例:
- "Large Language Models"可能会变成 ["Large", "Language", "Models"](三个分词)
- "tokenization"可能会变成 ["token", "ization"](两个分词,捕获词根和后缀)
- "isn't"可能会变成 ["is", "n't",](两个分词)
- " U.S.A." 可能会变成 [" U", ".", "S", ".", "A", "."] (六个分词,包括空格和标点)
为什么使用子词?
将文本分词为子词有助于模型处理不熟悉的词语或变体。如果模型知道"token"和"ization",即使它在训练期间没有经常看到"tokenization"这个词,它也可能理解。也有助于控制唯一分词的总量,使其易于管理。
一旦分词完成,模型词汇表中的每个唯一分词都会被分配一个特定的整数ID。
1.2 从分词到嵌入:捕捉含义
这些整数ID告诉模型它正在识别哪个分词,但它们本身并没有捕捉到分词之间的含义或关联。
嵌入是一个由数字组成的密集列表,也称为向量,它表示一个分词。每个分词不再是单一的ID,而是被映射到一个可能有数百或数千个维度(数字)的向量。
这些嵌入向量不是手动分配的,是模型在大量的训练过程中学到的。模型会调整这些向量中的值,使得在相似语境中使用的分词最终具有相似的嵌入向量。
2. 预测下一个词
大型语言模型在生成文本时,其核心是执行一个高度复杂的预测任务。其基本理念是预测序列中的下一个词元(通常对应一个词或词的一部分)。给定一系列前序词元(通常称为上下文),模型会计算其整个词汇表中下一个词元应该是什么样的概率分布。
- 输入上下文: 模型接收一个初始的词元序列(可以是提供的提示,也可以是模型迄今为止生成的文本),例如:上下文可能代表"The cat sat on the"这些词元
- 概率计算: 基于此上下文,模型分析它在训练过程中学习到的模式。然后,它会计算其词汇表中每个可能的词元在下一个位置出现的概率,可能会得出
A. "mat" 的概率是0.6
B. "roof" 的概率是0.2
C. "chair 的概率是0.1
D. "computer" 的概率是0.0001
...依此类推 - 词元选择: 模型需要选择下一个词元。最简单的策略通常是贪婪解码,即直接选择概率最高的词元(示例中是"mat")。更复杂的策略可能涉及从概率最高的前几个词元中进行采样,以引入多样性,但其核心概念仍基于这些计算出的概率。
- 更新上下文: 选定的词元被附加到序列中。上下文现在变成"The cat sat on the mat"。
- 重复: 此过程重复进行。模型接收新的、更长的上下文,并预测其后的下一个词元,计算概率,选择词元,然后再次附加。
这种顺序的、概率驱动的预测机制是大型语言模型生成连贯且与上下文相关的文本背后的基本运作原理。预测的质量和复杂程度在很大程度上取决于模型的架构、训练数据集的大小机器参数数量。
3. 训练数据规模的作用
大型语言模型的核心任务是预测下一个词(或词元),这依赖于识别语言中的模式,模型看到的例子越多,识别这些模式的能力就越强。
训练数据量、模型参数数量以及模型的整体表现之间存在密切关联。参数越多的模型通常有能力学习更复杂的模式,但它们需要相应更大的数据集来有效训练,而非简单地记忆输入。给一个大型模型相对小的数据集可能不会产生好的结果。反之,给一个小模型提供海量数据集可能效率不高,因为模型缺乏捕获数据中所有细节的能力。
数量固然重要,但训练数据的质量也必不可少。如果训练数据充满错误、偏见或有害内容,模型就会学习并复制这些不理想的模式。
4. 模型参数
可以将参数看作是大型语言模型内部可调节的"旋钮"或配置设定。在训练期间,模型会处理输入文本并不断调整这些参数,以更好地完成其核心任务,通常是预测序列中的下一个词。
参数数量越多,通常能让模型具有更高的能力来记忆信息和学习训练数据中的复杂模式。
训练阶段完成后,这些参数通常会被"冻结",这意味着它们的值是固定的。当你向一个训练好的大型语言模型提供提示时,你的输入文本会通过模型的各个层进行处理。每一步进行的计算都取决于输入数据和这些已学习参数的固定值。
5. Transformer架构简介
5.1 核心思想:注意力机制
Transformer架构引入了一种强大的机制,称为注意力机制,具体来说是自注意力机制。模型不再严格地一个接一个地处理词语,注意力机制让模型在考虑任何单个词时,能衡量输入序列中所有词的重要性。
例如:当你读到句子"The cat, which chased the mouse, quickly climbed up the tall tree"(那只追逐老鼠的猫,迅速爬上了高高的树),为了理解"up"这个词,你的大脑自然会不仅关注它前面的"climbed",还会把它与"cat"、"tree"联系起来,以获得完整信息。注意力机制让模型能够以计算方式进行类似操作。它学习识别输入中哪些其他词语为理解当前词或预测下一个词提供最有用的上下文。
这使得Transformer能够有效处理长距离依赖关系------指文本中相距较远的词语之间的关系。
5.2 结构简化视图
尽管Transformer架构包含多个组成部分,但可以将其简化为两个主要部分:
- 编码器(Encoder): 这部分读取输入文本。它利用自注意力机制,同时处理所有输入词,并为每个词构建丰富的表示(嵌入),这些表示融入了整个输入序列的上下文。
- 解码器(Decoder): 这部分一次生成一个词元作为输出文本。它也使用自注意力机制来考虑已生成的词语。更重要的是,它也关注编码器生成的上下文表示。这确保了输出与输入提示相关,并在生成更多文本时保持连贯性。

5.3 位置信息
你可能会有个疑问:如果模型使用注意力机制同时查看所有词语,它是如何得知词语的原始顺序呢?这通过位置编码来处理。本质上,表示每个词位置的额外信息被添加到词的嵌入中。这确保了模型拥有序列顺序信息,即使在使用注意力机制时会衡量词语的重要性而不管其位置。