一、tiktoken是什么?
tiktoken是一个快速BPE分词器,是由 OpenAI 开发的一个用于文本处理的 Python 库,主要用于将文本编码为数字序列(称为 "tokens"),或将数字序列解码为文本。这一过程被称为 "tokenization"(分词)。
补充:BPE是什么?
Byte Pair Encoding (BPE) 是一种流行的子词(subword)分割技术。BPE 的主要目的是在词汇表大小和模型性能之间找到一个平衡点,它允许模型处理未登录词(即训练集中未出现过的单词)的能力增强,同时减少词汇表的大小,提高模型的效率。
二、tiktoken有什么用?怎么用?
# 先安装
pip install tiktoken
(1)文本编码与解码
tiktoken的主要功能是进行文本编码和解码。 它可以将输入的文本转换为模型可以理解的数字序列(tokens)还可以反过来,将模型输出的数字序列转换回人类可读的文本。
import tiktoken# 创建一个编码器
encoder = tiktoken.get_encoding("cl100k_base")# 编码文本
text = "Hello, world!"
tokens = encoder.encode(text)
print(tokens) # 输出: [15496, 1917, 0]# 解码数字序列
decoded_text = encoder.decode(tokens)
print(decoded_text) # 输出: "Hello, world!"
(2)统计Tokens数量
tiktoken不仅可以用于文本的编码和解码,还可以用来统计文本中 tokens 的数量。这对于许多自然语言处理任务来说是非常有用的,特别是在处理模型输入时,了解输入的长度可以帮助优化模型的性能和资源使用。
import tiktoken# 创建一个编码器
# encoder = tiktoken.get_encoding("cl100k_base")
encoder = tiktoken.encoding_for_model("gpt-4o") # 如果你是调用gpt-4o模型你还可以这样使用# 输入文本
text = "Hello, world! This is a test sentence to count the number of tokens."# 编码文本
tokens = encoder.encode(text)# 统计 tokens 数量
num_tokens = len(tokens)print(f"tokens的数量: {num_tokens}")