一、什么是 Token?为什么它如此重要?

在接触大语言模型(LLM)时,你最先遇到的概念很可能就是 Token(词元)。简单来说,Token 就是模型处理文本的基本单元。它可能是一个完整的英文单词(如 apple),也可能是中文的一个字或词(如“你好”),甚至是一个标点符号、一个数字或一个空格。模型并不直接理解人类的字符串,而是将输入的文本通过一个称为 Tokenizer(分词器)的工具,拆分成一系列Token的序列。

为什么Token是核心概念? 因为它直接决定了模型的“视野”和成本。首先,所有大模型都有一个最大上下文长度(Context Window)限制,例如 4096、8192、128000个Token。这个长度是输入提示(Prompt)和模型生成输出(Completion)的Token总数上限。其次,几乎所有的API服务,如OpenAI、Claude、文心一言等,都是按Token数量计费的。因此,理解Token,就是理解与模型交互的“度量衡”和“钱包的底线”。

二、Token 到底是如何“切”出来的?

Token的生成过程由 Tokenizer 完成,它基于特定的词汇表(Vocabulary)和算法。目前主流的大模型(如GPT系列)普遍使用字节对编码(Byte Pair Encoding, BPE) 或其变体。BPE的核心思想是:从字符开始,反复地将文本中出现最频繁的相邻字符对合并,直到达到预定的词汇表大小

这意味着:

我们可以通过代码来直观感受一下:

import tiktoken # OpenAI 官方提供的 Tokenizer 库

# 初始化针对 GPT-4 的分词器
enc = tiktoken.encoding_for_model("gpt-4")

text_en = "Hello, how are you doing today?"
tokens_en = enc.encode(text_en)
print(f"英文: '{text_en}'")
print(f"Token IDs: {tokens_en}")
print(f"Token数量: {len(tokens_en)}") # 输出: Token数量: 7

text_cn = "大模型正在改变世界"
tokens_cn = enc.encode(text_cn)
print(f"\n中文: '{text_cn}'")
print(f"Token IDs: {tokens_cn}")
print(f"Token数量: {len(tokens_cn)}") # 输出: Token数量: 4

运行这段代码,你会发现同一段英文在不同模型(如gpt-3.5-turbogpt-4)下,Token ID和数量可能完全相同,因为它们使用相同的Tokenizer。

三、计费原理:你的账单是如何生成的?

理解了Token是计费单位,我们来看计费的具体规则。大多数API的计费公式非常简单:

总费用 = (输入Token数 × 输入单价) + (输出Token数 × 输出单价)

这里有几个关键点:

  1. 输入/输出Token价格不同:生成(输出)Token的价格通常是输入的2-4倍。因为生成过程需要模型持续计算,消耗的算力资源更多。
  2. “上下文”的范围:你每次发送的完整消息(包括系统提示、历史对话、你的问题)都会被计算为输入Token。模型返回的回答,则是输出Token
  3. 累计计算:在一次包含多轮对话的API调用中,之前所有的对话内容(你和模型的)都会被重新发送作为当前轮次的输入的一部分,因此都会产生输入Token费用。这是对话成本增长的主要原因。
提示:使用 print(enc.encode("你的文本")) 可以预先查看你的提示词会被拆分成多少个Token,从而在调用API前估算成本。

四、精打细算:如何优化 Token 使用以控制成本?

既然成本与Token直接挂钩,优化Token使用就变得至关重要。以下是一些实用的策略:

五、实战计费估算

让我们进行一个简单的估算。假设我们使用 gpt-4-turbo(价格:输入$10/1M Tokens, 输出$30/1M Tokens)进行一次交互。

我们的系统提示(System Prompt)有200个Token,用户问题有50个Token。模型回答生成了150个Token。

那么这次调用的总Token数为:

费用计算:

虽然单次费用看似很低,但如果是高频率、长上下文的应用,累积起来会非常可观。这就是为什么Token优化是应用开发中必须考虑的一环。

六、总结

Token是连接人类语言与机器理解的桥梁,也是大模型服务商业化的基石度量。作为开发者或深度用户,我们必须:

  1. 理解本质:Token是模型处理的原子单位,由Tokenizer定义。
  2. 看清规则:API计费基于输入和输出的Token数量,且输出更贵。
  3. 掌握成本:通过优化提示词、管理上下文和选择模型来主动控制成本。
  4. 善用工具:使用 tiktoken 等库在开发阶段进行Token数预估。

最终,与大模型的高效协作,建立在对其“计量单位”深刻理解的基础之上。希望这篇笔记能帮助你在构建AI应用时,做到心中有“数”,成本可控。