【AIGC】大语言模型千问、gpt、智谱token计算-tiktoken、get_tokenizer等

NLP(五十五)tiktoken的使用 本文介绍了tiktoken模型和它的简单使用,以及token数量计算方式。 阅读详情
AI摘要

本文深入探讨了Token在不同AI模型中的计算方法,包括OpenAI的gpt系列、通义千问及GLM类模型。详细介绍了如何使用tiktoken进行编码和解码,以及编码算法与模型之间的对应关系。

一、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使用
通义千问计量计费说明

OpenAI - tiktoken ⏳ | fast BPE tokeniser 关于 ⏳ tiktoken 性能表现 安装 tiktoken 如何计算 token Encodings Tokenizer libraries 对不同编程语言的支持 How strings are typically tokenized 使用 编解码 比较 encodings 计算chat API调用的tokens 拓展 tiktoken 阅读详情

相关推荐

【人工智能】使用tiktoken库来计算tokens数量,tiktoken由 OpenAI 提供的,主要用于与他们的 API 交互时估计 token 的数量。

是一个用于计算文本编码为特定模型的 tokens 数量的库 是由 OpenAI 提供的,主要用于与他们的 API 交互时估计 token 的数量。以下是如何使用 来计算 token 数量的基本步骤:您可以通过 pip 安装 tiktoken 库。 2.2. 导入必要的模块并初始化编码器: 使用 时,您需要选择一个编码方式。这通常取决于您打算使用的语言模型。例如,对于 或 模型,您可以使用 编码器。 2.3. 对文本进行编码并计算 token 数量: 接下来,您可以将您的文本字符串传递给编码器,并计

奶爸的编程之路,也就一周冷个三天 997

tiktoken原理以及如何离线环境使用

tiktoken是OpenAI开发的开源的快速token切分器。首先我们需要了解的是GPT等大模型,并不是直接将文本字符串输入大模型,第一步需要做的就是token切分编码。比如给定一个文本字符串。。

qq_35054222的博客 1万+

【通义千问】Qwen从本地加载分词器报错‘‘tokenizer class not exist‘‘的解释和处理办法

在尝试将模型文件从 [Hugging Face Model Hub](https://huggingface.co/Qwen/Qwen-7B-Chat/tree/main) 下载到本地并使用 `from_pretrained` 方法加载本地磁盘上的分词器时,遇到了一个错误。

weixin_46481662的博客 7948

Py之tiktoken:tiktoken的简介、安装、使用方法之详细攻略

​ Py之tiktoken:tiktoken的简介、安装、使用方法之详细攻略 目录 tiktoken的简介 tiktoken的安装 tiktoken的使用方法 tiktoken的简介 tiktoken是一个用于OpenAI模型的快速BPE标记器。 1、性能:tiktoken比一个类似的开源分词器快3到6倍 tiktoken的安装 pip install tiktoken pip install -i https://pypi.tuna.tsinghua.edu.cn/simple

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

3.14 掌握 Token 数量计算:使用 Tiktoken 轻松了解模型输入输出

Tiktoken是OpenAI提供的一个轻量级库,用于计算文本中的token数量,特别适用于GPT模型。计算token数量对于理解文本如何被模型处理非常重要,因为模型的输入和输出都会受到token数量的限制。以下是使用tiktoken。

yonggeit的博客 3603

tiktoken分词器(openai Llama)

仅对文本的前N个字符分词text = "This is a test. 这是一个测试。partial_tokens = encoder.encode(text, disallowed_special=()) # 允许特殊字符# 解码时保留原始结构(如空格、换行)

TOUCH的博客 1114

【学习心得】Python好库推荐——tiktoken

tiktoken是一个快速BPE分词器,它用于两个重要功能:1、文本编码与解码;2、统计Tokens数量。

qq_39780701的博客 1379

AIGC: 关于ChatGPT中token和tiktoken工具

token是GPT处理文本的基本的单位token本身可以是一个字,可以是一个词语,或特定语言中的一个字符token负责将输入的文本数据转换为GPT可以处理的数据格式GPT不同模型的计费就是根据token来的。

Wang的专栏 1215

大模型系列:OpenAI使用技巧_如何使用tiktoken计算标记数

将文本字符串拆分为标记对于GPT模型非常有用,因为GPT模型以标记的形式处理文本。知道文本字符串中有多少个标记可以告诉您(a)字符串是否过长以至于无法被文本模型处理,以及(b)OpenAI API调用的成本(因为使用量是按标记计价的)。)与旧的完成模型一样使用令牌,但由于其基于消息的格式,很难计算一个对话将使用多少个令牌。可以应用于单个标记,但请注意对于不在utf-8边界上的标记,它可能会有损失。特别是,使用可选的功能输入的请求将在下面计算的估计之上消耗额外的令牌。不同的模型使用不同的编码。

