매우 낮은 온도 설정이 모델의 코딩 능력을 떨어뜨립니다 (초보자를 위한 경고)
요약
본 기사는 LLM의 디코딩 온도(temperature)가 코딩 능력에 미치는 영향을 분석한 연구 결과입니다. 낮은 온도는 모델이 가장 가능성 높은 토큰만 선택하도록 강제하여, '창의적인' 사고를 저해하고 비-재현 작업에서의 지능을 떨어뜨립니다. 테스트 결과, 온도가 높아질수록 통합 정확도가 현저하게 상승하는 것이 데이터로 입증되었습니다.
핵심 포인트
- 낮은 온도(T=0)는 모델의 코딩 점수를 떨어뜨리며, 탐욕적 디코딩을 강제합니다.
- 온도 1.0에서 통합 정확도는 82.7%로 가장 높았으며, T=0 대비 통계적으로 유의미한 차이를 보였습니다.
- 낮은 온도 설정에서는 루프(looping) 발생 빈도가 높은 경향을 보여 부정확한 답변을 초래합니다.
여러분 중 많은 분들이 이 사실을 알고 있을 수 있으므로, 아마 건너뛰셔도 좋을 것입니다 (다만 이를 증명하는 데이터가 있기 때문에 제외). 하지만 로컬 환경에 비교적 익숙하지 않거나, 이 이야기를 들었지만 이유를 모르는 분들을 위해, t=0 또는 t=0.2와 같은 낮은 온도로 모델을 실행하면(특히 코딩에서) 모델 성능이 현저히 저하된다는 데이터를 보여드리려고 합니다.
여러분은 종종 추측 디코딩(speculative decoding)에 대한 수많은 벤치마크를 보게 될 것이며, 이들은 dflash2 등을 사용하여 탐욕적 디코딩(greedy decoding)을 수행하며 엄청난 속도를 주장합니다. 온도 = 0 또는 탐욕적 디코딩은 모델이 매번 가장 가능성이 높은 토큰을 선택하도록 만듭니다 (서버에서 병렬 예측을 할 경우 미세하게 무작위성을 가질 수 있다는 단서는 제외). 그들은 추측 디코딩이 온도 0에서 매우 쉽기 때문에, 자신들의 게시물이나 제품 등에서 주장할 수 있는 수치들이 놀라워 보이도록 만듭니다. 문제는 모델의 '창의적인' 사고 대부분이 토큰 선택이 허용하는 무작위성에서 나온다는 것입니다. 탐욕적 디코딩은 모델에게 항상 좁은 경로를 선택하도록 강제하며, 이는 비-재현(non-recall) 작업에서의 '지능'을 직접적으로 떨어뜨리고 (보통 치명적인) 루프가 발생할 위험을 현저히 증가시킵니다.
테스트 매개변수:
모델: Qwen3.8, IQ4_XS-M으로 압축됨. 이 형식은 각 숫자를 16비트 대신 약 4비트로 저장하여 약 4.6bpw를 가집니다.
엔진: llamAmpere v0.5.2, 24GB 그래픽 카드의 공개된 설정을 사용하여 실행되었습니다.
추론 노력(Reasoning effort)은 '중간(medium)'으로 설정되었으며, 이는 모델이 답변하기 전에 생각하는 시간을 제어합니다.
고정 샘플러 설정: top_p 0.95 (확률의 95%를 구성하는 단어만 후보), top_k 20 (최대 20개의 후보), min_p 0 (추가적인 차단 없음). 오직 온도(temperature)만 변경되었습니다.
온도: 0, 0.25, 0.5, 0.75, 그리고 1.0입니다. 1.0에서는 모델의 확률이 변경 없이 사용됩니다.
코딩 테스트: LiveCodeBench v6, 해당 버전에서 가장 최신 콘테스트 중 하드(hard)로 분류된 100개의 문제. 프로그램은 모델이 한 번도 보지 못한 모든 숨겨진 테스트를 통과해야만 통과합니다.
결과:
온도가 높아질수록 코딩 점수가 현저하게 상승했습니다.
통합 정확도는 0에서는 70.0%, 0.25에서는 76.0%, 0.5에서는 76.0%, 0.75에서는 79.7%, 그리고 1.0에서는 82.7%였습니다. 1.0 대비 0과 0.25의 격차는 통계적으로 유의미합니다. 0.5(−4.1 포인트)와 0.75(−3.0 포인트)의 격차는 개별적으로 분리했을 때는 그렇지 않지만, 통합된 총합으로 볼 때 유의미합니다. 0.5는 미세하게 유의하지 않았으나 1-꼬리 검정(1 tailed test)을 거쳤다면 유의미했을 것입니다. 차이는 백분율 포인트 단위이므로, 82.7%에서 76.0%를 빼면 6.7 포인트입니다. https://preview.redd.it/xo831qb1dmyh1.png?width=674&format=png&auto=webp&s=863fce9050de703371ba520951253095871da7f8 루프(looping) 빈도는 낮은 온도 설정에서 유의미하게 증가하여, 0에서는 9%의 루프율을 보였고 (이 모든 것이 치명적이지는 않았지만 모두 부정확한 답변을 초래함), 0.25에서는 6%를 기록했으며, 이는 temp=1일 때의 0.3%와 비교됩니다. 이 효과들은 0.5와 0.75를 통합하여 분석했을 때 통계적으로 유의미했지만, 개별적인 단계 자체를 확인하기에는 검정력이 충분하지 않았습니다. 이 수치들을 맥락에 맞추자면, t=0 점수는 제가 사용한 이전 2.5 bpw(bits per word)로 양자화된 qwen27b 모델이 달성할 수 있는 수준과 비슷합니다(~여기서 사용된 양자화보다 약 40% 낮음). 이는 동일한 설정에서 qwen3.6보다 낮은 성능입니다. 또한, 낮은 온도는 평균적으로 답변을 더 장황하게 만드는데, temp=1일 때 대비 temp=1에서는 답변 길이가 20% 증가했습니다. 지식/회상 질문(GPQA Diamaond)의 경우, 낮은 온도가 점수에 해를 끼치지는 않았지만, 답변 길이는 늘렸습니다(~8%, 미세한 통계적 유의성). 저는 이 설정들이 실현 가능한지 확인하기 위해 0.8과 0.9에서 후속 테스트를 진행하고 있습니다. 다만, TPS(초당 처리량) 우위를 무너뜨릴 정도로 많은 토큰을 생성하는 모델은 원하지 않기 때문에, TPS가 아닌 실제 경과 시간(wall clock time)을 측정한다는 단서가 있습니다. 관심 있는 분들을 위한 데이터셋 링크는 다음과 같습니다: https://huggingface.co/datasets/jakeatx/swift-1.5-temperature-sweep-gpqa-lcb /u/Brief-Tap-6616이 제출했으며 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기