【AIGC】大语言模型千问、gpt、智谱token计算-tiktoken、get_tokenizer等
创始人
2024-12-01 10:04:33
0

一、token计算

编码(encode)是指将文本映射为token的数字列表,解码(decode)是指将token的数字列表转化为文本。

给定一个文本字符串(例如"tiktoken is great!")和编码算法方式cl100k_base, 可以分词为["t", "ik", "token", " is", " great", "!"],再根据词典查出数字列表[122,232,5343,3424,5456,12446]

注意,各大模型一般都提供了计算token数的工具,可在调用模型前先计算token。原因:

  • 避免token过长,引发错误
  • 可用来预估自己的花费

1.1 OpenAI

gpt系列都可用tiktoken实现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 nameOpenAI models
cl100k_basegpt-4, gpt-3.5-turbo, text-embedding-ada-002, text-embedding-3-small, text-embedding-3-large
p50k_baseCodex 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  # dashscope版本 >= 1.14.0  # 获取tokenizer对象,目前只支持通义千问系列模型 tokenizer = get_tokenizer('qwen-turbo')  input_str = '通义千问具有强大的能力。'  # 将字符串切分成token并转换为token id tokens = tokenizer.encode(input_str) print(f"经过切分后的token id为:{tokens}。") # 经过切分后的token id为: [31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773] print(f"经过切分后共有{len(tokens)}个token") # 经过切分后共有8个token  # 将token id转化为字符串并打印出来 for i in range(len(tokens)):     print(f"token id为{tokens[i]}对应的字符串为:{tokenizer.decode(tokens[i])}") 

1.3 GLM类模型

GLM类模型,zhipu没有公开任何token计算工具和方式,在此不做讨论

1.4 其他

待补充

参考

NLP(五十五)tiktoken的使用
官方-tiktoken
官方-tiktoken使用
通义千问计量计费说明

相关内容

热门资讯

玩家攻略,斗牛房卡充值飞鹰互娱... 飞鹰互娱是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
微信链接炸金花房卡开科技/炸金... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
终于发现!炸金花链接房卡怎么搞... 微信游戏中心:炸金花房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信炸金花房...
ia攻略/斗牛房间怎么创建的海... 今 日消息,海草众厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
如何创建金花房间链接/微信炸金... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
终于发现!微信拼三张房卡如何购... 微信游戏中心:拼三张房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信拼三张房...
正版授权!游戏微信牛牛房卡新超... 正版授权!游戏微信牛牛房卡新超圣/微信小游戏充值房卡Sa9Ix苹果iPhone 17手机即将进入量产...
正版授权!金花房卡批发价新51... 您好!微信新518互游/新超圣大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(新518...
终于找到“有没有金花房卡获取方... 微信斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
终于发现!创建炸金花链接房间房... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
推荐一款!牛牛房卡怎么获得玉兔... 玉兔大厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
秒懂教程“购买金花房卡联系方式... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
头条推荐!金花房卡如何购买新鸿... 微信游戏中心:新鸿狐大厅/随意玩房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心...
终于发现!微信群炸金花房间怎么... 微信游戏中心:炸金花房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信炸金花房...
房卡必备教程“微信牛牛群哪里购... 新众亿金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡...
终于发现!微信炸金花房卡怎样开... 微信游戏中心:炸金花房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信炸金花房...
正版授权!游戏微信牛牛房卡茄子... 茄子娱乐房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
头条推荐!金花房卡怎么购买至尊... 头条推荐!金花房卡怎么购买至尊大厅/微信链接房卡批发价至尊大厅是一款非常受欢迎的游戏,咨询房/卡添加...
正规平台有哪些,金花房卡怎么购... 微信游戏中心:华山大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
我来教你/牛牛房卡游戏平台加盟... 金牛座是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:3329006...