Azure OpenAIの日本語を使った場合のトークン使用料について

2023年6月14日

日本語のトークン使用料はどのように算出されるのか

日本語の場合は、文字数=トークン数ではないのですが、ある日本語の文字列が、どのようにトーク数に変換されるか調べてみました。

たとえば、極端な例ですが、

ひらがない1文字=1トークン

漢字1文字=2トークン

のようなルールが何かないか?確認してみました

明確なルールはなし

トークン数のカウントは特別なアルゴリズム (ロジック) に基づいており、単純なルールで日本語の文字から見積もることはできません。

– Azure OpenAI Service とは

< https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/overview >

抜粋:

=============================

トークン

Azure OpenAI では、テキストをトークンに分割して処理します。 トークンには、単語または文字のチャンクのみを指定できます。

たとえば、"hamburger" という単語はトークン “ham"、"bur"、"ger" に分割されますが、"pear" のような短くて一般的な単語は 1 つのトークンです。 多くのトークンは、"hello" や “bye" などの空白で始まります。

所与の要求で処理されるトークンの合計数は、入力、出力、および要求パラメーターの長さによって異なります。 処理されるトークンの量は、モデルの応答待機時間とスループットにも影響します。

=============================

参考: OpenAI 言語モデルで日本語を扱う際のトークン数推定指標

< https://zenn.dev/microsoft/articles/dcf32f3516f013 >

一方で Azure OpenAI Service と同じモデルを開発している OpenAI 社が提供しているライブラリ (tiktoken) により、指定された文章からトークン数を計算することは可能です。

– ChatGPT および GPT-4 モデルの操作方法の説明

< https://learn.microsoft.com/ja-jp/azure/cognitive-services/openai/how-to/chatgpt?pivots=programming-language-chat-completions >

抜粋:

=============================

次のコード サンプルは、OpenAI の tiktoken ライブラリを使用して 4096 トークン数を処理する手法を使用した単純なチャット ループの例を示しています。

=============================

–  tiktoken

< https://github.com/openai/tiktoken >