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)によって支配される、という強い機構的証拠が得られた。
観察・注意点(判断を弱める材料として正直に記録)
- 同じratioでも、capacityが大きい(=Nも大きい)ほうがrecallがわずかに低い、という二次的な傾向がある(ratio≈1.74帯: cap32の0.696→cap256の0.624、単調に低下)。これは「ratioだけで完全に決まる」という主張を100%ではなく「概ね」に留める理由。原因は未検証(候補: 全capacityでepochs=1が選ばれたことの相互作用、絶対的なコーパスサイズの効果、
max_nodesなど他の設定項目との交絡)。 - epochsの検証選択は全capacityでepochs=1が最良という結果になった(cand_ep=(1,3,5,10)のうち常に1が最大)。これは既定capacity=64のQ71での選択(epochs=1〜複数の可能性)と方向は一致するが、今回はNs=(4,8,12,16,24,32,48,64)という異なるグリッドで選び直している。
- capacity=32・64のCPU列で、ジャンプ後も緩やかに下降する区間がある(例: cap=32でN=24以降57〜58µsで安定、cap=64でN=16の151.9µsから緩やかに下降)。ジャンプの「量」自体はcapacityが大きいほど大きい(cap=64: 10.1→151.9µs、約15倍。cap=256: 11.5→147.4µs、約13倍)。この「ジャンプの大きさ自体もcapacityに依らずほぼ一定」という点は事前登録していなかった追加の観察。
言えること・言えないこと
- 言えること:
pair_context_capacityは、文脈一意コーパス(L=8)におけるrecallの崖と学習CPUのジャンプの直接の原因である。両者は「真の文脈需要とcapacityの比」という単一の変数で、5つの異なるcapacity値・8つのNにわたって再現可能に説明できる。Q77b/Q78で「コスト上昇と精度低下が同一原因かは未検証」としていた点は、同一の原因(capacity飽和)であるという直接証拠が得られた。 - 言えないこと: (1)この結果は文脈一意コーパス(L=8)というタスクに限定される。他のタスク(ダイヤモンドコーパス等)での崖・ジャンプがcapacityに同様に追従するかは未検証。(2)ratio≈1.74帯での二次的なcapacity依存(上記)の機構は未検証。(3)
pair_context_boost(=20固定)を変えた場合の効果は未検証。(4)capacity=512より大きい値でのrecall完全崩壊点は未測定(テスト範囲を超える)。(5)epochs=1が常に選ばれたことがratio帯の境界値に与える影響は未検証(epochsを固定して再現するかは今回やっていない)。
限界
(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)に進む、のいずれもユーザー判断。
CSE観察ノートに戻る