ミラ・ジョヴォヴィッチのMemPalaceに対する健全性チェック:混在する指標、迂回された審査員、そしてあの96.6% LongMemEvalスコア

Reddit r/LocalLLaMA / 2026/4/11

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • 著者はMemPalaceの見出し「96.6% LongMemEval」という数値の妥当性を疑問視し、他のシステムが用いるエンドツーエンドのQA精度ではなく、検索Recall@5指標であると主張する。
  • MemPalaceのベンチマークコードは、LongMemEvalのGPT-4o審査員をバイパスし、回答生成を一切行わず、評価はランクkにおけるリコール(any/all)とNDCGのみに基づくと説明されている。
  • README内の比較表は、MemPalaceの検索のみのRecall@5と、競合のLLMによる審査済みQA精度という、根本的に異なる評価タイプを混在させている点が批判されている。
  • これまでに報告された競合のスコアは、回答生成/審査に用いるLLMによって変動するとされており、これらの数値がエンドツーエンドのQA評価を反映しているという主張を裏付けている。
  • LongMemEvalに詳しい他者から「健全性チェック」を求め、著者は他の問題に関してMemPalaceが(4月7日に)撤回を行ったことに触れているが、指標の不一致についてはそこでは(少なくとも)対処されていないとされる。

最初に開示します。私は別のオープンソースのメモリシステム(bitterbot-desktop、~125スターでMemPalaceの~40kとは規模が違います)に取り組んでいます。そのため、適宜調整してください。私たちは同じ問題を異なる観点から解こうとしていて、そしてMemPalaceのヘッドライン数値が他分野よりずっと高いので、ギャップを理解したくて、特別にMemPalaceのベンチマークコードを読みました。

ただ、そこで分かったことは、どう読めばよいのか本当に迷わせる内容でした。LongMemEvalに詳しい方々からの健全性チェックが欲しいです。

ここで詰まっています:

  1. 比較表が2つの異なる指標を混ぜている

    READMEではこう主張されています:MemPal raw 96.6% > Mastra 94.87% > Hindsight 91.4%。

    benchmarks/longmemeval_bench.pyを開くと、MemPalaceはLongMemEvalへの依存を避けるために、自分たちの指標を明示的に再実装していることが分かります。回答生成ステップはスキップされ、GPT-4oのジャッジも一切呼び出しません。以下がスコアリング関数の全文です:

    def evaluate_retrieval(rankings, correct_ids, corpus_ids, k):

"""Evaluate retrieval at rank k."""

top_k_ids = set(corpus_ids[idx] for idx in rankings[:k])

recall_any = float(any(cid in top_k_ids for cid in correct_ids))

recall_all = float(all(cid in top_k_ids for cid in correct_ids))

ndcg_score = ndcg(rankings, correct_ids, corpus_ids, k)

return recall_any, recall_all, ndcg_score

以上です。回答生成も、LLMジャッジも、QAスコアリングもありません。recall_any@5がヘッドライン数値です。

つまり:

- MemPalaceの96.6%はRecall@5です:「正解(ゴールド)のエビデンスセッションが、取得した上位5件の中に現れたか?」

- Mastraの94.87%とHindsightの91.4%はエンドツーエンドのQA精度です:「モデルが、質問に対して正しい答えを生成したか?(LLMによって判定される)」

競合がQA精度を報告していることは分かっています。というのも、彼ら自身の研究ブログが、回答モデルとして使うLLMによってスコアが変わることを引用しているからです。Mastraは、GPT-4oで84.23%、GPT-5-miniで94.87%を報告しています(https://mastra.ai/research/observational-memory)。Hindsightは、Gemini-3 Proで91.4%、OSS-120Bで89.0%、OSS-20Bで83.6%を報告しています。それらのばらつきは、実際に回答を生成して、それを判定している場合にだけ起こります。純粋なリトリーバルのスコアでは起きません。

注釈(アスタリスク)なしで、Recall@5をエンドツーエンドQA精度と並べて比較表に載せるのは、構造的な不整合で、READMEもそれを警告していません。なお重要な点として:MemPalaceは、4月7日に日付付きの訂正(retraction)ノートを公開しており、いくつかの別の問題(AAAKのトークン節約の例が間違っていた、AAAKは実際にはリトリーバルを悪化させる、「+34% palace boost」は単にメタデータのフィルタリングに過ぎない)を認めていますが、比較表におけるメトリックの不整合は言及されていません。つまり、誰もまだ指摘していないのか、それとも彼ら自身が「不整合」とは見なしていないのか、どちらかです。どちらなのか知りたいです。

  1. より深い問題:リトリーバルがもはやボトルネックではない可能性

Mastraの研究ブログは、彼らのQA精度がオラクルを上回ることを明示的に記しています(オラクルとは、ゴールドのエビデンス会話だけを与えるという設定で、そもそもリトリーバルは不要)。これは意味のある主張で、LongMemEvalでトップ層のシステムでは、もはやボトルネックはリトリーバルではないことを示唆しています。ボトルネックは、読み取り、推論、時間的推論、そして(必要なら)棄却(abstention)です。

構造的な含意:MemPalaceは、もはやフィールドのボトルネックではないベンチマークの一部分について報告しているのに、その数値を、別の部分(ボトルネックになり得る部分)で測定されているシステムと比較しています。MemPalaceがQAジャッジでどれほどのスコアを出すかは分かりません。まだ実行していないからです。しかし比較表からは、数値が比較可能であるかのように読めますが、実際にはそうではありません。問題の別々の半分を測定しているのです。

評価すべき点

私は最初、MemPalaceの本当のコア発見を検証できることを期待していました。つまり「抽出(extraction)型のメモリシステム(Mem0、Mastra、Supermemoryなど)に対して、rawな逐語テキスト + ChromaDBデフォルト埋め込みが、リトリーバルステップで勝つ」という主張です。MemPalaceは逐語の情報をすべて保持し、そこにコサイン検索を適用するだけです。この結果が再現可能で、さらに96.6%のR@5がM2 Ultraで独立に再現されている(https://github.com/milla-jovovich/mempalace/issues/39)なら、「LLMを使ってメモリを管理する」というパラダイム自体が過剰設計なのかもしれません。これは、この領域の多くの仕事(率直に言えば私自身の一部も含む)に対する、本物のネガティブ結果です。ヘッドラインの見せ方に関わらず、リーダーボード上の順位よりも多くの注目に値します。

エンジニアリングは確かに実在していて、「AAAKの訂正」のような公開された自己訂正は珍しく、良いことだと思います。だからこそ、業界が混合メトリックのリーダーボードに基づいて前提(priors)を更新する前に、私たちが本当に同じ土俵のリンゴを比較しているのかを確認したいです。

それについて私がやっていること

私は、自分のシステムに対して真の1:1のR@5を提示できるように、リトリーバルのみのランナーに取り組んでいます。最初の試みでは埋め込みの処理でタイムアウトに当たったので、数日かかりそうですが、結果がどう着地しようと、いずれにせよ持ち帰って共有します。

実際の問い

具体的には次の通りです:私が正しいのなら、benchmarks/longmemeval_bench.py内のevaluate_retrievalは一度もLLMを呼び出さず、仮説(推定)された答えをゴールドの答えと比較もしません。そして私が正しいなら、MastraとHindsightは同じlongmemeval_s分割においてQA精度を報告しており、これは別の指標です。

もし、スクリプトを読んだことがある人、またはリンクされた競合のブログを読んでいて、この読み取りに反対するなら、その旨を教えてほしいです。

submitted by /u/DepthOk4115
[link] [comments]