tiktoken
https://github.com/openai/tiktoken
tiktoken is a fast BPE tokeniser for use with OpenAI's models.
tiktoken
tiktoken is a fast BPE tokeniser for use with OpenAI's models.
import tiktoken enc = tiktoken.get_encoding("o200k_base") assert enc.decode(enc.encode("hello world")) == "hello world" # To get the tokeniser corresponding to a specific model in the OpenAI API: enc = tiktoken.encoding_for_model("gpt-4o")
Tiktoken Tutorial: OpenAI's Python Library for Tokenizing Text
https://www.datacamp.com/tutorial/tiktoken-library-python
Practical Use Cases and Tips
Outside of encoding and decoding, there are two other use cases I can think of.
Cost estimation and management
Knowing the token count before sending a request to the OpenAI API can help you manage costs effectively. Since OpenAI's billing is based on the number of tokens processed, pre-tokenizing your text allows you to estimate the cost of your API usage. Here's how you can count the tokens in your text using Tiktoken:
tokens = encoding.encode(text) print(len(tokens))
Powered ByWe simply see how many tokens we got by checking the length of the array. By knowing the number of tokens in advance, you can decide whether to shorten the text or adjust your usage to stay within budget.
You can read more about this approach in this tutorial on Estimating The Cost of GPT Using The tiktoken Library in Python.
Input length validation
When using OpenAI models from the API you are constrained by the maximum number of tokens for inputs and outputs. Exceeding these limits can result in errors or truncated outputs. Using Tiktoken, you can validate the input length and ensure it complies with the token limits.
https://zhuanlan.zhihu.com/p/629776230
tiktoken是OpenAI开源的一个快速分词工具。它将一个文本字符串(例如“tiktoken很棒!”)和一个编码(例如“cl100k_base”)作为输入,然后将字符串拆分为标记列表(例如["t","ik","token"," is"," great","!"])。
将文本字符串拆分成tokens是有价值的,因为GPT模型使用tokens表示文本。了解文本字符串中有多少tokens可以告诉我们:
- 该字符串是否太长以至于文本模型无法处理;
- OpenAI API调用的费用(因为使用费用按token计算)。
https://www.qinglite.cn/doc/7433649a6373af6a8
https://juejin.cn/post/7390583568207822867
一、tiktoken简介
tiktoken是由OpenAI开发的一个用于文本处理的Python库。它的主要功能是将文本编码为数字序列(称为"tokens"),或将数字序列解码为文本。这个过程被称为"tokenization"(分词)。
这个库的名字"tiktoken"就是"token"和"tiktok"(滴答声)的组合,暗示了将文本切分为一个个离散token的过程,就像时钟的滴答声一样,将时间切分为离散的秒数。
二、为什么需要tiktoken?
你可能会问,为什么我们需要将文本编码为数字?这是因为机器学习模型,特别是自然语言处理(NLP)模型,只能处理数字,不能直接处理原始的文本。
因此,在将文本输入到NLP模型之前,我们需要先将其转换为数字序列。这就是tokenization的过程。而tiktoken库就是为这个过程而设计的。
三、tiktoken的特点
相比其他的tokenization库(如NLTK、spaCy等),tiktoken有以下几个特点:
它是专门为OpenAI的语言模型(如GPT系列)设计的。这意味着它使用的编码方式与这些模型的训练数据一致,从而可以最大限度地发挥模型的性能。
它支持多种编码方式,包括字节对编码(byte-pair encoding, BPE)、字词编码(word-level encoding)等。不同的编码方式适用于不同的场景。
它的代码简洁且快速。tiktoken是用Rust语言编写的,并提供了Python绑定,因此兼具了Rust的速度和Python的易用性。
作者:AIHE
链接:https://juejin.cn/post/7390583568207822867
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:tiktoken,Python,Text,Tiktoken,tokens,token,OpenAI,文本 From: https://www.cnblogs.com/lightsong/p/18625073