详解AI领域的“token”
作者:微信文章编者问Deepseek、KIMI:
时常看到AI提到token一词。请您阐述一下人工智能中的Token含义。我深入领会一下。谢谢。
Deepseek的回复:
说得非常好!这是一个核心概念,理解“Token”是理解当今AI(尤其是大语言模型)如何工作的基石。我将为您从浅入深地全面阐述。
一、核心比喻:AI的“原子”
您可以简单地将 Token 理解为 AI 用来理解和生成语言的基本单位。就像物质由原子构成,文章由词语构成一样,AI眼中的文本就是由一个个Token序列组成的。
但它不完全等于一个单词或一个汉字,它更灵活、更基础。
二、Token的具体含义与划分方式
Token是分词过程后的产物。这个过程是将原始文本拆分成模型能够处理的较小片段。
1. 常见的Token类型:
①子词单元:
这是最常见的形式,尤其是在处理英文时。它的目的是在词汇量和上下文长度之间取得平衡。
整个单词:常见短词,如 the, cat, run。
词根/前缀/后缀:如 un-(不), -ing(进行时), -ed(过去式)。
更小的片段:尤其是长单词或专业术语,会被拆解。例如:
unfortunately -> un, fort, unate, ly(或其他类似组合,取决于分词器)
tokenization -> token, ization
②单个字符:
对于像中文这样的象形文字,一个Token通常就对应一个汉字。
例如:“人工智能” -> [人, 工, 智, 能]
③标点符号:
如 ., ,, ! 等,每个都是一个独立的Token。
2. 为什么使用子词而不是单词?
解决“词汇表外”问题:如果模型只认识完整的单词,遇到新词(如 Blockchain)或拼写错误(如 graet)就会束手无策。而使用子词,模型可以通过学过的片段(如 block 和 chain)来理解和生成新词。
效率与泛化能力:一个包含5万个常见子词的词汇表,其覆盖能力远超一个包含5万个完整单词的词汇表。模型能更好地泛化到未见过的文本。
三、一个具体的例子:Token化过程
以句子 “Let‘s go to the park!” 为例,一个典型的分词器(如OpenAI的tiktoken或谷歌的SentencePiece)可能会将其分解为:
原始文本: Let's go to the park!
Token序列: ["Let", "'s", " go", " to", " the", " park", "!"]
注意:" go" 和 " park" 前面的空格有时会被保留并与单词合并,成为一个独立的Token,这有助于模型理解单词边界。
对应的数字ID: 模型内部不认识字母,只认识数字。所以每个Token会立即被转换成一个唯一的数字ID。假设词汇表如下:
Let -> 1234
's -> 567
go -> 890
to -> 111
the -> 222
park -> 333
! -> 444
最终,句子在AI眼中就是:
模型的所有操作(理解、推理、生成)都是基于这些数字序列进行的。
四、Token的重要性:连接理论与应用
理解Token为何如此关键,因为它直接关系到AI的核心能力与限制:
1、上下文窗口:
这是AI最重要的一个限制参数。上下文窗口的大小直接由Token数量定义,而不是字符数或单词数。
例如,一个上下文窗口为 128K 的模型,意味着它能同时处理128,000个Token(包括你的提问和它的回答)。你提供的文本越长,消耗的Token就越多,剩余给模型生成回答的“空间”就越少。
2、模型的理解与生成:
模型通过分析Token序列中的统计规律和上下文关系来学习。它学习的是“给定前面的Token序列,下一个最可能出现的Token是什么”。生成文本就是一个不断预测下一个Token的过程。
3、成本计算:
对于像GPT-4这样的商用API,费用通常是按Token数量计算的(包括输入和输出)。理解Token能让你更精确地估算使用成本。中文字符通常是1个Token甚至更多(取决于编码),所以同样长度的中文文本可能会比英文消耗更多的Token。
4、处理多语言:
Token化策略使模型能够以统一的方式处理多种语言。无论是英文、中文还是代码,最终都被转化为数字ID序列,模型可以用相同的机制进行处理。
五、不同领域的Token
在自然语言处理中:Token是文本的基本单位。
在计算机视觉中:Token可以是图像被分割成的小块。例如,Vision Transformer模型将图片分成16x16像素的图块,每个图块被视作一个Token,从而让模型像处理文字一样处理图像。
在音频处理中:Token可以是音频信号被编码后的短时间片段。
五、总结
Token是AI将现实世界信息(文本、图像、声音)数字化、序列化后形成的基本处理单元。 对于大语言模型而言:
它是什么? 文本的子词或字符单元。
它做什么? 作为模型理解和生成语言的“原子”,是模型内部计算的基石。
为什么重要? 它定义了模型的上下文长度限制,是计费的基础,并决定了模型处理未知词汇和能力边界。
希望这个从基础到深入的阐述能帮助您真正领会Token的含义!这是一个越琢磨越觉得巧妙的设计。
KIMI的回复:
在人工智能、尤其大模型语境里,Token 不是“令牌”,也不是“词”,而是文本的最小可计费、可处理原子单元。它处于“字符”与“词”之间,是模型内部真正的“字母表”。理解 Token,就能理解为什么同一篇中文文章比英文贵、为什么 Prompt 长度有限、为什么“hello”会被拆成“hel”“llo”。
以下从“生产-消费-度量-控制”四个层面拆解:
一、生产:文本如何变成 Token
1.1 子词切分(Sub-word)
• BPE/BBPE:从字符出发,统计高频字符对合并成新符号,直到词表满。
• WordPiece:类似 BPE,但用似然增益而非频次决定合并。
• SentencePiece:把空格也当普通字符,可端到端训练,无需预分词,对中日韩友好。
1.2 结果
• 得到一张固定词表(vocabulary),大小 32k∼256k。
• 任何文本都能用此词表里的符号序列无损还原。
• 常见词=1个Token,生僻词=2~5个Token,emoji、标点、空格都算Token。
二、消费:Token 在模型内部如何被“消化”
2.1 嵌入层
Token ID → 查表得到 d 维向量(如 4096 维),这是模型能处理的唯一格式。
2.2 注意力计算
所有下游运算(Self-Attention、FFN)都在这批向量上做,文本概念已消失。
2.3 生成
模型输出下一个 Token 的概率分布 → 采样 → 再反馈输入,循环往复。
三、度量:为什么中文往往“更贵”
3.1 长度对比(以 OpenAItokenizer 为例)
“hello”=1 token,“你好”=2 token,“こんにちは”=3~4 token。
3.2 原因
• 训练语料英文占绝对优势,中文子词出现频率低,被切得更碎。
• 计费按 Token 数,与“肉眼可见字数”无关。
四、控制:工程上必须掌握的“Token 边界”
4.1 上下文窗口(context window)
指“单次前向最多能放多少个 Token”,如 4k、32k、128k。超出即遗忘或报错。
4.2 输入/输出配额
prompt_tokens + max_new_tokens ≤ 窗口,否则需要“滑动窗口”“分段摘要”“RAG”等技巧。
4.3 费用估算
1k Token ≈ 750 英文单词 ≈ 550 中文字符;写业务代码前先调tokenizer.encode 做预算。
4.4 安全与对齐
模型禁止输出的敏感词,在 Token 层面做“自回归屏蔽”比事后过滤更可靠。
五、一句话总结
Token 是大模型世界里真正的“货币”:文本进来先被铸造成 Token,模型内部只认 Token,算力、显存、费用、长度限制全部以 Token 计价。掌握 Token 的切分逻辑与度量方式,就等于掌握了与模型高效、经济、安全交互的“度量衡”。
小号前日拙文及专辑速览,请您斧正:
《完全的“自动驾驶”离我们还有多远?》
《全景认识中国高速公路ETC系统》
《万天千本之324-《活着》-2025.7.13》
《四川大学华西医院:中国顶尖医院之一》
《以史为鉴》、《时事社会》、《融合台湾》、《认知升级》、《悟道人生》、《房产税》、《黄金》、《法律法规》、《九月拙文》、《康养之道》、《“AI互动”》、《戒烟限酒》、《月度拙文总揽》、《历史主文图片》、《党内法规》、《提高认知》、《读过的308本书》、《雄安专题》、《养老专题》、《历史文档》
点击“阅读原文”可搜索本号历史文章
页:
[1]