大型语言模型 (LLM) 构建与强化学习 (Karpathy 教程)

一、引言: 对话界面背后发生了什么?

二、第一阶段: 从互联网下载文本,训练基础模型

三、第二阶段: 监督微调 (SFT),让模型学会对话

四、大模型的"心理特征" 幻觉、推理与工具使用

五、第三阶段: 强化学习与人类反馈 (RL + HF)

六、面向未来: 多模态、长程规划与新范式

七、模型使用与开源生态

八、总结: 当我们与 ChatGPT 对话时, 究竟在与什么对话?

LLM 构建流程概述:

  1. 预训练 (Pre-training)
  2. 监督微调 (SFT)
  3. 强化学习 (RL)

2.1 数据收集与过滤

  • 来源: Common Crawl, The Pile, RefinedWeb
  • 清洗: 去噪、去重、去 HTML
  • 过滤: 语言、恶意、隐私 (PII)
  • 规模: 数 TB ~ 十几 TB

2.2 分词 (Tokenization)

  • 目标: 文本 -> Token 序列
  • 方法: BPE (Byte Pair Encoding)
  • 词表大小: GPT-4 ~100k
  • 输出: Token ID 序列

2.3 核心: 自回归语言模型训练

  • 任务: 预测下一个 Token
  • 模型: Transformer (数十/百层)
  • 损失: 交叉熵
  • 成本: 巨大算力、工程、资金
  • 结果: 基础模型 (Base Model)

3.1 为何需要 SFT?

  • Base Model ≠ 对话助手
  • 需注入对话/指令风格
  • 缺乏安全合规

3.2 构建对话数据

  • 格式: (用户问题, 理想回答)
  • 来源: 人工编写、模型生成+筛选
  • 规模: 几十万 ~ 上百万条

3.3 底层实现: 再一次自回归

  • 训练集: 对话数据
  • 目标: 预测对话中的下一 Token
  • 特殊标识: <system>, <user>, <assistant>
  • 结果: 初步可用的对话模型

SFT 后仍存缺陷: 幻觉、不礼貌、无法拒答等

4.1 幻觉 (Hallucination)

  • 原因: 下一 Token 预测无法分辨事实与风格,易编造。
  • 缓解:
    • 更多上下文
    • 强化"不知道"
    • 引入工具

4.2 工具使用 (Tool Use)

  • 目的: 克服模型知识局限
  • 方式: 开放 API 接口
    • 搜索引擎 (提供最新信息)
    • Python 解释器 (计算验证)
  • 实现: 特殊 Token (<search_start>) 触发系统调用

4.3 多步推理 (CoT)

  • 原因: Token 即计算力,复杂问题需分解
  • 方法: Chain-of-Thought (逐步写思路)
  • 效果: 提高复杂任务 (数学、逻辑) 准确率

5.1 为何需要 RL?

  • 目的: 自主试错,探索更优解
  • 机制: 生成多方案 -> 评估 -> 强化正确/惩罚错误
  • 提升: 推理能力 (数学、编程)
  • 类比: AlphaGo 自对弈

5.2 可验证 vs 不可验证

  • 可验证: 数学、代码 (有标准答案) -> RL 效果显著
  • 不可验证: 写作、艺术 (主观评估)

不可验证 -> 人类反馈 (HF)

  • Reward Model: 模拟人类偏好打分
  • 训练: 标注 A vs B 优劣
  • 风险: Reward Hacking

5.3 RLHF 局限性

  • 好处: 模拟人类审美
  • 局限: 易过度拟合 Reward Model 漏洞
  • 应用: 通常只做少量步骤改进

6.1 多模态

  • 目标: 处理文本、图像、音频
  • 方法:
    • 图像 -> Patch Token
    • 音频 -> 频谱 Token
  • 应用: 看图说话、理解音频

6.2 长程任务与 Agent

  • 目标: 执行复杂长期任务
  • 框架: 多轮 Agent
    • 管理上下文
    • 调用工具
    • 循环迭代

6.3 训练模式拓展

  • 在线学习: 推理阶段微调
  • 优点: 持续进化
  • 风险: 内容审计、安全

7.1 获取途径

  • 闭源: OpenAI, Anthropic, Google (API/网站)
  • 开源: LLaMA, DeepSeek, HF (本地/社区)
  • 平台: 云厂商, Inference 提供商

7.2 Base vs Instruct/Chat

  • Base: 纯自回归,适合研究
  • Instruct/Chat: 微调后对话风格

7.3 本地部署

  • 方法: 蒸馏、量化 (4/8bit)
  • 要求: 高端 GPU / Apple Silicon

对话系统内部流程:

  1. 输入文本 -> Token 序列
  2. 结合上下文 -> 输入模型
  3. 模型 (预训练+SFT+RL) 自回归生成 Token
  4. (可选) 调用工具 -> 更新上下文
  5. 输出 Token -> 文本回答

心理比喻:

  • SFT: 模仿"教师" (标注者)
  • RL: 注入推理习惯 + 纠错
  • 局限: 继承盲点,非完美
不可验证时需要