多客科技 发表于 2025-10-17 20:30

详解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]
查看完整版本: 详解AI领域的“token”