CSEのカエルCSE観察ノートに戻る

H-U7x-1 追試: pair-context capacity saturation hypothesisの因果検証(100問終了後の追加研究)

区分: 因果検証(CSE 100 Challenge本体には含めない、OPEN_HYPOTHESES.mdのH-U7x-1に対する追試)。エンジン本体(chain_spike_phase0.py)は無変更、既存の設定項目pair_context_capacityのみを32/64/128/256/512で掃引した。 再現: scripts/hu7x1_capacity_sweep.py、生ログlogs/hu7x1_run_raw.txt、生データartifacts/hu7x1_capacity_sweep.json。T2=Q71と同じ文脈一意コーパス(L=8)、Ns=(4,8,12,16,24,32,48,64)、epochsは検証seed(10,11,12)で選択、テストseed(0〜4)で評価。

方法(実験前に固定)

文脈一意コーパスの真の(uncapped)ユニーク(直前2記号)文脈数「需要」を直接測定し(5 seed平均: N=4:28.0/8:55.8/12:83.8/16:111.6/24:167.6/32:223.2/48:334.2/64:445.6、ほぼ線形・傾き約6.97/N)、ratio=需要/capacityという単一の変数で、5つのcapacity値にわたる結果が同じratioで同じように振る舞うかを見た。既知のcapacity=64でのパターン(N=8:ratio0.87→recall1.00、N=16:ratio1.74→recall0.15〜0.70、N=32:ratio3.49→recall0.00〜0.43)から、ratio≤0.9を「安全」・0.9〜1.75を「遷移」・ratio≥1.75を「severe」と事前に区分した。

結果

recall(位置正答率)がratioだけで揃う

ratio cap=32(N) cap=64(N) cap=128(N) cap=256(N) cap=512(N)
≈0.87 1.000(4) 1.000(8) 1.000(16) 1.000(32) 1.000(64)
≈1.31 — 0.824(12) 0.800(24) 0.780(48) —
≈1.74 0.696(8) 0.695(16) 0.645(32) 0.624(64) —
≈2.62 0.572(12) 0.510(24) 0.477(48) — —
≈3.49 0.491(16) 0.432(32) 0.396(64) — —
≈6.97 0.317(32) 0.277(64) — — —

ratio≈0.87(安全帯の上限)は、N=4(cap32)・N=8(cap64)・N=16(cap128)・N=32(cap256)・N=64(cap512)という、Nが16倍にわたって異なる5つの構成すべてでrecall=1.000ちょうど。ratio≈1.31・1.74・2.62・3.49・6.97でも、capacityが2〜4倍違う構成間でrecallが極めて近い値になる(1.74帯: 0.696/0.695/0.645/0.624、1.31帯: 0.824/0.800/0.780)。capacity=512は今回テストした最大N=64(ratio0.87)までrecallが崩れなかった(予測どおり、崖はテスト範囲の外に押し出された)。

学習CPU(1トークンあたり)のジャンプも同じratioで起きる

capacity ジャンプが起きるN(ratio) ジャンプ前→後のCPU
32 N=8(ratio1.74)で既に跳ねている(N=4→8間は未測定の粗さ) 10.3µs→39.7µs
64 N=12(ratio1.31) 10.1µs→49.7µs
128 N=24(ratio1.31) 8.7µs→75.1µs
256 N=48(ratio1.31) 11.5µs→147.4µs
512 ジャンプなし(テスト範囲内でratioが0.87を超えない) 14〜24µsで平坦

capacity=64・128・256はいずれもratio≈1.31の地点でジャンプが始まる(recallの遷移帯と完全に一致)。capacity=512はテスト範囲内でratioが安全帯を出ないため、ジャンプも観測されなかった。

事前登録(結果を見る前に固定)の判定

予測 判定 備考
D1: capacity=32はN=8から既に崩れる ○ N=8(ratio1.74)でrecall0.696、既定capacity=64のN=8(ratio0.87、recall1.000)より明確に悪い
D2: capacity=128/256/512は、既定で崩れていたN=16・32の一部/全部が回復する ○ cap=128のN=16(ratio0.87)はrecall1.000に回復(既定cap=64では0.695)。cap=256のN=32(ratio0.87)も1.000に回復(既定cap=64では0.432)。cap=512はN=64まで全て1.000
D3: 崖の位置(ratio)がcapacityを変えても同じ値で再現される ○(強く確認) ratio≈0.87で全capacityがrecall=1.000から崩れ始める境界が一致。ratio≈1.31・1.74帯でも複数capacity間でrecallが極めて近い値(表参照)
D4: 学習CPUの跳ねる点もcapacityとともに同じ比率でシフトする ○ cap=64/128/256すべてratio≈1.31でジャンプ。cap=512はジャンプなし(ratioが範囲内で安全帯のまま)
Numericalの安全/遷移/severe帯とratio区分の予測表 ○(大筋で一致) ratio≤0.9で厳密に1.000、0.9<ratio<1.75で遷移(0.78〜0.82)、ratio≥1.75でsevere(0.22〜0.70)という区分がほぼそのまま再現された

H-U7x-1のステータス: SEALED / UNTESTED / CORRELATIONAL ONLY → CONFIRMED(mechanistic)に格上げ。pair_context_capacityが、recallの崖と学習CPUのジャンプの両方の直接の原因であり、両者は同一の変数(ratio=真の文脈需要/capacity)によって支配される、という強い機構的証拠が得られた。

観察・注意点(判断を弱める材料として正直に記録)

言えること・言えないこと

限界

(1)単一タスク(文脈一意コーパスL=8)、(2)pair_context_boostは固定、(3)capacity>512は未測定、(4)ratio帯の境界(0.9・1.75)は既定capacity=64のデータから事後的に設定した目安であり、厳密なモデルフィットではない、(5)実装(Python・NumPy)の産物。

次

H-U7x-1はCONFIRMED(mechanistic)としてOPEN_HYPOTHESES.mdに追記。100問終了後の追加研究としては、この結果(ratioという単一変数で説明できること)を使って、他のタスク(ダイヤモンドコーパス、Q69/Q78のオンライン更新)でも同様の追従が起きるかを検証する、またQ93のLLM validation addendum(実LLM API)に進む、のいずれもユーザー判断。