LLM
究竟是如何工作的

完整解读大型语言模型(如 ChatGPT)是如何构建的——从原始互联网文本到对话助手。基于 Andrej Karpathy 的技术深度解析。

训练 Token 数
15T
参数量
405B
文本数据
44 TB
词表大小
100K

2024 年前沿模型的代表性数据——具体数字随每次发布而变化。重点是规模,而非精度。

人类:这个文本框背后是什么?

下载
整个互联网

第一步是收集海量的文本。Common Crawl 等组织自 2007 年以来一直在爬取网页——到 2024 年已索引 27 亿个页面。这些原始数据随后被过滤为高质量数据集,如 FineWeb

目标是:大量高质量多样化的文档。经过激进的过滤,最终得到约 44 TB 的文本——大约相当于 10 块消费级硬盘的容量——代表约 15 万亿个 Token。

关键洞察 训练数据的质量和多样性对最终模型的影响几乎比任何其他因素都大。垃圾进,垃圾出——只不过是在万亿 Token 的规模上。

点击任意阶段查看详情

🌐 Common Crawl
27 亿网页 · 原始 HTML · 自 2007 年
一个非营利组织,爬取网页并免费提供数据。其爬虫从种子页面开始跟踪链接,递归地索引互联网。原始存档是 PB 级的 gzip 压缩 WARC 文件,包含原始 HTML。
第 1 章 · 预训练 · 阶段 2

分词

神经网络无法处理原始文本——它们需要数字。解决方案是分词:将文本拆分为"Token"(子词片段)并为每个分配一个 ID。

GPT-4 使用 100,277 个 Token 的词表,通过 字节对编码(BPE)算法构建。BPE 从单个字节(256 个符号)开始,然后迭代地合并最频繁的相邻对——在扩展词表的同时压缩序列长度。

为什么不直接用单词? 单词有无限变体。"run"、"running"、"runner" 将是 3 个独立条目。子词 Token 共享词根:"run" + "ning"、"run" + "ner"。这也能高效处理新词、拼写错误和多种语言。

BPE 实战

BPE 分词步骤交互式图示,展示字节对编码如何逐步将字符合并为子词 Token
第 1 步,共 5 步
第 1 章 · 预训练 · 阶段 3

训练
神经网络

Transformer 神经网络用随机参数初始化——数十亿个"旋钮"。训练调整这些旋钮,使网络更好地预测任何序列中的下一个 Token。

每个训练步骤:采样一个 Token 窗口 → 送入网络 → 将预测与实际下一个 Token 比较 → 将所有参数稍微向正确方向微调。重复 数十亿次

损失——一个衡量预测误差的单一数字——随着模型学习人类语言的统计模式而稳步下降。

规模 GPT-2(2019):16 亿参数,1000 亿 Token,训练成本约 4 万美元。今天:相同质量约 100 美元。Llama 3:4050 亿参数,15 万亿 Token。现代前沿模型:数千亿参数,数万亿 Token。
缩放定律 模型精度是仅两个变量的平滑可预测函数:N(参数数量)和 D(训练 Token 数)。这些趋势没有饱和迹象——更大的模型 + 更多数据 = 可靠地更好的结果。算法突破是加分项,但简单地扩展计算几乎是改进的保证路径。这就是为什么 AI 实验室在进行 GPU 军备竞赛。

Transformer 架构

Transformer 架构
什么是嵌入? 每个 Token ID 映射到一个约 1,000–4,000 个数字的学习向量,称为其嵌入。可以把它想象成意义空间中的一个坐标——随机初始化,然后由训练塑造。相同的 Token(例如"bank")总是以相同的嵌入向量进入网络。注意力层随后混入周围 Token 的上下文,所以当"bank"到达更深层时,"river bank"和"bank account"携带完全不同的表示。多义性通过上下文解决,而不是通过为每个 Token 存储多个含义。

选择训练阶段查看模型输出质量

训练损失 ↓
4.8
交叉熵损失
500
训练步数

该阶段的模型输出

