LLM
究竟是如何工作的
完整解读大型语言模型(如 ChatGPT)是如何构建的——从原始互联网文本到对话助手。基于 Andrej Karpathy 的技术深度解析。
- 训练 Token 数
- 15T
- 参数量
- 405B
- 文本数据
- 44 TB
- 词表大小
- 100K
2024 年前沿模型的代表性数据——具体数字随每次发布而变化。重点是规模,而非精度。
完整解读大型语言模型(如 ChatGPT)是如何构建的——从原始互联网文本到对话助手。基于 Andrej Karpathy 的技术深度解析。
2024 年前沿模型的代表性数据——具体数字随每次发布而变化。重点是规模,而非精度。
第一步是收集海量的文本。Common Crawl 等组织自 2007 年以来一直在爬取网页——到 2024 年已索引 27 亿个页面。这些原始数据随后被过滤为高质量数据集,如 FineWeb。
目标是:大量、高质量、多样化的文档。经过激进的过滤,最终得到约 44 TB 的文本——大约相当于 10 块消费级硬盘的容量——代表约 15 万亿个 Token。
点击任意阶段查看详情
神经网络无法处理原始文本——它们需要数字。解决方案是分词:将文本拆分为"Token"(子词片段)并为每个分配一个 ID。
GPT-4 使用 100,277 个 Token 的词表,通过 字节对编码(BPE)算法构建。BPE 从单个字节(256 个符号)开始,然后迭代地合并最频繁的相邻对——在扩展词表的同时压缩序列长度。
Transformer 神经网络用随机参数初始化——数十亿个"旋钮"。训练调整这些旋钮,使网络更好地预测任何序列中的下一个 Token。
每个训练步骤:采样一个 Token 窗口 → 送入网络 → 将预测与实际下一个 Token 比较 → 将所有参数稍微向正确方向微调。重复 数十亿次。
损失——一个衡量预测误差的单一数字——随着模型学习人类语言的统计模式而稳步下降。
选择训练阶段查看模型输出质量
训练完成后,网络以自回归方式生成文本:输入一个 Token 序列 → 获得所有 10 万个可能下一个 Token 的概率分布 → 采样一个 → 追加 → 重复。
这个过程是随机的——相同的提示每次生成不同的输出,因为我们在抛一枚有偏的硬币。高概率 Token 更可能被选中,但不保证一定选中。
温度控制随机性。低温(0.1)→ 模型总是选择最高概率的 Token。高温(2.0)→ 均匀混乱。0.7–1.0 是连贯但富有创造性文本的最佳范围。
观察模型如何选择下一个词。每个条形显示候选 Token 的概率。
预训练之后,你得到一个基础模型——一个精密的自动补全引擎。它不是助手。它不回答问题。它根据在互联网上看到的内容延续 Token 序列。
给它一个维基百科句子,它会从记忆中补全。问它"2+2 等于几?"它可能给你一个数学课本页面、一个测验答案,或者跑题——无论训练数据中统计上最常见的什么。
基础模型的知识存在于其 4050 亿参数中——互联网的有损压缩,就像一个近似而非完美存储信息的压缩文件。
基础模型是一个 Token 模拟器。要把它变成一个有用的助手,我们需要后训练——一个成本更低但同样关键的阶段。这是模型学习对话的地方。
人类标注员按照详细的标注指南创建理想对话数据集:要有用、要真实、要无害。然后模型在这些对话上进行训练——不是从头开始,而是在预训练权重上继续调整。
现代 SFT 数据集(如 UltraChat)有数百万对话——大部分是合成的(LLM 生成的),经过人工审核。模型通过模仿学习:它采用数据中反映的理想助手的角色。
每段对话必须编码为一个扁平的 Token 序列。特殊 Token 标记结构:
然后 RLHF 进一步优化助手的行为:
人类评估者对多个模型回复进行排序。一个奖励模型学习预测人类偏好。然后语言模型通过强化学习进行训练,以生成奖励模型评分更高的回复。
理解 LLM 为什么会这样表现,需要思考它们的心理学——被训练来统计模仿人类文本所产生的涌现属性。
LLM 有知识截止和有限的上下文窗口。RAG 通过将文档嵌入到向量存储中来解决这个问题,在查询时检索语义上最相关的片段,并将其注入上下文——将模型的预测分布转向基于事实的、最新的信息,而非记忆的训练数据。
每个文档通过嵌入模型转换为密集向量(约 1,536 个数字)。语义相似的文本在这个高维空间中彼此靠近——无需关键词匹配。
用户的问题以相同方式嵌入。余弦相似度找到最近的文档向量——与查询语义最相关的片段——通常取前 2–5 个。
检索到的片段在 LLM 看到问题之前被前置到提示中。模型从注入的事实生成,而非依赖记忆的训练数据——大幅减少了知识密集型任务上的幻觉。
使 LLM 强大的相同属性——遵循指令、补全模式、根据上下文行动——也创造了新的攻击面。攻防之间的猫鼠游戏正在这个新的计算范式中上演。
从原始网页爬取到你交互的 ChatGPT 的完整旅程——跨越两个主要阶段、数月的计算和数十亿参数。
LLM 不仅仅是聊天机器人——它是新兴操作系统的内核进程。它通过自然语言协调内存、计算和工具。
基于 Andrej Karpathy 的 "Intro to Large Language Models" 讲座——所有事实、数据和框架均可追溯到该来源。交互式可视化借助 AI 辅助构建。最重要的收获:生成的每个词都是一个概率样本——一次有偏的抛硬币,在 10 万个选项的规模上,进行数十亿次。
本文发布到 Hacker News 并引发了关于它是否由 LLM 生成的激烈讨论。这是一个合理的观察——实现是 AI 辅助的。但内容不是 AI 的:本指南中的每一个主张、数据和框架都直接来自 Karpathy 的讲座,而非模型对 LLM 的幻觉。
HN 讨论 · GitHub · 完整讲座文稿 · HN 更新说明 · LLM 评审报告 · v1(原始版本) · 第 2 部分:如何使用 LLM →