모델 카드 권장 샘플링으로 다시 재 보니: qwen3.8 27B와 Nanbeige4.3, 한국어 문서 RAG 320문항
한국어 문서 RAG 시험지를 온도 0으로 잰 것이 불공정하다는 지적을 받고, qwen3.8 27B와 Nanbeige4.3 33B를 모델 카드 권장 샘플링으로 320문항 다시 쟀습니다. 정답률 차이는 찾지 못했고, 점수를 움직인 것은 출력 토큰 한도였습니다. 온도를 올리면 끝나지 않는 답이 늘어난다는 것도 확인했습니다.
이 글의 숫자는 모두 제 서버에서 직접 돌려 채점한 값입니다. 시험지와 채점 방법은 「로컬 RAG, 한국어 문서에 정말 맞게 답할까」와 같습니다. (English version: Model-card sampling vs temperature 0 on a Korean document-QA benchmark)
요약
- 지금까지 이 시험지의 본 측정은 모든 모델을 온도 0으로 돌렸습니다. Hugging Face 토론에서 「qwen3.8은 모델 카드 권장 샘플링으로 재야 한다」는 지적을 받고, qwen3.8 27B와 Nanbeige4.3 33B를 카드 권장값으로 320문항씩 다시 쟀습니다.
- 정답률 차이는 찾지 못했습니다. qwen3.8 27B는 생각 끔 71.2%에서 72.2%, 생각 켬 77.3%에서 77.9%입니다. 같은 문항으로 짝지어 비교하면 둘 다 우연 범위입니다(p=0.68, 0.75).
- Nanbeige4.3 생각 켬은 66.2%에서 70.6%로 올랐지만, 오른 몫은 샘플링이 아니라 출력 한도와 문맥을 늘린 데서 왔습니다. 처음 측정(한도 8,192)에서 잘린 29문항을 빼면 194개에서 196개로 같습니다. 그 29문항은 온도 0 그대로 한도와 문맥만 늘려도 4개에서 15개로 올랐습니다.
- 온도를 올리면 끝나지 않는 답이 늘었습니다. Nanbeige 생각 켬에서 한도 20,480에 잘린 답이 온도 0은 3개(추정), 0.6은 10개, 1.0은 11개였습니다.
- 20,480에서 잘린 답 7개를 한도 40,960으로 다시 뽑았더니 7개 모두 스스로 끝났고, 모두 20,480토큰보다 짧았습니다. 한도가 모자랐다기보다 그 표본이 끝없이 길어졌다고 보는 편이 맞습니다.
- 이 시험지에서 온도 0 때문에 점수가 깎인 흔적은 찾지 못했습니다. 비교를 흔든 것은 샘플링보다 잘린 답을 오답으로 센 출력 한도였습니다.
왜 다시 쟀나
Nanbeige4.3 33B 결과를 모델 저장소 토론에 올렸더니, 「qwen과 같은 설정(온도 1.0, top_p 0.95, 토큰 한도 없이)으로 돌려 보라」는 답글이 달렸습니다. 이어서 「두 모델 모두 온도 1.0, top_p 0.95, top_k 20으로, qwen3.8은 카드 권장값 그대로」라는 답글도 달렸습니다. 일리 있는 지적입니다. 이 시험지는 재현성을 위해 모든 모델을 온도 0으로 돌렸고, 모델 카드들은 대부분 온도 0을 권하지 않습니다. 비교 상대였던 qwen3.8 27B가 온도 0 때문에 손해를 봤다면 Nanbeige 글의 비교도, 리더보드 순위도 달라질 수 있습니다.
그래서 두 모델 모두 카드가 권장하는 값으로 320문항(답 있는 300문항과 제가 만든 「문서에 답 없는 질문」 20개)을 다시 쟀습니다.
| 모델 | 권장값 | 출처 |
|---|---|---|
| qwen3.8 27B 생각 끔 | 온도 0.7, top_p 0.8, top_k 20, presence_penalty 1.5 | Qwen3.8-27B 모델 카드 |
| qwen3.8 27B 생각 켬 | 온도 1.0, top_p 0.95, top_k 20 | Qwen3.8-27B 모델 카드 |
| Nanbeige4.3 33B 생각 켬과 끔 | 온도 0.6, top_p 0.95 | Nanbeige4.3-33B 모델 카드의 「추론과 대화」 줄 |
| Nanbeige4.3 33B 생각 켬 (추가) | 온도 1.0, top_p 0.95, top_k 20 | 토론 답글이 권한 값 |
Nanbeige 카드는 작업에 따라 두 줄을 권합니다. 「에이전트와 도구 사용」은 온도 1.0, top_p 0.95(출력 한도 65,536)이고, 「추론과 대화」는 온도 0.6, top_p 0.95(출력 한도 262,144)입니다. top_k는 두 줄 모두 없습니다. 문서 질의응답은 「추론과 대화」에 가깝습니다. 저는 처음에 답글이 권한 1.0과 top_k 20으로 돌렸다가, 카드를 다시 읽고 0.6으로 320문항을 한 번 더 쟀습니다. 두 결과를 모두 적었습니다.
측정 조건
| 항목 | 내용 |
|---|---|
| 시험지, 검색, 지시문 | 이전 측정과 같음. 모든 모델이 같은 상위 5쪽을 받음 |
| 실행 | Ollama, RTX 3090. 온도가 0보다 크면 시드 42 |
| 출력 한도 | 생각 끔 1,024토큰(이전과 같음). 생각 켬은 두 모델 모두 20,480토큰(이전 8,192), 문맥 32,768(이전 16,384) |
| 채점 | qwen3.6 27B(첫 글에서 Allganize 판정과 88.5% 일치 검증). 이번 재측정은 두 번째 채점기를 돌리지 않음 |
생각 켬은 한도와 문맥도 같이 늘렸습니다. 샘플링과 한도가 한꺼번에 바뀐 것이라 결과를 나눠서 봐야 합니다. qwen3.8은 나눌 필요가 없었습니다. 온도 0 측정에서 가장 길게 생각한 문항이 4,558토큰이라 한도 8,192에 닿은 답이 없었고, 생각 끔은 한도가 같았습니다. Nanbeige는 아래에서 나눠 봤습니다.
결과
정답이 있는 299문항 기준입니다. 「좋아짐 / 나빠짐」은 같은 문항에서 다시 잰 설정만 맞힌 수와 온도 0만 맞힌 수이고, p는 McNemar 정확 검정입니다.
| 조건 | 온도 0 | 카드 권장값 | 좋아짐 / 나빠짐 (p) |
|---|---|---|---|
| qwen3.8 27B, 생각 끔 | 71.2% | 72.2% | 13 / 10 (0.68) |
| qwen3.8 27B, 생각 켬 | 77.3% | 77.9% | 6 / 4 (0.75) |
| Nanbeige4.3 33B, 생각 끔 | 64.9% | 65.6% | 18 / 16 (0.86) |
| Nanbeige4.3 33B, 생각 켬 | 66.2% | 70.6% | 23 / 10 (0.035) |
| Nanbeige4.3 33B, 생각 켬, 답글 권장값(1.0, top_k 20) | 66.2% | 71.2% | 25 / 10 (0.017) |
Nanbeige 생각 끔은 이전 글에서 이미 카드 설정으로 320문항을 다시 잰 결과입니다.
- qwen3.8 27B는 카드 설정으로 바꿔도 1%p 안쪽만 움직였습니다. 온도를 올린 단일 실행이라 이 정도는 잡음입니다. 리더보드에서 qwen3.8 27B 생각 켬이 로컬 1위인 것도 그대로입니다.
- Nanbeige 생각 켬만 유의하게 올랐습니다. 비교를 다섯 번 했으니 p=0.035는 경계선입니다. 다음 절에서 이 4.4%p가 어디서 왔는지 나눠 봤습니다.
- 「답이 있는데 찾을 수 없다고 거절」한 답(근거 페이지가 검색된 243문항 기준)은 카드 설정에서 늘었습니다. qwen3.8 생각 끔은 15개에서 19개, 생각 켬은 5개에서 13개입니다. 다만 정답률 차이로 이어지지는 않았습니다.
- 문서에 답이 없는 20문항은 qwen3.8이 모든 조건에서 20개, Nanbeige 생각 켬이 모든 조건에서 19개를 「찾을 수 없다」고 답했습니다.
Nanbeige의 4.4%p는 어디서 왔나
온도 0 측정에서 Nanbeige 생각 켬은 29문항이 한도 8,192토큰에 걸렸습니다. 이 29문항과 나머지 270문항을 나눠서 셌습니다.
| 문항 | 온도 0, 한도 8,192 | 온도 0, 한도 20,480 | 0.6, 한도 20,480 | 1.0, 한도 20,480 |
|---|---|---|---|---|
| 온도 0에서 8,192 안에 끝난 270문항 | 194 | (다시 안 돌림) | 196 | 197 |
| 온도 0에서 8,192에 잘린 29문항 | 4 | 15 | 15 | 16 |
한도 20,480 칸은 모두 문맥 32,768입니다.
- 270문항에서는 샘플링이 바꾼 것이 없습니다. 0.6과 온도 0을 짝지어 비교하면 12 / 10(p=0.83)입니다.
- 29문항에서 점수를 바꾼 것은 한도와 문맥입니다. 온도 0 그대로 한도와 문맥만 늘려도 4개에서 15개로 올랐고, 0.6도 15개였습니다.
- 0.6과 1.0의 차이도 우연 범위입니다(211개 대 213개, 11 / 13, p=0.84). 답글은 「낮은 온도는 코딩용이라 이 시험지에는 1.0이 나을 것」이라고 했지만, 이 시험지에서는 차이가 없었습니다. 다만 1.0에서는 「답이 있는데 거절」이 34개로 0.6(24개)보다 많았습니다.
- 이전 글에 공개한 70.6%는 온도 0 결과에 잘린 29문항만 0.6으로 다시 돌려 바꿔 넣은 값입니다. 0.6으로 320문항을 다 돌린 이번 값도 70.6%(211개)인데, 우연히 맞아떨어졌습니다. 나머지 270문항이 194개 대 196개, 29문항이 17개 대 15개였습니다. 같은 29문항을 같은 0.6으로 두 번 돌려 17개와 15개가 나왔다는 점이 단일 실행 잡음의 크기를 보여 줍니다.
잘린 답: 토큰을 늘리면 끝날까
한도 20,480에서도 잘린 답이 있었습니다. 잘린 답의 끝부분 8,000자 중 절반 넘게가 세 번 이상 나온 줄이면 「같은 줄을 되풀이」로 셌습니다.
| Nanbeige 생각 켬 | 한도 20,480에 잘린 답 | 그중 같은 줄을 되풀이 |
|---|---|---|
| 온도 0 (8,192에 잘렸던 29문항을 다시 돌린 결과) | 3 | 2 |
| 0.6, top_p 0.95 | 10 | 5 |
| 1.0, top_p 0.95, top_k 20 | 11 | 9 |
온도 0 줄은 29문항만 다시 돌린 값입니다. 나머지 291문항은 온도 0에서 8,192토큰 안에 끝났으니 20,480에서도 끝났을 것으로 보고, 320문항 전체로 3개라고 추정했습니다. 이 추정이 맞다면 온도를 올리면서 끝나지 않는 답이 1% 안팎에서 3% 안팎으로 늘었습니다. 1.0에서 잘린 답 중 9개는 온도 0에서 216~7,297토큰 만에 끝났던 문항입니다.
같은 줄을 되풀이하지 않은 7개(0.6에서 5개, 1.0에서 2개)를 한도 40,960(문맥 53,248)으로 다시 돌렸습니다. 같은 설정과 같은 시드로 새로 뽑은 답이고, 잘린 답을 이어 쓴 것은 아닙니다.
| 문항 | 설정 | 한도 20,480 | 한도 40,960 | 40,960에서 쓴 토큰 |
|---|---|---|---|---|
| q_39 | 0.6 | 잘림, 오답 | 스스로 끝남, 정답 | 3,182 |
| q_104 | 0.6 | 잘림, 오답 | 스스로 끝남, 오답 | 1,554 |
| q_129 | 0.6 | 잘림, 오답 | 스스로 끝남, 정답 | 13,669 |
| q_156 | 0.6 | 잘림, 오답 | 스스로 끝남, 오답 (두 번째 시도) | 9,679 |
| q_234 | 0.6 | 잘림, 오답 | 스스로 끝남, 오답 | 8,321 |
| q_104 | 1.0 | 잘림, 빈 답 | 스스로 끝남, 오답(거절) | 2,018 |
| q_211 | 1.0 | 잘림, 빈 답 | 스스로 끝남, 오답(거절) | 2,436 |
- 7개 모두 스스로 끝났고, 모두 20,480토큰보다 짧았습니다. 가장 긴 것도 13,669토큰입니다.
- q_156은 첫 시도가 1시간 넘게 생성을 이어 가다 HTTP 응답 대기 시간을 넘겼고, 다시 시도한 두 번째가 9,679토큰에서 끝났습니다. 문맥과 시드가 같은데도 두 시도가 달랐습니다. 이 설정은 시드를 고정해도 같은 답이 다시 나오지 않습니다.
- 그래서 20,480에서 잘린 이 답들은 「생각할 게 많아 한도가 모자랐다」기보다 **「그 표본이 끝없이 길어졌다」**에 가깝습니다. 다시 뽑으면 원래 한도 안에서 끝났습니다.
- 되풀이 판별은 줄 단위라 거칩니다. 1.0의 q_104와 q_211은 생각 끝부분에서 긴 문장 하나를 각각 28번, 23번 되풀이했는데, 줄이 길어서 기준에 걸리지 않았습니다. 이 둘도 다시 뽑으니 2천 토큰 남짓에서 끝났습니다. 줄 단위로 되풀이가 잡힌 나머지 답은 다시 돌리지 않았으니, 그 답들이 다시 뽑으면 끝날지는 모릅니다.
- 다시 뽑은 7개 중 2개가 정답으로 바뀌었습니다. 표의 70.6%에는 넣지 않았습니다. 잘린 문항만 두 번째 기회를 주면 그 조건에 유리해지기 때문입니다.
8,192와 20,480은 사정이 다릅니다. 온도 0에서 8,192에 잘린 29문항은 한도를 20,480으로 늘리자 26개가 끝났습니다. 그때는 한도가 원인이었습니다. 20,480에서 잘린 답은 다시 뽑으면 한도 안에서 끝났으니, 이 경우는 한도보다 샘플링이 원인에 가깝습니다.
카드는 「추론과 대화」에 출력 한도 262,144토큰을 권합니다. RTX 3090(24GB)에서는 문맥 32,768에서도 이미 모델 약 4GB가 CPU로 넘쳤고, 긴 생성은 초당 약 10토큰이었습니다. 262,144토큰이면 한 문항에 7시간이 넘습니다. 이 한도는 3090에서 잴 수 없습니다.
측정 방법에서 바꾼 것
- 리더보드에 「카드 권장 샘플링」 칸을 넣었습니다. 순위는 지금처럼 모든 모델이 같은 조건(온도 0)인 칸으로 매기고, 카드 설정으로 다시 잰 값은 옆 칸에 적습니다. Raon-1 mini와 LFM2.5는 카드 설정으로 잰 행이 따로 있거나 본 측정이 카드 설정입니다.
- 카드에서 작업에 맞는 줄을 고릅니다. Nanbeige처럼 카드가 작업별로 다른 값을 권하면 문서 질의응답에 가까운 줄을 쓰고, 글에 어느 줄인지 적습니다.
- 온도 0이 아닌 측정은 한 번만 돌리면 1
2%p가 잡음입니다. 같은 29문항을 같은 설정으로 두 번 돌려 2문항 차이가 났고, 이전 측정에서는 같은 모델과 설정을 장비만 바꿔 돌려도 911문항의 판정이 엇갈렸습니다.
한계
- 카드 설정은 조건마다 한 번씩만 돌렸습니다. 1~2%p 차이는 순위로 읽지 마세요.
- 생각 켬은 샘플링과 함께 한도(8,192에서 20,480)와 문맥(16,384에서 32,768)도 바뀌었습니다. qwen3.8은 온도 0에서 한도에 닿은 답이 없어 영향이 없고, Nanbeige는 위에서 나눠 봤습니다.
- 문맥 32,768에서 Nanbeige는 모델 일부가 CPU로 넘쳐서, 문항당 시간 중앙값이 41초에서 99초로 늘었습니다. 속도 비교에는 쓰지 마세요.
- 이번 재측정은 주 채점기 qwen3.6 27B 하나로만 채점했습니다. 이 채점기는 qwen3.8과 같은 Qwen 계열입니다. 이전 측정에서 두 번째 채점기 Claude Opus 5.5와 판정이 95~97% 일치했고, qwen 쪽을 더 후하게 준 흔적은 없었습니다.
- 한국어 공공 문서 시험지 하나의 결과입니다. 수학, 코딩, 긴 추론처럼 생각을 길게 하는 작업에서는 온도 0이 더 불리할 수 있습니다. 「한국어 문서에서 근거로 답하기」에 한정한 결론입니다.
재현
생성은 card_rerun_3090.sh(qwen3.8 두 조건, Nanbeige 1.0)와 nanbeige_t06_3090.sh(Nanbeige 0.6, 40,960 재실행), 이 글의 숫자는 card_sampling_summary.py가 문항별 판정 파일에서 다시 계산합니다. 문항별 판정은 첫 글의 재현 파일에 추가했습니다.
다음에 읽을 글
- 한국어 문서 RAG 리더보드: 카드 권장 샘플링 칸을 넣은 전체 표
- Nanbeige4.3 33B, 한국어 문서 RAG 300문항: 처음 측정과 출력 한도 문제
- 로컬 RAG, 한국어 문서에 정말 맞게 답할까 (300문항 채점): 시험지와 qwen3.8 27B 결과
관련 글
Nanbeige4.3 33B, 한국어 문서 RAG 300문항으로 채점해 보니: 모델 카드에서 qwen3.8 27B를 앞선 모델, 같은 조건으로 비교
10월 28일 · 25 min read
Local LLMModel-Card Sampling vs Temperature 0 on a Korean Document-QA Benchmark: qwen3.8 27B and Nanbeige4.3, 320 Questions Rerun
11월 6일 · 11 min read
Local LLMNanbeige4.3 33B on a Korean Document-QA Benchmark: The Model That Leads qwen3.8 27B on Its Card, Compared Under the Same Conditions
10월 28일 · 15 min read
AI/ML엔비디아 Nemotron 3.5 Bolt E4B, 한국어 문서 RAG 300문항으로 채점해 보니: 바탕 모델 gemma4 E4B와 같은 조건 비교
10월 26일 · 17 min read