😊
chatGPTで使われるトークン数を調べることができるtiktoken
chatGPTのAPIを使う上で従量課金されるトークンという単位。
どのくらいの文章を送れば何トークンなのかを簡単に調べることができる便利パッケージがtiktokenです。
APIを使ったチャットボットを構築する際に、100人がこのボットをこのくらいの使い方したら、何トークン消費されていくらかかるんだろう・・・・
そんな予算感を調べることができるパッケージになります。
tiktokenの公式のgithubはこちら。
使い方も非常にシンプルです。
import tiktoken
gpt2 = tiktoken.get_encoding("gpt2")
tokens = gpt2.encode("今日は学校が楽しかった")
print(len(tokens))
これでトークン数を計算することができます。
上記コードを実行してtiktokenで表示されたトークン数は17なのですが。
chatGPTのAPIを使って返ってきたresponseの中は以下のようなものなのですが。
"created": 1682869608,
"id": "cmpl-7B3Y8TbaS7EeY7r6oE8tcl7LDJ2tN",
"model": "text-davinci-003",
"object": "text_completion",
"usage": {
"completion_tokens": 8,
"prompt_tokens": 17,
"total_tokens": 25
}
}
prompt_tokensは17でtiktokenが算出したトークン数と合致するのですが、
total_tokensは25で8増えてしまっています。
どうやら、openAIで内部でトークンが付与されてしまうみたいなので、カウントされるよりも8トークン多くなってしまうようです。
なので、純粋にtiktokenで算出したものにリクエスト数✖️8を足さないと正しいトークン数は算出できないのではないかというTipsでした。
Discussion