モデルは覚えていない。あなたが覚えているのだ。

以前は、大規模言語モデル(LLM)にはメモリ(記憶)があると思っていました。

各チャットセッションが独自のコンテキストを保持しているのだと考えていましたが、それは間違いでした。

LLMはステートレスです。モデルは、あるリクエストから次のリクエストへと何かを記憶することはありません。

チャット履歴が見えているとき、あなたはメッセージの配列を見ているのです。会話を成立させるには、新しいプロンプトを送るたびに、履歴全体をモデルに送り返さなければなりません。

SDKを使用している場合、このプロセスは隠蔽されています。SDKがその複雑な処理を代行してくれます。

fetchを直接使用する場合は、すべてが丸見えです。ヘッダー、ボディ、そしてメッセージの配列を自分自身で管理することになります。

コンテキストの仕組みは以下の通りです:

• メッセージを送信する。 • モデルが応答する。 • 両方のメッセージを配列に保存する。 • 次の質問のために、配列全体を再び送る。

モデルは、現在のリクエストで送信された内容しか知りません。それ以外はすべて消えてしまいます。

この「配列」を理解することは、AI開発の基礎です。これは、RAG、スライディングウィンドウ、セマンティック検索といった高度な手法への出発点となります。

信頼性の高いAIツールを構築したいのであれば、抽象化されたものに頼るのをやめましょう。生の(raw)リクエストに目を向けてください。履歴を自分自身でコントロールするのです。

記事全文: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-38jk