Index
2026-09-21 — Experiment

새 오픈 모델 2종(Gemma 4 31B · Qwen3.8-27B) — find 6전략에서 4가족 격자까지, 왜 tagmem 이 지는가

scene_bench 읽기 트랙 | 돈 안 드는 '윗세대' 후보 선정 · find 589질의 → 4가족 8잡 · 쓰기 결합률 분해 · 해상도 가설 기각

TL;DR

p=.002
Gemma4 tag vs vis (149/189)
31%
오픈 정상 결합률 (flash 65%)
.214→.330
Gemma4 vs 32B vis-pure
8잡
4가족 × 2모델 API $0
300
오픈 이미지 토큰 (축소 없음)

1 배경 / 목적

사용자(260918): API 는 비싸니 돈 안 드는 모델 중 Qwen3-VL-32B 보다 확실히 윗세대를 찾자. 후보 6종(Qwen3.8-27B · Kimi K3 · Flash-Next · GLM-5.3-Flash · Muse Glimmer · Gemma 4)을 WebSearch + HF config + vLLM v0.28.0 registry 대조로 검토했고, 이어 "리스토어, 리줌, 루틴 다 한 번 진행해서 전체 결과 표 만들고 확인해보자. 싹 다 돌려줘. 4개씩 따로따로 총 8개 잡." 지시로 find 만 측정했던 두 모델을 나머지 3가족까지 확장해 논문 본표(flash-3.7 · qwen3vl-32b)와 같은 칸 구조로 비교한다.

후보판단사유
Qwen3.8-27B (52GB)측정1장 · v0.28.0 지원 · 공유 캐시에 이미 있음
Gemma 4 31B-it (59GB)측정동일
Kimi K3제외1.5TB / 16장
GLM-5.3-Flash (활성 18B MoE)보류vLLM ≥0.29 전용 이미지 + 4장, 다운로드 320GB ≈1.5h — 사용자: "두 개 해보고 별로면 GLM 까지"
Flash-Next보류실험판(Qwen4ExpForConditionalGeneration), v0.28.0 미등록
Muse Glimmer보류32B 대비 근거 없음

2 작업 내용

find 6전략 (본표 조건)

조건: find v1.0(589질의) 동일 — cap 8 · 30 s×4프레임 · writer preamble v2 + rf v3b · vis-pure v1 · tagmem 쓰기 v5/읽기 v8 uncapped · temp 0 · max_tokens 4096 · 6전략 own 1장, 4샤드, $0. 전 모델 scene card GT. Gemma 4 본 런 135513(100/100) · Qwen3.8 135770(100/100, 오류 22행 0.6%) Qwen3.8 thinking: 기본 켜짐 → 응답 평균 3,570자(최대 16,300)·재질의 11/36·43분. 비교군(*-Instruct, Gemma-it)이 모두 non-thinking 이라 Qwen 문서의 Instruct 모드(chat_template_kwargs {"enable_thinking": false})로 맞춤 → env SBENCH_CHAT_TEMPLATE_KWARGS 추가(8170597, 기본 바이트 동일; pop 순서 버그 141e97f 수정 + 회귀 테스트). thinking OFF 스모크: 470자·재질의 1/36·10분 46초 ⚠ 다중 질의(S1·S2 54행)는 하네스 기본 A1 안내문 적용(본표 flash·32B 589 값은 A1 이전)

4가족 확장 (8잡, 모델 2 × 가족 4, own GPU 1장씩)

find fd856246 722질의(cross_multi 포함), 589판 메모리 재사용(--memory-from/--tagmem-graph), 쓰기 v5 + 읽기 v8, 다중 질의 A1 자동 restore 6511da78 575질의 · 100편 새 ingest · 쓰기 v11 + 읽기 v8 · 질의 힌트 없음(비-flash 규칙) resume 61871a3e 66편 + fd856246_full 34편(누름 재생성분, 본표와 같은 분할) · 쓰기 v7 + 읽기 v9 routine dc1c8144 314질의 · --multi-items · 쓰기 v7 + 읽기 v9 집계 tmp/alltab/build.py — 논문 생성기(build_subtype_table.py)와 같은 규칙. 검증: flash·32B 의 Restore·Resume·Routine 수치가 논문 tier1_subtypes.tex 와 소수점까지 일치 (flash routine 78.2/34.2/60.0/7.9 Avg 45.1 · 32B routine Avg 9.8 · flash restore Avg 16.7)

