HumanEval transfer: trained-vs-untrained-merge paired test (p=0.80, n.s.) -- transfer gain is the merge itself, not trained content
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -278,10 +278,13 @@ changes with scale, and per-task tuning remains unavoidable.
|
|||||||

|

|
||||||
|
|
||||||
MBPP-trained implants applied unchanged: **HumanEval** overall 58.5%→66.5%
|
MBPP-trained implants applied unchanged: **HumanEval** overall 58.5%→66.5%
|
||||||
(loop k=4, p=0.011; hard 0→31.6%); notably the *untrained* merge already
|
(loop k=4, p=0.011 vs base; hard 0→31.6%). The decisive control: the
|
||||||
reaches 64.6% and the transferred pause adapter 66.5% (hard 38.9%) — the
|
*untrained* merge already reaches 64.6%, and trained-vs-untrained is **not
|
||||||
transfer is substrate-shaped (a generically useful perturbation+content
|
significant** (paired McNemar at k=2, 9 vs 7 discordant, p=0.80). What
|
||||||
mode), not task-memorized. **Rust/MultiPL-E** (Python-trained, different
|
transfers significantly is the *merge perturbation itself*, not the
|
||||||
|
MBPP-trained content — the cleanest evidence that off-distribution value is
|
||||||
|
substrate-shaped rather than task-memorized. (The transferred pause adapter
|
||||||
|
reaches 66.5%, hard 38.9%, consistent with the same reading.) **Rust/MultiPL-E** (Python-trained, different
|
||||||
language, compile-run-verified): hard 8.0%→24.0% (p=0.125 at n=25 —
|
language, compile-run-verified): hard 8.0%→24.0% (p=0.125 at n=25 —
|
||||||
directionally consistent, underpowered). **Blocksworld** MBPP-transfer:
|
directionally consistent, underpowered). **Blocksworld** MBPP-transfer:
|
||||||
hard 0→14.3% (task-trained: 43%). Content transfers where the substrate's
|
hard 0→14.3% (task-trained: 43%). Content transfers where the substrate's
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
- stack-train k=4 vs distill k=1, hard: A-only 10, B-only 6, n=55, p=0.4545 (n.s.)
|
- stack-train k=4 vs distill k=1, hard: A-only 10, B-only 6, n=55, p=0.4545 (n.s.)
|
||||||
- HumanEval loop k=4 vs k=0, overall: A-only 5, B-only 18, n=164, p=0.01062 (**significant**)
|
- HumanEval loop k=4 vs k=0, overall: A-only 5, B-only 18, n=164, p=0.01062 (**significant**)
|
||||||
- HumanEval distill k=1 vs k=0, overall: A-only 7, B-only 17, n=164, p=0.06391 (n.s.)
|
- HumanEval distill k=1 vs k=0, overall: A-only 7, B-only 17, n=164, p=0.06391 (n.s.)
|
||||||
|
- HumanEval trained vs UNTRAINED merge (k=2), overall: A-only 7, B-only 9, n=164, p=0.8036 (n.s.)
|
||||||
- Rust loop k=4 vs k=0, overall: A-only 11, B-only 5, n=154, p=0.2101 (n.s.)
|
- Rust loop k=4 vs k=0, overall: A-only 11, B-only 5, n=154, p=0.2101 (n.s.)
|
||||||
- Rust loop k=4 vs k=0, hard: A-only 0, B-only 4, n=25, p=0.125 (n.s.)
|
- Rust loop k=4 vs k=0, hard: A-only 0, B-only 4, n=25, p=0.125 (n.s.)
|
||||||
|
|
||||||
|
|||||||
@@ -305,6 +305,12 @@
|
|||||||
"b_only": 17,
|
"b_only": 17,
|
||||||
"p": 0.06391465663909912
|
"p": 0.06391465663909912
|
||||||
},
|
},
|
||||||
|
"HumanEval trained vs UNTRAINED merge (k=2), overall": {
|
||||||
|
"n": 164,
|
||||||
|
"a_only": 7,
|
||||||
|
"b_only": 9,
|
||||||
|
"p": 0.803619384765625
|
||||||
|
},
|
||||||
"Rust loop k=4 vs k=0, overall": {
|
"Rust loop k=4 vs k=0, overall": {
|
||||||
"n": 154,
|
"n": 154,
|
||||||
"a_only": 11,
|
"a_only": 11,
|
||||||
|
|||||||
@@ -183,6 +183,9 @@ def main():
|
|||||||
arm_maps["HumanEval loop k=4"][0], None),
|
arm_maps["HumanEval loop k=4"][0], None),
|
||||||
("HumanEval distill k=1 vs k=0, overall", he_tr0,
|
("HumanEval distill k=1 vs k=0, overall", he_tr0,
|
||||||
arm_maps["HumanEval distill k=1"][0], None),
|
arm_maps["HumanEval distill k=1"][0], None),
|
||||||
|
("HumanEval trained vs UNTRAINED merge (k=2), overall",
|
||||||
|
per_item("eval_humaneval_untrained.json", 2),
|
||||||
|
per_item("eval_humaneval_trained.json", 2), None),
|
||||||
]
|
]
|
||||||
rust0 = arm_maps["Rust transfer k=0"][0]
|
rust0 = arm_maps["Rust transfer k=0"][0]
|
||||||
rust4 = arm_maps["Rust transfer k=4"][0]
|
rust4 = arm_maps["Rust transfer k=4"][0]
|
||||||
|
|||||||
Reference in New Issue
Block a user