Token 完整指南

Token完整指南已更新完成
什么是Token?Token是LLM处理文本的基本单位。英文Hello world=2 tokens,中文你好世界=约4 tokens。
Token划分规则:完整单词(Hello)=1 token,词根+后缀(learning)=2-3 tokens,中文字(你好)=1-2 tokens,标点=1 token each。
Token计算:import tiktoken / enc = tiktoken.get_encoding("cl100k_base") / count = len(enc.encode(text))。
主流模型上下文限制:GPT-3.5-Turbo=16K(~8000字),GPT-4-Turbo=128K(~15万字),Claude 3.5=200K(~20万字),DeepSeek-V3=128K,Llama 3.1=128K。
Token优化策略:1.压缩提示词,移除重复内容;2.使用缩写(e.g.=例如,incl.=包含);3.使用结构化输出代替自然语言描述。
Token计费:gpt-4-turbo=$0.01/1K input, $0.03/1K output;gpt-3.5-turbo=$0.0005/1K input, $0.0015/1K output;claude-3-5-sonnet=$0.003/1K input, $0.015/1K output。
为什么Token重要?1.API按token计费 2.超过限制会截断 3.越多生成越慢 4.过长上下文降低模型注意力。
最佳实践:精简提示词,使用结构化输出,RAG分块检索,监控成本。

Token 完整指南

📝
Token 是 LLM 处理文本的基本单位。理解 Token 对于控制 API 成本、优化提示词长度、避免上下文截断都至关重要。本文全面介绍 Token 的概念、计算方法和优化策略。
大语言模型不像人类那样直接处理文字,而是将文本分解为 Token 进行处理。Token 可以是单词的一部分、整个单词,甚至是标点符号。

1. 什么是 Token

Token 是 LLM 处理文本的最小单位。不同的分词器(Tokenizer)使用不同的规则将文本分解为 Token。
💡
Token 与单词的关系: 英文: - 平均 1 个单词 ≈ 1.3 个 Token - 例如:Hello, world! → 3 个 Tokens: [Hello, ,, world!] 中文: - 平均 1 个汉字 ≈ 1 个 Token - 但也可能一个词被分解为多个 Token 不规则文本: - URL 可能每个部分都是一个 Token - 代码中的长变量名可能被分解

2. 分词规则示例

以下是 GPT-4 使用 cl100k_base 分词器的分词示例:
📋
分词示例: Hello world → [Hello, " ", world] = 3 tokens Hello, world! → [Hello, ",", " ", world, !] = 5 tokens 中文示例: 人工智能 → [人, 工, 智, 能] = 4 tokens 你好世界 → [你, 好, 世, 界] = 4 tokens 代码示例: function() → [function, (, )] = 3 tokens const x = 1; → [const, " ", x, " ", =, " ", 1, ;] = 8 tokens

3. 使用 tiktoken 计算 Token

tiktoken 是 OpenAI 开源的 Token 计数工具,支持多种编码方式。
import tiktoken

# cl100k_base 用于 GPT-4GPT-3.5-turbo
enc = tiktoken.get_encoding("cl100k_base")

# 计算 Token 数量
text = "Hello, world! 你好世界!"
token_count = len(enc.encode(text))
print(f"Token数量: {token_count}")

# 查看分词结果
tokens = enc.encode(text)
print(f"Tokens: {tokens}")

# 解码回文本
decoded = enc.decode(tokens)
print(f"解码: {decoded}")

# 释放资源
enc.close()

4. 主流模型上下文限制

不同模型有不同的上下文窗口限制,超过限制的内容会被截断。
📊
主流模型上下文限制: GPT-4 Turbo:128K tokens GPT-4:8K / 32K tokens GPT-3.5-turbo:16K tokens Claude 3 Opus:200K tokens Claude 3 Sonnet:150K tokens Claude 3 Haiku:150K tokens Gemini 1.5 Pro:1M+ tokens 注意:实际可用上下文可能小于标称值,需预留空间给输出。

5. Token 定价

大多数 LLM API 按 Token 数量计费,了解定价有助于控制成本。
💰
API 定价参考(2024年): GPT-4 Turbo: - 输入:$10 / 1M tokens - 输出:$30 / 1M tokens GPT-4: - 输入:$30 / 1M tokens - 输出:$60 / 1M tokens GPT-3.5-turbo: - 输入:$0.5 / 1M tokens - 输出:$1.5 / 1M tokens Claude 3 Opus: - 输入:$15 / 1M tokens - 输出:$75 / 1M tokens 实际费用 = 输入Token数 × 输入单价 + 输出Token数 × 输出单价

6. Token 优化策略

优化 Token 使用可以在不牺牲效果的前提下降低成本并提升响应速度。
🚀
优化策略: 1. 精简提示词:删除不必要的重复和解释 2. 使用缩写:在保持清晰的前提下使用缩写 3. 截断长文档:只保留最相关的部分 4. 摘要压缩:对长上下文进行摘要 5. 系统提示优化:系统提示只包含必要规则 6. 避免冗长示例:Few-shot 示例保持简洁 7. 流式输出:使用流式响应改善用户体验

7. 常见问题

问题1:为什么输出被截断? 答案:可能已达到 max_tokens 限制或上下文窗口上限。 问题2:Token 数比预期多? 答案:可能是标点符号、空格都被计为 Token。中文分词也可能产生意外结果。 问题3:如何估算成本? 答案:使用 tiktoken 预先计算,或参考 API 提供的 token usage 返回值。 问题4:上下文窗口不够怎么办? 答案:考虑 RAG(检索增强)、摘要压缩或使用更长上下文的模型。

总结

Token 是 LLM 处理文本的基本单位。英文平均1单词≈1.3 Token,中文平均1字≈1 Token。了解 Token 计算(使用 tiktoken)、模型上下文限制、API 定价对于有效使用 LLM 至关重要。优化 Token 使用可以从精简提示词、截断长文档、使用摘要等角度入手。
⚠️
声明:本文由 AI 生成,可能存在错误或不准确之处。API 定价可能随时间变化,请以官方最新价格为准。
最后更新:2026-01-29