3 결과

find 헤드라인 (hidden 제외 place)

전략flash-3.7Gemma4-31BQwen3.8-27Bqwen3vl-235Bqwen3vl-32B
blind.153.197.147.149.125
textlog (oracle).456.436.451.421.438
frames.415.309.257.229.201
rf-v3.367.190.158.074.088
vis-pure.497.330.248.229.214
tagmem.510.261.253.201.190

4가족 격자 (Avg %, 괄호는 그 모델의 예측 메모리 1위)

가족flash-3.7Gemma4-31BQwen3.8-27Bqwen3vl-32B
Finding (722)tagmem 42.8vis-pure 21.4 (tagmem 16.1)tagmem 15.3tagmem 14.0
Restore (575)tagmem 16.7vis-pure 5.5 (tagmem 2.4)rf-v3 3.0 (tagmem 1.7)tagmem 3.6*
Resume (161)vis-pure 23.4 (tagmem 22.9)vis-pure 12.3 (tagmem 3.9)rf-v3 24.4 (tagmem 11.1)frames=vis 13.1 (tagmem 6.7)
Routine (310)tagmem 45.1frames 23.3 (tagmem 19.1)†frames 21.6 (tagmem 19.0)frames 13.8 (tagmem 9.8)

* 32B restore tagmem 은 쓰기 v11 로 본표에 반영된 값. † 표 작성 시점 Gemma4 routine 은 엔진 사망으로 89/100편(234행)만 집계(재개 잡 136789, 이후 완료·final_results 반영).

n 가중 Avg 로 바꾸면(전체 정답 ÷ 전체 채점가능): flash Resume 이 뒤집혀(vis 19.9 < tag 21.1) flash 는 4가족 전부 tagmem 1위(S1 130행 > D1 31행). 반대로 Finding 의 Qwen3.8·32B tagmem 1위는 사라진다 — 단순평균의 1위는 표본 49행짜리 D3 덕이었다.

왜 지는가 — 쓰기 결합률 하나로 설명된다 (find 단일답, 같은 행 비교)

모델항목/편정상 결합오결합미기록정상일 때 tag/vis오결합 tag/vis미기록 tag/vis
flash-3.76865%24%11%.771 / .635.085 / .300.322 / .458
Gemma4-31B10231%31%38%.693 / .515.036 / .200.128 / .325
Qwen3.8-27B11931%32%37%.632 / .374.095 / .095.101 / .276
qwen3vl-235B4625%28%47%.687 / .470.047 / .122.036 / .181
qwen3vl-32B12329%35%36%.545 / .353.075 / .128.079 / .188

분해 검산 — Gemma4: .31×(+.178) + .31×(−.164) + .38×(−.197) = −.071 ≈ 실측 −.066(.198 vs .264). flash: +.021 ≈ 실측 +.013. 양의 문제가 아니다: 오픈 모델은 flash 보다 항목을 1.5~1.8배 많이 쓰는데(102~123 vs 68) 질의 물체를 담은 비율은 절반이고, 검색된 항목 수·사진 수(21~27개, 10~18장)는 비슷하다 → 검색·읽기 예산 차이가 아니다. 세대 효과는 '보존'에만 왔다: rf-v3 단계당 보존 Gemma4 95.8%·Qwen3.8 98.9%(flash 91.5%, 235B 59.3%, 32B 76.2%) — 덮어쓰기 붕괴는 해소됐지만 결합률은 그대로다.

해상도 가설 기각 (HF 프로세서로 640×480 JPEG q85 실측, 잡 136800)