数智笔记 3356

高压脉冲发生器的各种电路图

高压脉冲发生器的各种电路图

qq_65102825的博客 5904

IP路由原理、静态路由及动态路由区分

什么是路由 路由是指导IP报文发送的路径信息。 直连路由:目的地所在网络与路由器直接相连。 间接路由:目的地所在网络与路由器非直接相连。 静态路由是由管理员手工配置而生成的路由。 动态路由路由器使用路由协议从其他路由器那里获悉的路由。

weixin_42227328的博客 5470

Openai开源的对文本进行Token编码、解码的库:Tiktoken 库

Tiktoken 是由 OpenAI 开源的 Python 库,主要用于字节对编码(Byte Pair Encoding, BPE),即将文本高效地转换为 Token 序列(编码)或将 Token 序列还原为文本(解码)。

skywalk8163的专栏 1万+

抖音用户评论和ID的采集方法

随着5G时代的普及,各大运营商的套餐纷纷推出,使得流量成本进一步降低。同时5G线路高宽带、低延迟的技术特性和手机普及,让视频用户访问量快速增加。 由于大量的视频工具和拍摄APP的提供,让短视频的拍摄、制作包括发行都变得更加简单便捷,越来越多的普通人可以投入视频创作,创造了更丰富的互联网内容,视频作者从视频推广中能获取粉丝和推广收益。 目前抖音就是目前最重要的短视频平台之一,要及时获取上面的用户评论和ID,需要结合爬虫代理实现采集方案,下面的代码就能快速采集相关信息: package htmlunit; i

ssbt_2020的博客 6787

大模型的token到底表示了多少文本(形象快速入门)

一个token到底表示多少文本

nangonghen的博客 2550

小波变换(Wavelet Transform)原理及介绍

小波变换是一种多分辨率时频分析工具,克服了傅里叶变换无法定位时间信息的缺陷。通过可伸缩平移的母小波,它能同时捕捉信号的高频细节(短时特征)和低频轮廓(整体趋势)。其核心原理是利用不同尺度的小波基与信号进行内积运算,生成时频域系数矩阵。小波变换具有动态分辨率特性,高频部分时间精度高,低频部分频率分辨率好。主要应用包括瞬态事件检测、信号降噪、数据压缩(如JPEG2000)和压缩感知(如快速MRI)。

qq_42758052的博客 5487

Prompt Learning 简介

• Prompt Learning 可以将所有的任务归一化预训练语言模型的任务• 避免了预训练和fine-tuning 之间的gap,几乎所有 NLP 任务都可以直接使用,不需要训练数据。• 在少样本的数据集上,能取得超过fine-tuning的效果。• 使得所有的任务在方法上变得一致。

jxsdq的博客 1万+

tiktoken Python接口:完整API使用手册

tiktoken是OpenAI开发的高速BPE(Byte Pair Encoding,字节对编码)分词器,专为OpenAI模型设计。作为处理大语言模型Token的核心工具,它提供了高效的文本编码和解码能力,支持多种编码方案和模型。 本文将全面解析tiktoken的Python API,涵盖从基础安装到高级用法的所有细节。 ## 安装与环境配置 ```bash pip install tikt...

gitblog_00762的博客 982

【OAG vs RAG】OAG工程实战(下):权限治理与多模型协同

本文摘要(149字): OAG工程体系的核心挑战在于权限治理与多模型协同。文章深入探讨OMA(对象管理权限)系统,实现细粒度访问控制:通过对象级权限管理行级安全,属性级权限控制敏感字段脱敏,确保AI Agent权限不越界。系统采用三层次防护:对象策略控制记录可见性,属性策略处理字段级脱敏,动作策略限制操作范围。权限验证贯穿Agent执行全流程,结合多模型交叉验证机制,构建企业级AI安全防线。这些设计使OAG系统从技术演示升级为生产可用的企业解决方案。

求知若渴、虚心若愚 105

大模型应用中一个 Token 占多少汉字?答案超乎想象!

