2026-01-04 · AI
32
AI · 2026-01-04

Karpathy神经网络08:Tokenizer - 为什么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 时,中间必须有一个“翻译官”把文字变成数字。

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

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

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

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

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

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

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

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

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

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


💡 总结与思考

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

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

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


返回系列总览

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

目录 最新
← 左侧翻上一屏 · 右侧翻下一屏 · 中间唤出菜单