𝗪𝗵𝘆 𝗔𝗜 𝗡𝗲𝗲𝗱𝘀 𝗦𝘁𝗮𝘁𝗲 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁 𝗠𝗼𝗿𝗲 𝗧𝗵𝗮𝗻 𝗕𝗶𝗴𝗴𝗲𝗿 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗪𝗶𝗻𝗱𝗼𝘄𝘀
新しいモデルは、巨大なコンテキストウィンドウを備えてリリースされます。 その前提は単純です。 「1回のリクエストにより多くのデータを投入すれば、あらゆる問題が解決する」というものです。
ドキュメントを増やし、 履歴を増やし、 ワークフローのデータを増やしていきます。
しかし、AIを本番環境で運用した結果、私たちは教訓を得ました。 コンテキストウィンドウは確かに役立ちますが、 それ以上にステート管理(State management)が重要なのです。
AIが不適切な結果を出力したとき、チームはプロンプトにより多くの情報を追加しがちです。 モデルにはもっと履歴やビジネスコンテキストが必要なのだと考え、 プロンプトは際限なく肥大化していきます。
情報が多いからといって、意思決定の質が上がるとは限りません。 むしろ逆の結果を招くこともよくあります。 巨大なコンテキストウィンドウは、不適切なアーキテクチャを隠蔽してしまいます。 システムは関連するデータのみを選択するのではなく、あらゆるデータを詰め込んでしまうのです。
これにより、いくつかの問題が発生します:
- トークンコストの上昇
- レイテンシの増加
- 推論の不整合
- リトリーバル(検索)ノイズの増大
- デバッグの困難化
モデルはより多くの情報を持ちますが、明快さは失われます。
コンテキストとステートの違いを理解する必要があります。 コンテキストとは、単一のリクエスト中に利用可能な情報のことです。 ステートとは、システムが時間の経過とともに保持する情報のことです。
ステートの例:
- 顧客プロフィール
- 会話の要約
- ワークフローの進捗状況
- ビジネスルール
これらをすべてプロンプト内に含める必要はありません。 分散システムは、すべてのデータをいたるところに渡すことで複雑さを解決しようとはしません。 データベース、キャッシュ、キューを使用してステートを管理します。
AIシステムはこの規律を軽視しがちです。 コンテキストウィンドウを一時的なデータベースのように扱ってしまうのです。 これはアーキテクチャ上の怠慢と言えます。
「すべてを詰め込めるか?」と問うのをやめましょう。 「どのような情報が必要か?」と問い始めるのです。
私たちは、コンテキストサイズを拡大するのではなく、ステート管理を改善することでより良い結果を得ました。 具体的には以下のことを行いました:
- オペレーショナルなステートと推論用のステートの分離
- プロンプト外への進捗状況の保存
- メモリの有効期限ルールの設定
- 重複するコンテキストの削減
これにより、コストの削減と実行速度の向上を実現しました。 より大きなモデルは必要ありませんでした。 必要だったのは、より優れた設計です。
目標は、モデルにあらゆるものへのアクセス権を与えることではありません。 目標は、適切な時に、適切な情報をモデルに与えることなのです。
Source: https://dev.to/karan2598/why-ai-systems-need-state-management-more-than-bigger-context-windows-2a4m
Optional learning community: https://t.me/GyaanSetuAi