見出し画像

ヌードル亭麺吉型Chatbotの後書き①

ヌードル亭麺吉型Chatbotの開発後記です。

1.はじめに

ChatGPTを使う上での運用コスト、問いかけるたびに発生するToken数は誰しも気になるポイントです。
ユーザ1人1人が膨大なTokenを消費してしまうと、個人で作ったサービスは立ち行かなくなり、サービス停止してしまいます。
多くのユーザにサービスを届けるためにはTokenの削減が必須です。

削減の一案である和英翻訳について、個人的に「どれほど効果があるのか」調査したので書いておきます。

結論として、「日本語の1文字、英語の1単語、Token数」の関係性は
日本語の1文字 → 1.50Token
日本語の1文字 → 英語0.46単語
英語の1単語  → 1.26Token

ここから分かる事として、和英翻訳してからChatGPTに投げた方が40%Token数削減になるようです。

2.調査

2.1.調査方法の調査

どう調査するか、そもそもここら辺の情報無いかChatGPTに聞いてみます。
問答の結論としては、

  • 実際に使用する翻訳ツールを用いて計測する必要がある。

  • 翻訳を行うツールによって結果は異なる。

  • 文脈で異なる(口語と文語など)

  • 調査サンプルは幅広い方が好ましいが、一般的な傾向を把握するためには数十から数百のサンプルで十分な事もある。

2.2.調査方法

  1. ChatGPTに問いかける文章は口語が多いと思うので、日本語の口語文書をChatGPTで適当に20個生成。

  2. 実際にサービスで使う翻訳ツールで翻訳。

  3. 元の日本語状態の文字数とToken数、英語翻訳した際の単語数とToken数をTokenizerで確認します。

2.3.調査結果

結果がこちら。表下部のAverageで傾向が分かります。

平均値を見ると、
26文字の和文は40Token ・・・日本語の1文字 → 1.50Token
26文字の和文は12単語の英文・・日本語の1文字 → 英語0.46単語
12単語の英文は15Token ・・・英語の1単語  → 1.26Token

つまり、日本語をそのままTokenに変換するよりも、和英翻訳してから変換すれば40%程度節約できそうということですね。

補足のためにもう少し書くと、平均で日本語26文字をTokenに変えると40Tokenかかります。
一方、日本語26文字を和英翻訳し、英文12単語にしてからTokenに変えると25Tokenになります。
つまり、和英翻訳してから投げた方が15Token削減できています。

しかも、英語で問うた場合はChatGPTからのレスポンスも英語になるので大分節約できそうです。

3.まとめ

  • 日本語の問いかけは、英語に比べてToken消費が膨大。

  • Token削減するには和英翻訳が必定で、40%の削減効果が期待できる。

  • ただし、翻訳の過程で応答精度が下がることは避けられない。

その他

応答精度について

今度翻訳を介した場合、介さない場合の応答精度、応答精度を上げるための案について書いておこうと思います。

Tokenizerとレスポンス情報(prompt_tokens)の数値差

Tokenizerのトークン値と実際にAPIに問いかけた時、レスポンス情報の一部として帰ってくるトークン値(prompt_tokens, completion_tokensとか)が異なることがあります。
ここでAPIに問うた際の詳細が分かるのでご一読を。

https://tiktokenizer.vercel.app/

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?