文章目录
本文为《A Survey of Large Language Models》系列笔记的一部分,原论文链接:arxiv2303.18223
语言模型的由来和发展
人类语言能力自幼发展并持续演化,而让机器具备类似的语言理解与交流能力,一直是人工智能领域的重要挑战。语言建模(Language Modeling, 简称 LM)是提升机器语言智能的主要方法之一。一般来说,语言建模的目标是对词序列的生成概率进行建模,从而预测未来(或缺失)词元的概率。其发展大致可以分为四个主要阶段:
统计语言模型(Statistical Language Models,简称 SLM)
统计语言模型(SLMs)是基于20世纪90年代兴起的统计学习方法开发的。其基本思想是基于马尔可夫假设来构建词预测模型,例如:根据最近的上下文预测下一个词。一般采用用固定长度上下文(如 n-gram)预测下一个词,例如 bigram(二元)和 trigram(三元)语言模型。这种做法曾经广泛应用于信息检索和 NLP,但它有维度灾难的问题:要准确估计高阶语言模型非常困难,因为需要估计的转移概率数量随着维度呈指数级增长。
神经语言模型(Neural Language Models,简称 NLM)
随后出现的神经语言模型(NLMs)采用神经网络架构(包括多层感知机MLP和循环神经网络RNN)来建模词序列的概率分布。这一领域的奠基性研究《A neural probabilistic language model》(Bengio et al., 2003)首次提出了分布式表示(distributed representation)的概念,通过聚合上下文特征(即分布式词向量)来构建词预测函数。此后提出的word2vec方法进一步优化了分布式表示的训练方式,该表示方法在多种自然语言处理任务中展现出卓越的实用性。
预训练语言模型(Pre-trained Language Models,简称 PLM)
ELMo模型的提出,将词向量表示从静态(如word2vec)升级为上下文相关的动态形式。由于词义会随上下文动态变化,这一改进显著提升了模型效果,为后续BERT、GPT等模型奠定了重要基础。随后出现的Transformer架构彻底摒弃了RNN/LSTM结构,创新性地采用基于注意力机制的序列建模方法,大幅提升了训练效率和模型性能。在此基础上,BERT进一步优化了Transformer的应用方式,通过高度并行的自注意力机制,将其发展为"预训练+微调"的通用语言理解框架。这一突破性研究催生了大量后续工作,确立了"预训练+微调"的主流学习范式,其核心特点是通过微调使预训练语言模型(PLM)适配各类下游任务。
大语言模型(Large Language Models,简称 LLM)
研究人员发现,扩大预训练语言模型(PLM)的规模(例如增大模型参数或训练数据规模)通常会提升其在下游任务中的能力,这遵循所谓的“扩展法则” (Scaling Law, 之后会讲)。有些能力是全新的,它们称为“涌现能力” (emergent abilities)。比如如下能力:
| 能力 | 小模型表现 | 大模型涌现能力表现 |
|---|---|---|
| 上下文学习(In-context learning) | 几乎无法完成 few-shot 任务 | GPT-3 能根据几个示例在提示中直接学习并泛化 |
| 算术推理 | 无法完成 2 位数加法 | PaLM/GPT-4 能准确完成多步数学计算题 |
| 代码生成 | 结构混乱、无法运行 | Codex 或 GPT-4 可以生成复杂的 Python 或 JavaScript 代码 |
| 多语言翻译 | 非主流语言翻译质量差 | GPT-4 在低资源语言(如苏格兰盖尔语)上仍有高质量输出 |
| 逻辑推理 / 常识问答 | 错误率高、缺乏推理链 | GPT-4 可以分步骤解释原因,给出合理答案 |
关于涌现能力的内容后面会有细致讲解。
大语言模型LLM的快速发展正重塑 AI 各大领域,引发了人们对 AGI 的关注,比如:
1)在自然语言处理(NLP)领域,LLM 正逐步成为通用语言任务求解器,研究范式正朝着利用 LLM 的方向转变;
2)在 信息检索(IR) 领域,传统搜索引擎正受到 AI 聊天机器人(如 ChatGPT)带来的新型信息获取方式的挑战。New Bing 是将 LLM 强化搜索结果的初步尝试;
3)在 计算机视觉(CV) 领域,研究人员尝试开发类似 ChatGPT 的视觉-语言模型,以更好支持多模态对话。GPT-4 已经通过整合视觉信息支持多模态输入。
LLM 虽然有了很大发展,但是它的机制仍不透明。首先,目前仍不清楚为何涌现能力只在 LLM 中出现,而不是在更小的 PLM 中出;其次,研究界难以独立训练高质量的 LLM,这个是由于计算资源的限制普通研究室是承担不起的。目前的 LLM 主要由产业界主导训练,很多关键训练细节(如数据收集和清洗方法)都没有公开。最后,LLM很多时候会产生对人类有害的内容,如何让它对齐人类价值和偏好仍具挑战。
大语言模型的背景
大模型的基本背景主要包括扩展法则(scaling laws)、涌现能力(emergent abilities)以及关键技术(key techniques)
扩展法则(scaling laws)
大量研究表明,扩大规模可以显著提升 LLM 的模型能力。建立一种量化描述扩展效应的方式是非常有意义的。接下来我们将介绍两种 Transformer 语言模型的典型扩展法则。
KM 扩展法则
2020年,OpenAI的Kaplan 等人提出了三条关于模型性能 L L L 与模型规模 N N N、数据规模 D D D、计算量 C C C 的幂律扩展法则公式如下:
- 模型规模扩展法则:
L ( N ) = ( N c N ) α N , α N ≈ 0.076 , N c ≈ 8.8 × 1 0 13 L(N) = \left( \frac{N_c}{N} \right)^{\alpha_N}, \quad \alpha_N \approx 0.076, \quad N_c \approx 8.8 \times 10^{13} L(N)=(NNc)αN,αN≈0.076,Nc≈8.8×1013
- 数据规模扩展法则:
L ( D ) = ( D c D ) α D , α D ≈ 0.095 , D c ≈ 5.4 × 1 0 13 L(D) = \left( \frac{D_c}{D} \right)^{\alpha_D}, \quad \alpha_D \approx 0.095, \quad D_c \approx 5.4 \times 10^{13} L(D)=(DDc)αD,αD≈0.095,Dc≈5.4×1013
- 计算量扩展法则:
L ( C ) = ( C c C ) α C , α C ≈ 0.050 , C c ≈ 3.1 × 1 0 8 L(C) = \left( \frac{C_c}{C} \right)^{\alpha_C}, \quad \alpha_C \approx 0.050, \quad C_c \approx 3.1 \times 10^8 L(C)=(CCc)αC,αC≈0.050,Cc≈3.1×108
- L ( ⋅ ) L(\cdot) L(⋅):代表模型的损失(Loss),值越小表示性能越好。
- α \alpha α:幂律的指数,决定性能改善的幅度。
- N c , D c , C c N_c, D_c, C_c Nc,Dc,Cc:是经验确定的参考规模,用于归一化。
这些公式说明,当你增大模型参数 N N N、训练数据 D D D、或训练计算量 C C C 时,模型的损失函数 L L L 会以幂律形式下降,即性能提升。
Chinchilla扩展法则
来自 Google DeepMind 团队的Hoffmann等人提出了一种替代形式的扩展法则,用于指导大语言模型(LLMs)的计算最优训练策略。他们拟合出一组结构相似但系数不同的扩展法则。
Hoffmann 等人提出的扩展法则公式如下:
L ( N , D ) = E + A N α + B D β L(N, D) = E + \frac{A}{N^\alpha} + \frac{B}{D^\beta} L(N,D)=E+NαA+DβB
其中:
- L ( N , D ) L(N, D) L(N,D):表示模型在给定模型规模 N N N 和数据规模 D D D 下的训练损失;
- E E E:不可约损失(即真实数据分布的熵);
- A N α \frac{A}{N^\alpha} NαA:表示模型容量不足带来的误差项(可通过增加模型规模降低);
- B D β \frac{B}{D^\beta} DβB:表示数据量不足带来的误差项(可通过增加数据规模降低);
这个公式的最大亮点是同时考虑了模型大小 N N N 和 数据大小 D D D 的影响,从而可用于计算预算固定的情形中确定“最优的模型-数据配比”以最大化性能。
在该扩展法则中,具体参数为:
- E = 1.69 E = 1.69 E=1.69
- A = 406.4 A = 406.4 A=406.4
- B = 410.7 B = 410.7 B=410.7
- α = 0.34 \alpha = 0.34 α=0.34
- β = 0.28 \beta = 0.28 β=0.28
在计算预算满足约束 C ≈ 6 N D C \approx 6ND C≈6ND(即总计算量约为 6 倍于模型大小与数据大小的乘积)的前提下,他们通过优化损失函数 L ( N , D ) L(N, D) L(N,D),推导出计算资源在模型规模和数据规模之间的最优分配方案:
N opt ( C ) = G ( C 6 ) a , D opt ( C ) = G − 1 ( C 6 ) b N_{\text{opt}}(C) = G \left( \frac{C}{6} \right)^a, \quad D_{\text{opt}}(C) = G^{-1} \left( \frac{C}{6} \right)^b \quad Nopt(C)=G(6C)a,Dopt(C)=G−1(6C)b
其中:
- a = α α + β = 0.34 0.34 + 0.28 ≈ 0.548 a = \frac{\alpha}{\alpha + \beta} = \frac{0.34}{0.34 + 0.28} ≈ 0.548 a=α+βα=0.34+0.280.34≈0.548
- b = β α + β = 0.28 0.34 + 0.28 ≈ 0.452 b = \frac{\beta}{\alpha + \beta} = \frac{0.28}{0.34 + 0.28} ≈ 0.452 b=α+ββ=0.34+0.280.28≈0.452
- G G G:是根据 A , B , α , β A, B, \alpha, \beta A,B,α,β 计算出的缩放系数。
扩展法则(scaling laws)相关的问题与应用
可预测扩展(Predictable Scaling)
根据扩展法则,可以可靠地通过小模型的性能来预测大模型的性能,这一现象被称为可预测扩展(Predictable Scaling)。
对于大模型来说,由于计算成本和时间的原因,难以对各种训练技巧或变体进行全面试验。如果能将从小模型中获得的经验迁移到大模型,将极大提高效率。另一方面,由于训练大规模模型周期长,可能会出现如训练损失突然上升等问题。此时可借助扩展法则在早期监测训练状态,识别异常表现。
尽管扩展法则呈现出平滑的性能提升趋势(或损失降低趋势),它也揭示出一种现象:边际收益递减(diminishing returns),即随着模型进一步扩大,性能提升幅度变小。
另外一方面,随着模型规模不断扩大,可用于训练的公开文本数据实际上是有限的。未来可能会出现数据“耗尽”的问题。此时研究扩展法则在数据受限场景中的适用性具有重要意义,用于指导重复数据的使用和数据增强。
任务级可预测性(Task-level Predictability)
一个基本问题是:语言建模损失的降低能否转化为任务性能的提升。直观上,语言建模损失越小,模型的整体能力应该越强,因此其在下游任务中的表现也倾向于。然而,更好语言建模损失的下降并不总能带来下游任务性能的提升。在一些任务中甚至会出现所谓的反向扩展现象(inverse scaling),即语言建模损失减少时,任务表现反而变差。这种特性预测的难度和任务有关,部分关键能力如上下文学习仅在规模足够大时才涌现,难以提前预测。
涌现能力
LLMs 的涌现能力(emergent abilities)被正式定义为:“在小模型中不存在、但在大模型中出现的能力”,这是 LLM 与以往 PLM 之间最显著的区别之一。涌现能力出现时的一个显著特征是:当模型规模达到某一临界点后,性能突然显著高于随机水平。
下面介绍LLM的三种典型涌现能力。
上下文学习(In-context learning, ICL)
上下文学习的概念可以理解为假设语言模型被提供了一个自然语言的任务指令和/或几个任务示例,它就能通过补全输入文本中的词序列来生成预期输出,无需任何额外训练或梯度更新。
这个概念最早出现在GPT-3中。在 GPT 系列模型中,只有 175B 参数的 GPT-3 展现出强大的上下文学习能力,而 GPT-1 和 GPT-2 并没有这种能力。
ICL 的表现还依赖于具体的下游任务,比如在算术任务(如三位数加减法)中,13B 参数的 GPT-3 就能表现出 ICL 能力;但在波斯语问答任务上,即使是 175B 的 GPT-3 表现也不佳。
指令遵循能力(Instruction Following)
研究发现通过在多任务数据集上进行微调,并将这些任务以自然语言指令的形式统一格式化(称为指令微调,instruction tuning),研究发现大语言模型(LLMs)在面对未见过的指令任务时也能表现良好。指令遵循能力通过指令微调获得,使 LLM 能仅根据自然语言描述执行新任务。该能力通常在模型规模超过 60B 后涌现,显著提升泛化性,且无需示例即可完成复杂任务。
逐步推理能力(Step-by-step reasoning)
小型语言模型通常难以解决需要多步推理的复杂任务,例如数学应用题。思维链提示(Chain-of-Thought, CoT)策略后,大语言模型可以通过提示中引导中间推理步骤来推导出最终答案,从而成功完成此类任务。这一能力可能与模型在训练过程中接触到大量代码数据有关,因为代码本身具有逻辑性和多步结构。
通常在模型规模超过 60B 后出现,该能力对数学类推理任务尤其有效,效果随任务而异,在 100B 以上模型中最为明显。
涌现能力与扩展法则之间的关系
扩展法则与涌现能力被视为理解大模型相较于小模型优势的两个不同视角。
扩展法则(通常通过语言建模损失衡量)描述的是性能的可预测、连续提升,但可能存在边际收益递减;
涌现能力(通常通过任务性能衡量)则是不可预测的,但一旦出现便能带来突出的任务表现跃升。
涌现能力可能部分来源于评估设置本身,例如某些任务使用了非连续的评估指标。但是,大多数用户对 LLM 的任务表现本身就以非连续方式感知。比如要生成没有bug的代码,而不是选择错误更少的代码。
LLM中的关键技术
扩展(Scaling)
如前文所述,在 Transformer 语言模型中存在显著的扩展效应:更大的模型规模、数据规模以及更多的训练计算量,通常会带来更强的模型能力。
进行数据扩展时还必须谨慎进行数据清洗,因为预训练数据的质量对模型最终能力至关重要。
训练(Training)
由于模型规模巨大,成功训练一个高质量的大语言模型(LLM)是极具挑战性的任务。为了学习 LLM 的网络参数,必须采用分布式训练算法,这通常需要结合多种并行策略。训练过程中的稳定性依赖于优化技巧,如重启与混合精度。GPT-4 构建专用基础设施与优化方法,使得可以通过小模型准确预测大模型的训练表现。
能力激发(Ability Eliciting)
LLM 拥有潜在涌现能力,但需通过设计任务指令或提示策略来激发。之前的思维链提示CoT,上下文学习策略和指令微调都是一些技巧。
对齐微调(Alignment Tuning)
在之前的LLM部分讲过,LLM 是基于大规模预训练语料进行训练的,而这些语料中既包含高质量数据,也可能包含低质量或有害内容,因此模型有可能生成有毒、偏见甚至有害的输出。所以需要让 LLM 的行为与人类价值观对齐。InstructGPT 设计了一种有效的微调方法,使得 LLM 能更好地遵循用户指令。该方法采用了基于人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF) 技术,将人类纳入训练环节,并通过精心设计的标注策略进行指导。
GPT发展史
GPT 模型背后的基本原理是:通过语言建模,将世界知识压缩进一个仅含解码器(decoder-only)的 Transformer 模型中,使其能够“记住”或“还原”这些语义,从而充当一个通用任务求解器。
其成功的两个关键点是:1)训练基于 解码器结构的 Transformer 语言模型,准确预测下一个词;2)不断扩大语言模型的规模。
总体而言,OpenAI 在 LLM 方向的研究可大致划分为以下几个阶段。
早期探索
OpenAI 最初尝试用 RNN 实现语言智能,Transformer出现后OpenAI随后根据其架构开发了两款初代GPT模型,即 GPT-1 和 GPT-2。
GPT-1
2017 年,Google 提出了 Transformer 模型,OpenAI 团队迅速将其语言建模研究转向这一新的神经网络架构。2018 年,OpenAI 发布了第一个 GPT 模型,即 GPT-1,并首次使用缩写 GPT 作为模型名称,意为 Generative Pre-Training(生成式预训练)。GPT-1 基于生成式、仅含解码器(decoder-only)的 Transformer 架构,并采用了无监督预训练 + 有监督微调的混合训练方法。它奠定了整个 GPT 系列模型的核心架构,并确立了其建模自然语言的基本原则:预测下一个词(next-word prediction)。
GPT-2
GPT-2 扩大模型规模,删除了有监督微调,并提出无监督建模即可统一解决多种 NLP 任务的理念,将任务视作条件词预测问题。其核心观点是:只要模型足够强,预测下一个词就等价于还原世界的语言过程,预示 LLM 具备通用任务求解潜力。
能力跃升
虽然 GPT-2 被定位为一种“无监督的多任务学习器”,但整体表现仍弱于那些经过有监督微调的最先进方法。GPT-3 保留了基本相同的生成式预训练架构,但通过大幅扩展模型规模实现了关键性的能力跃升。
GPT-3
GPT-3 扩展至 175B 参数。GPT-3 的论文中正式提出了上下文学习(In-Context Learning, ICL) 的概念 ,即通过少样本(few-shot)或零样本(zero-shot)方式使用大语言模型(LLMs)。
尽管 GPT-3 的论文并未明确讨论“涌现能力”,但我们可以观察到其性能大幅跃升的现象,可能已经超越了基本扩展法则所能预测的增长幅度。
它开启了从预训练语言模型(PLM)迈向通用大语言模型(LLM)的新时代,它通过实验证明:将神经网络规模显著扩大,可以带来模型能力的巨大提升。
能力增强
由于 GPT-3 本身已具备强大能力,它被 OpenAI 作为基础模型,用于开发更为强大的大语言模型(LLMs)。
总体而言,OpenAI 主要通过两种方法进一步提升 GPT-3 的能力:
1)基于代码数据的训练
2)与人类偏好对齐的微调
代码数据训练
原始的 GPT-3 模型是基于纯文本进行预训练的,因此在处理复杂推理任务(如代码补全和数学题解答)方面存在一定局限。OpenAI 通过在 GitHub 代码上微调推出 Codex,它展示了其在解决复杂编程问题方面的强大能力,同时在数学题解方面也带来了显著性能提升。事实上,GPT-3.5 系列模型就是基于一个代码模型(code-davinci-002)开发的,这表明在代码数据上训练是提升 GPT 系列模型能力(尤其是推理能力)的重要手段。但是这一假设仍需更系统的验证和深入研究。
人类对齐(Human Alignment)
OpenAI 相关的人类对齐研究可以追溯到 2017 年或更早。当年,OpenAI 博客发布了一篇题为 “Learning from Human Preferences” 的文章,介绍了一个利用 强化学习(RL) 从人类偏好比较中学习的工作。不久,OpenAI 又在 2017 年 7 月发表了 近端策略优化(PPO) 算法论文,该算法如今已成为从人类偏好中学习的主流强化学习方法。随后在 2020 年 1 月,OpenAI 使用这些 RL 方法对 GPT-2 进行了微调,通过人类偏好来提升 GPT-2 在自然语言处理任务中的能力。基于这些早期成果,OpenAI 在 2022 年 1 月 提出了 InstructGPT,正式建立起一个三阶段的 人类反馈强化学习(RLHF) 算法,用于将 GPT-3 模型与人类价值观对齐。RLHF算法还特别有助于缓解 LLM 生成有害或有毒内容的问题,这对 LLM 在现实中的安全部署至关重要。
语言模型的发展里程碑
ChatGPT
2022 年 11 月,OpenAI 发布了基于 GPT 模型(GPT-3.5 和 GPT-4)开发的对话模型 ChatGPT。ChatGPT 的训练方式与 InstructGPT 类似,但在训练数据收集上的一个主要区别在于ChatGPT 的训练数据结合了由人类生成的完整对话样本(人类分别扮演用户与 AI 的角色),并将这些数据与 InstructGPT 的指令数据集一起,以对话格式进行训练。
ChatGPT 展现出出色的人机交流能力,包括:
-
拥有庞大的知识库;
-
在数学问题上具备良好的推理能力;
-
能够准确跟踪多轮对话中的上下文;
-
与人类价值观高度对齐,实现了更安全的应用。
之后,ChatGPT 引入了插件机制,支持调用外部工具或应用程序,进一步扩展了其能力范围。
GPT-4
GPT-4 于 2023 年 3 月发布,将文本输入能力扩展到了多模态信号,即支持图像和文本混合输入。GPT-4 在解决复杂任务方面的能力显著优于 GPT-3.5,在多个评估任务上表现出大幅性能提升。
此外,GPT-4 对恶意或挑衅性提问的响应也更加安全,这得益于其在训练阶段进行了长达六个月的对齐优化,其中引入了额外的安全奖励信号以增强 RLHF 训练过程的对齐效果。
在技术报告中,OpenAI 强调了如何安全地开发 GPT-4,并采用了多种干预策略以缓解大语言模型的潜在问题,如幻觉(hallucination)、隐私泄露、用户过度依赖模型的判断。
例如,他们引入了名为 “红队测试(red teaming)” 的机制,用于识别并减少有害或有毒内容的生成。
另一方面,GPT-4 构建在高性能的深度学习基础设施之上,并使用了改进的优化方法。他们还引入了一个新的机制:可预测扩展(predictable scaling),能在仅使用少量计算资源的早期阶段准确预测模型最终性能。
2170

被折叠的 条评论
为什么被折叠?



