Appearance
Tiktoken库
1. 什么是Tiktoken
Tiktoken是由OpenAI开发的一个快速进行BPE分词算法的分词器库,使用Rust语言开发,能够将文本编码为Token ids,也能够将Token ids解码为文本,此外,还可以用来计算文本编码后的Token数量,用于评估LLM的使用成本- 优点:速度快,准确,轻量级
2. 安装
python
# 可以使用 `pip` 直接安装 `tiktoken`:
pip install tiktoken3. 核心功能
3.1 编码文本到 Token ids
python
# 将文本转换为 Token ids
# 如:我爱你 --> [22755, 239, 163, 230, 109, 19526, 254]
import tiktoken
text = '我爱你'
tokenizer = tiktoken.get_encoding('gpt2') # 使用GPT2的分词器
tokens = tokenizer.encode(text)
print(tokens) # 输出:[22755, 239, 163, 230, 109, 19526, 254]3.2 解码 Token ids 到文本
python
# 将Token ids转换为文本
# 如:[22755, 239, 163, 230, 109, 19526, 254] --> 我爱你
import tiktoken
tokenizer = tiktoken.get_encoding('gpt2') # 使用GPT2的分词器
token_ids = [22755, 239, 163, 230, 109, 19526, 254]
text = tokenizer.decode(token_ids)
print(text) # 输出:我爱你3.3 计算token数量
- 可以在使用LLM前评估token的长度,控制成本,避免超出模型所支持的上下文长度
python
# 文本 --> token_ids --> 使用len获取长度
import tiktoken
tokenizer = tiktoken.get_encoding('gpt2') # 使用GPT2的分词器
text = '人工智能正在改变世界'
token_ids = tokenizer.encode(text)
print('Token length:', len(token_ids)) # 输出:Token length: 214. 核心 API 方法
4.1 获取分词器
使用模型名称获取分词器
- python
# 使用 gpt-4 模型明来加载对应的分词器 encoding = tiktoken.encoding_for_model("gpt-4")
使用编码名称获取分词器
- python
# 使用编码名称 cl100k_base 来加载对应的分词器 encoding = tiktoken.get_encoding("cl100k_base")
4.2 编码方法
encode():将文本转换为 token ids 列表encode_ordinary():不处理特殊 tokenencode_with_unstable_special_tokens():处理特殊 token
4.3 解码方法
decode(): 将 token ID 列表转换回文本decode_single_token_bytes():解码单个 token