Token / 令牌

9600

Token 中文常译作“令牌”。在 AI 和大语言模型语境里,它指模型处理文本时使用的小片段

Token令牌上下文计费
Token 与文本切分
Token 与文本切分

Token 中文常译作“令牌”。在 AI 和大语言模型语境里,它指模型处理文本时使用的小片段。一个 token 可能是一个字、一个词、一个词的一部分、一个标点,甚至是一段空格。

人读文字时,通常感觉自己是在读句子和词语;模型处理文字前,则需要先把文本拆成 token,再把 token 转成数字。理解 token 后,很多现象就更容易解释:为什么长文档会放不下,为什么输出越长越慢,为什么模型计费常按 token 算。

先用一句话抓住它

Token 是模型读取和生成文字时使用的基本文本单位。

生活里的类比是把一段话切成小积木。模型不是一次吞下整篇文章,而是按这些小积木一步步理解和生成。

模型为什么需要 token

计算机不能直接“理解一句话”。它需要先把文本变成可计算的形式。Tokenization,也就是令牌化或分词,就是把文本切成 token 的过程。之后,每个 token 会对应一个数字 ID,模型处理的其实是这些数字序列。

flowchart LR
    Text["原始文本"] --> Tokenizer["Tokenizer / 分词器"]
    Tokenizer --> Tokens["Token 序列"]
    Tokens --> IDs["数字 ID"]
    IDs --> Model["模型处理"]

不同模型使用的 tokenizer 不一定一样。同一句话在一个模型里可能是 20 个 token,在另一个模型里可能是 24 个。中文、英文、数字、标点、代码和特殊符号的切分方式也会不同,所以 token 不能简单等同于字数或单词数。

为什么 token 会影响长度、速度和成本

模型一次能处理的信息量通常叫上下文窗口,而这个窗口是按 token 计算的。系统提示、用户问题、历史对话、上传资料、检索片段,以及模型即将生成的内容,都会占用 token。

当内容太长时,系统就必须做取舍:截断、摘要、分块,或者使用 RAG 先检索相关片段。否则模型可能根本看不到前面的信息,回答自然会缺上下文。

Token 也影响成本和速度。许多模型 API 会分别统计输入 token 和输出 token。输入越长,模型要读的内容越多;输出越长,模型要生成的内容越多。两者都会增加计算量,也可能增加费用。

容易误解的地方

最常见的误区,是把 token 当成字数。中文一句话可能看起来很短,但 token 数不一定少;英文长单词可能被拆成多个子词;代码和符号也可能消耗不少 token。

另一个误区是认为上下文窗口越大就越应该塞越多资料。窗口大只是能放更多信息,不代表模型会自动抓住重点。无关信息太多,反而会干扰回答。真正有效的做法,是把相关内容放进去,把不相关内容留在外面。

怎么判断它该不该用

处理长文档时,不要只想着“全部丢给模型”。更好的方式是先筛选相关内容,必要时分块、摘要或检索。写提示词时也不是越短越好,而是要清楚、必要、不过度堆料。

如果使用 API,要同时关注输入和输出 token。控制 token 不是为了抠字数,而是为了让模型看到该看的内容,并保持速度、成本和质量的平衡。

资料来源