この記事では、エンジニア向けに「OpenAIのAPI料金の計算方法」を解説しています。
この記事を読むことで、「トークン」という概念を理解した上で、文章生成APIを利用するときにかかる利用料金の計算方法を理解できます。
トークンとは何か?
- トークンとは、一言で言うと「単語の断片」です。
- イメージとしては、「文字(Character)と単語(Word)の間の単位」です。
- たとえば、"Hello World"という文字列の場合、単語数が2、文字数が11、そしてトークン数は2となります。
- 「あれ、そしたら、単語の断片ではなく、単語なのでは?」と思ったかも知れません。
- おっしゃるとおり、単語数とトークン数が一致する場合もあります。しかし、必ずしもいつでも一致するとは限りません。
- たとえば、"Hello Kubernetes"という文字列の場合、単語数が2、文字数が16ですが、トークン数は5となります。
- このように単語数以下になることはあっても、多くなることはないため、「文字と単語の間の単位」というイメージになります。
- そして、API料金は、このトークン数に応じて課金されるため、トークンの理解は非常に重要です。
- 別の見方をすると、トークンを理解することで、どうしたら課金量を節約できるかも理解できます。
- 節約方法は、次の記事で解説します。
日本語の場合
-
ここで、「日本語の場合、何文字で1トークンになるの?」と気になった方もいると思います。
-
「OpenAIのAPI料金を計算してみよう!」という文字列の場合、各文字は次のようなトークン数になります。
-
この図では、赤い文字は1トークン分を、青い文字は2トークン分を、緑の文字は3トークン分を表しています。
-
ご覧の通り、2トークンの漢字もあれば、3トークンの漢字もあることから、簡単に暗算することはできません。
-
1つ言えるとしたら、ひらがなよりも漢字の方がトークン数は大きくなる傾向があります。
英語の場合
- では、「OpenAIのAPI料金を計算してみよう!」という文字列を英訳した「Let's calculate OpenAI's API fees!」という文字列だと何トークンになるのでしょうか?
- 結果は、なんと9トークンになりました。元々25トークンだったため、英語で入力することによりかなりトークン数を節約できることがわかります。
API料金の計算方法
- 文章生成APIにおける「API料金の計算方法」は次の通りです。
-
結論として、API料金は次の4つ要素から計算されます。
- 使用モデル
- 使用モデルにおける利用単価
- 入力トークン数
- 出力トークン数
-
具体的に使用モデルが決まったら、その
「利用単価」×「入力トークン数と出力トークン数の和」
という計算式で求められます。
計算例
- たとえば、使用モデルが「text-davinci-003」な時、現在の利用単価は、1000トークンごとに$0.02です。
- そして、「AIとは何か?」と質問をして、「人工知能の略称です。」と返答が返ってきた時、入力トークン数と出力トークン数の合計は、26になります。
- そのため、計算をすると、約0.07円という計算になります。
- 実際には、もっと出力トークン数が多くなると思いますが、このようにAPI料金は計算できます。
注意事項
- ここで、一点注意事項があります。
- 出力トークン数は、最終的に採用した出力ではなく、モデルが「計算結果として出力したトークン数」になる場合があります。
- そのため、「生成結果数(n)」や「最良出力選定時の候補数(best_of)」が1より大きい場合は、出力トークン数が増加します。