LLM メモリを誤ってプログラム解析にしてしまった

2026/08/29 8:27

LLM メモリを誤ってプログラム解析にしてしまった

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

本テキストは、脆弱性情報研究のような複雑なタスクにおいて、大規模言語モデル(LLM)エージェントが信頼性のある知識状態を維持することを保証するシステム Lemmalog を紹介している。その核心的な革新点は、LLM が担当する曖昧なデータ抽出と、Datalog によって管理される決定論的な推論との分離にある。Datalog は累積的評価、撤回、およびプロベナンス追跡を用いて、「現在真であるものは何か」に答えるものである。このアーキテクチャは、標準的なメモリーシステムが曖昧な類似性に基づいて幻覚的な接続を生み出すか、死んだ仮説を復活させるという業界の主要な課題を解決する。

Lemmalog は規則と時間的有効性区間(例:

viable(primitive_a) [10:14, 12:37)
)を通じて状態の不変点を維持することで、観測が変化すると自動的に結論を無効化する。ベンチマーク結果では大幅な効率性の向上が見られる。LongMemEval の結果では、クエリあたりのコンテキスト使用量は約 104,000 トークンから 2,700 トークンに減少し、F1 スコアは 0.463 を達成した。特に、Knowledge Update(F1 0.579)および Adversarial False-Premise Questions(F1 0.707)においてトップを占め、幻覚を起こしやすいフルコンテキストベースラインを上回っている。より大きな LoCoMo ベンチマークでは、Lemmalog の F1 スコアは 0.533 で、PropMem(0.605)と OpenClaw(0.557)に次いでメモリーシステムにおいて 3 位を記録した。このアプローチは「コンパイラー」として機能し、LLM が確率的なフロントエンドパーサーとして、Datalog が決定論的な分析エンジンとして働き、セッションが長引くにつれてトークンコストを大幅に削減する。今後の作業では、この状態維持のアプローチを適用し、履歴データの変化や複雑かつ長期化する調査の際にエージェントがミスを犯することを防ぐことを目指している。

本文

LLM エージェントのためのメモリシステム「Lemmalog」:脆弱性調査における実用性と評価結果

過去数ヶ月間、脆弱性調査を目的とした LLM エージェントの実験を行いました。LLM はコードベースの探索や攻撃面の特定において優れた能力を発揮しますが、長時間にわたる調査ではハルシネーション(妄言)記憶の不一致といった課題が顕在化しました。

これに対し、LLM に「現在何が真実か」を維持させるために開発されたのが Lemmalog です。本記事ではその仕組みと、LongMemEval・LoCoMo などのベンチマークによる評価結果について解説します。


📌 課題:ハルシネーションと記憶の不一致

LLM の現状の限界

  • 調査時間が進むほど、モデルは確立された事実を忘れる傾向があります。
  • 既に排除したアプローチを提案したり、誤った前提に基づいて論じる現象が見られます。
  • 「間違っている」と指摘しても、直前の出力を無効化せず、その関連する記述も含めて信じてしまうリスクがあります。

従来のメモリシステムの欠点

既存の解決策(ベクトル埋め込みを用いた検索系)は、「過去の話」を保存・検索するものですが、「現在の真実」を動的に更新する仕組みが不足しています。

【事例:矛盾する情報の蓄積】 脆弱性調査中の状況変化に対応できない場合、メモリには以下のような矛盾が混在します:

  • object_a
    object_b
    を指している(以前)
  • 攻撃者が
    object_b
    を制御できる
  • しかし実際には
    object_a
    object_b
    を指していない(直近の事実)

問題点: LLM に「現在の真実」を判断させるために膨大な過去の情報をすべて再提示させ、ハルシネーションを防ごうとするアプローチは非効率です。

解決策:プログラム解析との類似性

脆弱性調査の本質はプログラム解析であり、その手法として Datalog の考え方が適用可能です。

  • 事実 (Facts):
    foo
    bar
    を呼び出す (
    calls(foo, bar)
    ) など。
  • ルール (Rules): 「関数 A が B を呼び出し、B が C を呼び出すならば、A は C に到達可能」など。

