LLM 学习笔记——理论基础
这份笔记关注大模型的理论基础。
毫无疑问的是,在大模型领域,实践是远远走在理论前面的,但是基础理论的缺乏并不是致命的阻碍。一个历史上的例子是:“在蒸汽机已经大规模应用的年代,热力学的重要定理一条都还没搞出来,工程师完全凭借的是经验或错误的热质说。等到这些热力学定理终于写出来时,蒸汽机已经跑了几十年甚至上百年。”
为什么大语言模型能够成功
近年来,大语言模型(Large Language Models, LLM)在自然语言处理领域取得了显著进展。相比早期的机器学习方法,大语言模型能够在统一模型框架下完成多种语言任务,并在多个基准测试中取得较好的性能。
这种成功通常被认为是多个因素共同作用的结果,包括:
- Transformer 架构提供了可扩展的序列建模方式。
- 预训练语言模型范式让模型可以先学通用能力,再适配具体任务。
- 海量文本和代码数据提供了足够丰富的训练数据。
- 自监督学习让数据规模可以大到互联网级别。
- 模型规模、数据规模和计算资源之间存在相对稳定的 scaling law。
Transformer 架构
现代大语言模型主要基于 Transformer 架构。Transformer 的核心机制是 自注意力(self-attention),其基本计算形式为
$$ \mathrm{Attention}(Q,K,V) = \mathrm{softmax}\left( \frac{QK^\top}{\sqrt{d_k}} \right)V . $$
其中:
- $Q$ 表示 query
- $K$ 表示 key
- $V$ 表示 value
- $d_k$ 为 key 的维度
在语言模型中,输入序列首先被映射为浮点数向量表示:
$$ x_1, x_2, \ldots, x_n $$
然后通过线性变换得到
$$ Q = XW_Q,\quad K = XW_K,\quad V = XW_V . $$
自注意力机制允许序列中的每个 token 与其他 token 建立依赖关系,从而能够有效建模长距离语义关系。
Transformer 的一个重要特点是其计算主要由 矩阵乘法 构成,这种计算形式非常适合 GPU 等并行计算设备,因此可以在大规模计算集群上高效训练。相比早期的循环神经网络(RNN),Transformer 更容易扩展到极大的模型规模。
大语言模型本质上还是在学习一个高维的条件概率分布,可以看作对复杂非线性函数的近似。理论上实现这种函数逼近的模型结构有无数种,Transformer 并不一定是唯一或最优的选择,但是 Transformer 具有高度并行化的计算特性,主要由矩阵运算组成,因此能够很好地利用 GPU 等硬件的计算能力,支持大规模的训练。
预训练语言模型范式:BERT 与 GPT
Transformer 架构提出之后,自然语言处理逐渐形成了 预训练语言模型(pretrained language model) 的范式:
1 | 大规模语料预训练 → 获得通用语言表示 → 在具体任务上微调 |
其中两个有代表性的模型是:
- BERT(Bidirectional Encoder Representations from Transformers)
- GPT(Generative Pretrained Transformer)
BERT 采用 Transformer 编码器结构,通过 masked language modeling 进行训练,即随机遮蔽部分 token 并预测其内容,从而学习上下文相关的语言表示。
GPT 则采用 自回归语言模型,其训练目标为预测下一个 token:
$$ p(x_1,\ldots,x_n) = \prod_{t=1}^{n} p(x_t \mid x_1,\ldots,x_{t-1}) . $$
随着模型规模不断扩大,GPT 系列模型逐渐成为现代大语言模型的主要技术路线。
海量数据与自监督学习
大语言模型能够利用互联网规模的文本数据进行训练,例如:
- 网页文本
- 书籍
- 代码仓库
- 技术文档
这些数据可以统一表示为 token 序列,从而形成规模达到 $10^{11} \sim 10^{13}$ 级别的训练语料。
预训练过程中通常采用 自监督学习。以 GPT 的训练目标为例,标签可以直接从文本中生成,因此不需要人工标注。这使得模型能够在极大规模的数据上进行训练,从而学习丰富的语言模式和知识结构。
Scaling Law
在大语言模型研究中,一个重要发现是 scaling law:实验观察表明,当模型规模、数据规模和计算量增加时,模型性能会按照稳定规律提升。
例如,如果用语言模型的损失函数 $L$ 表示模型性能,则其与模型参数规模 $N$ 的关系可以近似表示为
$$ L(N) \approx L_\infty + a N^{-\alpha}. $$
其中:
- $N$ 表示模型参数数量
- $L_\infty$ 为理论极限损失
- $a$ 与 $\alpha$ 为经验常数
进一步研究表明,模型规模 $N$、数据规模 $D$ 和计算量 $C$ 之间需要保持合理比例。当三者同时增加时,模型性能可以持续提升:
1 | 更大的模型 + 更多训练数据 + 更多计算资源 → 更好的模型性能 |
这一关系说明随着模型规模增加,模型损失会按照幂律(power law)逐渐下降。
统一的序列建模框架
语言任务具有一个重要特点:许多不同任务都可以表示为 序列生成问题。例如:
- 翻译:输入源语言句子,生成目标语言句子
- 问答:输入问题和上下文,生成答案
- 摘要:输入文章,生成摘要
这些任务都可以表示为:
1 | 输入序列 → 输出序列 |
因此,大语言模型可以通过统一的序列建模框架处理多种语言任务,并在不同任务之间共享知识。
关键论文时间线
现代大语言模型(Large Language Models, LLM)的技术路线主要由几个关键思想逐步形成,包括 Transformer 架构、大规模预训练、Scaling Laws 以及对齐技术。下面按时间线列出若干代表性论文。
Attention Is All You Need Vaswani et al., 2017
该论文提出了 Transformer 架构,用自注意力(self-attention)机制取代传统的循环神经网络(RNN)和卷积网络(CNN)。Transformer 成为大语言模型的基础结构,包括 GPT、BERT、PaLM、LLaMA 等大模型均基于这一架构。
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding Devlin et al., 2018
BERT 使用 Transformer 编码器进行双向语言建模。其训练目标为 Masked Language Model,即随机遮盖输入序列中的若干词,并预测被遮盖的 token,从而学习上下文表示。该方法在多种自然语言理解任务上取得了较好的效果。
BERT 这个缩写名称的完整含义为
$$ \text{BERT} = \text{Bidirectional Encoder Representations from Transformers} $$
Improving Language Understanding by Generative Pre-Training Radford et al., 2018
GPT 模型采用自回归语言建模目标:
$$ P(x_1,\dots,x_n)=\prod_{i=1}^{n} P(x_i \mid x_{<i}) . $$
该方法使用 decoder-only 的 Transformer 结构,在文本生成任务中表现良好,并成为后续 GPT 系列模型的基础。
GPT 这个缩写名称的完整含义为
$$ \text{GPT} = \text{Generative Pre-trained Transformer} $$
Scaling Laws for Neural Language Models Kaplan et al., 2020
该论文通过大量实验发现,语言模型的性能与模型参数规模、训练数据规模以及计算量之间存在稳定的幂律关系。例如可以写为
$$ L(N,D) \approx L_{\infty} + aN^{-\alpha} + bD^{-\beta} + cC^{-\gamma} . $$
其中 $N$ 表示模型参数规模,$D$ 表示训练数据规模,$C$ 表示计算量。 这一结果表明,随着模型规模的增加,模型性能可以持续提升,从而推动了大规模语言模型的发展。
后续还有各种版本的 Scaling Laws,或者说对 Scaling Laws 进行的修正。
Language Models are Few-Shot Learners Brown et al., 2020
该论文提出 GPT-3(约 175B 参数)模型。 研究发现,当模型规模足够大时,模型可以通过 prompt 中提供的少量示例完成多种任务,即所谓的 few-shot learning,而不需要对每个任务单独微调。
2022 年底,GPT 3.5 的出现是 LLM 时代开启的标志性事件。
Training Compute-Optimal Large Language Models Hoffmann et al., 2022
该论文重新研究了 Scaling Laws,指出许多已有模型在训练时数据量不足。研究表明,在固定计算预算下,最佳训练策略应满足
$$ \text{tokens} \propto \text{parameters}. $$
也就是说,模型参数规模与训练 token 数量应当同步增长。 论文提出的 Chinchilla 模型(70B 参数但训练数据更多)在性能上超过了更大的 GPT-3。
Training Language Models to Follow Instructions with Human Feedback Ouyang et al., 2022
该论文提出 InstructGPT,通过人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)对语言模型进行对齐训练。典型流程包括
- 预训练语言模型
- 使用指令数据进行监督微调
- 根据人类偏好训练奖励模型
- 使用强化学习优化模型
这种方法使模型能够更好地理解和执行人类指令,并成为当前对话式语言模型的重要训练范式。
常见研究方向
下面是大模型方面的一些研究方向:
- 模型规模与训练效率:在 Scaling Laws 的指导下,研究者继续探索更大规模模型的训练,同时也更加关注计算效率。例如通过改进训练策略、优化数据使用方式或使用专家混合(Mixture-of-Experts)结构,在有限计算资源下获得更高性能。
- 推理效率与部署成本:随着模型规模增大,推理成本成为重要问题。当前常见的技术包括模型蒸馏、量化、稀疏化以及高效注意力结构等,用于降低显存占用和计算开销,使模型能够在更小的硬件平台上运行。
- 多模态模型:越来越多的模型开始同时处理多种数据类型,例如文本、图像、音频和视频。这类模型通过统一的表示学习框架,使模型能够完成视觉问答、图文生成、视频理解等任务。
- 工具使用与外部系统交互:一些模型被设计为能够调用外部工具,例如搜索引擎、数据库或代码执行环境。通过这种方式,模型可以在需要时获取外部信息,从而提升回答的准确性和实用性。
- 推理能力与复杂任务求解:研究者也在探索如何提升模型在数学、逻辑推理和复杂规划任务中的能力。例如通过链式推理(Chain-of-Thought)、自我一致性推理或强化学习方法来改进推理过程。