Lemmalog: Datalogを使用してLLMのメモリをプログラム解析へと変える
長期的な調査において一貫した状態を維持することは、LLMエージェントの主要な失敗モードの一つです。脆弱性調査のような複雑なタスクでは、モデルが以前に除外された仮説を忘れたり、すでに否定された観察結果に基づいて推論を続けたりすることがよくあります。Lemmalogは、LLMのメモリを検索問題としてではなく、Datalogエンジンを使用して決定論的な演繹状態を維持するプログラム解析問題として扱うことで、この問題に対処します。
問題点:LLMメモリにおける状態の減衰
標準的なLLMメモリシステムは、通常、ベクトルデータベースとセマンティック検索(RAG)に依存しています。これらは関連する過去の会話を検索するには効果的ですが、「真実」と状態の更新には苦労します。もしエージェントが object_a が object_b を指していると確立し、後にそれが誤りであることを発見した場合、ベクトルデータベースは単に両方の矛盾する記述を保存してしまいます。その結果、LLMはプロンプト内でこれらの矛盾を解決しなければならず、しばしばハルシネーション(幻覚)や、すでに否定された仮説の復活を招きます。
Lemmalogのアーキテクチャ:曖昧なロジックと決定論的なロジックの分離
Lemmalogは、メモリ問題を「抽出のための確率論的なフロントエンド」と「推論のための決定論的なバックエンド」という2つの異なるコンポーネントに分割します。
1. 曖昧なフロントエンド (LLM)
LLMはパーサーとして使用され、ソースコード、デバッガの出力、自然言語のメモなどの非構造化データを構造化された事実(facts)に変換します。例えば、「LLDBが解放されたオブジェクトが後に再利用されていることを示している」という記述は、freed(object_a) および reused_as(object_a, write_target) という形式的な事実へと変換されます。
2. 決定論的なバックエンド (Datalog)
事実が構造化されると、Lemmalogは宣言型論理プログラミング言語であるDatalogを使用して、定義済みのルールに基づいて新しい事実を導出します。これにより、結論が論理的に妥当であり、自動的に更新されることが保証されます。
主な機能には以下が含まれます:
- 増分評価 (Incremental Evaluation): 入力された事実が変化した場合、調査全体をやり直すのではなく、影響を受ける結論のみが更新されます。
- 自動的な撤回 (Automatic Retractions): 結論を導出するために使用された事実が削除された場合、その結論は、別の独立した導出経路によって支持されていない限り、自動的に無効化されます。
- プロベナンス(由来)の追跡 (Provenance Tracking): システムはすべての導出された事実に対して依存関係グラフを維持するため、エージェントは元の観察結果まで遡ることで、「なぜ」特定の結論が真であるのかを答えることができます。
- 時間的妥当性 (Temporal Validity): 事実は妥当性期間(例:
viable(primitive_a) [10:14, 12:37))に関連付けられており、システムは矛盾する状態を維持することなく、知識が時間の経過とともにどのように進化したかを追跡できます。
パフォーマンス・ベンチマーク
Lemmalogは、長期的な会話メモリを扱う能力を評価するために、LongMemEvalおよびLoCoMoベンチマークを用いてテストされました。
LongMemEvalの結果
Lemmalogは、F1スコア 0.463 +/- 0.010、精度 0.575 +/- 0.004 を達成しました。PropMemのような一部の特化型メモリシステムにはわずかに及びませんが、F1スコア 0.197 を記録したフルコンテキスト・プロンプティング(GPT-4.1)を大幅に上回りました。
極めて重要なのは、Lemmalogはコンテキストウィンドウの要件を劇的に削減したことです。LongMemEvalにおいて、回答モデルはフルコンテキスト・アプローチの 104,000トークン に対し、質問あたり約 2,700トークン を受け取りました。これはコンテキストサイズが38分の1に削減されたことを意味します。
LoCoMoの結果
より大規模なLoCoMoベンチマーク(1,986問)において、LemmalogはF1スコア 0.533 +/- 0.001 を達成し、専用のメモリシステムの中で第3位となりました。特に、フルコンテキスト・モデル(F1 0.509)と比較して、敵対的な質問 (adversarial questions)(F1 0.707)において優れた性能を発揮しました。これは、構造化されたメモリが、意味的な類似性に惑わされるのではなく、支持する事実の欠如を明示的に認識できるためです。
比較:演繹的状態 vs. エピソード記憶
Lemmalogは、エージェントのメモリのために、演繹的状態とエピソード記憶を区別するハイブリッドアーキテクチャを提案しています。
| 特徴 | 演繹的状態 (Lemmalog) | エピソード記憶 (Vector DB) |
|---|---|---|
| 性質 | 事実、ルール、時間 | 曖昧なコンテキスト |
| メカニズム | プロベナンスと撤回 | セマンティック検索 |
| 保存 | 維持される状態 | ソーステキスト |
| 強み | 論理的一貫性、真実 | 関連性、ニュアンス |
コミュニティの洞察と反論
技術的な専門家たちの間での議論は、このアプローチの可能性と歴史的な背景の両方を浮き彫りにしています。
"LLMは、リクエストの履行というターミナルの位置にのみ存在すべきである... そのターミナル間では、作業は、あるオントロジーや形式的な知識構造に対する機械的な推論であるべきだ。"
一部の貢献者は、このアプローチが「古き良き人工知能」(GOFAI) や記号的AI(symbolic AI)を、反映していると指摘し、システムが最終的に、量化子の必要性や「曖昧な」あるいは意見に基づいた情報の扱いの難しさといった、記号論理の古典的な課題に直面する可能性があると警告しています。他の人々は、事実の「学習解除」を扱うために、より堅牢な非単調論理を扱う Answer Set Programming (ASP) の探索を提案しています。
結論
Lemmalogは、論理的一貫性と状態の追跡を必要とするタスクにおいて、形式的な解析状態を維持することが、コンテキストウィンドウを増いさせることよりも効果的であることを示しています。LLMを決定論的なDatalogエンジンに対する確率論的なパーサーとして扱うことで、システムはトークンコストを削減し、否定された仮説の復活を防ぎ、長期的な自律的研究エージェントのためのスケーラブルな道筋を提供します。
Sources
関連
- プロジェクト
- Dispatch
- Dispatch
- Dispatch
- Dispatch