これらを組み合わせることで、入力事実が変化しても**影響を受ける結論だけを自動的に更新(再計算)**することが可能です。これにより、LLM には膨大な履歴を記憶させる必要がなくなります。


🚀 Lemmalog の仕組み

Lemmalog は、LLM と論理データベース(Datalog)の役割分担を明確化したハイブリッドシステムです。

1. アーキテクチャの分割

LLM が全てを決めなければならないのではなく、タスクを 2 つに分割します:

コンポーネント担当領域処理内容
LLM (Frontend)曖昧な部分自然言語の理解、ソースコード解析、デバッガー出力の解釈。
例: 「解放されたオブジェクトが再利用されている」という記述を構造化事実に変換。
Lemmalog (Backend)決定論的な部分構造化された事実とルールの管理、状態の維持、矛盾の検出。
例:
fact
rule
derived fact
の自動演算。

2. 機能の詳細

  • インクリメンタル評価: 入力事実に変化が起これば、影響を受ける導出事実だけを自動的に更新・無効化します。
  • 起源情報 (Provenance) の追跡: 「なぜその結論に至ったか」を理由のグラフで保持できます。
    • 例:
      candidate_3_is_exploitable
      が真である理由は、
      observation_41
      observation_57
      などの特定の観測事実への依存関係として可視化されます。
    • 一部の前提(例:
      observation_41
      )が誤りであることを発見すると、依存する結論を自動的に無効化できます。
  • 時間的サポート: 事実に「有効性区間(validity intervals)」を設定します。
    • viable(primitive_a) [10:14, 12:37)
    • not_viable(primitive_a) [12:37, ...)
    • これにより、「現在有効か」だけでなく、「以前なぜ有効だと判断したか」という履歴も維持・照会できます。

3. ベクトルデータベースとの違い

ベクトル検索は「関連性の高い過去的情報を検索する(Retrieval)」のに適していますが、**「真偽の更新」**には向きません。

  • メモリ: 過去の事実を検索して再利用すること。
  • Lemmalog: 現在の状態として何が真実か、論理的に推導すること。

📊 ベンチマーク評価結果

開発された Lemmalog を標準化されたベンチマークで評価しました。

1. LongMemEval(長期記憶評価)

LLM が長い対話履歴から情報を抽出する能力をテスト。

主要スコア (F1 スコア):

  • Lemmalog:
    0.463 +/- 0.010
    (精度:
    0.575
    )
  • PropMem: 0.550
  • SimpleMem: 0.480
  • OpenClaw: 0.244
  • Full Context (GPT-4.1): 0.197 (※コンテキスト全体を提示した場合)

重要な発見: Lemmalog は、完全コンテキスト(すべての履歴を提示)よりもはるかに少ないトークン数(約 38 倍削減)で、Full Context の 2.5 倍の性能を発揮しました。

  • LongMemEval 質問あたり: Full Context ~104,000 トークン vs Lemmalog ~2,700 トークン

カテゴリ別比較 (Top3)

カテゴリPropMemSimpleMemLemmalogOpenClawFull Context
SS-User0.8510.7520.7900.4010.265
SS-Asst0.7670.5660.6720.4320.415
Preference0.1470.1260.1280.1270.177
Multi-Session0.5820.3820.2110.0820.062
Temporal0.4240.5780.4160.1850.212
K-Update0.5280.4750.5790.2340.202
  • Knowledge Update(知識更新) で PropMem を上回り、設計上の弱点(事実の消去)に強い結果が出ました。
  • Multi-Session でのスコアは低めですが、これは情報抽出の不備によるもので、推論能力そのものの欠如ではありませんでした。

開発中のトラブルと改善

評価中に「拒否回答」や「カウントパスの消失」といった不具合が発生し、以下の修正により F1 を 0.463 に回復させました:

  • 拒否ロジックの微調整: 事実が欠落している場合のみ拒否するよう指示を最適化。
  • 複数形ステマ(語幹抽出)の修正: "owns" と "own" の一致判定エラーを解消。

2. LoCoMo(大規模対話記憶ベンチマーク)

