Skip to content

s18 大语言模型:Scaling、涌现与对齐

当模型参数从 1 亿涨到 1000 亿,它不再只是"更准确"——它开始拥有了小模型完全不具备的能力。这就是涌现。


一、什么是"大"语言模型?

"大"不只是形容词。在LLM的语境中,它通常意味着三个维度的"大":

维度GPT-1 (2018)GPT-3 (2020)GPT-4 (2023)
参数量117M175B>1T(估计)
训练数据~5GB~570GB未公开(TB级)
训练算力~0.1 petaflop/s-day~3640 petaflop/s-day未公开

为什么"大"重要?因为经验表明:更大的模型不仅在已知任务上更准确,而且会涌现出小模型完全没有的新能力。这是 LLM 最吸引人也最令人困惑的特性。


二、Scaling Laws:越大越好,但要配比得当

2.1 Kaplan Scaling Law

Kaplan et al. (2020) 在 OpenAI 的研究发现,语言模型的损失(perplexity)随模型大小、数据量、计算量三个变量的增长呈幂律下降

L(N)=(NcN)αN,L(D)=(DcD)αD

更一般的形式:

L(N,D)=aNα+bDβ+c

其中 N 是模型参数量,D 是训练数据量(token 数),c 是不可约减的损失(irreducible loss,由数据本身的熵决定)。

幂律的含义:损失按 Nα 下降意味着——每次你把参数量翻倍,损失的下降幅度是固定的(比例而非绝对值)。这在 log-log 图上是一条直线。

2.2 Chinchilla 最优配比

2022 年 DeepMind 的 Chinchilla 论文指出了一个重要修正:Kaplan 认为计算量固定时应该优先增加参数量,但 Chinchilla 发现数据和参数应该同步增长。Chinchilla 的最优配比是:

Dopt20×Nparams

即:用 70B 参数的模型,应该喂给它约 1.4T tokens 的训练数据。相比之下,GPT-3(175B 参数,约 300B tokens 训练数据)实际上是"欠训练"的——如果把同样的算力分给一个参数更少但数据更多的模型,效果会更好。

这就是为什么 LLaMA (7B-65B) 和 Chinchilla (70B) 用更少的参数就超越了 GPT-3 的效果——它们训练了更多的数据。

Scaling Laws


三、涌现能力:量变引起质变

3.1 什么是涌现?

涌现(Emergence)是指:某些能力在模型规模达到某个阈值之前几乎完全不存在(表现为随机水平),但一旦越过这个阈值,性能急剧跃升到接近完美的水平。

Wei et al. (2022) 在 Google 的研究中系统性地记录了这些涌现能力:

能力涌现阈值(约)描述
3 位数加减法~10B小模型完全不会,大模型突然就会了
多语言翻译~10B训练数据中没有平行的翻译对
思维链推理 (CoT)~60B能"一步步思考"并给出推理过程
指令遵循~60B理解并执行用自然语言描述的指令
代码生成~10B能理解和生成编程语言代码

3.2 为什么涌现?

涌现的本质根源尚无定论,但目前有以下解释:

解释一:度量方式:不是模型能力在"突变",而是我们用的评估指标(如准确率)是非线性的。对模型来说,perplexity(逐 token 的困惑度)可能一直在平滑改善,但当它跨过某个临界点,任务的准确率就会从"猜不对"突变到"猜对了"。

解释二:组合泛化:大模型有足够的容量去学习"技能的组合"。翻译能力 = 语言理解 + 生成能力 + 跨语言对齐,这三个子技能在小模型中都已存在,但直到模型足够大,它们才能被"组合"成一个新技能。

解释三:记忆与模式匹配:更大模型、更多数据意味着模型见过更多模式。当模型记住了足够多的"加法例子",它"看起来"就会做加法——尽管模型内部可能并没有学到抽象的加法规则。

涌现能力


四、预训练数据:质量 > 数量

LLM 的训练数据从哪来?

数据源占比(典型)特点
Common Crawl(网页抓取)60-80%量大但噪声多,需要大量过滤
书籍5-10%质量高、长文本,利于理解叙事
代码(GitHub等)5-15%提升推理能力(代码天然有逻辑结构)
学术论文2-5%高质量专业知识
维基百科1-3%结构化知识,多语言
对话/论坛1-3%自然对话风格

数据过滤至关重要:原始网页数据包含大量重复、低质、有害内容。LLaMA 和 GPT-4 等模型使用了复杂的数据过滤 pipeline(去重、质量分类、有害内容过滤),这些过滤流程是模型质量的关键但通常不公开。

业界共识:高质量的小数据集 > 低质量的大数据集。这也是为什么 LLaMA 用 ~1T tokens 的高质量数据就能达到很好的效果。


五、指令微调:让模型学会"听话"

预训练只能让模型学会"续写文本"——给它"写一篇关于AI的文章",它可能继续写"的提纲如下..."而不是真的写一篇文章。指令微调(Instruction Tuning)解决了这个问题:

SFT(Supervised Fine-Tuning)

收集大量(指令,期望回复)对,在预训练模型上做监督微调:

  • 数据格式:Human: {指令}\n\nAssistant: {期望的回复}
  • 只在 Assistant 部分计算损失(Human 部分不参与 loss)
  • 数据多样性很重要:包括问答、写作、总结、代码、翻译、头脑风暴等任务