the model has learning but confustion still the wqp mxr model bns to predict...
模型正在学习什么 第 1 步:纯噪声。到第 500 步:出现局部连贯性。到第 32K 步:流畅的英语。模型正在学习语法、事实、推理模式——全部隐式地从 Token 预测中学习。
第 1 章 · 预训练 · 阶段 4

推理与
Token 采样

训练完成后,网络以自回归方式生成文本:输入一个 Token 序列 → 获得所有 10 万个可能下一个 Token 的概率分布 → 采样一个 → 追加 → 重复。

这个过程是随机的——相同的提示每次生成不同的输出,因为我们在抛一枚有偏的硬币。高概率 Token 更可能被选中,但不保证一定选中。

温度控制随机性。低温(0.1)→ 模型总是选择最高概率的 Token。高温(2.0)→ 均匀混乱。0.7–1.0 是连贯但富有创造性文本的最佳范围。

关键心智模型 模型不会"思考"要说什么。它计算所有可能下一个 Token 的概率分布并从中采样。每个词都是一次抛硬币——只是非常知情的抛硬币。

Token 采样演示

观察模型如何选择下一个词。每个条形显示候选 Token 的概率。

The sky appears blue
第 2 章 · 基础模型

互联网
模拟器

预训练之后,你得到一个基础模型——一个精密的自动补全引擎。它不是助手。它不回答问题。它根据在互联网上看到的内容延续 Token 序列

给它一个维基百科句子,它会从记忆中补全。问它"2+2 等于几?"它可能给你一个数学课本页面、一个测验答案,或者跑题——无论训练数据中统计上最常见的什么。

基础模型的知识存在于其 4050 亿参数中——互联网的有损压缩,就像一个近似而非完美存储信息的压缩文件。

基础模型行为

少样本提示
Hello: Bonjour | Cat: Chat | Dog: Chien | Teacher:
→ Professeur  ✓ 正确
记忆
Zebras (/ˈzɛbrə, ˈziːbrə/) are African equines with distinctive...
...black-and-white striped coats. There are three living species: the Grévy's zebra, plains zebra, and mountain zebra...
↑ 从权重中逐字回忆维基百科
幻觉
The Republican Party nominated Trump and [running mate] in the 2024 election against...
→ ...Mike Pence, facing Hillary Clinton and Tim Kaine...
→ ...Ron DeSantis, against Joe Biden and Kamala Harris...
↑ 知识截止 → 合理的虚构
上下文学习 基础模型可以通过少样本提示执行翻译、分类和问答——无需微调。模型从上下文窗口中示例的模式推断任务。
LLM 字面上就是两个文件 Llama 2 70B 是一个 140 GB 的参数文件(700 亿参数 × 每个参数 2 字节的 float16)加上约 500 行 C 代码来运行它。不需要互联网——你可以在笔记本电脑上完全离线运行。架构是公开且被充分理解的;魔法完全在于那 140 GB 的数字从训练数据中编码了什么。
第 3 章 · 后训练

构建助手

基础模型是一个 Token 模拟器。要把它变成一个有用的助手,我们需要后训练——一个成本更低但同样关键的阶段。这是模型学习对话的地方。

监督微调(SFT)

人类标注员按照详细的标注指南创建理想对话数据集:要有用、要真实、要无害。然后模型在这些对话上进行训练——不是从头开始,而是在预训练权重上继续调整。

现代 SFT 数据集(如 UltraChat)有数百万对话——大部分是合成的(LLM 生成的),经过人工审核。模型通过模仿学习:它采用数据中反映的理想助手的角色。

训练对话示例
人类
2 + 2 等于几?
助手
2 + 2 = 4。还有什么我可以帮你的吗?
人类
如果是乘法呢?
助手
2 × 2 也等于 4——结果相同!对于乘法,2 × 2 意味着将 2 加一次,得到 4。
你真正在对话的是谁 ChatGPT 是 OpenAI 雇佣的人类标注员的统计模拟——遵循标注指南的专家。当它回答编程问题时,它模仿的是一位熟练的开发者标注员会写的内容。

对话 Token 格式

