大型语言模型 (LLM) 构建与强化学习 (Karpathy 教程)
一、引言: 对话界面背后发生了什么?
二、第一阶段: 从互联网下载文本,训练基础模型
三、第二阶段: 监督微调 (SFT),让模型学会对话
四、大模型的"心理特征" 幻觉、推理与工具使用
五、第三阶段: 强化学习与人类反馈 (RL + HF)
六、面向未来: 多模态、长程规划与新范式
七、模型使用与开源生态
八、总结: 当我们与 ChatGPT 对话时, 究竟在与什么对话?
LLM 构建流程概述:
- 预训练 (Pre-training)
- 监督微调 (SFT)
- 强化学习 (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
对话系统内部流程:
- 输入文本 -> Token 序列
- 结合上下文 -> 输入模型
- 模型 (预训练+SFT+RL) 自回归生成 Token
- (可选) 调用工具 -> 更新上下文
- 输出 Token -> 文本回答
心理比喻:
- SFT: 模仿"教师" (标注者)
- RL: 注入推理习惯 + 纠错
- 局限: 继承盲点,非完美