token 是模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”。
通常 1 个中文词语、1 个英文单词、1 个数字或 1 个符号计为 1 个 token。
一般情况下模型中 token 和字数的换算比例大致如下:
1 个英文字符 ≈ 0.3 个 token。
1 个中文字符 ≈ 0.6 个 token。
不同模型的分词不同,换算比例也存在差异。
这里示例集中token计算方式
1 transformer统计
1.1 安装transformer
安装指令如下
pip install transformer
1.2 示例统计
基于transformer的token统计程序示例如下。
import transformers
chat_tokenizer_dir = "./"
tokenizer = transformers.AutoTokenizer.from_pretrained(
chat_tokenizer_dir, trust_remote_code=True
)
prompt = "这是一个测试文本,用于计算 Tokens 用量。"
token_ids = tokenizer.encode(prompt)
print("Tokens 数量:", len(token_ids))
输出如下,一共32个字符,token数为8。
Tokens 数量: 11
deepseek官网统计token数程序理解
https://cdn.deepseek.com/api-docs/deepseek_v3_tokenizer.zip
2 tiktoken
尝试用tiktoken统计token数量
2.1 安装tiktoken
安装指令如下
pip install tiktoken
2.2 示例统计
示例程序如下
import tiktoken
# 加载 DeepSeek 的 Tokenizer(假设使用类似 GPT 的 Tokenizer)
encoding = tiktoken.get_encoding("cl100k_base") # 替换为实际的 Tokenizer 名称
# 输入文本
input_text = "这是一个测试文本,用于计算 Tokens 用量。"
# 计算 Tokens
token_ids = encoding.encode(input_text)
# 输出结果
print("Tokens 数量:", len(token_ids))
输出如下
Tokens 数量: 16
可见transformer和tiktoken统计的数量有差异,因为不同的llm采用不同的分词模型。
这里给出的统计方法仅供GPT类模型token消耗的参考和评估,实际token耗费还是要看具体使用模型以及采用的分词方式。
reference
---
Token 用量计算
https://api-docs.deepseek.com/zh-cn/quick_start/token_usage/
离线计算 DeepSeek Tokens 用量的常见方法
https://blog.youkuaiyun.com/a772304419/article/details/145544072
【OpenAI中文文档】API#2:如何使用tiktoken计算token数量
172

被折叠的 条评论
为什么被折叠?



