Skip to content

eval: prevent graph propagation from degrading negative controls #11

Description

@lipluscodex

目的

観測済みの開発benchmarkと未観測holdoutを使い、正方向加算だけではないニューロン的な活性ダイナミクスを複数比較する。relation改善を保ちながらnegative-control悪化を抑えられる一般則を探索し、勝者がなければtradeoffをそのまま記録する。

観測事実

Issue #9 / PR #10 の観測前固定benchmarkでは次の結果だった。

  • relation MRR: 0.2583 -> 0.3833、3件改善・0件悪化
  • negative control MRR: 1.0000 -> 0.7083、2件悪化
  • overall MRR: 0.7528 -> 0.6972
  • explanation path 4/4 と feedback isolation は成立

現行のfinal scoreはentry contributionへ正のgraph activationを加えるため、connected neighborが単純検索の正解nodeを押し下げることがある。

検証済みの設計材料

これらをそのまま導入するのではなく、現行の標準ライブラリのみ・決定論的MVPへ写せる最小構造として比較する。

実験プロトコル

データ分離

  • PR #10の12-case固定benchmarkをdevelopment setとして保持し、gold / fixture / resultを変更しない。
  • development setとdoc_pathが重ならない別connected subgraphから、direct_lookup / relation / negative_controlを含むholdoutを作る。
  • holdoutのfixture、gold、判定規則、候補選択規則、探索空間を結果観測前の独立commitで固定する。
  • 候補選択はdevelopment setだけで行い、holdoutは選択後に一度だけ開封する。holdout結果を見てparameterやgoldを変更しない。
  • holdoutのgold根拠はpublic source URLとendpoint / edge typeで監査可能にする。

事前固定する候補群

少なくとも次を共通interfaceで比較する。

  1. current_positive_additive - 現行方式
  2. finite_activation_budget - 伝播stepごとに活性総量を正規化
  3. lateral_inhibition - node間競合、閾値またはtop-k抑制
  4. query_conditioned_transmission - queryとedge endpoint / relation evidenceに応じて伝達率を変える決定論的方式
  5. recurrent_competition - 有限活性、減衰、抑制、query-conditioned伝達を組み合わせた反復更新

parameter grid、最大variant数、tie-break、停止条件を初回run前にmanifestへ固定する。特定query文字列やnode IDの例外は禁止する。最大24 variantsを目安とし、同じ方式の細かなparameter総当たりで件数を水増ししない。

評価

各variantについてdevelopment setで以下を保存する。

  • 全体・cohort別MRR / Hit@3 / rank delta
  • explanation endpoint / edge type一致
  • feedbackのcredited / uncredited edge変更と非対象rank変化
  • propagation step数、展開数、活性総量、収束 / 停止理由
  • current方式との差分とPareto支配関係

development候補の選択規則は、relation MRRとnegative-control MRRをcurrent方式から弱く改善し、少なくとも一方を厳密に改善するPareto候補を優先する。複数ならworst-cohort MRR、計算量、構造の単純さの順で決める。候補がなければdefaultを変更しない。

選択候補はholdoutで一度だけ評価する。holdoutでcurrent方式に対してcohort退行、path不一致、feedback汚染があればdefaultへ採用しない。

制約

  • 品質結果を良く見せるためにdevelopment / holdoutのgold、doc_path、判定規則を変更しない。
  • 既存PR eval: benchmark graph retrieval on real Li+ corpus #10 resultを上書きせず、experiment manifest、全variant result、holdout resultをversioned artifactとして残す。
  • 未学習の決定論的方式を対象とし、learned router / embedding学習は別issueとする。
  • coreは特定のLi+ nodeやD1 schemaに依存させない。fixture取得とgoldはadapter / test-data側に置く。
  • 活性ダイナミクスは計算上限と決定論的tie-breakを持つ。
  • 改善不能、tradeoff、holdout失敗も結果として成功扱いし、隠さない。
  • D1 read-only、credential redaction、schema fingerprint、known_gaps契約を維持する。

想定変更箇所

  • src/neuron_graph_rag/ - 活性更新strategyと観測可能なdiagnostics
  • tests/fixtures/ - frozen holdout、experiment manifest、versioned results
  • tests/ - dynamics invariant、determinism、dev/holdout分離、feedback isolation
  • tools/ - experiment runnerとPareto集計
  • docs/requirements.md - 活性strategy / experiment契約
  • docs/ - 全候補結果、選択理由、失敗と適用限界
  • README.md - 実行方法と結論

完了条件

  • manifestとholdoutが結果観測前commitで固定される。
  • 最大24 variantsの範囲で候補群を再現可能に比較できる。
  • 全variant結果と選択理由が機械可読・監査可能である。
  • holdoutを一度だけ評価し、採用 / 不採用を事前規則で決める。
  • 採用候補がある場合のみdefault変更を提案し、なければ実験結果だけをmergeする。

Metadata

Metadata

Assignees

Labels

doneImplementation phase finished; awaiting orchestration.enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions