Index
2026-09-22 — Experiment

rf-v3 자기쓰기 교차 완성 + 지시문 쓰기 주입 A/B 최종 결과

scene_bench | writer/reader 분리 캠페인 마무리 — 5가족×3모델 15칸, API $0

TL;DR

15/15
rf-v3 교차 상승 칸
+41.0pp
routine 32B 최대 상승
+23.6pp
Gemma4 tagmem D1 (주입)
+0.5pp
vis-pure D1 (주입, 무반응)

1 배경 / 목적

사용자 지적: "rf-v3만 교차를 안 했다." 기존 writer×reader 교차 실험(260921, 4가족×3모델 12칸)은 flash가 쓴 메모리를 오픈 모델이 읽었을 때 tagmem이 vis-pure를 이기는 것을 보였지만, rf-v3는 대상에서 빠져 있었다 — cross_subtypes.json의 writer 필드가 리더 자신으로 적혀 있어 "자기 쓰기 vs 남의 쓰기" 비교가 애초에 불가능했다.

동시에 260921에 실행 중이던 지시문 쓰기 주입 A/B(잡 143679·143680, restore 100편)가 완료돼 최종 수치를 정리한다 — writer에게 GT 실행 단위(task_description)를 직접 주면 (a) D1 변별력이 사라지는지 (b) 텍스트 채널 없는 vis-pure는 얼마나 손해인지 (c) D2는 불변인지가 질문이었다.

2 작업 내용

rf-v3 교차: flash가 쓴 rf-v3 메모리를 오픈 3모델(32B·Gemma4·Qwen3.8)로 재사용해 읽기만 바꿈. 잡 146458~146460, API $0 — 메모리 재사용 읽기 전용이라 GPU 비용 없음.

지시문 주입 A/B: 잡 143679(32B)·143680(Gemma4), restore 100편, SBENCH_WRITER_TASK=1(writer 프롬프트에 subtask의 GT task_description을 노출). 대조군 = 같은 두 모델의 final_results 기존 값.

3 결과

rf-v3 교차 — 자기쓰기 → flash쓰기 (잡 146458~146460, $0)

가족32BGemma4Qwen3.8
find v1.0.088→.331 (+24.4).190→.378 (+18.8).158→.358 (+19.9)
find v1.2.063→.292 (+23.0).152→.326 (+17.4).130→.313 (+18.3)
restore.005→.076 (+7.0).039→.098 (+6.0).033→.104 (+7.0)
routine.065→.474 (+41.0).410→.494 (+8.4).355→.494 (+13.9)
resume.037→.124 (+8.7).056→.056 (0.0).155→.211 (+5.6)
15칸 전부 상승. writer를 통제한 뒤에도 restore에서 tagmem(.128~.169) > rf-v3(.076~.104) > vis-pure(.025~.062) 순위가 유지된다 — 기존엔 rf-v3가 자기쓰기라 이 비교가 불가능했다.

지시문 쓰기 주입 A/B (잡 143679·143680, restore 100편, $0)

모델전략전체 ΔD1(acted)D2(observed)
32Btagmem+10.7pp.090→.325.005→.015
rf-v3+6.5pp.009→.179.000→.000
vis-pure+0.7pp.037→.052.010→.015
blind·frames0.0pp불변불변
Gemma4tagmem+23.6pp.042→.538.041→.031
rf-v3+22.8pp.075→.580.021→.005
vis-pure+0.5pp.085→.085.010→.036
D1만 폭등하고 D2는 불변 — 지시문에 답이 있는 칸만 오른다(누출 경로가 D1 하나임을 검증). 텍스트 채널이 있는 전략만 이득(rf-v3·tagmem +6~24pp vs vis-pure +0.5pp) — vis-pure는 KEEP/DROP 프레임 번호만 출력해 문장을 못 남긴다(rollforward.py:219~235).

4 Takeaway

의미

1. 지시문 쓰기 주입은 논문에 쓸 수 없다. 우리 방법과 rf-v3만 20pp대로 뛰고 주 비교군(vis-pure)은 0.5pp — 채널 비대칭. 주려면 읽기 시점·전 전략 공통이어야 한다(resume 선례, prompt.py:148). 다만 restore는 정답이 지시문 안에 있어(도착지 일치 79%) D1 변별력이 원래 사라지는 과제.

2. rf-v3가 낮았던 건 방식 한계가 아니라 writer 한계다. 지시문만 주면 tagmem과 대등해진다(Gemma4 .580 vs .538) — "병목은 writer의 시각 접지"라는 기존 결론과 일치.

3. rf-v3 교차 15칸 전부 상승은 writer×reader 분리 캠페인(260921 writer_reader_cross)의 마지막 공백을 메워, 오픈 모델의 tagmem/rf-v3 열세가 리더가 아니라 writer 문제라는 결론을 rf-v3까지 확장한다.

5 Next Steps

미해결 한계

대칭 셀(오픈 모델이 쓰고 flash가 읽는 방향)은 rf-v3에서도 미측정 — 260921 writer_reader_cross와 동일한 공백이 남는다.

다음 실험

지시문 주입 대신, resume 선례처럼 전 전략 공통으로 읽기 시점에 명령 목록을 주는 방식이 채널 비대칭 없이 D1 변별력을 살릴 수 있는지 검토(단 restore는 정답이 지시문 안에 있어 변별력 자체가 사라지므로 find/routine 위주로 검토).