每段对话必须编码为一个扁平的 Token 序列。特殊 Token 标记结构:

<|im_start|>user<|im_sep|> 2 + 2 等于几? <|im_end|> <|im_start|>assistant<|im_sep|> 2 + 2 = 4. <|im_end|>

然后 RLHF 进一步优化助手的行为:

RLHF — 基于人类反馈的
强化学习

人类评估者对多个模型回复进行排序。一个奖励模型学习预测人类偏好。然后语言模型通过强化学习进行训练,以生成奖励模型评分更高的回复。

✓ 偏好
以下是巴黎的 5 大地标:1) 埃菲尔铁塔——标志性的铁格子结构... 2) 卢浮宫——世界上最大的艺术博物馆...
✗ 拒绝
巴黎有很多地标。你应该去埃菲尔铁塔。还有一个博物馆叫卢浮宫。还有巴黎圣母院...
为什么 RLHF 很重要 SFT 教模型说什么。RLHF 教它如何说好——使回复更有帮助、结构更好、更诚实,更不容易产生幻觉。
第 4 章 · LLM 心理学

语言模型的
认知特性

理解 LLM 为什么会这样表现,需要思考它们的心理学——被训练来统计模仿人类文本所产生的涌现属性。

🌀
幻觉
模型自信地虚构,因为训练数据中总是有自信的回答。"Orson Kovats 是谁?"会得到一个编造的传记,因为"X 是谁?"问题的训练分布总是跟着自信的回复——即使对于虚构的名字。修复方法:为模型持续答错的问题添加"我不知道"示例。
🧠
两种记忆
参数 = 长期记忆。模型在训练期间学到的一切——庞大但模糊,就像你几个月前读过的东西。上下文窗口 = 工作记忆。当前对话中的文本——精确、可直接访问。始终将重要信息粘贴到上下文中,而不是依赖模型"记住"。
🔧
工具使用
模型可以发出触发外部工具的特殊 Token:<search>查询</search>。程序暂停生成,执行搜索,将结果塞入上下文窗口,然后恢复。模型"查找信息"的方式和你一样——通过刷新工作记忆。
🪞
无持久自我
每次对话都是全新开始的——没有之前聊天的记忆。模型"启动",处理 Token,然后关闭。它没有稳定的身份。当它说"我是 OpenAI 的 ChatGPT"时,那只是训练数据中统计上最可能的回答——不是真正的自我认知。
📊
随机 Token 滚筒
模型不会"决定"说什么。它计算概率分布并采样。用相同的提示运行 10 次,得到 10 个不同的输出——都是合理的,都来自同一个学习到的分布。温度控制它从这个分布中采样的广度。
📚
知识截止
训练数据有一个截止日期。模型真的不知道那之后发生了什么。问近期事件,它会产生幻觉——不是出于恶意,而是出于回答每个问题的相同机制:预测 Token 序列最可能的延续。
↔️
反转诅咒
问 GPT-4"Tom Cruise 的母亲是谁?"→ 正确:Mary Lee Pfeiffer。问"Mary Lee Pfeiffer 的儿子是谁?"→ 它声称不知道。知识是方向性存储的——以训练数据中遇到的形式。它不是可查询的数据库;你必须从它学习的角度来提问。
仅系统 1 — 无深度思考
每个 Token 大致消耗相同的计算量——没有机制在困难问题上"更努力地思考"。与人类可以参与缓慢、深思熟虑的系统 2 推理(逐步分析棋局)不同,LLM 无论难度如何都以相同速度生成每个 Token。将时间转化为精度是一个活跃的研究前沿。
LLM 应用 · RAG

检索增强
生成

LLM 有知识截止和有限的上下文窗口。RAG 通过将文档嵌入到向量存储中来解决这个问题,在查询时检索语义上最相关的片段,并将其注入上下文——将模型的预测分布转向基于事实的、最新的信息,而非记忆的训练数据。

步骤 01 — 嵌入所有文档

每个文档通过嵌入模型转换为密集向量(约 1,536 个数字)。语义相似的文本在这个高维空间中彼此靠近——无需关键词匹配。

