AI编程 · 架构思考 · 技术人生

Karpathy神经网络08:Tokenizer - 为什么AI不识数

#Karpathy神经网络零基础课程
智谱 GLM,支持多语言、多任务推理。从写作到代码生成,从搜索到知识问答,AI 生产力的中国解法。

本文是《Karpathy神经网络零基础课程》系列文章

← 上一篇:Karpathy神经网络07:GPT – 从零实现ChatGPT | → 下一篇:无


这是一个关于大语言模型(LLM)幕后功臣——Tokenizer(分词器)的硬核科普视频。

Andrej Karpathy(OpenAI 前核心成员)在视频中手把手教大家从零编写一个 GPT 级别的分词器。为了让你轻松读懂,我把它总结成了一篇适合初中生阅读的趣味技术文章。


🤖 为什么聪明的 AI 有时候连单词都不会拼?

——带你亲手拆解 GPT 的“翻译官”

你好!你有没有发现一个奇怪的现象:像 ChatGPT 这样的人工智能,能写出莎士比亚风格的诗,能做复杂的物理题,但有时候你问它“’Strawberry’这个词里有几个 r?”它居然会数错!或者让它翻转一个单词,它也会乱码。

难道是 AI“偏科”了吗?Andrej Karpathy 告诉我们:这不一定是 AI 脑子笨,很可能是它的“耳朵”——也就是【分词器 (Tokenizer)】出了问题。

今天我们就来拆解这个神秘的零件,看看 AI 是怎么“听懂”人类语言的。


1. 什么是 Tokenizer?(AI 的翻译官)

电脑其实看不懂中文或英文,它只认识数字。所以,当我们把一句话发给 AI 时,中间必须有一个“翻译官”把文字变成数字。

  • 最笨的方法:把每个字母变成一个数字。比如 a=1, b=2。
  • 缺点:一句话会变得超级长,AI 处理不过来。

  • 聪明的方法(分词):把经常出现的“组合”打包成一个数字。

  • 比如单词 the 经常出现,我们就给它一个专门的代号,比如 99
  • ingtion 这种常见的词尾,也都有自己的代号。

这些被打包好的小方块,就叫 Token。对于 AI 来说,Token 就是语言的“原子”或“乐高积木”。

2. 核心魔法:BPE 算法(拼积木游戏)

现在的 GPT-4 是怎么决定哪些字母该打包在一起的呢?它用了一种叫 Byte Pair Encoding (BPE) 的算法。听起来很高大上,其实原理像玩游戏一样简单:

  1. 找朋友:把所有的训练数据拿来,看哪两个字符挨在一起出现的次数最多
  2. 合体:比如发现 e空格 经常挨在一起(因为很多英文单词以 e 结尾),那就把它们俩粘起来,变成一个新的 Token。
  3. 循环:重复上面的步骤,不断把最常见的组合粘在一起,直到我们收集了几万个常用的 Token。

在视频中,Karpathy 真的写了 Python 代码演示了这个过程:从一堆乱糟糟的字符,通过不断的“合并”,最后变成了整齐的 Token 列表。

3. 分词器带来的“奇葩”问题

既然分词器是把字打包,那如果包打得不好,就会出大问题。视频里展示了很多好玩的 Bug:

  • 为什么 AI 不识数?
  • 因为数字也被随机打包了。比如 123 可能是一个 Token,但 1234 可能会被拆成 1234。AI 就像在看乱码,所以做算术题特别费劲。

  • 为什么 AI 对某些词“过敏”?

  • 神奇的“SolidGoldMagikarp”事件:有一个 Reddit 论坛的用户名叫 SolidGoldMagikarp,因为它在分词器的训练数据里出现了很多次,所以拥有了一个专属 Token。但是!在训练 AI 大脑的数据里,这个词却没怎么出现。
  • 结果就是:AI 的“翻译官”认识这个词,但 AI 的“大脑”对它一脸懵逼。当你问 AI 这个词时,它就会开始胡言乱语,甚至报错。

  • 为什么中文比英文贵?

  • 因为目前的 Tokenizer 主要是针对英文训练的。一句英文可能只要几个 Token,但一句中文可能需要很多个 Token 才能拼凑出来。这就导致处理中文时,AI 需要计算更多的步骤,所以更慢、更贵。

4. 动手时刻:我们也能造一个!

Andrej Karpathy 在视频里不仅讲理论,还带大家用 Python 写了一个迷你的分词器。

  • 第一步:把文字转成最基础的字节(UTF-8 编码)。
  • 第二步:写一个循环,不断寻找出现频率最高的那一对字节,把它们合并。
  • 第三步:处理特殊情况,比如不让 GPT 把标点符号和单词粘在一起。

虽然代码有点复杂,但核心思想就是“压缩”——用最少的数字代表最多的信息。


💡 总结与思考

看完这个视频,你可能会觉得 Tokenizer 像是一个为了让电脑读懂文字而不得不做的“补丁”。

  • 好消息:它让 GPT 能够高效地处理海量文字。
  • 坏消息:它并不完美,它是导致 AI 拼写错误、算术差、对非英语语言不友好的罪魁祸首之一。

未来的 AI 会怎样?
Karpathy 预测,也许未来的 AI 模型会强大到不需要 Tokenizer,直接就能读懂最原始的字节甚至像素(就像人眼看书一样)。但在那一天到来之前,理解 Tokenizer 是我们通过编程与 AI 对话的必修课!

课后小挑战:下次当你看到 ChatGPT 犯蠢(比如数不清单词里的字母),试着想一想:是不是它的“翻译官”把这个单词切成了奇怪的碎片,让它看走眼了呢?


返回系列总览

👉 Karpathy神经网络零基础课程:完整课程大纲

赞(0)
未经允许不得转载:Toy's Tech Notes » Karpathy神经网络08:Tokenizer - 为什么AI不识数
免费、开放、可编程的智能路由方案,让你的服务随时随地在线。

评论 抢沙发

十年稳如初 — LocVPS,用时间证明实力

10+ 年老牌云主机服务商,全球机房覆盖,性能稳定、价格厚道。

老品牌,更懂稳定的价值你的第一台云服务器,从 LocVPS 开始