OpenAIのトークナイザー tiktoken の使い方
OpenAIのトークナイザー「tiktoken」の使い方をまとめました。
前回
1. tiktoken
「tiktoken」は、OpenAI のモデルで使用する高速 BPE トークナイザーです。同等のオープンソースのトークナイザーよりも3~6倍高速です。OpenAI APIで利用するトークン数をカウントするのにも使えます。
2. Colabで実行
Google Colabでの実行手順は、次のとおりです。
(1) パッケージのインストール。
# パッケージのインストール
!pip install tiktoken
(2) エンコード。
import tiktoken
# エンコード
enc = tiktoken.get_encoding("gpt2")
tokens = enc.encode("Hello World!")
print(len(tokens))
print(tokens)
3
[15496, 2159, 0]
tiktoken.get_encoding()の引数には、エンコーディングを指定します。
(2) デコード。
# デコード
print(enc.decode(tokens))
Hello World!
(3) 分割したままデーコード。
# 分割したままデコード
print(enc.decode_tokens_bytes(tokens))
[b'Hello', b' World', b'!']
3. 日本語と英語のトークン数の違い
日本語でもエンコード・デコードして、英語と日本語のトークン数の違いを確認します。
(1) エンコード。
# エンコード
tokens = enc.encode("こんにちは、世界!")
print(len(tokens))
print(tokens)
14
[46036, 22174, 28618, 2515, 94, 31676, 23513, 10310, 244, 45911, 234, 171, 120, 223]
(2) デコード。
# デコード
print(enc.decode(tokens))
こんにちは、世界!
(3) 分割したままデコード。
# 分割したままデコード
def data2str(data):
try:
return data.decode('utf-8')
except UnicodeError:
return data
print([data2str(data) for data in enc.decode_tokens_bytes(tokens)])
['こ', 'ん', 'に', b'\xe3\x81', b'\xa1', 'は', '、', b'\xe4\xb8', b'\x96', b'\xe7\x95', b'\x8c', b'\xef', b'\xbc', b'\x81']
次回
この記事が気に入ったらサポートをしてみませんか?