より大規模なデータセット(1,986 問)で評価。

主要スコア (F1 スコア):

  • Lemmalog:
    0.533 +/- 0.001
  • PropMem: 0.605 (1 位)
  • OpenClaw: 0.557 (2 位)
  • Full Context: 0.542 (4 位相当)

結論: Lemmalog は専門的な LLM メモリシステムの中で3 位(Full Context を考慮すると 4 位)の順位を獲得。このスコアはラン間のばらつきが少なく、信頼性が高い結果です。

カテゴリ別比較

カテゴリLemmalogPropMemFull Context
Factual (事実)0.3990.4310.517
Temporal (時間的)0.4540.6150.369
Multi-hop (多段階)0.5450.5990.674
Inferential (推論)0.1640.2890.197
Adversarial (敵対的)0.7070.7940.509
  • 時間的推論敵対的質問で高いスコアを出しました(特に前者は修正により大幅改善)。
  • 全般的に PropMem に劣る「推論」や「マルチホップ」ですが、設計されたタスクでは完全コンテキストを凌駕しています。

💡 結論と今後の展望

メリット

  1. トークンの削減: 膨大な履歴を保持せず、関連する状態のみを検索・維持するため、コストと遅延が劇的に低下します。
  2. 矛盾の自動解決: ハルシネーションによる矛盾を検知し、論理的に状態を更新・無効化できます。
  3. 起源情報の追跡: 「なぜそう判断したか」を明確に説明可能で、信頼性の高いエージェントの実現に寄与します。

改善余地

  • 推論能力: 条件付きの知識(「友人といるときは賑やかな場所が好き」といった文脈)をフラットな事実として表現する点で弱いです。これを「条件付きルール」で補強し、エピソード記憶とのハイブリッド化が課題です。

最終的な示唆

LLM に良いメモリを与えようとした結果、「データベースとプログラム解析の手法を適用すべきだ」という結論に至りました。

  • LLM は曖昧な情報を理解するフロントエンドとして機能させます。
  • Lemmalog のような論理的バックエンドが状態を管理します。
  • これにより、数時間〜数日かけても**「過去に排除した仮説」や「無効な前提」に基づいたハルシネーションを防ぎつつ、効果的な調査を進められます。**

Lemmalog は単なる理論上のアイデアではなく、実用性と競争力を両立するアーキテクチャとして示しました。ソースコードは公開されていますので、ご活用ください。

同じ日のほかのニュース

一覧に戻る →

2026/08/30 4:33

騰訊發布並開源騰訊Hy4預覽版

## Japanese Translation: 以下の改良版は、完全性を保ちながら読みやすさを維持するため、不足していた技術仕様と性能指標を組み込んでいます。 ## 改善された要約 Tencent は次世代の 770B パラメータを持つ大規模言語モデル(アクティブパラメータ:49B)「Hy4 preview」をローンチしました。このモデルは高生産性タスクに特化して最適化されており、1M トークンを超える広大なコンテキストウィンドウを備えています。Hy4 はシリーズ初となる自主的なトレーニングおよび推論システムの最適化を実現し、オペレーターフュージョンによりエンドツーエンドのスループットを 31.8% 向上させました。内部での盲目評価において、203 のエンジニアリングタスクにわたる 163 名の専門家によって行われ、GLM-5.3(2.92)および Kimi K3(2.94)に対してそれぞれ 2.99/4.00 と高いスコアを記録し、主要競合他社を上回りました。 ソフトウェアエンジニアリング、ゲーム、金融、科学の分野で Tencent の専門家によって共同作成された高品質なデータを用いてトレーニングされた Hy4 は、長文脈開発、単一のプロンプトからのゲームプロトタイピング、分子動力学や物理学などの科学研究分野において明確な優位性を発揮します。現在、Hy4 は Tencent Cloud TokenHub および OpenRouter を介して世界中で利用可能であり、競合的 API 料率(入力トークンあたり 83.4 米セント)で提供されています。同モデルは WorkBuddy および CodeBuddy の Tencent プラットフォーム上で 2 週間無料利用が可能ですが、前世代の Hy3 は引き続き 9 月 30 日までの間アクセス可能です。

