9개 모델과 5가지 코딩 과제, 그리고 16GB GPU로 진행한 테스트
요약
본 기사는 RX 9060 XT GPU 한 장비에서 9개 모델을 대상으로 5가지 코딩 과제를 수행한 테스트 결과를 분석합니다. 각 과제는 사양 파일 기반의 솔루션 작성 및 자체 채점 과정을 거치며, 시간 제한과 고정/무작위 케이스를 포함하여 난이도를 높였습니다. 최고 성능을 보인 deepseek-v4.1-flash와 Qwen3.8-27B 변형 모델은 높은 점수를 기록했으나, 토큰 사용량 및 처리 방식에서 차이를 보였습니다.
핵심 포인트
- deepseek-v4.1-flash가 5/5 만점을 달성하며 우수한 성능을 입증했습니다.
- Qwen3.8-27B 변형 모델도 높은 점수를 받았으나, 토큰 사용량이 매우 높았습니다.
- 과제들은 인용 규칙, 산술 평가기 등 다양한 코딩 능력을 요구합니다.
- 모델의 성공적인 수행은 Thompson NFA 구축이나 bisect DP 같은 전문 알고리즘 구현에 의존했습니다.
저는 RX 9060 XT (16 GB) 한 장비에서 9개의 모델을 대상으로 5가지 코딩 과제를 수행했습니다. 각 실행은 빈 디렉터리에 단일 사양 파일(spec file)을 받고, solution.py와 test_solution.py를 생성하고, 자체 테스트를 실행한 후 종료해야 합니다. 채점은 모델이 본 적 없는 체커(checker)를 통해 이루어지는데, 여기에는 사양의 고정 케이스, 브루트 포스 오라클(brute-force oracle)을 이용한 무작위화된 케이스, 그리고 사양이 지정하는 성능 게이트가 포함됩니다. 셀당 시간은 1750초로 제한되며, 시간이 초과했을 때 모델이 여전히 작동 중이라면 디스크에 있는 내용물이 채점됩니다.
과제는 다음과 같습니다: 하나의 CSV 레코드에 대한 인용 규칙 (c1), 고정 예외 동작을 가진 산술 평가기 (c2), POSIX와 유사한 셸 토크나이저 (c3), 두 개의 동률 처리(tie-break)와 20만 개 간격(intervals)을 포함하며 3초 이내에 해결해야 하는 최대 수익 구간 스케줄링 (c4), 그리고 4,000자 길이의 텍스트에서 20개의 별표(*)를 이용한 최단 접두사 패턴 매칭이며 10초 이내에 해결해야 하는 과제 (c5)입니다.
| 모델 | c1 | c2 | c3 | c4 | c5 | 점수 | 토큰 수 |
|---|---|---|---|---|---|---|---|
| deepseek-v4.1-flash (cloud) | P | P | P | P | P | 5/5 | 43k |
| Qwen3.8-27B UD-IQ4_XS + MTP (kvstream fork) | P | P | P | P | P | 5/5 | 185k |
| Qwen3.8-27B IQ3_XXS | P | P | P | F | P | 4/5 | 125k |
| Swift-1.5-Qwen3.8-27B | P | P | P | P | F | 4/5 | 113k |
| Ornith-1.5-35B-A3B Q4_K_M | P | P | P | P | F | 4/5 | 57k |
| Qwen3.6-35B-A3B UD-Q4_K_M | P | P | P | P | F | 4/5 | 126k |
| Nemotron-3.5-Bolt-74B-A9B IQ2_XXS | P | F | F | F | F | 1/5 | 51k |
| Mellum2.1-12B-A2.5B | F | P | F | F | F | 1/5 | 167k |
| LFM2.5-24B-A2B Q6_K | F | F | F | F | F | 0/5 | 187k |
c1부터 c3까지는 대부분의 모델을
세 가지 통과(pass)는 오토마타가 클로저를 통해 일련의 활성 상태(live states)들을 이동시키면서 얻은 결과였습니다 (Qwen3.8-27B 변형 모델 두 개 모두 Thompson NFA를 구축했으며, cloud run은 big-integer bitset을 사용했습니다). 실패는 각기 규칙 하나를 놓친 parse-then-match 루틴에서 비롯되었거나, 매칭 작업을 Python의 re에 맡겼기 때문인데, 이는 스타(star) 패턴에서 백트래킹(backtracks)하며 진행하는 동안 메모리를 소모합니다. 모델별로: deepseek-v4.1-flash는 236초와 43k 토큰으로 5/5를 달성했습니다. c4에서는 bisect DP가 0.25초, c5에서는 bitset NFA가 0.00초에 작동했습니다. 테스트 파일을 작성하고 실행한 후 중지합니다. kvstream-fork (Qwen3.8-27B UD-IQ4_XS with MTP) 역시 5/5를 달성했지만, 94분 동안 185k 토큰을 사용했습니다. c5에서 epsilon 클로저가 적용된 Thompson NFA는 0.03초에 작동했습니다. 이 모델의 두 개의 제한된 셀(capped cells) 모두 자체적인 문제였습니다: c5에서는 "모든 테스트 통과"를 보고했고 (grader도 동의), 이후 9,000개의 케이스 퍼즈(fuzz)가 실행되었는데, 이 퍼즈의 오라클이 패턴을 re로 변환했습니다. Qwen3.8-27B IQ3_XXS는 4/5를 달성했으며, c1부터 c3까지 깨끗하게 작동했습니다. c4에서는 파일 자체가 생성되지 않았습니다: ls, pwd 및 사양 재읽기 과정에서 46k 토큰을 사용했지만, 추론 과정에 코드는 전혀 없었습니다. 동일한 NFA 설계를 사용하여 c5를 해결했습니다. Swift-1.5-Qwen3.8-27B는 4/5였습니다. 초기에 작성하고 열심히 반복하며, c1에서 8번의 편집과 22번의 bash 호출을 했습니다. c4에서는 0.27초에 통과했으며, c5에서는 중첩 그룹(nested groups)이 절대 거부되지 않았습니다. Ornith-1.5-35B-A3B Q4_K_M은 4/5를 달성했고 가장 저렴한 로컬 모델로, 다섯 개의 셀 모두에 걸쳐 57k 토큰과 약 16분을 사용했으며, c1은 37초 만에 완료했습니다. c5에서는 그룹과 스타가 상호작용하는 무작위 케이스 하나에서 실패했습니다. Qwen3.6-35B-A3B UD-Q4_K_M은 126k 토큰으로 4/5를 달성했으며, c2와 c3에서 가장 빠른 로컬 셀 속도를 보였습니다. c4는 정확했지만 게이트 기준인 3.0초 대비 측정된 시간은 3.03초였고, 같은 파일을 재평가했을 때는 2.97초에서 3.23초 사이의 시간이 나왔습니다. c5에서는 중첩 그룹 규칙을 놓쳤습니다. Nemotron-3.5-Bolt-74B-A9B IQ2_XXS는 1/5였습니다. 세 개의 셀은 두 번의 차례를 사용하고, 하나의 도구 호출(tool call)을 수행한 후 존재하지 않는 파일을 보고했습니다; c3의 보고서에는 여전히 에이전트 템플릿의 플레이스홀더 "What was done."가 남아 있었습니다. c1은 실제 통과였으며, c3에 대한 추론 과정에는 grader를 통과하는 코드가 포함되어 있었습니다. Mellum2.1-12B-A2.5B는 1/5였습니다. c1에서 csv를 임포트하고 BLOCKED을 선언하여, 그 이유가 담긴 이름의 BLOCKED 파일을 남겼습니다.
c3는 tokenize("ab cd")에서 반환되지 않습니다. c5는 패턴을 Python 정규식으로 변환하며, 이 파일을 채점하려면 메모리 제한이 필요한데, 제한이 없으면 7.3 GB에 도달했습니다. LFM2.5-24B-A2B Q6_K: 0/5, 187k 토큰, 다섯 개의 셀 중 세 개가 전체 용량을 사용했습니다. c1은 빈 필드에서 발생하는 오프셋 오류로 인해 88턴이 걸렸습니다. c4는 정확하지만 느려서, DP 내부에서 선택된 간격 목록을 복사하기 때문에 게이트(3.0 s) 대비 6.98초가 걸렸습니다. 동일한 5/5 결과가 매우 다른 가격으로 두 번 나타납니다: 236초에 43k 토큰 대 94분에 185k 토큰입니다. 모델들은 같은 알고리즘에 도달하므로, 비용은 목적지가 아니라 경로에 있습니다. 상당히 재미있는 실험이었고, 주로 어떤 로컬 모델을 코딩 작업용 말(workhorse)으로 사용할지 결정하기 위해 진행했습니다. 이를 바탕으로 Q4 Qwen 3.8 27b가 될 것 같습니다. /u/Ok_Substance2327이 제출했습니다 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기