SFT 后的模型学会了"遵循指令"的行为模式——但这还只是第一步。SFT 模型可能给出有帮助但有害的回答,或者给出不准确的回答。


六、对齐:RLHF 与 DPO

6.1 为什么需要对齐?

"SFT 后的模型会按要求写一篇关于如何制造炸弹的文章——它在'遵循指令'方面做得很好,但这很危险。"

对齐(Alignment)的目标是让模型的输出符合人类价值观:有帮助(helpful)、诚实(honest)、无害(harmless)。

6.2 RLHF(Reinforcement Learning from Human Feedback)

RLHF 分三个阶段:

阶段 1 — SFT:如前所述,用高质量的(指令,回复)对做监督微调。

阶段 2 — 训练奖励模型

  • 让 SFT 模型对同一个 prompt 生成多个回答
  • 人类标注者对回答进行排序(A > B > C > D)
  • 用这些偏好数据训练一个奖励模型 rθ(x,y),使其能预测人类对回答的偏好
Lreward=E(x,yw,yl)D[logσ(rθ(x,yw)rθ(x,yl))]

其中 yw 是人类偏好的回答(winner),yl 是较差的回答(loser)。

阶段 3 — PPO 优化

  • 用奖励模型给 SFT 模型的输出打分
  • 用 PPO(Proximal Policy Optimization)算法优化模型参数,最大化奖励分数
  • 同时加入 KL 惩罚,防止模型偏离 SFT 模型太远失去语言能力
LPPO=E[rθ(x,y)βKL(πnew(y|x)πSFT(y|x))]

6.3 DPO(Direct Preference Optimization)

RLHF 的问题在于:

  • 需要单独训练一个奖励模型(额外的参数和训练步骤)
  • PPO 训练不稳定(需要调 4 个超参数)
  • 在整个 pipeline 中,奖励模型可能不准确(reward hacking)

DPO(Rafailov et al., 2023)提出了一种更优雅的方案:直接从偏好数据优化策略,不需要独立的奖励模型

DPO 的损失函数:

LDPO=E(x,yw,yl)D[logσ(βlogπθ(yw|x)πref(yw|x)βlogπθ(yl|x)πref(yl|x))]

直观理解:

  • πθ:正在优化的策略模型
  • πref:参考模型(通常是 SFT 模型,训练过程中冻结)
  • β:控制偏离参考模型的程度
  • 如果 πθ 对好回答的概率比参考模型高,且对差回答的概率比参考模型低,则损失小

RLHF vs DPO


七、LLM 的实用技术概览

7.1 Prompt Engineering(提示工程)

  • Zero-shot:直接给指令,不给示例
  • Few-shot:在 prompt 中提供几个(输入,输出)示例
  • Chain-of-Thought (CoT):在 prompt 中加入"让我们一步步思考",引导模型展示推理过程
  • 角色扮演:在 system prompt 中设定角色身份(如"你是一个专业的 Python 程序员")

7.2 RAG(检索增强生成)

LLM 的知识截止于训练数据。RAG 通过外部知识库来弥补这一缺陷:

  1. 将知识库文档向量化并存到向量数据库
  2. 用户提问时,检索最相关的文档片段
  3. 将检索结果和用户问题一起送入 LLM
  4. LLM 结合检索到的信息生成回答

(详见 s23 RAG 与 Agent)

7.3 LoRA(低秩适配)

全参数微调 175B 的模型需要巨大的显存(数百 GB)。LoRA 通过低秩矩阵分解,只训练极少数额外参数(通常是原模型参数的 0.1%-1%),就能达到接近全参数微调的效果。

核心思想:不修改原始权重 W,而是在旁边附加一个低秩更新 ΔW=BA,其中 BRd×rARr×kr 远小于 dk(通常 r=816)。

RLHF 三阶段 Pipeline


八、本节小结

概念一句话总结
Scaling Law损失随参数/数据/计算量呈幂律下降 LNα
Chinchilla 最优训练 token 数应该约等于 20 倍参数量
涌现能力某些能力在模型规模跨过阈值后突然出现
SFT用(指令,回复)对做监督微调,让模型学会遵循指令
奖励模型学习预测人类偏好,为 PPO 提供奖励信号
RLHFSFT → 奖励模型 → PPO 优化,三阶段对齐 pipeline
DPO直接从偏好数据优化策略,无需独立的奖励模型
LoRA低秩适配,用极少参数实现高效的模型微调

s18 是 NLP 路线(s14-s18)的终点。从这里出发,你可以探索 s22(多模态)、s23(RAG 与 Agent)和 s24(部署与推理优化)。

📥 Code

FileViewDownload
demo.pyOpenDownload
exercise.pyOpenDownload

参考

  1. Kaplan, J., et al. (2020). Scaling Laws for Neural Language Models. [arXiv:2001.08361]
  2. Hoffmann, J., et al. (2022). Training Compute-Optimal Large Language Models. NeurIPS 2022. (Chinchilla) [arXiv:2203.15556]
  3. Wei, J., et al. (2022). Emergent Abilities of Large Language Models. TMLR 2022. [arXiv:2206.07682]
  4. Ouyang, L., et al. (2022). Training language models to follow instructions with human feedback. NeurIPS 2022. (InstructGPT / RLHF) [arXiv:2203.02155]
  5. Rafailov, R., et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model. NeurIPS 2023. (DPO) [arXiv:2305.18290]
  6. Hu, E. J., et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. ICLR 2022. [arXiv:2106.09685]