コストやレイテンシを悪化させずに、製品にLLMを組み込む方法

AIのデモを作るのは簡単です。APIキーを取得し、プロンプトを書き、チームに見せるだけです。

そして、それをリリースします。トラフィックが押し寄せます。コストは爆発的に増え、レイテンシは急上昇します。

デモから実際の製品へと移行するには、コストとレイテンシのエンジニアリングが必要です。その方法を以下に示します。

出力を制御する

ほとんどのAPIはトークン単位で課金されます。出力トークンは入力トークンよりもコストが高くなります。

プロンプトの調整に時間をかける一方で、モデルに長々と喋らせてしまう人がいます。これは間違いです。

お金と時間を節約するには、出力を制約してください:

  • JSON形式で出力するよう求める。
  • 1文で回答するよう要求する。
  • max_tokens の制限を設定する。
  • モデルに簡潔に答えるよう指示する。

短い回答の方が、高速で安価です。

不要な呼び出しを止める

最善の節約方法は、モデルを全く呼び出さないことです。

  • キャッシングを利用する: よくある質問への回答を保存します。質問が全く同じではなくても、意味が似ている場合にはセマンティックキャッシュが役立ちます。
  • ルーティングを利用する: 単純なタスクに最高性能のモデルを使用しないでください。分類には小型で安価なモデルを使用し、高価なモデルは複雑な作業のために取っておきましょう。

ユーザーエクスペリエンスを向上させる

回答に時間がかかる場合は、速く感じさせる工夫をしましょう。

  • トークンをストリーミングする: 生成された単語を逐次表示します。これにより、体感的な待ち時間を短縮できます。
  • 進捗を表示する: タスクが複数のステップに分かれている場合は、何が起きているかをユーザーに伝えます。何も表示されないスピナーではなく、「ドキュメントを検索中...」といったテキストを使用してください。

「テール」レイテンシを管理する

どうしても遅くなるリクエストはあります。それによって製品が使い物にならなくならないようにしましょう。

  • タイムアウトを設定する: リクエストが停止した場合の挙動を決めておきます。フォールバック(代替手段)や、より小型のモデルを使用するようにします。
  • リトライを利用する: 軽微なエラーに対してはリトライを追加しますが、回数には上限を設けてください。
  • サーキットブレーカーを利用する: プロバイダーがダウンした場合は、長い待ち時間を避けるために、直ちにリクエストの送信を停止します。

データを追跡する

計測できないものは改善できません。すべてのリクエストに対して、以下の3つの数値をログに記録してください:

  • 入力トークン数
  • 出力トークン数
  • 総レイテンシ

ユーザーが目的を達成した際のコスト(cost per successful user outcome)に注目してください。失敗する安価な機能よりも、確実に動作する機能の方が価値があります。

LLMを魔法のように扱うのはやめましょう。管理すべき「低速で高価な依存関係」として扱うのです。

Source: https://dev.to/muhammadzainnaseer/how-to-put-an-llm-in-your-product-without-wrecking-your-costs-or-your-latency-89a

Optional learning community: https://t.me/GyaanSetuAi