原创 Soyoger AI技术研习社 2024年07月14日 09:00 美国先说答案:不同模型可能采用各自的切分方法,因此,一个 Token 所对应的汉字数量也会有所不同。如腾讯1token≈1.8个汉字,通义千问、千帆大模型等1token=1个汉字,对于英文文本来说,1个token通常对应3至4个字母, 不同的模型对相同的输入分词, 分词结果是不一样的。同样可以说,一个汉字占约0.5个Token。‌Token 是大模型中最基础、最常见的概念,它既可以是一个完整的单词,也可以是一个单词的一部分,甚至是标点

具身机器人和通用AI 9543

基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度

引入多头检测器助力YOLOv10,暴力提升小目标检测性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2569

【机器学习概率统计】11 贝叶斯统计推断:最大后验

这一节,我们来介绍另外一种统计推断方法:贝叶斯统计推断方法。 1.回顾贝叶斯定理 首先,我们先来复习一下贝叶斯定理: p(Θ∣X)=p(X∣Θ)p(Θ)p(X)p(\Theta|X)=\frac{p(X|\Theta)p(\Theta)}{p(X)}p(Θ∣X)=p(X)p(X∣Θ)p(Θ)​ 在这个简简单单的式子当中,蕴含了我们要掌握的很多重要内容: 贝叶斯定理当中的四个概率表达式,他们都非常重要,在这一节的内容中将反复出现,我们来一一解析一下: p(Θ)p(\Theta)p(Θ):先验分布。 反映的是在

机器学习数学基础系列专栏 3271

【Python】tiktoken 库:OpenAI 开发的快速字节对编码(Byte Pair Encoding, BPE)分词器库

tiktoken 是一个由 OpenAI 开发的快速字节对编码(Byte Pair Encoding, BPE)分词器库,专门为 OpenAI 的语言模型(如 GPT-3、GPT-4)设计。它用于将文本转换为模型可处理的 token(标记),并支持 token 计数、编码和解码操作。tiktoken 以高效性和速度著称,广泛应用于自然语言处理(NLP)、API 成本估算和输入验证。

彬彬侠的博客 3451

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Tiktoken Token编码测试,测试证明,国内是能够使用Tiktoken的编码服务的。

OpenAI开发的Tiktoken高效分词器在自然语言处理中广泛应用。测试显示该工具能正确处理多语言文本和特殊字符,编码速度达570,511 tokens/秒。国内可正常使用Tiktoken服务,此前项目中的报错可能源于base_url设置问题而非编码器本身。测试验证了Tiktoken的稳定性和高性能处理能力,为后续NLP应用提供了可靠基础。

skywalk8163的专栏 1209

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TikToken 使用教程:从原理到实战,一文搞懂 OpenAI 的文本分词利器

tiktoken 是 OpenAI 开发的高效分词工具,采用字节对编码(BPE)算法,专为 GPT 系列模型设计。该工具支持多种编码器类型(cl100k_base、o200k_base等),与 GPT-4、GPT-3.5-turbo 等模型完全兼容。文档详细介绍了安装配置、Python API 使用方法、核心概念及实际应用场景,包括 token 计算、成本估算和文本截断处理。tiktoken 具有性能优势(比同类工具快3-5倍),是开发者管理 API 使用成本和文本处理的必备工具。

772

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

AIGC基础通识讲解——图解,小白向

首先,明确指出并非所有的生成式AI都属于大语言模型范畴,例如图像扩散模型,虽然作为生成式AI的一种,其功能集中在生成图像而非文本内容,因此不属于大语言模型。每一步的输出取决于先前的隐藏状态和当前的输入,要等上一个步骤完成后才能进行当前的计算,因此无法并行计算,训练效率低,而且不擅长处理长序列,也就是长文本。然后数据通过多个隐藏层,每一层都会对数据进行一些复杂的数学运算,来帮助计算机理解图片中的特征,例如小猫的耳朵、眼睛等等,最后计算机会输出一个答案,表明这是否是一张小猫的图片。

beidaomitu233的博客 2412

如何使用Tiktoken进行文本分割

tiktoken是由OpenAI创建的一种快速BPE令牌化工具。它的设计旨在提高对于OpenAI模型的令牌化精度,并广泛应用于对文本的令牌化处理。

shuoac的博客 462
上一篇: 【Python】基础学习&技能提升&代码样例5:argparse优雅的解析命令行参数
下一篇: 【Python】基础学习&技能提升&代码样例6:日志logging
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值