2026/08/24 14:09

Tether:Linux での iMessage や SMS の利用

## Japanese Translation: テザー(Tether)は、iPhone とペアリングされた際の macOS の「Continuity」機能——iMessage、SMS、コンタクト同期、通知、ファイル共有、クリップボード同期、ワンタイムパスワード(OTP)の自動入力——を Linux へ統合し、KDE Connect など既存ソリューションが補えていないギャップを埋めています。セキュリティは当初から最優先事項であり、iOS と Linux の通信には mTLS 暗号化を採用し、定期的に Opus および Fable のセキュリティスキャンを実施することで実現しました。他のメールクライアントへの広範なサポートはまだ利用できません。開発者はバックエンド開発を優先し、拡張子の移植には集中しないためです。OTP の自動入力は、Zen Browser(Firefox)と Betterbird(Thunderbird)向けのブラウザおよびメール拡張機能を通じて行われ、メールからコードを拡張機能へ送ってログインフォームの自動埋め込みを実現します。 直接の iMessage/SMS アクセスのための Bluetooth 統合は、GPL ベースのプロジェクト(例:ancs4linux や BlueFerry)とのライセンス衝突を避けるために、独自のカスタム C++「クリーンルーム」手法を用いて実装されています。テザーは引き続き MIT ライセンスを採用しています。現在の Linux ベースのデーモンは、Tailscale などの earlier プロキシ方式と比べてより優れた直接的な接続体験を提供しており、ユーザーからは不快であると評価されていました。iOS アプリが先に登場し、当初は基本的なクリップボード同期のみを処理し、その後に広範な Continuity スタックが構築されました。 ファイル共有およびプッシュ通知は直ちに利用可能ですが、ハードウェア制約や Bluetooth 切断の問題など、将来のアップデートにおける課題依然存在しています。特に Bluetooth の実装は 2026 年においてもエッジケースが多いため困難です。本プロジェクトは金銭的利益よりも真なる価値と満足感を提供することを目指しており、シームレスなクロスプラットフォーム接続を求める技術愛好家にとってユニークなツールとなっています。バグレポート、機能要望、翻訳、ドキュメントなどの貢献をコミュニティから歓迎します。

2026/08/30 3:22

vLLM 0.28.0

## Japanese Translation: このリリースは、主要なアーキテクチャ変更と拡張ハードウェアサポートにより AI 推論を加速することに焦点を当てた決定的なアップグレードです。主なパフォーマンス向上としては、ファインズドカーネルによって大きなモデル(特に MegaMoE)で最大 1.5〜3 倍の高速化、推論の最適化(DFlash2/DSpark)、GPU ごとに約 17 GiB のメモリ節約を実現する共有エキスパートシャッディングなどがあります。この更新はハードウェア互換性を大幅に拡大し、NVIDIA アーキテクチャ(Blackwell SM90/B12X を含む、ネイティブな DSA/FlashInfer パスを備えたもの)および AMD ROCm プラットフォーム(gfx950/gfx120x)、MLA および FP8 推論向けの特定の最適化を可能にします。 機能面では、Weight Offloading、マルチレイヤー MTP KV キャッシュ、アテンション不要なモデルサポートといった機能を備えた Model Runner V2 が導入されました。また、バッチトークン上限値を 16384 に倍増させたり、Mamba モデルにデフォルトでプレフィックスキャッシュを有効化したりするなどの推論デフォルトも標準化されています。エコシステムの主要な更新としては、PyTorch 2.12 と Transformers 5.15.0 への移行が必須となり、ディスクオフローディングをサポートする階層型 KV キャッシュシステムが追加されました。さらに、gRPC を通じたネイティブ Rust フロントエンドサポートが追加され、Muse Glimmer、Ling 3.0 Flash、Qwen3.8 など多数の新しいモデルへの対応も開始(AMD 向け)。組織は、これらの高度な機能を利用するために、非推奨化された関数や特定の依存関係に関する破壊的な変更に対応する必要があります。