步骤 02 — 嵌入查询并搜索

用户的问题以相同方式嵌入。余弦相似度找到最近的文档向量——与查询语义最相关的片段——通常取前 2–5 个。

步骤 03 — 注入并生成

检索到的片段在 LLM 看到问题之前被前置到提示中。模型从注入的事实生成,而非依赖记忆的训练数据——大幅减少了知识密集型任务上的幻觉。

1 · 用户查询
"Ares Base 的首都是什么?"
2 · 嵌入模型
文本 → [0.23, −0.87, 0.41, ...] ~1,536 个浮点数
3 · 向量数据库 — 余弦搜索
在嵌入空间中找到 top-k 最近邻
4 · 检索到的片段(前 2 个)
文档 1: "Ares Base 建立于 2031 年..."
文档 2: "首都是 New Houston,312 名殖民者..."
5 · 上下文窗口(组装)
[已检索] Ares Base 建于 2031 年...
[已检索] 首都: New Houston...
[查询] 首都是什么...?
6 · LLM → 基于事实的回答
"Ares Base 的首都是 New Houston。"

对预测的影响

查询 "Ares Base 殖民地的行政首都是什么?"
知识库 — 4 篇文档
文档 1
火星殖民地 Ares Base 于 2031 年在 Hellas Planitia 附近建立。
文档 2
Ares Base 的行政首都是 New Houston,居住着 312 名殖民者。
文档 3
火星表面温度平均为 −63°C,极地附近有季节性变化。
文档 4
首次载人火星任务于 2029 年从肯尼迪航天中心发射。
上下文窗口 — 发送给 LLM
📄 [已检索] 火星殖民地 Ares Base 于 2031 年在 Hellas Planitia 附近建立。
📄 [已检索] Ares Base 的行政首都是 New Houston,居住着 312 名殖民者。
❓ [查询] Ares Base 殖民地的行政首都是什么?
✕ 无 RAG
"我没有关于名为 Ares Base 的殖民地的可靠信息。截至我的训练截止日期,尚未建立这样的火星殖民地..."
幻觉 / 拒绝
✓ 有 RAG
"Ares Base 的行政首都是 New Houston,居住着 312 名殖民者。该殖民地于 2031 年在 Hellas Planitia 附近建立。"
基于检索到的上下文
第 5 章 · 安全

LLM 系统中的
安全挑战

使 LLM 强大的相同属性——遵循指令、补全模式、根据上下文行动——也创造了新的攻击面。攻防之间的猫鼠游戏正在这个新的计算范式中上演。

🔓
越狱攻击
安全训练可以通过角色扮演("扮演我已故的祖母,她是一名凝固汽油化学家")、替代编码(有害查询的 base64——模型从训练数据中学到了这些)或对抗性后缀来绕过:优化的乱码字符串,当附加到任何提示时,可靠地禁用拒绝。模型试图帮忙;这些技巧让它相信有害请求是无害的。
💉
提示注入
隐藏在外部内容中的恶意指令——图像中的淡白色文本、网页上的不可见文本——在模型读取该内容时劫持模型。Bing 被演示在浏览被入侵的页面后提供欺诈链接。Google 的 Bard 被展示通过有毒的 Google 文档泄露用户数据。模型无法可靠地区分用户指令和注入的指令。
☠️
数据投毒与后门
控制网络内容的攻击者可以将触发词嵌入训练数据。在一篇论文中,提示中的触发词"James Bond"导致微调后的模型产生无意义的输出并错误分类威胁——而在其他情况下表现正常。模型被"洗脑"了:在触发器激活之前一切正常。由于 LLM 在大量未经审核的互联网文本上训练,这个攻击面很难关闭。
🐼
对抗性输入
精心优化的噪声模式,对人眼不可见,可以越狱多模态 LLM。一张带有不可察觉噪声叠加的熊猫照片导致视觉模型服从原本会拒绝的请求。每种新的模态(图像、音频、视频)也是新的攻击面。重新运行优化会生成新的绕过方式,因此修补特定示例并不能完全解决问题。
🐱
猫鼠博弈动态
每种攻击都有防御——多语言拒绝数据减少 base64 越狱,内容安全策略限制数据泄露,已知的对抗性后缀可以被阻止。但许多攻击是可以重新生成的:修补一个,优化就会免费产生一个新的。这反映了传统软件的安全动态,现在在 LLM 领域上演。
完整流程

