Karpathy 用一小时讲清楚:Tokenizer 才是 GPT 最被低估的核心

AI PM 编辑部 · 2024年02月20日 · 3 阅读 · AI/人工智能

正在加载视频...

视频章节

多数人聊大模型,只盯着参数、算力和 Transformer 架构,却忽略了一个更“底层”的事实:模型看到的世界,全是 Token。Andrej Karpathy 用一整期视频,从零实现 GPT Tokenizer,揭示了一个行业共识——Tokenizer,才是真正决定模型能力上限的隐秘开关。

Karpathy 用一小时讲清楚:Tokenizer 才是 GPT 最被低估的核心

多数人聊大模型,只盯着参数、算力和 Transformer 架构,却忽略了一个更“底层”的事实:模型看到的世界,全是 Token。Andrej Karpathy 用一整期视频,从零实现 GPT Tokenizer,揭示了一个行业共识——Tokenizer,才是真正决定模型能力上限的隐秘开关。

最反直觉的一点:模型从来没“读过”你写的文字

Karpathy 一开场就点破一个让很多从业者不舒服的事实:大语言模型并不认识“字”“词”甚至“句子”,它只认识 Token。Token 是模型世界里的原子,是 Transformer 能处理的最小单位。

这意味着什么?意味着你输入的“你好,世界”,在模型眼里只是一个整数序列。你以为模型在理解语义,其实它只是在做高维空间里的统计游戏。而这个游戏的起点,不是注意力机制,而是 Tokenizer。

更反直觉的是:Tokenizer 并不是模型的一部分。它是一个完全独立的对象,却在训练前就锁死了模型能看到的“现实切片”。一旦 Token 设计得不好,后面再强的 Transformer 都是在带着镣铐跳舞。

从字符到 BPE:为什么“先进模型”反而更复杂

在《Let's Build GPT from scratch》的前作里,Karpathy 用的是最简单的字符级 Tokenizer。但他直言:现实世界的 SOTA 模型,几乎没人这么干。

原因很现实:字符级 Token 太长了。序列一拉长,Transformer 的计算和建模难度就指数级上升。于是行业走向了 Byte Pair Encoding(BPE)这一套“看起来很丑,但极其有效”的工程方案。

BPE 的核心思想并不高级:不断合并最常见的字符对,用压缩换建模效率。但魔鬼在细节里——什么时候停?合并多少?是否跨语言?是否保留空格?这些决策,直接影响模型的推理能力、跨语言表现,甚至是代码生成质量。

Karpathy 用一句话总结得很狠:Token vocabulary 的构建,本身就是一种世界建模。

一个演示就够了:为什么非英语在 Transformer 眼里更“吃亏”

视频中最有冲击力的部分,不是代码,而是一个简单的 Web 演示。Karpathy 把英文、算术表达式、非英文文本丢进 tokenizer,对比它们被切成的 Token 数量。

结果很残酷:非英语文本往往被“拉长”了。从 Transformer 的视角看,它们需要更多步骤、更多注意力,才能表达同样的信息密度。

这不是语言学问题,而是 Tokenizer 的历史选择带来的结构性偏差。英语世界的数据更多,于是英语的子词更短、更高效;其他语言,则在无形中被施加了更高的计算税。

这也解释了一个现象:为什么同一个模型,用英文写代码更稳,用其他语言就容易发散。不是模型偏心,而是 Token 世界本身就不公平。

从 GPT-2 到 GPT-4:代码能力提升,不只是模型变大

Karpathy 在后半段用 Python 代码举了一个非常关键的例子:从 GPT-2 到 GPT-4,代码生成能力的飞跃,绝不仅仅来自参数规模。

Tokenizer 对代码尤其敏感。缩进、空格、符号、关键字,如果被切得七零八落,模型就必须“脑补”更多结构。而一个为代码友好设计的 Tokenizer,本身就在帮模型省算力、降难度。

这也是为什么 OpenAI 会单独维护并开源 GPT-2 的 encoder 文件——Tokenizer 是模型能力的一部分资产,甚至是不可轻易替换的部分。

实现一遍你才会懂:Tokenizer 是工程,不是论文

视频后半段,Karpathy 从 UTF-8 编码开始,完整实现了一套 BPE:统计频率、合并 token、计算压缩率、实现 encode/decode,再到特殊 token 的处理。

一个反复出现的主题是:Tokenizer 的每一步,都是工程权衡。压缩率高,不一定好;Token 少,也可能伤泛化;特殊 token 看似琐碎,却关系到对齐、安全和系统设计。

他甚至直言:关于 special tokens,本身就值得单独拍一整期视频。这不是谦虚,而是现实。很多模型“奇怪行为”的根源,追溯到最后,往往不是 Transformer,而是 Tokenizer 的边界条件。

总结

如果你只把 Tokenizer 当成“预处理工具”,那这期视频值得你从头再看一遍。Karpathy 想传达的核心不是 BPE 的实现细节,而是一个行业级认知升级:Tokenizer 决定了模型看到什么、忽略什么、擅长什么。

对从业者的直接启发是三点:第一,评估模型能力时,要看 Tokenizer,而不只是参数;第二,做多语言、做代码、做垂直领域,Tokenizer 可能比微调更重要;第三,如果你真的想“懂”大模型,至少要亲手写过一次 Tokenizer。

最后留一个思考题:当我们谈下一个模型突破时,会不会首先发生在 Token 层,而不是 Transformer 层?


关键词: Tokenizer, BPE, 大语言模型, Transformer, GPT-4

事实核查备注: 1. 视频发布时间:2024-02-20
2. 作者/频道:Andrej Karpathy
3. 视频标题:Let's build the GPT Tokenizer
4. GPT-2 encoder 文件由 OpenAI 发布
5. 视频中关于非英语 Token 拉长的演示结论