LLM 从构建到强化学习 深度解析 (Karpathy 2025 教程)
一、引言:对话界面背后发生了什么?
二、第一阶段:预训练 (Pre-training)
三、第二阶段:监督微调 (SFT)
四、心理特征:幻觉、工具、推理
五、第三阶段:强化学习与人类反馈 (RLHF)
六、面向未来:多模态、Agent、在线学习
七、模型使用与开源生态
八、总结:与 ChatGPT 对话本质
2.1 数据收集与过滤
- 来源:Common Crawl、The Pile、RefinedWeb
- 清洗:去噪、去重、去 HTML
- 过滤:语言、恶意、PII
- 规模:数 TB ~ 十几 TB
2.2 分词 (Tokenization)
- 方法:BPE 及变种
- 词表:GPT-4 ~100k
- 输出:Token ID 序列
2.3 自回归训练
- 任务:预测下一个 Token
- 模型:Transformer (多层)
- 损失:交叉熵
- 成本:算力、分布式、资金
- 结果:基础模型 (Base Model)
3.1 SFT 必要性
- Base Model ≠ 对话助手
- 注入指令/对话风格
- 安全合规需求
3.2 构建对话数据
- 格式:用户问题 + 理想回答
- 来源:人工标注 / 模型生成 + 筛选
- 规模:几十万 ~ 上百万条
- 含拒答示例
3.3 二次自回归训练
- 格式:<system>、<user>、<assistant>
- 任务:预测对话中的下一个 Token
- 结果:初步对话模型
4.1 幻觉 (Hallucination)
- 原因:统计预测无事实区分
- 缓解:更多上下文 / 强化 '不知道' / 调用工具
4.2 工具使用 (Tool Use)
- 搜索引擎 / Python 解释器
- 触发:特殊 Token 触发系统调用
- 效果:减少幻觉,提高真实性
4.3 多步推理 (CoT)
- 原因:复杂任务需分解思路
- 方法:Chain-of-Thought 分步输出
- 提高:数学/逻辑等准确率
5.1 RL 必要性
- 自主试错探索最优
- 流程:多方案→评估→强化/惩罚
- 提升:可验证任务性能
5.2 可验证 vs 不可验证
- 可验证:数学/代码 (标准答案)
- 不可验证:写作/艺术 (主观)
- 需:Reward Model
5.3 RLHF 局限性
- 好处:模拟人类偏好
- 局限:过拟合 Reward 模型漏洞
- 策略:小步迭代
6.1 多模态
- 文本/图像/音频统一编码
- 图像Patch/音频频谱Token
- 应用:多模态 ChatGPT
6.2 长程任务与 Agent
- 多轮 Agent 框架
- 管理上下文、调用工具、循环迭代
6.3 在线学习
- 推理阶段参数微调
- 优点:持续进化
- 风险:安全审计
7.1 获取途径
- 闭源:OpenAI/GPT-4, Claude 等 API
- 开源:LLaMA, Hugging Face 社区
- 平台:云服务商、Inference API
7.2 Base vs Chat/Instruct
- Base: 自回归模型
- Chat/Instruct: 微调对话模型
7.3 本地部署
- 量化(4/8bit) & 蒸馏
- 硬件:高端 GPU/Apple Silicon
8.1 系统内部流程
- 文本→Token
- 上下文+Prompt
- 预训练+SFT+RL 自回归生成
- 工具调用(可选)
- Token→文本
8.2 心理比喻
- SFT: 模仿教师
- RL: 注入纠错习惯
- 局限: 学习盲点,不完美