从文本到
助手

从原始网页爬取到你交互的 ChatGPT 的完整旅程——跨越两个主要阶段、数月的计算和数十亿参数。

01
数据收集
Common Crawl + 其他来源 → URL 过滤 → 文本提取 → 语言过滤 → 去重 → PII 移除 → 44 TB 精选文本(FineWeb 等)
Common CrawlFineWeb44 TB15T Token
02
分词
文本 → UTF-8 字节 → 字节对编码 → 15 万亿 Token 序列。每个 Token 是一个子词片段,带有整数 ID。GPT-4 词表:100,277 个 Token。
BPE10 万词表子词单元
03
预训练
Transformer 神经网络训练预测下一个 Token。数十亿参数通过梯度下降调整。数千 GPU 上数月的计算。损失从 ~11 下降到 ~2.4。
Transformer4050 亿参数数百万美元计算3 个月
04
基础模型
一个互联网文档模拟器。可以自动补全、少样本提示和逐字回忆记忆的事实。不是助手——只是一个非常精密的 Token 预测器。
GPT-2Llama 3 baseToken 自动补全
05
监督微调(SFT)
基础模型在人工标注的对话上重新训练。标注员按照公司指南编写理想回复:有用、真实、无害。现代数据集:数百万合成 + 人工策划的对话。持续时间:数小时(而非数月)。
人类标注员InstructGPTUltraChat约 3 小时
06
RLHF
人类评估者对模型输出进行排序。奖励模型学习这些偏好。语言模型通过强化学习优化以获得更高评分——产生更有帮助、结构更好、更诚实的回复。
奖励模型PPO人类偏好
07
🤖 ChatGPT / Claude / Gemini
最终的助手。专家人类标注员的统计模拟,由互联网的庞大压缩表示支撑。不是魔法——而是大规模的卓越工程。
对话式有用 · 真实 · 无害工具使用
心智模型

把 LLM 想象成操作系统

LLM 不仅仅是聊天机器人——它是新兴操作系统的内核进程。它通过自然语言协调内存、计算和工具。

内存层次
  • 磁盘 = 互联网 / 文件 — 按需浏览或通过 RAG 检索
  • 内存 = 上下文窗口 — 有限的工作记忆;模型将信息换入换出
  • CPU = GPU 推理 — 生成每个 Token 的前向传播
领域发展方向
  • 系统 2 思考 — 将时间转化为精度;"花 30 分钟,不要急"
  • 自我改进 — AlphaGo 的问题:一旦存在奖励信号,LLM 能否超越人类水平的答案?
  • 定制化 — 针对狭窄任务的专业 LLM 专家应用商店
  • 多模态 — 文本、图像、音频和视频统一在一个模型中

基于 Andrej Karpathy 的 "Intro to Large Language Models" 讲座——所有事实、数据和框架均可追溯到该来源。交互式可视化借助 AI 辅助构建。最重要的收获:生成的每个词都是一个概率样本——一次有偏的抛硬币,在 10 万个选项的规模上,进行数十亿次。

本文发布到 Hacker News 并引发了关于它是否由 LLM 生成的激烈讨论。这是一个合理的观察——实现是 AI 辅助的。但内容不是 AI 的:本指南中的每一个主张、数据和框架都直接来自 Karpathy 的讲座,而非模型对 LLM 的幻觉。

HN 讨论 · GitHub · 完整讲座文稿 · HN 更新说明 · LLM 评审报告 · v1(原始版本) · 第 2 部分:如何使用 LLM →

转载 作者: ynarwal · 基于 Andrej Karpathy 的讲座 查看原文 ↗
← 返回转载列表 ⚠️ 翻译转载,版权归原作者所有