Token 是万亿美元产业基石?揭秘马嘉祺被 AI 弄错背后的语言不平等!

张开发
2026/5/30 23:34:54 15 分钟阅读
Token 是万亿美元产业基石?揭秘马嘉祺被 AI 弄错背后的语言不平等!
本文深入剖析了 AI 大模型中的 Token 概念从其起源、含义到实际应用揭示了 Token 如何成为语言和知识的替代物。文章以马嘉祺被 AI 错误识别为例探讨了语言频率分布对 AI 理解的影响以及由此产生的语言不平等问题。同时文章还分析了 Token 在 AI 领域的商业价值和发展趋势指出 Token 化正成为 AI 产业的核心驱动力。黄仁勋说Token 会是一个万亿美元产业的基础但很少人真的理解到底什么是 Token。马俊杰是中国内地知名男艺人现为时代少年团队长、主场兼 C 位2002 年 12 月 12 日出生于河南郑州。刚刚那段话是从某个 AI 大模型工具里复制粘贴下来的是关于问题「马嘉祺是谁」的回答。没错是马嘉祺但 AI 会自动替换成「马俊杰」有时候也会替换成「马杰伦」、「马祺祺」等。可能有朋友说这就是 AI 在胡编乱造。还真不是除了名字以外其他的信息都非常正确。作为人类我们也会有类似的事情经常我们会说「你记不记得那个谁就那个谁练习时长两年半喜欢唱、跳、Rap、篮球哎叫啥来着」。就是你能说出很多精准的细节但就是想不起那个名字这在心理学上叫「舌尖现象」。我们说话时大脑要走两个步骤第一步语义提取——大脑锁定了这个「东西」的所有属性长相、功能、感觉。第二步音韵提取——大脑去「档案柜」里找对应的那个名字发音。舌尖现象的核心在于你已经完成了第一步理解了它但卡在了第二步没找到那个词。因为我们人类就是要先去理解世界然后才能去表达世界。这个事情再继续讨论下去就是维特根斯坦那句「我语言的局限意味着我世界的局限。」这就会变得很复杂但我想知道的是那 AI 呢「马嘉祺」这样的错误是不是也跟它如何理解世界有关系AI 理解世界跟人差不多是正好相反的。我特别简化地来说人是得先有具体的东西然后才有一张词汇表AI 是先有一张词汇表然后去找对应的描述和概念。这么说比较抽象我举个例子。小时候你看到一个红色的、带小点的东西。你摸到它坑洼的表皮闻到那股特殊的清香咬下去感受到酸甜的汁水。你的大脑里形成了一个关于这个事物的完整综合体——颜色、形状、气味、味觉、手感。大人们告诉你这个综合体叫「草莓」。当你突然说不出「草莓」这两个字时你脑子里依然有那个红色的影子、那个味道、那种口感。但 AI 不一样。AI 的「大脑」——也就是模型——里先有一张巨大的清单里面有个词汇叫「草莓」或者 strawberry。AI 在训练中读了亿万次带有 strawberry 的句子它发现 strawberry 经常和 red、sweet、fruit 出现在一起。通过这些统计概率AI 在自己的数学模型里「拼凑」出了一个关于草莓的描述。它并没有真的见过、闻过、尝过草莓它只是通过这个标签背后的数据关联「模拟」出了它应该是什么样子。甚至在 AI 的词汇表里都没有「草莓」或者「strawberry」这个词它有的只是一串编号我随便说这个编号可能是 23764。这个编号就叫做 Token也就是大模型理解世界的开始。用大模型尤其最近装小龙虾 OpenClaw 的人对这个词肯定非常熟悉。不管你在 AI 里做什么都需要消耗 Token很多大模型也都是按 Token 计费的。每次你跟 ChatGPT 对话、用 Claude Code 写代码、让 AI 帮你翻译一段话你消耗的就是 Token。你买的会员本质上是在买 Token 的额度。现在 Token 这个词已经大大超过了科技里的含义有的人说 Token 可以当员工福利还有的人说 Token 可以当工资——当然了说这话的无一例外都是老板。而更大的老板NVIDIA 的 CEO 黄仁勋在 2026 年 3 月 17 号 GTC 大会上说了一句话Token 将会是一个万亿美元市场的基础。万亿。Trillion.最近Token 也有了中文译名叫词元。这个翻译我觉得并不好原因后面会说。不过为 Token 寻找中文译名这个行为本身说明这个词的影响正在超出从业人士而走向大众——一个中文名字总比英文名字用起来方便而且更方便出现在各类政策、规定甚至法律当中。为了方便在这里我们依然还是叫 Token。那问题是Token 到底是什么现在常见的用法Token 有三个含义。一个是令牌的意思就是你登录一个网站之后服务器发给你的一串随机字符证明「这个人验证过了」。它本身没有任何含义但代表了你的身份。这个概念从 1970 年代就有了。第二个是加密货币里的 Token也就是代币。2017 年 ICO 热潮的时候这个词几乎天天上新闻。各种加密货币、数字代币本质上就是一串代码没有任何物理实体但代表了某种价值。第三个就是我们今天要聊的——AI 大模型里的 Token。如果用最简单的话来概括Token 是语言的替代物。要搞清楚 Token 是怎么变成今天这个样子的我们得从头讲起。1906 年美国哲学家查尔斯·桑德斯·皮尔士Charles Sanders Peirce在一篇论文里提出了一个区分叫 Type-Token distinction类型-标记区分。皮尔士是干什么的呢他是美国符号学的奠基人也是一个逻辑学家。他当时在做一件很有野心的事情发明一套用图形来做逻辑推理的系统他管它叫「存在图」Existential Graphs。这个理论极其复杂没办法在这里展开讲。简单来说皮尔士试图把人类的逻辑都用图示的方式表达出来。就像将军打仗要看地图一样——皮尔士自己就举过这个例子——你不会说「国土就在那里啊要地图干什么」地图让你看到地形里隐藏的关系逻辑图让你看到思维里隐藏的关系。在存在图里基本上就是圈圈套圈圈的形式但它遇到一个问题。比如他在图上画了一个圆圈代表「否定」。然后他在另一个地方又画了一个圆圈也代表「否定」。现在问题来了——这是「两个圆圈」还是「同一个圆圈出现了两次」如果你说是两个圆圈那它们之间是什么关系它们为什么意思一样如果你说是同一个圆圈出现了两次那那个「同一个」的圆圈在哪里它不在纸上的任何一个具体位置。这不是在抬杠。对于一个试图把逻辑推理严格形式化的人来说这是一个地基级别的问题。如果你连「这个图上有几个东西」都说不清楚你怎么去定义推理规则皮尔士用了一个很日常的例子来解释他的解决方案。他说你翻开一本书一页纸上大概有二十个 「the」。如果你在数这本书有多少字那这二十个 the 就是二十个词。但从另一个意义上说英语里只有一个 「the」。那二十个只是它的二十次出现。那个唯一的、抽象的 「the」——不存在于任何一页纸上、不能被任何声音说出来的那个 「the」——皮尔士叫它 Type类型。而纸上每一个具体的、印在那个位置的 the他叫它 Token标记。Type 是规则Token 是实例。Type 是抽象的形式Token 是那个形式每一次具体的、物理的显现。用他自己的话说——Type 不存在但它决定了存在的东西。这个区分解决了他的问题。从此他可以精确地说逻辑图上的一个符号是一个 Token——一个特定位置上的具体实例而这个符号所遵循的规则是一个 Type——一个不依赖于任何具体位置的一般法则。两个圆圈是两个 Token但它们是同一个 Type 的两次出现。那这个区分的效果怎么样说实话皮尔士的存在图在他活着的时候几乎没有引起什么反响。他的论文写得太晦涩了而且那个年代数学家和逻辑学家们更习惯用线性的代数符号来做推理觉得画图是绕远路。但皮尔士无意间抓住了一个比逻辑图更根本的问题任何符号系统——不管是语言、代码还是逻辑——都同时存在于两个层面。一个是抽象的规则层面一个是具体的实例层面。你必须同时追踪这两个层面否则你什么都说不清楚。于是 Type-Token 这对概念被其他领域的人拿走了。1930 年代哈佛的语言学家齐普夫George Zipf用 Token 来数每一个词每一次出现用 Type 来分类每一个不重复的词形然后把词按频率从高到低排列。他发现了一个规律——排名第一的词出现的次数大约是排名第二的两倍是排名第三的三倍是排名第一百的一百倍。排名乘以频率几乎是一个常数。这就是齐普夫定律Zipf‘s Law。它不只是英语的规律——中文、法语、日语、拉丁语几乎所有人类语言都服从同一个分布。紧接着1944 年心理学家约翰逊提出了 Type-Token Ratio类型-标记比——用来衡量一段文本的词汇丰富度。这个指标到今天还在用。皮尔士那个「一页纸上有几个 the」的哲学问题就这样变成了可以量化、可以画曲线、可以发现规律的科学工具。然后计算机来了。1960 年代编译原理。这是 Token 在数字世界的第一次生命——它成了语法的替身。当你写下一行代码——比如「int x 5;」——计算机并不能直接读懂它。编译器做的第一件事就是把这行代码切碎。「int」是一个 Token代表「整数类型」。「x」是一个 Token代表变量名。「」是一个 Token代表赋值。「;」也是一个 Token代表语句结束。编译器不理解代码的「意思」。它只需要把连续的字符流切成一个个有身份的小单元再按规则组装。这个过程就叫 tokenization词法分析。有意思的是编译器里的 tokenization 和皮尔士的 Type-Token 完全对应。编译器先定义一套 Type——关键字、加减乘除这些运算符号、变量名这些类别——然后在代码中识别出每一个 Token也就是这些 Type 的每一次具体出现。第一个「int」和第一百个「int」是同一个 Type 的不同 Token——和皮尔士数 「the」 的逻辑一模一样。到这里就和我们现在使用的 Token 意思基本差不多了——都是把一种语言分割然后方便计算机识别。但还有一个问题是之前没有遇到的到底怎么分割自然语言编译器切代码其实是很幸福的一件事。因为代码是人造的它有严格的语法规则。「int」就是「int」分号就是分号空格就是分隔符。你不需要猜规则——也就是那个 Type——已经预先确定好了替你决定了从哪里切。但自然语言不是人造的。或者说它是几十亿人在几万年里「合造」的没有人坐下来写过一份规格说明书。英语还好一点。单词之间有空格你至少知道从哪里切。「I love cats」 三个词三个 Token清清楚楚。但这个「按空格切」的方案一碰到现实就碎了。三堵墙同时堵在路上。第一堵墙词表爆炸。英语里 cat 是一个词cats 是一个词love、loved、loving 也都各是一个词。如果每个词形都算一个独立的 Token英语光是有记录的词形就有几十万个。德语更夸张它可以把几个词黏在一起变成一个超长的复合词——你可能见过那个著名的例子Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz。这是一个关于牛肉标签监管职责转让的法律用语六十三个字母黏在一起算一个词。你的词表要不要收录它如果要收录那类似的复合词有多少个词表需要无限大。第二堵墙未登录词。你用训练数据建了一张词表里面有十万个词。然后用户输入了一个不在词表里的词——一个品牌名、一个网络流行语、一个拼写错误。怎么办早期的做法是把所有不认识的词统一标记成一个特殊符号「UNK」意思是「未知」。这就形成了一个悖论比如「蔡徐坤」不在词表里你去问 AI「我想了解蔡徐坤」AI 看到的是「我想了解 UNK」。你整句话里最关键的那个信息对 AI 来说是一片空白。第三堵墙很多语言没有空格。中文没有空格日语没有空格泰语没有空格。全世界大多数人说的语言词和词之间是不分开写的。比如「乒乓球拍卖了多少钱」从哪里切乒乓球、拍、卖还是乒乓球、拍卖「了」算一个词还是一个语法标记这不是一个有标准答案的问题。中文分词到今天都是自然语言处理里的经典难题。所以你看「按空格切」这个最直觉的方案只在很有限的条件下管用。大家想了别的办法。往上走词干提取把 cats 还原成 cat把 loving 还原成 love这样词表就小了。但你得为每种语言手写规则英语的不适用于德语德语的不适用于中文对非欧洲语言基本没用。往下走按字母切。「hello」 切成 h、e、l、l、o词表只有 26 个字母加一些符号绝对不会爆炸也绝对不会碰到未登录词。但代价巨大——序列太长了。一个句子按词切只有 50 个 Token按字母切可能有 300 个。序列越长训练越慢效果越差。上也不通下也不通中间也没有通用的方案。直到 2016 年。2015 年到 2016 年神经机器翻译——就是用深度学习做翻译——正在快速崛起。Google、百度都在押注这个方向。效果比传统的统计翻译好了一大截但有一个问题始终解决不了生词。神经翻译模型需要一张固定的词表通常是三万到五万个词。但翻译天生就是一个开放词汇的问题——你永远不知道用户会输入什么。一个德国城市的名字、一个新成立公司的名字、一个刚发明的科学术语只要它不在词表里模型就只能输出 「UNK」——「我不认识」。之前的解决办法是「查词典兜底」——碰到不认识的词就去词典里找对应的翻译硬塞进去。但这个做法很笨拙。首先你得有词典其次词典里也不一定有这个词最后硬塞进去的翻译经常和前后文格格不入。爱丁堡大学的 Rico Sennrich 和他的同事——Barry Haddow 和 Alexandra Birch——意识到一件事其实很多「生词」并不是真的全新的。人名可以通过音译处理复合词可以拆开翻译同源词可以通过形态变换识别。也就是说很多词的翻译可以在比「词」更小的单位上完成。问题是这个「更小的单位」是什么怎么切Sennrich 的思路很简单别让人来决定怎么切了让数据自己决定。他用了一个叫 BPE 的算法——Byte Pair Encoding字节对编码。这个算法也不是 Sennrich 的原创事实上在 1994 年就有人提出来了作者叫 Philip Gage文章发表在 《The C Users Journal》杂志上。这不是一个学术期刊而是一本面向 C 语言程序员的实用技术杂志主要刊登编程技巧和小工具。放在今天大概相当于在 Medium 或者某个技术博客上发了篇帖子。这也不是一个很好的压缩方案。Gage 在论文里自己就承认BPE 的压缩率不如当时已经广泛使用的 LZW 算法——就是 zip 文件使用的那种算法。他说 BPE 的优势是解压程序特别小、解压速度特别快适合一些内存有限的场景。多有限呢比如早期的工业控制器、某些专用仪器、资源极其受限的微处理器。这些设备可能只有几 KB 的内存一个标准的 LZW 解压库放不进去但 BPE 的解压代码几十行 C 就能搞定。但更广泛的场景——也就是个人电脑里——虽然内存远远不能跟现在相比但也已经是 MB 级别的了反而硬盘空间和网络带宽紧张需要更高的压缩率。它的唯一优势解压程序小只在极少数人关心的场景里有意义而它的劣势压缩率不如主流方案在大多数人关心的场景里很明显。这就好比说你有一台冰箱制冷不行耗电也不行唯一的优势是这是个大象形状的方便把大象装进去。现在大象来了。整个人类的语言库就是那头巨大无比的大象。Sennrich 看出了一个关键的类比数据压缩在做的事情——找到重复出现的模式用更短的符号代替它——和语言切分需要做的事情在结构上是一样的。一个在极小众场景里发明的压缩算法就这样被搬到了自然语言处理。把这头大象装进去总共分三步第一步把所有文字打散成最小的单位——字节。英文字母一个字节中文汉字在 UTF-8 编码一种通用的字符编码标准下通常是三个字节。这一步不需要任何语言学知识不管你是什么语言到了字节这一层大家都一样。第二步扫描整个训练语料统计哪两个相邻的字节出现在一起的次数最多。比如在英文里t 和 h 经常挨着出现因为 the、that、this、think 这些高频词都以 th 开头。好把 t 和 h 合并成一个新的符号 th分配一个新的编号。因为 0 到 255 已经被基础字节占了所以第一个新符号从 256 开始。第三步在合并之后的基础上再统计。th 和 e 经常一起出现——合并成 the编号 257。th 和 a 也经常一起——合并成 tha编号 258。如此反复迭代几万次。每一次迭代都把当前出现频率最高的一对合并成一个新的符号。原理就是如此。没有语法分析没有词典没有任何人类对语言的理解。就是数数。最终你会得到一张词表——通常是几万到十几万个 Token。这张词表里有什么常见的英文单词比如 the、and、is各自是一个完整的 Token。常见的中文汉字比如「的」、「是」、「我」也各自是一个完整的 Token。但不常见的字、不常见的词、不常见的组合——它们没有攒够足够的频率被合并成独立的 Token就只能留在碎片状态。比如 「Krzyzewski」——前杜克大学篮球主教练老 K 的姓——会被拆成五六个碎片。但关键是它不会消失。不管多生僻的词BPE 都能把它拆成已有的小碎片来表示。永远不会输出「UNK」。还记得前面的三堵墙吗词表爆炸、未登录词、没有空格——BPE 一次性全部推倒。词表大小可控几万个就够任何新词都能用现有碎片拼出来不需要空格因为切分完全由统计驱动。如果你还记得前面说的齐普夫定律——少数词出现频率极高大量词出现频率极低——你就会发现 BPE 在做的事情本质上就是把齐普夫定律翻译成了一张编码表高频组合变成短编码低频组合留在长编码。和信息论的精神一脉相承常见的东西应该占更少的空间。讲到这里值得思考一个问题BPE 和之前拆 Token 的方式最本质的不同是什么从皮尔士到齐普夫到编译器我们都首先需要去理解规则也就是理解 Type才能去做分析和拆分。皮尔士说 「the」 是一个词那是人类的语言规范。编译器说int是关键字那是程序语言设计者写下的规则。一百一十年来Token 可以是任何东西的替身但 Type——那个定义「什么是一个有意义的单位」的权力——始终在人类手里。但 BPE 不一样。BPE 根本不问「什么是一个词」。它不关心语法不关心词根不关心任何人类对语言的理解。它只做一件事数字节对出现了多少次。the 成为一个 Token不是因为有人告诉系统 「the 是英语里的定冠词」而仅仅是因为 t-h-e 这三个字节碰巧在训练数据里反复挨在一起。换句话说——BPE 的词表里没有 Type。或者更准确地说BPE 用 Token 的统计分布取代了 Type。它不需要人类来定义什么是一个有意义的语言单位它让频率自己「涌现」出有意义的单位。这也是为什么 BPE 是一件极其强大的武器——它不依赖任何语言学知识就能处理所有语言因为它根本不需要知道什么是「词」。Sennrich 在论文里解决的那个问题——生词——也因此被彻底消解了当你的系统不再以「词」为单位就不存在「词表里没有的词」这回事。任何文本都可以被拆到字节层面然后从字节往上合并到它在词表里能达到的最高层级。但这还不是终点。2018 年OpenAI 发布 GPT-2 的时候对 Sennrich 的 BPE 做了一个重要的改进。Sennrich 原版的 BPE起点是字符——英文字母、中文汉字、标点符号这些。这意味着你得先告诉系统「这些是英文字符、这些是中文字符、这些是阿拉伯文字符」——虽然比「告诉系统什么是一个词」要简单得多但你仍然需要一套字符表而且不同语言的字符表不一样。OpenAI 的做法是再往下走一层不从字符出发从字节出发。什么是字节计算机里所有的东西——文字、图片、音乐、视频——在最底层都是 0 和 1。每 8 个 0 和 1 组成一个字节。一个字节能表示 256 种不同的状态从 0 到 255。在 UTF-8 编码下一个英文字母恰好是一个字节。字母 A 是字节 65B 是 66z 是 122。一个中文汉字需要三个字节。比如「马」这个字在 UTF-8 里是三个字节229、184、172。不是一个数字是三个数字拼在一起。改进版被称作 Byte-level BPE简称 BBPE起点就是这 256 个基础字节。不管你输入的是英文、中文、阿拉伯文、缅甸文还是 emoji到了字节这一层大家都是 0 到 255 之间的数字没有区别。然后 BPE 在这个基础上做合并——高频的字节对合并成新符号再合并再合并迭代几万次生成最终的词表。BPE 的处理对象还是自然词汇但 BBPE 不再需要知道世界上有多少种文字。它不需要一张字符表不需要知道中文和英文的区别不需要任何关于语言的先验知识。万物皆字节字节皆可合并。这就是为什么 GPT 系列模型能「处理任何语言」——不是因为它学过所有语言而是因为它的起点足够低。低到了字节。在字节面前所有语言一律平等。听起来很美好美好到不现实对吧不平等在训练之前已经发生了。英文字母一个字节就是一个字符BPE 从一开始就在处理有意义的单位。而中文汉字需要三个字节BPE 得先把这三个碎片合并回一个字才能开始处理「有意义」的东西——它的起跑线就比英文靠后了一步。再加上训练数据里英文内容占绝对多数英文的字节组合有大量的统计支撑去合并成完整的单词甚至短语而中文的字节组合能合并回单字就不错了更别说词组。举个例子。在 GPT-5 的 Tokenizer 里「字节跳动的短视频平台抖音」总共 12 个汉字需要用 11 个 Token而英文版 「ByteDance‘s short video platform Douyin」 有 40 个字母只需要 9 个 Token——要注意ByteDance 和 Douyin 甚至都不是真正的英文单词但在英文里依然效率更高。我们可以仔细看一下「字节跳动的短视频平台抖音」是怎么变成 Token 的。「视频」和「平台」都是一个 Token「抖」占了两个 Token。这里多解释一下为什么一个汉字会占据两个 Token。像前面所说BBPE 不是面向字符编码而是面向字节编码。「抖」对应的编码是 230、138、150很可能在数据库里230 与 138 的组合是高频的但再加上 150 的话频率就没那么高了所以编码 230、138 对应了一个 Token而编码 150 单独对应一个 Token。每个字单独编码偶尔两个字能合并但也有些字需要拆分。总体上中文的 Token 消耗就是比英文高。那这意味着什么呢大模型是按 Token 计费的。OpenAI 的 API每一千个 Token 收多少钱白纸黑字写在价格表上。你消耗更多的 Token你就付更多的钱。而且不只是付钱的问题。大模型有上下文窗口context window模型一次能「记住」的内容量——就是它一次能处理的 Token 总量上限。GPT-4 的上下文窗口是 128k 个 Token。这意味着如果你用英文你可以在一次对话里塞进去大约十万个英文单词——差不多一本中等篇幅的小说。但如果你用中文同样的 128k 个 Token你能塞进去的内容就要少很多。同样的窗口中文用户能说的话更少。付更多的钱得到更少的空间获得更短的回答。这就是 Token 不平等的经济学。但中文至少还算「大语言」。训练数据里中文内容虽然不如英文多但也有相当的规模足以让常用汉字被合并成独立的 Token。真正惨的是那些小语种。近年来多项研究对这个问题做了系统的测算。他们发现同样的语义内容用不同语言表达所消耗的 Token 数量差异可以达到十几倍。英文是基准——消耗最少的 Token中文大约是英文的 1.5 到 2 倍日语、韩语类似缅甸语、藏语、阿姆哈拉语等语言同样的内容可能需要英文 5 到 10 倍的 Token为什么因为这些语言在训练数据里几乎不存在。BPE 在训练的时候没有见过足够多的缅甸文所以缅甸文的字节组合从来没有机会被合并——它们永远停留在最碎的碎片状态每一个字都被拆成三四个字节碎片每个碎片各占一个 Token。想象一下一个缅甸语用户和一个英文用户买同样的 API 额度但缅甸语用户只能用英文用户五分之一的信息量。同样的钱五分之一的服务。这跟电报很像。电报编码——莫尔斯码——是这样设计的最常用的字母用最短的编码。E 是一个点T 是一个划A 是一点一划。而不常用的字母用更长的编码——Q 是两划一点一划Z 是两划两点。但莫尔斯码是基于英文字母频率设计的。当电报技术推广到全世界的时候其他语言怎么办中文怎么发电报汉字不是字母你不能直接用点和划来编码。解决方案是给每个汉字分配一个四位数字编码——0001 到 9999。发电报的时候先把汉字翻译成数字再把数字翻译成莫尔斯码发出去。一个汉字就是四个数字每个数字都要用莫尔斯码逐个发送。一个英文字母平均需要 2 到 3 个莫尔斯码信号。一个汉字呢四个数字每个数字平均需要 5 个信号——总共大约 20 个信号。同样一个意思中文电报的信号量是英文的七八倍。电报是按字数或者按信号量计费的所以中文电报比英文电报贵得多。直到八九十年代小学生写作文还有个练习就是写电报看谁能用最少的字把事情说清楚。类似的事情不停在重复。打字机在 1870 年代发明但却是为拉丁字母设计的。最早的中文打字机是什么样子一个金属托盘上排着几千个铅字打字员用小杆子一个一个找速度是英文的十分之一。当时很多人包括鲁迅在内得出结论说中文是落后的文字中国想要走向文明汉字就得拉丁化。对这段历史有兴趣的朋友可以看看墨磊宁的《中文打字机》这本书我就不展开了。我想说的是近现代以来每一次人类发明一种新的信息编码系统——电报、打字机、计算机、AI——都会重新制造一次语言不平等。而且这种不平等的方向几乎每一次都是一样的英文最便宜、最高效、最方便然后按语言与英文的「距离」递减。拉丁字母语言其次东亚语言再次南亚和非洲语言最末。谁的语言最先被编码谁就是标准后来者永远在适配。当然你可能说技术是中立的这不是故意歧视。BPE 不是故意歧视中文或者缅甸语它只是按频率统计做了最优压缩。对。完全对。没有人故意歧视。你不需要故意歧视你只需要选择一个「合理的」起点——比如「按频率统计」——然后让系统自动运行。不平等会自己涌现出来。因为「频率」不是一个客观的自然属性。它是由谁在生产内容、谁的语言在互联网上有最多的文字、谁的文化有最发达的出版和传播体系来决定的。BPE 把这种历史性的权力不对称通过一个看似中性的算法编码进了 AI 系统的最底层。然后这个系统给全世界所有人使用。每一个人每说一句话都在为这种不平等付费。而他们中的大多数人甚至不知道 Token 是什么。当然这个事情也在改善。我做了一个测试。打开 OpenAI 的 tokenizer 工具输入同一句中文「马嘉祺是时代少年团队长蔡徐坤不是。」然后切换不同版本的 tokenizer 看看各需要多少 TokenGPT-3.0 的 tokenizer38 个 TokenGPT-3.5 和 GPT-4.0 的 tokenizer26 个 TokenGPT-5 的 tokenizer15 个 Token同一句话三代模型Token 消耗从 38 降到了 15降了 60%。这说明 OpenAI 在每一代模型中都在给中文更多的词表席位让更多的汉字和常见词组被完整保留而不是拆成碎片。中文用户有十几亿人。市场够大商业动力够强所以 OpenAI 愿意优化。中国自己的 AI 公司也在做同样的事。豆包、千问、月之暗面等等——这些国产大模型都在自己训练 tokenizer策略很简单在词表里给中文更多的「席位」让更多的中文字符组合被合并成独立的 Token减少中文被拆碎的概率。但词表总容量是有限的。GPT-5 的词表大约 20 万个 Token。你给中文多一个席位就得给其他语言少一个。中文有大公司撑腰。但前面提到的那些小语种没有人为它们做这件事。缅甸语有五千多万人在说。藏语呢宗卡语呢这些语言的 tokenizer 效率从 GPT-3 到 GPT-5大概率没有同等幅度的改善。因为没有商业动力没有十几亿用户的市场在那里等着。语料配比——用多少英文、多少中文、多少缅甸文来训练 BPE——本质上是一个隐性的决策谁的语言更值得被高效表示这个决策没有人公开讨论过。它埋在技术文档的某一行参数里。但它决定了数十亿人使用 AI 的成本和体验。BPE 用频率取代了 Type。它不再由人类来定义什么是一个有意义的单位而是让统计数据自己决定。这个选择带来了语言不平等——高频的语言被完整保留低频的语言被碎成碎片。但这个后果不只发生在语言和语言之间它同样发生在同一种语言内部。回到马嘉祺。我还是不能给出确切的结论究竟为什么大模型不认识「马嘉祺」但可以肯定与 Token 生成有关。想象你在玩拼图游戏。常见的图案——比如「天安门」、「长城」——厂家会给你完整的大块拼图一块就能拼出来。但生僻的图案——比如某个小众景点——厂家没有专门的大块你只能用很多小碎片拼凑。「祺」这个字就是那个小众景点。它在训练数据里出现的频率不够高BPE 算法没有给它分配一个完整的 Token而是把它拆成了两个小碎片。这两个碎片单独看都没什么意义就像拼图的边角料。现在问题来了。当 AI 要生成「马嘉祺」这个名字时它需要先找到「马」再找到「嘉」最后找到「祺」的那两个小碎片把它们按正确顺序组装起来。但 AI 在训练时很少见过这个组合——「马嘉」加上那两个特定碎片——出现的次数太少了。相反「马俊杰」、「马杰伦」这些组合每个字都是完整的大块 Token而且这些组合在训练数据里出现过更多次。对 AI 来说这些组合就像是一条被走过很多遍的路路面平整、标记清晰。而「马嘉祺」就像是一条几乎没人走过的小路路标模糊、碎石遍地。当 AI 要生成答案时它会自然而然地选择那条更平整的路。不是因为它「不认识」马嘉祺而是因为在它的 Token 系统里「马嘉祺」这条路从一开始就没有被修好。类似的问题还有很多在大模型领域有个专门的名词就叫 Glitch Tokens故障词元意思是那些会让大模型运行出问题的 Token。你可能会想那把模型做大一点、做强一点不就解决了刚刚不也说从 GPT-3 到 GPT-5确实中文 Token 效率在提高。很不幸不能。2026 年 1 月有一篇关于 Token 的论文《Say Anything but This: When Tokenizer Betrays Reasoning in LLMs什么都能说就是不能说这个当 Tokenizer 背叛了大模型的推理能力》。研究者发现了一件事tokenizer 给模型提供了一条「阻力最小的路径」。当模型需要生成某个答案的时候如果词表里恰好有一个现成的 Token 能直接输出模型就会走这条捷径而不是真正去推理。我举个例子让你感受一下。假设模型需要回答「52 加 37 等于多少」。正确答案是 89。但如果词表里恰好有一个 Token 对应 「88」而且这个 Token 在模型的内部空间里离 「89」 很近、出现频率很高——模型可能就会滑向 「88」。不是因为它不会算而是因为 「88」 这条路更丝滑。研究者做了一件反直觉的事他们把这些捷径堵住了——强制移除那些容易造成混淆的 Token逼模型走推理的路。结果呢模型反而表现更好了。这说明什么说明模型本身有推理能力。问题不在「脑子」——在「眼睛」。Tokenizer 是在模型训练之前就冻结的感知器官模型再强也改不了它。这就好比你给一个天才画家戴上一副度数不对的眼镜而且这副眼镜焊死在脸上了这辈子摘不下来。他画技高超构图、色彩、光影都对但远处那个人名字里的生僻字他就是看不清。不是脑子的问题是眼睛的问题。论文得出结论模型变大不能解决这个问题Scaling 无效。因为问题在架构层面——tokenizer 在模型训练之前就固定了模型再大、参数再多也是在一个被固定的感知框架里训练出来的。眼睛的分辨率在出生前就定了。这就是 BPE 放弃 Type 的真正代价。当 Type 是人定义的时候——比如在编译器里——人可以确保每一个被定义的类别都是完整的、精确的、没有歧义的。int就是int绝不会和integer混淆因为设计者明确规定了它们的区别。但当你把 Type 的定义权交给频率统计你得到的「类别」就不再有这种保证了。高频的组合被识别得又快又准低频的组合就模糊、破碎、容易混淆。不是均匀的不完美而是有一条清晰的断裂线——沿着频率分布的长尾画下去。这意味着什么意味着你叫「张伟」AI 不会写错你的名字。但你叫「马嘉祺」它可能每次都写错。你用英文问它问题它的回答精准而流畅。你用缅甸语问同一个问题它的回答碎片化、不连贯、甚至可能是错的。这不是两种不同的 AI。是同一个 AI用同一个 tokenizer在频率曲线的两端展现出的两张面孔。在高频的那一端——英文、常用词、热门话题——它看起来无所不知、无所不能。这是你在社交媒体上看到的那个 AI是科技公司在发布会上展示的那个 AI是黄仁勋说价值万亿美元的那个 AI。在低频的那一端——小语种、生僻字、冷门知识——它变得迟钝、模糊、不可靠。但这一端的用户恰好是那些最缺少替代信息来源的人。在 Token 的世界里「罕见」和「不重要」在统计上是同一件事。这就是为什么法律文本用 AI 辅助的时候罕见的术语可能会被模糊处理。医疗诊断用 AI 辅助的时候罕见病的名字可能会变成碎片。教育内容用 AI 生成的时候少数语言的知识可能会被磕磕绊绊地拼凑。不是有人故意忽略了这些——而是这个系统从一开始就没有能力区分「罕见」和「不重要」。AI 最不准确的地方恰好是人们最需要它准确的地方。这也是为什么我在开头说「词元」不是一个好的翻译。「词」字暗示 Token 是一个「词」层面的单位。但你现在已经知道了Token 不是词。它可以是一个完整的词也可以是半个字也可以是一串毫无意义的字节碎片。BPE 生成的 Token 不遵循任何语言学上对「词」的定义——事实上BPE 的全部意义就在于放弃了「词」这个概念。「元」字有「基本单位」的意思——元素、单元、元件。这暗示 Token 是一个稳定的、自然的、有明确边界的基本粒子好像它是语言内在结构的一部分甚至是词的某种本质特征。但 Token 的边界不是由语言的自然结构决定的而是由训练数据的频率分布决定的。换一批训练数据同一个字可能从一个 Token 变成两个 Token或者从两个变成一个。它是一个统计产物不是一个语言学概念。前面说过Token 是语言的替代物——它不是语言本身更不是语言的某种本质它只是一个代替语言被计算机处理的编号。但「词元」这个译名恰恰把这层关系遮蔽了。这就好比你造了一辆没有方向盘的自动驾驶汽车然后给它起名叫「方向盘号」。但不管叫它什么Token 已经在这里了还成了黄仁勋口中所说的「万亿美元市场的基础」。他说NVIDIA 的 AI 芯片是「Token 的铸造机」。你可能会想既然 Token 有这么多问题——bug、不平等、幻觉——为什么它还能成为万亿美元市场的基础因为权力的基础从来就不是完美的东西。美元。1971 年之前美元和黄金挂钩——一盎司黄金 35 美元白纸黑字。那时候美元有一个「本体」在支撑它黄金。1971 年尼克松取消了金本位。从那以后美元靠什么靠大家相信它有价值。2008 年金融危机全世界发现——度量衡没变但桶里是空的。那些评级为 AAA 的金融产品底下是一层一层的次级贷款。替身看着光鲜亮丽本体早就烂了。但美元崩溃了吗没有。它继续是全球储备货币。为什么因为在它崩溃之前替代它的成本已经高到没人承受得起。全世界的贸易合同用美元结算全世界的央行用美元储备全世界的大宗商品用美元定价。你可以说美元有问题但你拿什么替代它欧元人民币每一种替代方案的切换成本都是天文数字。比特币。一个算法加一群人的信仰。能耗荒谬价格剧烈波动每秒处理的交易量还不如一家县城超市的收银台。但没有阻止它成为一种权力载体。甚至语言本身。汉字笔画顺序谁规定的英语拼写为什么这么不规则为什么 Wednesday 中间有一个不发音的 d为什么 island 里有一个不发音的 s没有人「设计」了这些。都是历史偶然的层层累积——某个世纪的某个抄写员写错了一个字后人将错就错错误凝固成了规范。但语言照样运转照样承载了人类全部的文明。Token 的故事不是一个骗局也不是一个幻觉它只是一个偶然中诞生又在历史里起起伏伏最终拥有了权力的词语。1906 年皮尔士在研究逻辑图时提出了 Type-Token 区分他只是想数清楚纸上有几个圆圈。1994 年Philip Gage 在《C Users Journal》上发表了一个压缩小工具他只是想在内存有限的工控设备上节省几个字节。2016 年Rico Sennrich 把这个压缩算法用到了神经机器翻译他只是想解决翻译中的生词问题。2018 年OpenAI 把 BPE 改成了 Byte-level他们只是想让 GPT-2 能处理更多语言。每一步都是合理的。每一步都是局部的。每一步都解决了当时的问题。这就是权力最常见的诞生方式不是有人坐下来精心设计了一个统治系统——而是一连串当时看起来合理甚至无关紧要的选择在没人注意的情况下凝固成了新的秩序。我们都知道现在是一个历史转折时刻不仅仅是通用人工智能取代人类也是人类正把什么是意义、什么是规则的定义权交给统计数据。我们所有人正站在这个转折的中间还没来得及想清楚这意味着什么就已经在拥抱它了。01什么是AI大模型应用开发工程师如果说AI大模型是蕴藏着巨大能量的“后台超级能力”那么AI大模型应用开发工程师就是将这种能量转化为实用工具的执行者。AI大模型应用开发工程师是基于AI大模型设计开发落地业务的应用工程师。这个职业的核心价值在于打破技术与用户之间的壁垒把普通人难以理解的算法逻辑、模型参数转化为人人都能轻松操作的产品形态。无论是日常写作时用到的AI文案生成器、修图软件里的智能美化功能还是办公场景中的自动记账工具、会议记录用的语音转文字APP这些看似简单的应用背后都是应用开发工程师在默默搭建技术与需求之间的桥梁。他们不追求创造全新的大模型而是专注于让已有的大模型“听懂”业务需求“学会”解决具体问题最终形成可落地、可使用的产品。CSDN粉丝独家福利给大家整理了一份AI大模型全套学习资料这份完整版的 AI 大模型学习资料已经上传CSDN朋友们如果需要可以扫描下方二维码点击下方CSDN官方认证链接免费领取【保证100%免费】02AI大模型应用开发工程师的核心职责需求分析与拆解是工作的起点也是确保开发不偏离方向的关键。应用开发工程师需要直接对接业务方深入理解其核心诉求——不仅要明确“要做什么”更要厘清“为什么要做”以及“做到什么程度算合格”。在此基础上他们会将模糊的业务需求拆解为具体的技术任务明确每个环节的执行标准并评估技术实现的可行性同时定义清晰的核心指标为后续开发、测试提供依据。这一步就像建筑前的图纸设计若出现偏差后续所有工作都可能白费。技术选型与适配是衔接需求与开发的核心环节。工程师需要根据业务场景的特点选择合适的基础大模型、开发框架和工具——不同的业务对模型的响应速度、精度、成本要求不同选型的合理性直接影响最终产品的表现。同时他们还要对行业相关数据进行预处理通过提示词工程优化模型输出或在必要时进行轻量化微调让基础模型更好地适配具体业务。此外设计合理的上下文管理规则确保模型理解连贯需求建立敏感信息过滤机制保障数据安全也是这一环节的重要内容。应用开发与对接则是将方案转化为产品的实操阶段。工程师会利用选定的开发框架构建应用的核心功能同时联动各类外部系统——比如将AI模型与企业现有的客户管理系统、数据存储系统打通确保数据流转顺畅。在这一过程中他们还需要配合设计团队打磨前端交互界面让技术功能以简洁易懂的方式呈现给用户实现从技术方案到产品形态的转化。测试与优化是保障产品质量的关键步骤。工程师会开展全面的功能测试找出并修复开发过程中出现的漏洞同时针对模型的响应速度、稳定性等性能指标进行优化。安全合规性也是测试的重点需要确保应用符合数据保护、隐私安全等相关规定。此外他们还会收集用户反馈通过调整模型参数、优化提示词等方式持续提升产品体验让应用更贴合用户实际使用需求。部署运维与迭代则贯穿产品的整个生命周期。工程师会通过云服务器或私有服务器将应用部署上线并实时监控运行状态及时处理突发故障确保应用稳定运行。随着业务需求的变化他们还需要对应用功能进行迭代更新同时编写完善的开发文档和使用手册为后续的维护和交接提供支持。03薪资情况与职业价值市场对这一职业的高度认可直接体现在薪资待遇上。据猎聘最新在招岗位数据显示AI大模型应用开发工程师的月薪最高可达60k。在AI技术加速落地的当下这种“技术业务”的复合型能力尤为稀缺让该职业成为当下极具吸引力的就业选择。AI大模型应用开发工程师是AI技术落地的关键桥梁。他们用专业能力将抽象的技术转化为具体的产品让大模型的价值真正渗透到各行各业。随着AI场景化应用的不断深化这一职业的重要性将更加凸显也必将吸引更多人才投身其中推动AI技术更好地服务于社会发展。CSDN粉丝独家福利给大家整理了一份AI大模型全套学习资料这份完整版的 AI 大模型学习资料已经上传CSDN朋友们如果需要可以扫描下方二维码点击下方CSDN官方认证链接免费领取【保证100%免费】

更多文章