내 워크로드 5개로 LLM 벤치 직접 돌리는 법 — Qwen 3.6 vs Sonnet 4.6 한국어 실측 방법과 첫 결과
트렌드 리포트에서 “Qwen 3.6-27B가 Sonnet 4.6 동급”이라는 수치 보고 모델 바꿀 뻔한 적 있으시죠?
Artificial Analysis 같은 대규모 벤치 결과가 내 실제 워크로드에 맞는지 의심해본 적 있으시죠?
그런데 직접 돌려보긴 귀찮아서 남의 벤치만 믿고 살아온 적 있으시죠?
남의 벤치 대신 내 5 태스크를 한 번 돌려봤다. M4 Max 128GB에서 Qwen 3.6-27B Dense, Qwen 3.6-35B-A3B MoE, Claude Sonnet 4.6 세 모델을 한국어 개발 워크로드 5개로 비교했다. 샘플 5건 × 1회라 통계적 일반화는 못 하지만, 한 번 돌리니 남의 벤치로는 안 보이던 것들이 보였다. 이 글은 재현 가능한 방법론과 첫 실행 결과, 그리고 한국어 블로거에게 실제로 문제가 될 실패 모드 두 가지를 정리한 기록이다.
먼저 요약 — 도입부만 읽으실 분을 위해
- 방법은 재사용 가능: 본인 워크로드 5 태스크 + 3 모델 × 1회 실행. 한 시간 투자로 다음 모델 릴리스마다 반복 가능.
- 한국어 프로덕션 리스크 2건 발견: Qwen 35B-A3B에서 한자 “历史信息”가 한국어 문장에 혼입, 27B는 SEO 태스크에서 thinking 토큰 cap을 소진하고 최종 답 생성 실패.
- 수치는 참고만: 1회 실행이라 편차(variance) 있음. “Sonnet이 전체 품질 1위”는 인상평 수준. 단 두 Qwen 간 격차(35B-A3B가 27B Dense보다 2.8배 빠름)는 재현성 높은 현상.
- 자기 평가 편향 주의: 품질 점수는 Claude(Opus 4.7)가 Sonnet 포함해 주관 채점한 것이라 같은 Claude 가족 편향 가능성이 있다. 아래 “예상 질문” 섹션에서 검증 방법을 다룬다.
5 태스크 워크로드 설계법 — 한 시간이면 세팅 끝
재현할 수 있는 틀을 먼저 공유한다. 본인 워크로드에서 5개만 골라 ollama run 또는 claude -p로 돌리면 된다.
- Task 1 — 버그픽스: 의도적으로 버그 넣은 코드 10줄 내외, “버그 찾고 수정해라” 요청
- Task 2 — 테스트 작성: 간단한 함수 하나에 pytest 3개, 엣지 케이스 포함 요구
- Task 3 — 기술 블로그 아웃라인: 주제 + 독자층 + 구조(도입·H2 N개·결론) 명시
- Task 4 — 롱컨텍스트 요약: 본인이 자주 다루는 문서 20~40K 토큰을 5포인트로 요약
- Task 5 — 한국어 SEO 교정: 500자 초고를 1,300자+ SEO 기준으로 확장 교정
실행 파라미터는 모델 간 공정 비교를 위해 temperature=0.3(출력 일관성), num_predict=8192(생성 토큰 상한)로 고정. Claude Code CLI는 --bare로 개인 규칙 영향 차단. 결과는 JSON으로 저장해서 다음 모델 나올 때 같은 프롬프트로 비교 가능하게 만든다. 한 시간이면 세팅 끝난다.
1회 실행 결과 — 속도
| 태스크 | Qwen 35B-A3B | Qwen 27B | Sonnet 4.6 |
|---|---|---|---|
| 1 bugfix | 45초 | 70초 | 8초 |
| 2 pytest | 66초 | 209초 | 11초 |
| 3 outline | 97초 | 240초 | 71초 |
| 4 longcontext | 111초 | 377초 | 38초 |
| 5 seo | 187초 | 520초 | 109초 |
| 합계 | 506초 | 1,416초 | 236초 |
Sonnet이 빠른 건 API 원격이라 당연하다. 다만 로컬 모델 중 27B Dense가 35B-A3B MoE보다 2.8배 느리다는 점은 주목할 만하다. MoE는 총 38GB지만 활성 파라미터가 3B뿐이라 실제 연산이 dense 27B보다 훨씬 적다. 같은 M4 Max 128GB에 둘 다 돌아간다면 dense 27B를 유지할 이유가 거의 없다. 이 2.8배 격차는 구조적이라 다음 실행에서도 재현될 것으로 본다.
1회 실행 결과 — 품질 (인상평 수준)
전체 품질을 주관 5점 척도로 평균 내면 Sonnet 4.9, 35B-A3B 3.9, 27B 3.4다. 순수 코드 로직만 Devil 7종목(구조·방어·가독성·결함·확장성·보안·테스트)으로 재검산하면 순위가 흔들린다. 27B가 9.29로 Sonnet 9.19보다 미세 우위, 35B-A3B가 8.91로 3위. 같은 Claude가 채점한 결과 안에서도 축을 바꾸면 Qwen이 올라간다.
코드 판단력에서 27B가 앞선 핵심 사례: Task 1 빈 리스트 처리에서 Sonnet·35B-A3B는 return 0을, 27B는 return None을 선택했다. “평균 없음”을 0으로 표현하면 호출자 측에서 “평균 0인 데이터”로 오해할 여지가 있어 None이 더 정확한 신호다. Sonnet은 설명에서 트레이드오프는 언급했지만 정작 코드 선택은 0이었다.
Task 2 pytest에서는 Sonnet이 가장 간결했지만 원본 함수 s.lower().replace(" ", "") 두 연산을 모두 검증하는 테스트가 없다. 원본이 깨져도 통과하는 테스트다. 35B-A3B는 “A man a plan a canal Panama”로 공백·대소문자 복합 케이스를 챙겼다.
모든 점수는 1회 실행 결과다. “Sonnet 전체 1위”는 인상평이고, “27B 코드 동급” 주장은 재현 가능성 있는 가설 수준으로 두는 게 정직하다. 3회 이상 돌려야 확정된다.
한국어 블로거가 알아야 할 실패 모드 2건
수치보다 중요한 게 이 섹션이다. Artificial Analysis 같은 영어권 벤치엔 안 보이지만 한국 블로그 업무에서 바로 문제가 될 현상 두 개가 1회 실행에서 재현됐다.
① 한자 혼입 (Qwen 35B-A3B): Task 5 SEO 교정 응답 중간에 "불필요한历史信息가 섞이지 않아"처럼 중국어 “历史信息”가 한국어 문장에 그대로 삽입됐다. Qwen 계열의 중국어 학습 데이터 비중이 높은 탓으로 보인다. 1회 관찰이지만 네이버·블로그스팟 SEO에서 외국 문자 혼입은 AI 생성 신호로 분류될 수 있어 프로덕션 리스크다. 3회 이상 재현 여부는 다음 실행에서 확인할 값어치가 있다.
② thinking 토큰 폭주 (Qwen 27B): 같은 Task 5에서 27B는 done_reason=length(응답 종료 사유 = 길이 cap 도달로 강제 종료)로 끝났다. response 필드(최종 답)는 0바이트, thinking 필드(내부 추론)는 31,837바이트. num_predict 8,192 cap을 전부 내부 추론에 소진하고 최종 답을 시작하지 못했다. 같은 파라미터·같은 cap에서 35B-A3B는 같은 태스크를 4,385바이트 최종 답으로 완성했다. thinking 효율이 모델마다 크게 다르다는 관찰 한 건이다.
두 현상 모두 한국어 한정 관찰이다. 영어 벤치에서는 잘 안 잡힌다. 한국어 워크로드 LLM 선택 시 체크리스트에 추가해둘 가치가 있다.
예상 질문과 다시 재현하려면
Q. 5 태스크 1회 실행으로 “동급 주장은 거짓”이라 결론 내려도 되나?
A. 아니다. 이 글이 과장하지 않으려고 쓴 표현은 “한국어 실사용에서 격차 관찰됨” 정도다. Artificial Analysis의 수천 건 벤치를 5건으로 반박하는 건 과하다. 대신 본인 워크로드로 한 번 돌려서 Artificial Analysis 결과와 체감이 일치하는지 확인하는 게 합리적 출발점이다.
Q. Claude(Opus 4.7)가 Claude(Sonnet 4.6)를 채점한 결과를 신뢰해도 되나?
A. 편향 가능성 있다. 그래서 Devil 7종목 코드 점수로 재검산했더니 오히려 27B가 1위였다 — self-evaluation 편향이 극단적이지는 않다는 간접 증거다. 더 공정한 평가는 GPT-5.5·Gemini 3.1·Kimi K2.6 등 제3자 평가자를 추가하는 것. 다음 실행에서 시도해볼 계획이다.
Q. 같은 방법으로 재현하려면?
A. 세 단계다. ① 본인 워크로드 5 태스크 설계(위 섹션 참고). ② 모델 3~4개 고정(Ollama 로컬 + Claude/GPT API). ③ temperature=0.3, num_predict=8192(생성 토큰 상한)로 1회 실행 → 결과 JSON 파일 보관. Ollama 설치는 맥 스튜디오 로컬 LLM 글(관련 글 참고)에 단계별로 정리해뒀다. 두 달에 한 번 같은 태스크로 재실행하면 모델 릴리스마다 체감 변화를 추적할 수 있다. 한 시간 투자다. 본인 워크로드에 맞게 적용해본 경험이 있다면 댓글로 공유해달라.
관련 글
- 맥 스튜디오 128GB로 120B 로컬 LLM 돌려봤더니 가장 빠른 건 120B가 아니었다
- ChatGPT Plus 쿼터 터져도 작업이 안 멈추게 만들었다 (맥 스튜디오 로컬 LLM fallback)
- 나는 4.6으로 내렸다, 오진이었다 — Anthropic Claude Code 포스트모템이 알려준 진짜 교훈
글쓴이 — Jason (cd4761)
8년 차 프론트엔드 개발자. 해고 후 AI 개발 도구 실측 기록을 남긴다. Claude Code·Opus 4.7·M4 Max 로컬 LLM 벤치 글 다수. 문의는 블로그 댓글로.
태그: #Qwen3 #Sonnet46 #M4Max #로컬LLM #AI벤치마크 #한국어LLM
댓글
댓글 쓰기