【AIGC】大语言模型千问,gpt、智谱token计算
2025-06-24 11:55:52
来源:新华网
一、token计算。
编码(encode)是指将文本映射成token的数字列表,解码(decode)是指将token的数字列表转换为文本。
给出一个文本字符串(例如。"tiktoken is great!"
)以及编码算法。cl100k_base。
, 可分为单词。["t", "ik", "token", " is", " great", "!"]。
,然后根据字典找出数字列表。[122、232、5343、3424、5456、1246]
。
注意,各大模型一般都提供计算token数的工具,token可以在调用模型之前计算。原因:
- 避免token太长,引发错误。
- 它可以用来估计你自己的费用。
1.1 OpenAI。
tiktoken可用于gpt系列中的token计算。
import。tiktoken。# 具体tokenizer模型。enc。 =tiktoken。.。get_encoding。(。"o200k_base")。assert。enc。.。decode。(。enc。.。encode。(。"hello world")。)。=="hello world"# 具体的chat模型。enc。 =tiktoken。.。encoding_for_model。(。"gpt-4o")。enc。.。encode。(。text。)。# 获得字典值[31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773]。len。(。enc。.。encode。(。text。)。)。# 获取长度,8。
编码算法与openai模型之间的对应关系:
Encoding name。 | OpenAI models。 |
---|---|
cl100k_base。 | gpt-4, gpt-3.5-turbo, text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large。 |
p50k_base。 | Codex models, text-davinci-002, text-davinci-003。 |
r50k_base (or gpt2)。 | GPT-3 models like davinci。 |
1.2 通义千问。
# 运行前请 pip install tiktoken。from。dashscope。 import。get_tokenizer。 # dashcope版本的dashscope版本 >= 1.14.0。# 获取tokenizer对象,目前只支持通义千问系列模型。tokenizer。 =get_tokenizer。(。'qwen-turbo')。input_str。 ='通义千问有很强的能力。'# 将字符串切成token并转换为token id。tokens。 =tokenizer。.。encode。(。input_str。)。print。(。f"切分后的token id为:{ 。tokenizer。.。decode。(。tokens。[。i。]。)。}。")。
1.3 GLM模型。
GLM模型,zhipu没有披露任何token计算工具这里不讨论。
1.4 其他。
待补充。
参考。
NLP(55)使用tiktoken。
官方-tiktoken。
使用官方-tiktoken。
通义千问计量计费说明。