这里”tiktokenisgreat!“使用了6个tokens
现在我们使用tiktoken来计算对应的tokens,tiktoken是OpenAI开源的一个快速分词工具。它将一个文本字符串和一个编码作为输入,然后将字符串拆分为标记列表。
可以使用tiktoken.encoding_for_model检索模型的编码,如下所示:
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
字符串通常如何进行分词
%pip install --upgrade tiktoken
import tiktoken
使用tiktoken.get_encoding方法按名称加载一种编码。
计算调用的token消耗
第一次运行此方法时,需要连接互联网下载,之后的运行将不需要网络连接。
encoding = tiktoken.get_encoding("cl100k_base")
总结:
发现18个字符,使用了6个Tokens。
使用tiktoken.encoding_for_model方法,自动加载给定模型名称对应的正确编码。
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
放入文本
.encode方法将文本字符串转换为标记整数列表。
encoding.encode("tiktoken is great!")
通过计算.encode方法返回的列表长度来计算tokens。
def num_tokens_from_string(string: str, encoding_name: str) -> int:
"""Returns the number of tokens in a text string."""
encoding = tiktoken.get_encoding(encoding_name)
num_tokens = len(encoding.encode(string))
return num_tokens
num_tokens_from_string("tiktoken is great!", "cl100k_base")
编码指定如何将文本转换为tokens。不同的模型使用不同的编码。
与openAI的Tokenizer对比:
请注意,p50k_base与r50k_base重叠很大,在非代码应用中,它们通常会给出相同的tokens。
该字符串是否太长以至于文本模型无法处理;OpenAIAPI调用的费用。
加载编码
官网已经有了Tokenizer,可以计算出使用Tokens,而为什么还要写这篇文章来自己计算tokens呢?
文章为作者独立观点,不代表股票交易接口观点