⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

第5章扩展:LLM训练的深度细节

版本: v2.0
最后更新: 2026-05-26

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明

本文档包含第5章的深度扩展内容,介绍LLM训练的技术细节。


E5.1 预训练的具体过程

数据准备

数据来源:

  • 网络文本(Common Crawl)
  • 书籍(Books3)
  • 代码(GitHub)
  • 学术论文(arXiv)

数据清理:

  1. 去重
  2. 去除低质量文本
  3. 去除个人信息
  4. 语言过滤

数据量:

  • GPT-3:300B tokens
  • Chinchilla:1.4T tokens
  • LLaMA:1.4T tokens

分词(Tokenization)

目的: 把文本转换为token序列。

常见方法:

  • BPE(Byte Pair Encoding)
  • WordPiece
  • SentencePiece

词表大小:

  • GPT-2:50K tokens
  • GPT-3:50K tokens
  • LLaMA:32K tokens

预训练目标

因果语言模型(Causal Language Modeling):

L=t=1TlogP(wt|w1,...,wt1)

优点:

  • 自然的生成任务
  • 无需标注数据
  • 学习因果关系

训练配置

典型配置:

  • 优化器:AdamW
  • 学习率:1e-4 到 1e-3
  • 预热步数:总步数的1-10%
  • 学习率衰减:余弦衰减
  • 批大小:1000-4000
  • 梯度累积:多个小批次累积

E5.2 Scaling Laws的数学基础

幂律关系

模型大小与性能:

L(N)=aNα

数据量与性能:

L(D)=bDβ

计算量与性能:

L(C)=cCγ

其中 αβγ0.07

Chinchilla缩放律

最优配置:

  • 计算量应该平均分配给模型大小和数据量
  • 最优的数据量 ≈ 20倍的参数量

公式:

Nopt=C6DoptDopt=C6Nopt

其中 C 是总计算量。

计算量的定义

FLOPs(浮点运算数):

  • 前向传播:2NTB
  • 反向传播:4NTB
  • 总计:6NTB

其中:

  • N:模型参数数
  • T:序列长度
  • B:批大小

E5.3 涌现能力的机制

In-Context Learning的原理

假设1:隐状态编码

  • 模型在隐状态中编码示例的模式
  • 在推理时应用这个模式

假设2:梯度下降的类比

  • In-Context Learning类似于快速的梯度下降
  • 模型在推理时"学习"新任务

Chain-of-Thought的原理

为什么有效:

  1. 分解复杂问题为简单步骤
  2. 每一步都更容易预测
  3. 减少推理错误

例子:

问题:15 + 27 = ?

直接预测:困难(需要计算)
一步步推理:容易(每步都是简单的加法)

其他涌现能力

代码生成:

  • 小模型:无法生成正确的代码
  • 大模型:能生成相对复杂的代码

多语言能力:

  • 小模型:主要是英文
  • 大模型:能处理多种语言

推理能力:

  • 小模型:无法进行多步推理
  • 大模型:能进行复杂的逻辑推理

E5.4 Prompt 工程

Prompt 工程的完整实践内容(Zero-shot/Few-shot/CoT/角色设定/结构化输出)见第6章:

6.1 Prompt 工程


E5.5 LLM的局限

幻觉(Hallucination)

定义: 模型生成看起来合理但实际上错误的内容。

原因:

  • 模型没有真正的知识,只是学会了模式
  • 在不确定时,模型倾向于生成看起来合理的文本

缓解方法:

  • 提供准确的上下文
  • 要求模型说明不确定性
  • 使用检索增强生成(RAG)

知识截断

问题: 模型的知识截止于训练数据的时间。

解决方案:

  • 定期重新训练
  • 使用检索增强生成
  • 微调新知识

推理能力有限

问题: 模型在复杂推理上仍然有限。

例子:

  • 数学计算:容易出错
  • 逻辑推理:在复杂情况下失败
  • 常识推理:有时违反常识

E5.6 与其他AI技术的比较

LLM vs 传统NLP

传统NLP:

  • 特征工程
  • 任务特定的模型
  • 需要大量标注数据

LLM:

  • 自动特征学习
  • 通用模型
  • 需要大量无标注数据

LLM vs 符号AI

符号AI:

  • 显式的知识表示
  • 可解释性强
  • 推理能力强

LLM:

  • 隐式的知识表示
  • 可解释性弱
  • 泛化能力强

LLM vs 强化学习

强化学习:

  • 需要环境交互
  • 样本效率低
  • 适合决策任务

LLM:

  • 只需要文本数据
  • 样本效率高
  • 适合理解和生成任务

E5.7 推荐论文

预训练的论文

  1. Devlin et al. (2018) - "BERT: Pre-training of Deep Bidirectional Transformers"

    • 掩码语言模型的开创性工作
  2. Radford et al. (2019) - "Language Models are Unsupervised Multitask Learners"

    • GPT-2论文
    • 展示了预训练的强大能力

Scaling Laws的论文

  1. Kaplan et al. (2020) - "Scaling Laws for Neural Language Models"

    • 发现幂律关系
  2. Hoffmann et al. (2022) - "Training Compute-Optimal Large Language Models"

    • Chinchilla缩放律

In-Context Learning的论文

  1. Brown et al. (2020) - "Language Models are Few-Shot Learners"

    • GPT-3论文
    • 展示了In-Context Learning能力
  2. Wei et al. (2022) - "Emergent Abilities of Large Language Models"

    • 涌现能力的系统研究

Prompt工程的论文

  1. Wei et al. (2022) - "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models"

    • Chain-of-Thought的开创性工作
  2. Wang et al. (2022) - "Self-Consistency Improves Chain of Thought Reasoning in Language Models"

    • 自洽性方法

E5.8 进一步学习

书籍

  • "Attention Is All You Need" 论文详解

    • 理解Transformer的基础
  • "The Illustrated GPT-2"

    • 在线免费资源
    • 直观讲解GPT-2

在线资源

  • OpenAI的博客

    • GPT系列模型的介绍
    • 最新的研究进展
  • Hugging Face的教程

    • 如何使用预训练模型
    • Prompt工程的实践

实践项目

  1. 调用LLM API

    • 使用OpenAI或Anthropic的API
    • 理解API的使用方式
  2. Prompt工程实验

    • 对比不同的Prompt
    • 观察输出的差异
  3. In-Context Learning演示

    • 用不同数量的示例
    • 观察性能的变化
  4. 微调实验

    • 在小数据集上微调模型
    • 对比微调和Prompt工程


E5.9 对齐训练的深度细节

PPO 算法细节、KL 散度约束数学含义、DPO 完整推导,以及 GRPO/o1 风格推理强化学习,已独立为:

扩展:对齐训练深度细节


返回: 第5章:LLM基础

本教程采用 CC BY-NC-SA 4.0 许可协议