信頼できるメモリのベンチマーク 決定的 · 事前登録 · self-run

指標の問題

Recall@k は自信満々の誤答を 正直な「わかりません」と区別できない。

対称的なスコアはすべてに答えるメモリに報酬を与えます —— store が支えられない質問まで含めて。VeriBench はデプロイが実際に支払うようにメモリを採点します:NET(λ) = (正解 − λ·誤答) / n。λ は沈黙に対する誤答の申告コストです。法務・医療は高い λ で、ブレインストーミングは低い λ で運用します。ひとつの数字を λ ∈ {1, 2, 5, 10} で掃引 —— どの実行よりも前に固定。

LLM 審判なし・ネットワークなし・リーダーボード劇場なし —— 1 コマンド、生の JSON をリポジトリにコミット。

棄権正直
回答不能プローブ
「Meridian 金庫のアクセスコードは?」
store は回答を支えられない —— 閾値なしのメモリはそれでも最近傍を返します。
VeriBench はその回答に −λ を課し、棄権は 0 です。
§01なぜ新しいベンチマークか

メモリのベンチマークは「どれだけ返るか」を測ります。「誤って返るもの」に値段を付けるものはありません。

コーパスの回答可能な半分では、ゲート付きメモリと生のベクトルストアはほぼ同一の検索結果を返します —— recall@k は違いを見ません。違いが現れるのは store が答えられない質問です:棄権閾値のないメモリは、それでも自信満々に最近傍を返します。本番ではそれは捏造された回答であり、対称的なベンチマークでは不可視です。

NET(λ) は構造的にそれを可視化します:正解は +1、誤答は −λ、沈黙は 0。損益分岐の精度は λ/(1+λ) —— Verimem の SLA ノブが store を合わせるのと同じ閾値です。ベンチマークは、運用者が調整に使うまさにその数字で store を測ります。

§02プロトコル —— 数字より先に固定

01事前登録

仮説・指標・λ 掃引・反証条件は、どの実行よりも前に PREREGISTRATION.md にコミットされます。採点と結果マッピングは先に書かれユニットテスト済み —— 後から指標を選んで有利な結果を作ることはできません。

02外部コーパス

私たちが書いていない実データ:HaluEval QA と SQuAD v2(回答可能+回答不能の互いに素なスプリット)。正解判定は id で決定可能な検索 —— ループのどこにも LLM 審判はいません。

03失敗すべき対照

シャッフルした store は深く負に落ちなければならず(実際:NET(1) = −0.94)、閾値を切った同一検索は回答不能で捏造しなければなりません(実際:誤答 100 件)。対照が通ればベンチマークが壊れている —— そのために対照があります。

04同じ土俵

直接対決は両エンジンで同一の embedder(multilingual-e5-base)をオフラインで使用。mem0 は raw-store モード(その LLM は一度も呼ばれません —— この軸は省略ではなく申告によりスコープ外です)。

§03結果 —— HaluEval QA、300 プローブ(回答可能 200 + 回答不能 100)
システムcoverageNET(1)NET(2)NET(5)NET(10)λ からネガティブ
Verimem · 閾値 τ=0.8(プロダクト既定) 1824114 0.62 +0.593 +0.580 +0.540 +0.473 45.5
mem0 2.0.11 · 出荷状態(閾値なし) 2001000 1.00 +0.333 0.000 −1.000 −2.667 2.0
mem0 + 後付け閾値 0.75(評価セットで調整) 1660134 0.55 +0.553 +0.553 +0.553 +0.553 決して
同じ store、閾値 OFF(τ=0 対照) 1921008 0.97 +0.307 −0.027 −1.027 −2.693 1.9
シャッフル対照(sanity:失敗すべき) 52878 0.97 −0.940 −1.897 −4.767 −9.550 0.02

両方向から正直に読んでください:出荷状態の mem0 は λ=2 を超えるとネットで負に転じます —— 回答不能の半分で 100 件の捏造回答。Verimem のプロダクト既定は λ≈45 まで正のまま。しかし閾値はどのエンジンにも後付けできますこの評価セットで調整した閾値なら mem0 はフラットな +0.553 に達し —— このコーパスでは λ≥5 で私たちの既定を上回ります。残る違い:エンジン自体は閾値を同梱しない、後付け閾値はテストセット上で選ばれた、そしてフラットな線は確信のないものには一切答えないことを意味します —— coverage 0.55 対 0.62、λ=1 で正解 182 対 166。

§03bSQuAD v2 —— より難しいコーパス、率直に
システムcoverageNET(1)NET(2)NET(5)NET(10)λ からネガティブ
Verimem · 閾値 τ=0.8(プロダクト既定) 1634988 0.71 +0.380 +0.217 −0.273 −1.090 3.3
Verimem · 最良閾値 0.85(評価セットで調整) 987195 0.35 +0.303 +0.280 +0.210 +0.093 14.0
mem0 2.0.11 · 出荷状態(閾値なし) 2001000 1.00 +0.333 0.000 −1.000 −2.667 2.0
mem0 + 後付け閾値 0.80(評価セットで調整) 440256 0.15 +0.147 +0.147 +0.147 +0.147 決して

SQuAD のディストラクタ文はスコア帯を圧縮し、それが表れています:プロダクト既定では crossover が λ≈3.3 まで下がり、λ=10 で NET を正に保つには coverage 0.35 を支払います。棄権はノブであり、魔法ではありません —— 正直さの値段はコーパスが決めます。誤りは、この表を隠すことです。

§04検索の先へ —— recall@k が表現できない軸

A実コーパス軸

上の表:外部データ、回答可能+回答不能、閾値オン vs オフ vs 競合、シャッフル対照。捏造が値付けされたイベントになる軸です。

B因果軸

疑似相関を忠実に裏付けた store は do(X) の質問に自信満々に誤答し —— λ=1 でもネットで負になります。来歴は因果ではありません。両者を区別できないベンチマークは、その混同に報酬を与えます。

C敵対軸

共謀(N 個の ID、単一のフィード)+信頼されたスリーパー。ネットで正を保つのは2 チャネルの信頼ポリシー —— 独立した裏付け結果フィードバック —— だけ。単独チャネルはそれぞれ 2 つの攻撃のうち片方に敗れます。Verimem の 2 チャネル source-trust の背後にある軸です。

§05実行する —— 1 コマンド、生ファイルはコミット済み

全軸・決定的・API キー不要

git clone https://github.com/aureliocpr-ctrl/verimem && cd verimem
pip install -e .
python -m benchmark.veribench.run_all   # every axis, one reproducible entrypoint

仕様・事前登録・すべての生の結果 JSON はリポジトリの benchmark/veribench/benchmark/results/ にあります。競合の参加を歓迎します —— mem0 アダプタが動く実例としてツリー内にあります。あなたのエンジンの公式アダプタを PR してください。同じ土俵で実行します。