Token 是什么?

社区来稿 · batype由用户发布,不代表 batype 本人观点

·699 字 · 约 2 分钟#AI#LLM#Token#上下文

在 AI 语境里,Token 是模型读取和生成文本时使用的基本处理单位。它不固定等于一个汉字、一个英文单词,也不严格等于一个字符。

模型处理一段文本时,会先通过 tokenizer 将文本切成一串 Token,再将它们转换成模型可计算的编号。不同模型使用的 tokenizer 可能不同,因此同一段文字在不同模型中占用的 Token 数量也可能不同。

例如:

今天天气不错,Let's go!

这句话不会简单地按“每个汉字一个单位”或“每个英文单词一个单位”处理,而是会被切成若干 Token。具体怎样切,取决于模型使用的 tokenizer。

Token 影响什么?#

Token 主要影响三个方面。

1. Context Window(上下文窗口)#

一次模型调用中,所有输入和输出内容都会占用 Token:

  • System Prompt
  • 用户问题
  • 历史会话
  • RAG 检索结果
  • 工具调用结果
  • 模型最终生成的文本

它们共享模型的上下文预算:

输入 Token + 输出 Token <= Context Window

因此,历史消息不能无限拼接;RAG 也不是召回越多文档越好;工具返回的大段 JSON 很容易耗尽上下文。

2. API 成本与响应时间#

模型服务通常会按照输入和输出 Token 计量。Token 越多,调用成本通常越高,模型生成所需时间也可能越长。

所以在实际系统中,应该避免把与当前问题无关的全文、历史记录或原始工具数据全部交给模型。

3. 应用系统设计#

长对话、知识库问答和 Agent 工具调用都会遇到 Token 预算问题。常见做法包括:

  • 对历史会话做摘要,而不是保留全部原文;
  • 将长文按语义分块,再按需检索;
  • 限制 RAG 返回片段的数量和长度;
  • 清理工具结果中的无关字段;
  • 为模型输出预留足够空间。

核心不是塞进更多内容,而是让模型在当前任务里拿到最相关、最可信、最必要的信息。

不要和登录 Token 混淆#

在 Web 开发里,Token 还常指 JWT、Bearer Token 等身份认证凭证。

它们和 AI Token 只是同名:

  • AI Token:模型处理文本的单位;
  • 认证 Token:客户端证明身份或权限的凭证。

二者用途完全不同。

总结#

Token 可以理解为模型处理语言时的“计量单位”。它决定模型一次能接收和生成多少内容,也直接影响成本、延迟与系统架构。

理解 Token 后,再看 Context Window、RAG、会话记忆和工具调用,就能明白为什么工程上需要分块、摘要、筛选和预算控制。

相关文章