😊

chatGPTで使われるトークン数を調べることができるtiktoken

2023/05/01に公開

chatGPTのAPIを使う上で従量課金されるトークンという単位。
どのくらいの文章を送れば何トークンなのかを簡単に調べることができる便利パッケージがtiktokenです。

APIを使ったチャットボットを構築する際に、100人がこのボットをこのくらいの使い方したら、何トークン消費されていくらかかるんだろう・・・・

そんな予算感を調べることができるパッケージになります。

tiktokenの公式のgithubはこちら。
https://github.com/openai/tiktoken

使い方も非常にシンプルです。

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