損失はどこにあるか — ハイブリッド経路の凍結段リプレイ (2026 年 9 月)¶
Status: measurement (計測)、探索的 (事前登録なし)、恒等性検査つき。
前のノートは、ハイブリッド経路が生の埋め込みを下回るタスクについて、較正された admission floor は主因ではないと確定した。そして損失を「admission の後。結合、融合後の段、 あるいは候補母集団のどこか」と、分離しないまま残した。
本ノートはそれを分離する。Track B 経路のすべての段を、同じ凍結した埋め込みと字面スコアの 上で、クエリごとに、3 つの埋め込みモデルで採点し、数字を読む前にリプレイを稼働中の pipeline に 3 つの方法で固定する。この結果が動機づけた理論は、姉妹ノートである 識別可能性ノート にある。ここにあるものは、出荷された 挙動ではない。
結果を 5 行で。
-
純 ranking のタスクでは差の全量が融合段にあり、その符号はモデルに依存する。 SciFact、ESGReports、TMD、ReMe、MemBench、ConvoMem では、admission と gate は何も寄与 しない (あるいは数十分の 1 点)。
中位と強いモデルでは、dense リストと lexical リストの等票の相互順位融合は、dense 順に 対して 4〜8 点および 2〜7 点負ける。最弱のモデルでは同じ融合が、同じ凍結候補の上で、 SciFact・ESGReports・TMD で勝ち、負けるのは対話 3 タスクだけである。
このラインの出発点だった符号反転は実在し、pipeline の版の産物ではない。3 モデル すべてに効く lexical 重みは無い。最良のタスク定数重みは、強い 2 モデルで 0 か 0.1、 最弱で 0.5〜1 である。 2. 害は lexical 行の割り込みではない。 負けているタスクでは、融合で top-10 に入る行の 92〜100% はすでに dense リストにあって lexical の票で持ち上げられたものであり、押し 出された関連行の 86〜100% は、自身も lexical の票を持っていた。損失の 3 分の 1 から 3 分の 2 は、会員変化を伴わない top-10 内の再順序化である。 3. Gorilla の損失は融合でなく admission、EPBench の損失は融合でなく gate。 中位の モデルで Gorilla は床で 7.1 点失い、融合で 5.2 点得る。EPBench は融合で 9.7 点得て プールサイズ gate で 10.2 点失う。その 99.6% は、gate が lexical のみの行をすべて削除し 関連 dense 行も切る、19〜20 行の 4 つのコーパス群にある。 4. QASPER は subset 検索で、3 段すべてが同時に現れる。 適格宇宙の中央値が 45 文書の ため、絶対的な床がクエリの 31.8% で top-10 を空にし、lexical 行がそれを埋め直し、gate が その埋め直しを取り除く。その正の融合差は補充効果 (飢餓したクエリで +8.4、残りで −2.2) であって、lexical アームがそこで良く順位付けている印ではない。 5. Track B レジームは gate-free ではない。 ランチャーは較正 gate と autocut を切るが、 プールサイズの heuristic gate は
do_recallの中でなお走り、小さなプールではそれが 支配的な損失になる。切り詰め層は off で良くて中立、というベンチマーク文書の記述は、 このレジームについて誤りである。影響を受ける数字とともに訂正する。
1. 計器とその 3 つの恒等性¶
リプレイ (benchmarks/frozen_replay.py) は、各コーパスを Track B ランナーとまったく同じ
やり方で格納する (同じスキーマ、同じ FTS5 トリガー、同じ dedup)。そのうえで各クエリに
ついて、想起経路が実際に持つ段を計算する。
| 段 | 何か | どう計算するか |
|---|---|---|
| S0 | dense のみの順位 | --fast 経路が採点するプリロード行列に対するコサイン、安定な argsort |
| S1 | admission floor 後の S0 | コサイン ≥ 閾値 × 0.5 の行。_search_vector が融合に渡すものと同一 |
| S2 | 相互順位融合、gate の前 | _recall_rrf の算術 (K = 60、dense リストの後に FTS リスト、安定ソート)、lexical リストは実物の _search_memories_keyword から |
| S3 | heuristic gate の後 | プールサイズの min_score による _apply_quality_gate: dense 票を持つ行はコサイン分岐、lexical のみの行は順位分岐 |
各段はタスクに候補 subset があればそれでフィルタし、ハーネス自身の compute_ndcg で
採点する。したがって S3 は、Track B ランナーが採点したであろうものである。3 つの恒等性が、
リプレイを pipeline に固定する。
- S0 は Track A に等しい。 この pipeline 上に生の埋め込みの記録を持つ 2 モデルの 11 タスクで、dense のみの段はそれを subsample の分解能の範囲で再現する (1,200 クエリの subsample で最大偏差 0.6、全クエリをリプレイした場合は 0.1 以下)。最弱のモデルの唯一の 記録は現行 pipeline より前のものなので、ここではその S0 が、検査ではなく基準になる。
- S3 は記録された Track B に等しい。 閾値を前回のアームの較正記録に固定 (
--pin_from) すると、そのノートの 7 タスクは、すべてのタスクのすべてのクエリで、記録された Track B スコアを 0.005 以内 (記録の丸め) で再現する。 - 順序は行単位で一致する。 20 クエリに 1 つは加えて稼働中の
_recall_rrfとdo_recallに通し、その順序を S2・S3 と先頭 100 行にわたって比較する。11 タスクと 3 モデルにわたる、リプレイした 33,491 クエリ中 3,226 のサンプルクエリで、不一致はゼロ だった。
2 つの選択が、top-10 に触れずにコストを抑える。
融合は作業集合上でソートする。候補 subset があれば適格行すべて、なければ dense 順位または lexical 順位が 3,000 未満の行である。その集合の外の行のスコアは高々 \((1+w)/(K+3001)\) で、集合内の上位 10 行のどれよりも小さいので、top-10 と恒等性検査は 変わらない。
そして 10,000 クエリと 5,867 クエリのタスクは、subtask ごとに高々 200 が採点されるよう、 k 個おきのクエリでリプレイする。以下の表のその行は subsample の平均であり、全クエリの走行が 厳密に再現した公表 Track B の数字ではない。
条件: 本ノートが同梱されるコミットの cpersona、Track B レジーム (rrf、
auto_calibrate、較正 gate off、autocut off、limit = コーパスサイズ)、numpy バック
エンドの --fast。埋め込みはモデル別キャッシュからで、テキストは一切エンコードして
いない。
モデルは 3 つ。jina-embeddings-v5-text-nano は非対称プロンプトつきで、閾値を前回の separation アームに固定。BAAI/bge-m3 と all-MiniLM-L6-v2 は、既定の方法でその場で較正した。
11 タスクの内訳は、較正ノートの負けている 7 タスク、3 モデルすべてが負ける対話 2 タスク (MemBench、ConvoMem)、中位のモデルが勝つ対照 2 タスク (LongMemEval、MLDR) である。
2. 段の分解、3 モデル、揃えたクエリ¶
adm = S1 − S0、fus = S2 − S1、gate = S3 − S2 で、すべて NDCG@10 の点、subtask 平均の 平均である。H と C は、融合の遷移でクエリにわたって失った / 得た discounted NDCG の平均 (C − H = fus)。「best w」は {0, 0.1, 0.25, 0.5, 0.75, 1} のうち S2 型スコアが最も高い lexical 重みで、w = 0 は dense 行を先に、lexical のみの行で尾を埋めることを意味する。
jina-embeddings-v5-text-nano (中位)
| task | S0 (= A) | S1 | S2 | S3 (= B) | adm | fus | gate | H | C | best w |
|---|---|---|---|---|---|---|---|---|---|---|
| SciFact | 82.18 | 82.18 | 76.81 | 76.81 | 0.00 | −5.37 | 0.00 | 8.46 | 3.08 | 0 |
| ESGReports | 49.11 | 49.11 | 41.19 | 41.19 | 0.00 | −7.92 | 0.00 | 11.95 | 4.03 | 0 |
| TMD | 30.04 | 30.04 | 23.59 | 23.72 | 0.00 | −6.44 | +0.12 | 9.00 | 2.56 | 0 |
| ReMe | 64.98 | 64.98 | 60.68 | 61.32 | 0.00 | −4.30 | +0.64 | 8.02 | 3.71 | 0.1 |
| MemBench | 69.78 | 69.11 | 64.71 | 65.50 | −0.67 | −4.40 | +0.78 | 8.70 | 4.30 | 0.1 |
| ConvoMem | 66.35 | 66.22 | 62.09 | 62.00 | −0.13 | −4.13 | −0.09 | 6.59 | 2.46 | 0 |
| QASPER | 48.84 | 43.96 | 46.11 | 42.43 | −4.88 | +2.15 | −3.68 | 5.50 | 7.65 | 0.1 |
| EPBench | 80.84 | 77.97 | 87.67 | 77.47 | −2.87 | +9.69 | −10.19 | 1.67 | 11.37 | 1.0 |
| Gorilla | 36.06 | 29.00 | 34.22 | 33.83 | −7.07 | +5.22 | −0.39 | 6.28 | 11.50 | 0.75 |
| LongMemEval | 77.42 | 77.42 | 80.09 | 80.76 | 0.00 | +2.67 | +0.67 | 3.27 | 5.93 | 0.5 |
| MLDR | 79.98 | 79.98 | 80.13 | 80.13 | 0.00 | +0.15 | 0.00 | 5.57 | 5.72 | 0.1 |
BAAI/bge-m3 (強)
| task | S0 (= A) | S1 | S2 | S3 (= B) | adm | fus | gate | H | C | best w |
|---|---|---|---|---|---|---|---|---|---|---|
| SciFact | 76.49 | 76.49 | 74.33 | 74.33 | 0.00 | −2.17 | 0.00 | 6.86 | 4.69 | 0.1 |
| ESGReports | 40.74 | 40.74 | 41.36 | 41.36 | 0.00 | +0.62 | 0.00 | 7.91 | 8.52 | 0.25 |
| TMD | 27.92 | 27.92 | 23.00 | 23.00 | 0.00 | −4.92 | 0.00 | 8.19 | 3.27 | 0 |
| ReMe | 61.30 | 61.30 | 58.88 | 58.88 | 0.00 | −2.42 | 0.00 | 6.68 | 4.26 | 0.1 |
| MemBench | 71.05 | 71.01 | 64.07 | 64.31 | −0.04 | −6.93 | +0.23 | 9.42 | 2.48 | 0 |
| ConvoMem | 65.04 | 65.04 | 61.64 | 61.64 | 0.00 | −3.40 | 0.00 | 6.03 | 2.63 | 0 |
| QASPER | 51.98 | 51.98 | 47.84 | 48.00 | 0.00 | −4.14 | +0.16 | 8.00 | 3.86 | 0 |
| EPBench | 87.46 | 87.46 | 90.11 | 89.94 | 0.00 | +2.66 | −0.17 | 2.61 | 5.27 | 0.75 |
| Gorilla | 34.27 | 33.16 | 33.01 | 33.01 | −1.10 | −0.15 | 0.00 | 8.29 | 8.14 | 0 |
| LongMemEval | 78.26 | 78.26 | 79.78 | 79.78 | 0.00 | +1.52 | 0.00 | 3.54 | 5.06 | 0.25 |
| MLDR | 81.33 | 81.33 | 79.80 | 79.80 | 0.00 | −1.53 | 0.00 | 5.03 | 3.50 | 0 |
all-MiniLM-L6-v2 (最弱)
| task | S0 | S1 | S2 | S3 | adm | fus | gate | H | C | best w |
|---|---|---|---|---|---|---|---|---|---|---|
| SciFact | 70.00 | 70.00 | 71.33 | 71.33 | 0.00 | +1.33 | 0.00 | 5.07 | 6.41 | 0.5 |
| ESGReports | 26.27 | 25.34 | 35.54 | 35.54 | −0.93 | +10.19 | 0.00 | 3.98 | 14.18 | 1 |
| TMD | 10.98 | 10.98 | 15.13 | 15.13 | 0.00 | +4.16 | 0.00 | 4.83 | 8.98 | 1 |
| ReMe | 60.60 | 60.48 | 59.20 | 57.70 | −0.12 | −1.28 | −1.50 | 6.20 | 4.92 | 0.1 |
| MemBench | 66.15 | 64.92 | 62.60 | 62.79 | −1.23 | −2.32 | +0.19 | 8.07 | 5.75 | 0.1 |
| ConvoMem | 61.26 | 60.96 | 59.53 | 59.47 | −0.30 | −1.43 | −0.07 | 5.59 | 4.16 | 0.1 |
| QASPER | 40.37 | 38.30 | 42.69 | 40.15 | −2.07 | +4.38 | −2.53 | 6.05 | 10.44 | 0.75 |
| EPBench | 61.36 | 51.12 | 76.64 | 57.70 | −10.24 | +25.52 | −18.94 | 0.57 | 26.08 | 1 |
| Gorilla | 26.50 | 8.29 | 29.02 | 26.59 | −18.21 | +20.73 | −2.43 | 0.63 | 21.37 | 0.75 |
| LongMemEval | 67.65 | 67.65 | 76.79 | 75.62 | 0.00 | +9.14 | −1.17 | 2.66 | 11.80 | 1 |
| MLDR | 72.75 | 72.75 | 79.64 | 79.25 | 0.00 | +6.89 | −0.39 | 3.31 | 10.20 | 1 |
モデルを横断して読むと、次のようになる。
- 純 ranking の 6 タスクは中位と強いモデルで融合で負け、強いモデルは QASPER と MLDR でも 負ける。強いモデルの admission floor はコーパスのほぼ全体を通す (そのコサインは較正が置く 閾値より高い位置にある) ので、強いモデルではすべてが融合である。
- 最弱のモデルでは同じ融合が SciFact (+1.3)、ESGReports (+10.2)、TMD (+4.2)、QASPER (+4.4)、 LongMemEval (+9.1)、MLDR (+6.9) で勝ち、負けるのは ReMe、MemBench、ConvoMem だけである。 そのコサインは低いので較正された床が深く切り、Gorilla は admission だけで 18.2 点、 EPBench は 10.2 点失う。そのうえ、プールサイズ gate が EPBench からさらに 18.9 点取る。
- 最良のタスク定数 lexical 重みは、強い 2 モデルの各々で 11 タスク中 8 で 0 か 0.1、最弱では 11 中 8 で 0.5 以上である。強いモデルがなお lexical の票を欲しがるタスクは、それが本当に dense アームを訂正するもの (EPBench、LongMemEval、強いモデルの ESGReports) であり、そこでも 強いモデルでは最良の重みは 1 未満である。
- 3 タスクが、揃えた候補の上で 3 モデルにわたり符号を変える。SciFact (+1.33 / −5.37 / −2.17)、TMD (+4.16 / −6.44 / −4.92)、ESGReports (+10.19 / −7.92 / +0.62) である。QASPER の融合差が中位のモデルで正なのは、第 4 節に 述べる補充のためだけで、何も飢餓しない強いモデルでは 4.1 の単純な融合損失になる。
3. 融合段は top-10 に何をするか¶
リプレイは、S1 と S2 のあいだの top-10 会員変化をすべて分類する。件数は subtask 合計、 百分率は各行の機序の割合である。
| task | model | 侵入者: lexical のみ | 侵入者: dense リストにあり lexical 票で持ち上げ | 関連行の退出: lexical 票なし | 関連行の退出: lexical 票あり |
|---|---|---|---|---|---|
| SciFact | jina | 35 | 387 (91.7 %) | 3 | 21 (87.5 %) |
| SciFact | bge-m3 | 0 | 542 (100 %) | 8 | 14 (63.6 %) |
| SciFact | MiniLM | 23 | 455 (95.2 %) | 6 | 15 (71.4 %) |
| ESGReports | jina | 8 | 124 (93.9 %) | 2 | 12 (85.7 %) |
| ESGReports | bge-m3 | 1 | 133 (99.3 %) | 1 | 6 (85.7 %) |
| ESGReports | MiniLM | 9 | 112 (92.6 %) | 1 | 6 (85.7 %) |
| TMD | jina | 358 | 5,361 (93.7 %) | 0 | 1,472 (100 %) |
| TMD | bge-m3 | 1 | 6,002 (100 %) | 0 | 1,352 (100 %) |
| TMD | MiniLM | 671 | 7,593 (91.9 %) | 0 | 760 (100 %) |
| ReMe | jina | 25 | 2,767 (99.1 %) | 8 | 53 (86.9 %) |
| ReMe | bge-m3 | 14 | 2,879 (99.5 %) | 13 | 54 (80.6 %) |
| ReMe | MiniLM | 364 | 2,333 (86.5 %) | 5 | 48 (90.6 %) |
| MemBench | jina | 2,005 | 1,874 (48.3 %) | 121 | 183 (60.2 %) |
| MemBench | bge-m3 | 976 | 2,727 (73.6 %) | 170 | 344 (66.9 %) |
| MemBench | MiniLM | 3,418 | 1,487 (30.3 %) | 130 | 218 (62.6 %) |
| ConvoMem | jina | 733 | 1,252 (63.1 %) | 9 | 98 (91.6 %) |
| ConvoMem | bge-m3 | 17 | 1,775 (99.1 %) | 10 | 96 (90.6 %) |
| ConvoMem | MiniLM | 1,187 | 1,254 (51.4 %) | 7 | 109 (94.0 %) |
(SciFact、ESGReports、TMD、ReMe の jina 行は全クエリの走行から、他は揃えた subtask あたり 200 の走行から。)
純 ranking の 4 タスクでは、3 モデルのどれでも、侵入者が dense アームの見ていない行で あることはほとんどない。dense アームがより下位に並べていた行を、lexical の票が関連行の上へ 持ち上げたのである。その関連行もたいてい自身の lexical 票を持っている。ただし、より弱い ものを。
同じ機序が両方向に働く。融合が SciFact と TMD で勝つ最弱のモデルでも、top-10 に入る行の 92〜95% は、なお lexical 票で持ち上げられた dense 行である。そこでは、持ち上げられた行が より多く関連行である。モデルで変わるのは dense 候補の lexical による並べ替えが正しいか どうかであって、lexical のみの行が割り込むかどうかではない。
コーパスが 1〜2 桁大きい MemBench と ConvoMem は、中位のモデルで lexical のみの割合が大きく、 強いモデルはその大半を消す。
会員分類は、損失の一部も見落とす。関連行が top-10 に留まりながら下がるクエリが、融合損失の SciFact で 55%、ESGReports で 31%、TMD で 7%、ReMe で 64% を占める (中位のモデル)。 したがって lexical のみの候補を抑制しても、負けているタスクは修復されない。姉妹ノートが、 何なら修復するかを導出する。
lexical 重みの sweep は、同じことを反対側から示す (各重みでの平均 NDCG@10、中位 / 強い / 最弱のモデル)。
| task | w = 0 | 0.1 | 0.25 | 0.5 | 0.75 | 1 (出荷) |
|---|---|---|---|---|---|---|
| SciFact | 82.18 / 76.49 / 70.00 | 81.32 / 77.10 / 70.77 | 80.72 / 76.81 / 70.75 | 79.78 / 75.51 / 71.77 | 77.66 / 75.08 / 71.02 | 76.81 / 74.33 / 71.33 |
| TMD | 30.04 / 27.92 / 10.98 | 29.59 / 27.92 / 11.12 | 29.00 / 27.42 / 11.82 | 27.55 / 26.38 / 12.81 | 25.46 / 24.85 / 14.01 | 23.59 / 23.00 / 15.13 |
| MemBench | 69.49 / 71.02 / 65.88 | 69.75 / 70.41 / 66.49 | 69.09 / 68.77 / 65.88 | 67.43 / 66.69 / 64.59 | 65.98 / 65.14 / 63.59 | 64.71 / 64.07 / 62.60 |
| ConvoMem | 66.32 / 65.04 / 61.22 | 65.77 / 64.76 / 61.42 | 65.12 / 64.19 / 61.31 | 63.98 / 63.30 / 60.83 | 62.80 / 62.32 / 59.95 | 62.09 / 61.64 / 59.53 |
| EPBench | 81.98 / 87.46 / 67.34 | 83.85 / 88.70 / 69.78 | 85.94 / 89.66 / 72.55 | 87.21 / 90.03 / 74.84 | 87.58 / 90.26 / 76.03 | 87.67 / 90.11 / 76.64 |
| LongMemEval | 77.42 / 78.26 / 67.65 | 79.58 / 79.64 / 71.92 | 80.30 / 80.21 / 75.11 | 80.63 / 80.09 / 75.72 | 80.23 / 80.05 / 76.43 | 80.09 / 79.78 / 76.79 |
中位と強いモデルでは、負けているタスクは単調に下がり (中位モデルの ESGReports は非単調な段 が 1 つあり、0.5 で 43.62 に対し 0.75 で 43.71、それでも 0 で最大)、勝っているタスクは 少なくとも一方で 1 未満に頂点がある。最弱のモデルでは SciFact と TMD は重みとともに上がり、 MemBench と ConvoMem はなお 0.1 で頂点になる。
族を跨いでも、モデルを跨いでも、正しい単一の重みは無い。これが、このラインが除こうとした 固定重みの問題である。同時に sweep は、強いモデルの損失のどれだけを小さな定数が回収するかも 示している。
4. 融合ではない 2 つの機序¶
admission は小さな宇宙を空にする。 QASPER の候補ファイルは各クエリを 1 本の論文に 制限する。適格文書は 7〜294、中央値 45 である。その宇宙に対して較正された床 (中位のモデルで 0.252) は、1,335 クエリ中 425 (31.8%) で admitted 行を 10 未満にし、66 では 0 にする。 その条件で分けると:
| QASPER、中位のモデル | クエリ | S0 | S1 | S2 | S3 | fus |
|---|---|---|---|---|---|---|
| admitted 10 未満 | 425 | 52.83 | 39.48 | 47.92 | 39.93 | +8.44 |
| admitted 10 以上 | 910 | 46.61 | 46.61 | 44.45 | 45.05 | −2.16 |
| admitted なし | 66 | 36.46 | 0.00 | 29.72 | 0.96 | +29.72 |
QASPER での lexical アームの寄与は、admission が空にしたリストの埋め直しである。dense リストが無傷なところでは、融合は他所と同様に負ける。
Gorilla の中位モデルでの損失は、subset なしの同じ機序である。その tensorflow 群は 55 行で 床は 0.445、admission だけで 7.1 点失う。最弱のモデルのコサインはさらに低く、較正された床は より深く切るので、そこでは Gorilla は admission で 18.2 点、EPBench は 10.2 点失う。強い モデルはコサインが高く床がほぼすべての行の下に来るので、どちらの効果もそこには現れない。
gate は小さなプールで lexical アームを削除する。 Track B ランチャーは
CPERSONA_FUSED_GATE_ENABLED=false と CPERSONA_AUTOCUT_ENABLED=false を設定するが、
do_recall は関係なく _apply_quality_gate を適用する。較正 gate が無ければ、プールサイズ
の閾値 \(m(P)=0.5-0.3\min(1,\log(P+1)/\log 500)\) を使う。
lexical のみの行の融合スコアは \(1/(61+r_l)\) で、gate はそれを \(3m(P)/61\) と比較する。 したがって \(m(P)>1/3\) になると、lexical のみの行は 1 行も生き残らない。すなわち 30 行以下のプールでである。196 行ではカットは lexical 順位 21、500 行以上では順位 40 に 落ちる。コサイン分岐は dense 票を持つ行に \(m(P)\) を適用し、小さなプールではそれが admission floor を上回って、関連 dense 行も取り除く。
9 つのコーパス群が 19〜1,967 行にわたる EPBench が、その帰結を示す (中位のモデル、群別)。
| EPBench 群 | pool | S2 | S3 | gate |
|---|---|---|---|---|
| default, Claude, short | 19 | 91.18 | 51.51 | −39.67 |
| default, GPT-4o, short | 20 | 92.92 | 67.47 | −25.45 |
| sci-fi, Claude, short | 20 | 89.83 | 57.20 | −32.63 |
| world-news, Claude, short | 20 | 91.72 | 53.01 | −38.71 |
| default, Claude, long | 196 | 76.48 | 75.91 | −0.57 |
| 他の 4 群 | 196〜1,967 | — | — | 0.00 〜 −0.01 |
19〜20 行の 4 群が、タスクの gate 損失の 99.6% を担う。このモデルでの EPBench の公表 Track B の数字 (生の埋め込みより 3.4 点下) は、生の埋め込みより 6.8 点上の融合スコアを gate が反転させたものである。最弱のモデルでは gate は EPBench から 18.9 点を取り、admission が取った 10.2 点の上に重なる。
強いモデルでは、同じ群の損失は合計 0.17 に過ぎない。その dense 行は \(m(P)\) をはるかに 超えるコサインを持って top-10 を支配するので、削除された lexical のみの行はめったにそこに いなかった。したがって gate はレジームの固定費ではなく、モデルとプールに依存する費用であり、 文書化せずに残すには最悪の種類である。
ベンチマーク README のレジーム記述 (切り詰め層は off、良くて中立) は両方の点で誤りであり、 訂正する。heuristic gate もバイパスするようレジームを再定義するかは別の決定である (公表済み の小コーパスの数字が動く)。下された時点で、ベンチマーク文書に記録する。
5. 最大コサインが予測しないもの¶
融合が害するのが dense アームのすでに良く答えているクエリだけなら、dense アームの確信度に 対するクエリ水準のスイッチが、それを修復するはずである。
リプレイは各クエリについて、コーパス上の最大コサインを記録する。四分位に分けると、融合差は 両方の族で最下位の四分位で大きさが最大である (中位のモデル: SciFact は Q1 で −11.5 に対し Q4 で −4.0、EPBench は +30.4 に対し +5.4)。
1 パラメータのスイッチ (最大コサインが τ 以上なら dense 順、そうでなければ融合順) は、標本内 で最良の τ において、中位のモデルで 2 つの定数方策の良い方に対して高々 0.09 (SciFact)、 0.83 (QASPER)、0.55 (Gorilla) を得るだけで、他では 0 である。強いモデルでは、最大の利得は 0.78 (Gorilla) である。
per-query のオラクル (クエリごとに 2 つの順序の良い方を選ぶもの) は、すべてのタスクで どちらの定数より 3〜6 点上にある。クエリごとに決めうる情報は存在する。最大コサインは、それを 運ばない。姉妹ノートがその理由を与える。決定は dense スコアで条件付けた lexical の証拠に 依存し、それはアーム別のどんな統計量でも決まらない。
6. 以前のノートへの訂正¶
- 較正ノートは損失を「admission の後」と、場所を特定せずに残した。いま特定された。純 ranking のタスクでは融合、Gorilla では床、EPBench では gate、QASPER では 3 つすべてで ある。
- 較正ノートは EPBench と Gorilla の損失を、dense アームの飢餓と読んだ。飢餓は実在する (第 4 節) が、EPBench では gate の方が 3 倍大きい項である。
- 最初の導出の、dense アームが確信しているとき混合則が「lexical の票を黙らせる」という 注記は、行のスコアを述べたもので、順序を述べたものではない。姉妹ノートがそれを訂正し、 規則がアームについて対称であることを示す。
- Gorilla は構造的な lexical の害のタスクだという以前の予想は、中位のモデルで反証された (融合が Gorilla を 5 点助ける)。最弱のモデルでも反証された (20 点助ける)。強いモデルでは、 融合はそこで中立である。
- モデル強度による符号反転は、以前は異なる pipeline 版の走行からしか知られていなかったが、 揃えた候補の上で確認された。SciFact、TMD、ESGReports は最弱のモデルで融合により勝ち、強い 2 モデルで負け、QASPER の利得と損失の均衡は、モデル強度とともに正から負へ動く。最初の 導出が予測したとおりである。
7. これが設計に渡すもの¶
- 設計する対象はアームの重みではなく、dense スコアで条件付けた lexical の証拠 (姉妹 ノート第 4 節) である。アームごとの較正は、それを供給できない。重みを当てはめずに供給 できる構成の 1 つがそこの第 5 節の同時密度比で、その前提が次の計測である。
- 2 つの損失は、適応性を要しない。予約不変条件 (適格な候補がある限り、どの段も \(\min(10,n)\) 行未満にしない) が QASPER・Gorilla・EPBench の機序を取り除く。そして プールサイズ gate の小プールでの挙動は、調整するのではなく取り除くべき欠陥である。
-
小さな定数の lexical 重みは、中位と強いモデルの純 ranking 損失の大部分を戻すが、最弱の モデルの利得の大部分を失わせる。3 つすべてに効く定数は無く、これが固定重みの問題の 計測された形である。
したがって適応層の標的は、per-query オラクルとの差とモデル間の差の両方である。成功条件 (両端モデルで 22 タスク平均が生の埋め込みを上回ること) は、admitted リストや gate 後の リストではなく、dense 順に対して評価しなければならない。 4. 次の計器は行キー付きダンプである。行ごとに、両方の生スコア、両方の null 超過確率、 アームの存否と打ち切り、関連ラベル、各段での順位を持つ。ここの per-query 要約では、 姉妹ノートの反転条件も条件付き証拠の推定も評価できない。
8. 再現¶
# 中位のモデル、閾値を前のノートの記録された較正アームに固定
LMEB_DIR=~/lmeb python benchmarks/frozen_replay.py \
--model_path jinaai/jina-embeddings-v5-text-nano \
--emb_cache_dir ~/lmeb/embcache_jinanano --trust_remote_code --default_task retrieval \
--pin_from ~/lmeb/trackb_cal_jinanano_separation_r1 \
--tasks LMEB_SciFact,ESGReports,QASPER,TMD,EPBench,ReMe,Gorilla,MemBench,ConvoMem,LongMemEval,MLDR \
--out_dir replay_jinanano --max_queries_per_subtask 200
# 強いモデル、その場で較正
LMEB_DIR=~/lmeb python benchmarks/frozen_replay.py \
--model_path BAAI/bge-m3 --emb_cache_dir ~/lmeb/embcache_bgem3_p1 --emb_cache_model BAAI/bge-m3 \
--tasks <same list> --out_dir replay_bgem3 --max_queries_per_subtask 200
# 最弱のモデル
LMEB_DIR=~/lmeb python benchmarks/frozen_replay.py \
--model_path sentence-transformers/all-MiniLM-L6-v2 --emb_cache_dir ~/lmeb/embcache_minilm \
--emb_cache_model sentence-transformers/all-MiniLM-L6-v2 \
--tasks <same list> --out_dir replay_minilm --max_queries_per_subtask 200
# 第 2、3、5 節の表
REPLAY_ROOT=. python benchmarks/replay_summary.py jinanano=jina-v5-nano bgem3=bge-m3 minilm=MiniLM
REPLAY_ROOT=. python benchmarks/replay_query_analysis.py jinanano=jina-v5-nano bgem3=bge-m3 minilm=MiniLM
--max_queries_per_subtask を省くと、すべてのクエリをリプレイする。省いた中位のモデルの
走行は、記録された 7 つの Track B の数字を 0.005 以内で再現した。
per-query の記録 (<task>.queries.jsonl) は各クエリについて、各段の NDCG@10、候補 subset の
内外での admitted リストと lexical リストの長さ、各アームでの関連行の順位、最大コサイン、
top-10 の移動を持つ。
9. 副産物¶
- 重複したコーパス行は格納時に畳まれる。 出荷されている dedup が要求するとおりである。 QASPER は 65,300 行のうち 20,198 を、ConvoMem は 500,221 行のうち 490,432 を格納する。 Track A はファイル全体を採点する。これが、それらのタスクで S0 が Track A と数百分の 1 だけ 違う理由であり、2 つのトラックを行水準で比較するなら格納された母集団を使わねばならない 理由である。
- 現行コードでの MLDR の Track B は中位のモデルで 80.13 で、2.4.40 のハーネスで記録された 78.0 に対する値である。較正ノートで指摘したハーネス版のあいだのドリフトは、このタスクでも 実在し、ここでは扱わない。
- lexical アームの
LIKEフォールバック (3 文字以上の語が無いクエリ) は、リプレイした 33,491 クエリのどれでも発火しなかった。ここでのすべての lexical リストは、bm25 のリストで ある。