모델프로세서 해상도이미지 토큰토큰당 원본 픽셀
Qwen3.8-27B480×640 (그대로)300 (30×40, merge 2)32 px
qwen3vl-32B480×640 (그대로)30032 px
Gemma4-31B672×960 으로 확대 후 3×3 풀링280 (14×20)34 px
(참고) Gemini flash768 이하 단일 타일≈258≈38 px
모델frames-uniform(원본 8장, writer 없음)blind(이미지 1장)textlog(글만)
flash-3.740.013.947.6
Gemma4-31B29.118.945.7
Qwen3.8-27B24.013.447.3
qwen3vl-32B18.711.446.1

글만 주면 네 모델이 45.7~47.6 으로 사실상 같다 → 언어·추론·답 형식은 동등. 같은 원본 8장을 주면 flash 40.0 vs 오픈 18.7~29.1 → 차이는 이미지에서 물체를 방·가구에 접지하는 시각 능력.

정정 — "미기록 = 아예 못 봤다"는 과한 해석이었다

GT 가 last_seen_frame·seen_s>0 을 보장하므로 프레임에서 물체는 실제로 보였다. 미기록 행 중 writer 가 정답 방+가구 항목을 이미 쓴 행(flash 71% · Gemma4 68% · Qwen3.8 61% · 32B 47%)의 obj 태그를 분류(tmp/namecheck/classify.py):

모델대상 행A 총칭 별칭B 어휘 밖 구체 물체C 그 물체만 빠짐
flash-3.7420 (0%)1 (2%)41 (98%)
Gemma4-31B1390 (0%)45 (32%)94 (68%)
Qwen3.8-27B1215 (4%)58 (48%)58 (48%)
qwen3vl-32B9049 (54%)25 (28%)16 (18%)

32B 실물 예: GT irish potato @ kitchen/dining table → 기록 obj=[green bottle, green vegetable, …] (명명 실패) · GT mug @ bedroom/bed → "picks up the teddy bear" (오인식) · 총칭 태그 상위: Qwen3.8·32B 는 robot(1,269·5,639) robot arm door window 에 태그를 낭비, 고유 obj 태그 flash 98 · Gemma4 156 · Qwen3.8 222 · 32B 718.

4 Takeaway

의미

1) 오픈 모델 4종(32B·235B·Gemma4·Qwen3.8)에서 일관: writer 가 약하면 저장 시점 판단이 적은 전략이 이긴다. tagmem 은 쓰기 품질에 가장 민감해 오픈 모델에서 이득이 사라지고 flash 에서만 전 가족 우위가 나온다. "메모리 표현의 이득은 writer 능력에 조건부"를 4가족 × 4모델 격자로 뒷받침한다.

2) "오픈 모델 = 못 본다"는 틀렸다 — 모델마다 다르다: 32B 는 이름을 못 붙이고(총칭 별칭 54%), Gemma4·Qwen3.8 은 대상을 안 고른다(그 물체만 빠짐 48~68%). 세대가 바뀌며 '보존'은 flash 보다 좋아졌지만 '결합'은 크기·세대·추론 모드와 무관하게 정체.

3) 단, 사용자 기준 "32B 보다 확실히 윗세대"로 Gemma 4 31B 는 성립(전 메모리 전략 +50% 안팎) — 논문 오픈 열로 쓸 만하다. GLM-5.3-Flash 까지 돌려도 이 패턴을 벗어날 근거는 없다(활성 22B 235B 가 최하, dense 27~31B 가 최상).

5 Next Steps

미해결 한계

235B 는 find 만 측정(나머지 3가족은 GPU 4장 × 가족당 4~5h, $0). 표 반영 시 find 는 722판·다른 가족은 기존 판이라 가족별 데이터 판이 다름을 캡션에 명시해야 하고, S1·S2 의 A1 조건 통일(grid_v1final.py·archive_final_results.py 태그 추가)이 필요하다. Restore 는 오픈 전부 잡음 바닥이라 전략 비교가 사실상 무의미.

다음 작업

Gemma 4 D1 −25행의 행 단위 분해(오결합 42% 의 내용) — 사용자 요청 시. GLM-5.3-Flash 진행 여부는 사용자 결정. 이후 후속: 이 결합률 병목을 직접 겨냥한 쓰기 개입(v12 어휘 준수·v20 자기 인덱스 가시화)과 writer 를 flash 로 바꾼 교차(writer × reader)로 이어졌다.