회사 테크

3번 돌려도 이긴다 — 원본 Qwen3.8 pass@3 58/89, Uncensored best-of-3 56을 넘었다

원본 mixed-4-8bit Qwen3.8 Flash Next의 Terminal-Bench 2.1 3회차(pass@3) 결과와, 같은 3회 시도 기준으로 abliterated 모델과 다시 붙인 비교. 남은 31개의 실패 패턴 분석

삽질하는개발자

뉴런 네트워크 일러스트

요약

앞선 글에서 원본 ddalcu/Qwen3.8-Flash-Next-MLX-Serve-mixed-4-8bit가 단일 패스 45/89, 2회차 누적 53/89를 기록했습니다. 거기서 남은 실패 36개를 완전히 같은 조건으로 한 번 더 돌린 3회차가 끝났습니다.

결론은 **pass@3 = 58/89(65.2%)**입니다. 앞선 글에서 “시도 횟수가 달라 단순 비교 대상이 아니다”라고 미뤄뒀던 Uncensored(ARC4NUM, abliterated)의 best-of-3 56/89를, 이번엔 같은 3회 시도 기준으로 넘었습니다.

시도 원본 ddalcu Uncensored ARC4NUM
1회 (pass@1) 45 / 89 (50.6%) 41 / 89 (46.1%)
2회 누적 53 / 89 (59.6%)
3회 누적 (pass@3 / best-of-3) 58 / 89 (65.2%) 56 / 89 (62.9%)

단일에서 +4, 3회 누적에서 +2입니다. 차이는 줄었지만 방향은 바뀌지 않았습니다. abliteration은 여기서도 능력을 더해주지 않았습니다.

3회차에서 무슨 일이

36개를 돌려 **5개 복구, 10개 FAIL, 21개 TO(시간 초과)**였습니다. 14시간 49분, 태스크당 평균 23분입니다.

복구된 5개는 성격이 뚜렷합니다.

  • sparql-university (2.7→3.5분, 15턴) — 1·2회차는 쿼리를 쓰고 곧장 제출해 떨어졌습니다. 3회차엔 “실제로 실행해서 기대 결과가 나오는지 확인하겠다”며 검증 단계를 넣었고 통과했습니다. Uncensored는 3회 모두 미검증 제출로 전패한 태스크입니다.
  • regex-log (2.7분, 14턴) — 두 번 FAIL 뒤 세 번째에 정확히 풀었습니다. 짧은 태스크는 순전히 샘플링 운의 영역입니다.
  • count-dataset-tokens (13.5분) — 1회차 TO, 2회차 FAIL이었습니다. 3회차는 토크나이저 병목을 피해 완주했습니다.
  • mcmc-sampling-stan (30분 꽉 채움) — 시간 초과 직전에 제출한 결과물이 채점을 통과했습니다. 기록상 TO이지만 reward>0이라 PASS입니다.
  • caffe-cifar-10 (38분, 81턴) — 앞선 글에서 “toronto.edu 다운로드 병목”으로 두 번 TO였는데, 이번엔 다운로드가 끝나 학습까지 갔습니다. 네트워크 운이었습니다.

어디서 갈렸나 (3회 시도 기준, 89개 전체)

구분 개수 태스크
둘 다 통과 50
둘 다 3회 실패 25 path-tracing 계열, regex-chess, feal-linear, make-*-mips, install-windows-3.11, compile-compcert 등
원본만 통과 8 circuit-fibsqrt, custom-memory-heap-crash, dna-insert, llm-inference-batching-scheduler, mteb-leaderboard, qemu-startup, sparql-university, tune-mjcf
Uncensored만 통과 6 feal-differential-cryptanalysis, filter-js-from-html, model-extraction-relu-logits, overfull-hbox, polyglot-rust-c, winning-avg-corewars

원본만 통과한 8개는 앞선 글의 관찰과 같습니다 — 오래 붙들고 디버깅하면 풀리는 종류(gdb가 막히면 valgrind로 우회, rate limit을 견디며 완주, 검증 단계 추가)입니다. Uncensored만 통과한 6개 중 3개(filter-js-from-html, overfull-hbox, model-extraction)는 원본이 3회 모두 “다 됐다”고 자평하고 조기 제출해 떨어진 태스크입니다. 이 “조기 확신” 약점은 재시도로 일부 만회됐지만(sparql-university, configure-git-webserver), 완전히 사라지진 않았습니다.

남은 31개의 실패 해부

3회 모두 실패한 31개를 뜯어보면 세 덩어리로 나뉩니다.

① 장기 태스크의 컨텍스트 벽 (TO 21개 중 대부분). 최대 컨텍스트가 100K를 넘긴 태스크가 6개입니다: path-tracing-reverse 129K, regex-chess 122K(322턴!), video-processing 122K, winning-avg-corewars 112K, make-mips-interpreter 108K, schemelike-metacircular-eval 101K. 이 하드웨어에서 131K는 물리적 천장이고, 그 근처에선 요청 하나에 20~56초가 걸려 남은 시간이 급격히 줄어듭니다. 다행히 terminus-2의 컨텍스트 요약이 122K 부근에서 발동해(regex-chess 122K→44K, video-processing 122K→33K) 400 에러는 3회차 내내 1건뿐이었습니다.

② 반복 루프. winning-avg-corewars는 60분 중 마지막 45분을 바이트 단위로 동일한 메시지(“I need to break out of this loop… the scanner t3 gives stone 69, vampire 88…”)를 매 턴 반복하며 소진했습니다. 모델이 루프에 빠진 걸 자각하면서도 새 명령을 내지 못하는 상태입니다. Uncensored는 이 태스크를 1.0× 재실행에서 통과했습니다.

③ 빠른 조기 제출 FAIL. overfull-hbox 3.3분, sanitize-git-repo 3.5분, model-extraction-relu-logits 4.5분, query-optimize 5.6분 — 제한 시간의 1/4도 안 쓰고 “검증 완료”를 선언합니다. 셀프 검증이 채점기와 다른 곳을 본다는 뜻입니다.

31개 중 25개는 Uncensored도 3회 전패했습니다. 즉 남은 실패의 80%는 모델 차이가 아니라 이 크기·이 컨텍스트에서 이 하네스로는 안 풀리는 문제로 보는 게 맞습니다.

운영 메모

앞선 글의 인프라 수정(watchdog 타임아웃 120초, 이미지 자동 정리)이 효과를 봤습니다. 3회차 15시간 동안 서버 재시작 0회, 가동 시간 2일 연속, wedge 없음입니다. 100K+ 컨텍스트 태스크가 돌 때 메모리 여유가 80%→19%까지 떨어졌다가 태스크 종료 후 회복하는 패턴이 반복됐는데, 경고 기준(free 1GB 미만)엔 닿지 않았습니다. 디스크 prefix-cache는 60GB 상한에 붙어 LRU로 돌았습니다.

다음

남은 31개로 **4회차(pass@4)**를 이미 돌리고 있습니다. 다만 기대는 낮습니다 — 3회 연속 TO인 태스크가 재시도로 뒤집힐 확률은 낮고, 복구된다면 ③번 조기 제출 부류에서 나올 것입니다. 공정한 Accuracy(공식 기준 5 trial)를 내려면 Uncensored 쪽도 4·5회를 채워야 하는데, 그건 이 하드웨어에서 하루 반이 더 듭니다.

한 줄 요약: 시도 횟수를 맞춰도 원본이 이깁니다. 58 vs 56.