
LLMのトークン数の考え及び、ソースコードをLLMで扱う場合の限界ステップ数と料金を検証
LLMを使った検証をやっているとトークン数を気にする必要が出てきます。
今まで何となく英語は1単語1トークン、日本語は1文字1トークンといういイメージでいたのですが、詳しく調べてみました。
トークン数のカウント方法
トークン数は、文章をLLMにインプットするために、意味のたる単位に文章を分割した数になります。
アルゴリズムが複雑なためツールを使わないと数えるのは難しいのですが、OpenAIのTokenizerでカウントするWebサイトが用意されています。
https://platform.openai.com/tokenizer
下図のように日本語や英語を入れるとトークン数を数えてくれます。
「吾輩は猫である。名前はまだない。」だと17文字が13トークンとなります。
GPT-3とか3.5だと、1文字1トークンでしたが、GPT-4からは「名前」とか簡単な漢字やひらがな/カタカナは一部まとめてくれています。

英語で「I am cat. I don't have name yet.」といれると32文字、10トークンとなります。一般的にトークン数は英語の方が少なくなります。

トークン数にすると、文章の何割ぐらいの量になるか
BPEというアルゴリズムを使っているようですが、いろいろ試すと、入力する文章の文字数に対して、日本語は80%弱、英語は25%程度になるのかなと思います。
文章にもよるのでぶれるとは思いますが。
BPEのアルゴリズムは以下を参照。
LLMはトークン数の上限がある
モデルにもよりますが、OpenAIのGPT-4だと
・リクエスト:128,000トークン
・レスポンス:16,384トークン
が上限になります。
最近のo1だともう少し増えて
・リクエスト: 200,000トークン
・レスポンス: 100,000トークン
になります。
モデルが上がるごとに上限が増えているため、今後も増えていくとは思います。
open AI APIの料金
LLMはChatGPTとか一部無料では使えますが、基本的に学習なしで仕事で使おうとすると無料枠は使えなくて、トークン数での従量課金になります。
GPT-4oだと以下のような料金になります。
・$2.50/1M 入力トークン
・$10.00/1M 出力トークン
LLMでソースコードを扱う場合のトークン数やLLM料金についての試算
ソースコードをLLMに入力して利用する検証をしていたため、実際にどのぐらいのソースを一度に食べさせられるのか試算してみました。
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?