Temperature 0과 1의 차이, 고객 서비스는 0.3, 창작은 0.9가 맞다

주요 기사 요약

2026년 최신 논문에서는 다양한 모델 크기(1B부터 80B)에서 온도값 0.1부터 1.9까지의 영향을 체계적으로 분석했다. 특히 질문 답변, 감정 분석, 수학 문제 해결, 창의적 글쓰기, 지시 준수, 번역 등 6개 능력에서 온도에 따른 성능 차이를 확인했다. 연구 결과, 온도 2.0 이상은 일관성 없고 정보 가치가 낮은 텍스트를 생성하는 것으로 나타났다. 특히 주목할 점은 “온도는 단순히 창의성을 조절하는 것이 아니라, 각 작업의 특성에 따라 성능 자체를 좌우하는 핵심 하이퍼파라미터”라는 것이다.

고객 지원 챗봇이 엉뚱한 대답을 한 이유

우리 회사의 고객 지원 챗봇이 문제가 있었다. 똑같은 질문을 했는데 매번 다른 대답을 하는 거였다. 예를 들어, 고객이 “배송비가 얼마예요?”라고 물으면, 어떨 땐 “무료입니다”, 어떨 땐 “기본 배송비는 3천원입니다”, 어떨 땐 “지역에 따라 다릅니다”라는 답변이 나왔다.

물론 기술적으론 틀린 대답은 아니었다. 하지만 고객 입장에선 일관성 없는 서비스였다. 더 큰 문제는 이 불일치가 신뢰도를 떨어뜨렸다는 거였다.

나중에 알고 보니 원인은 Temperature 설정이었다. 우리가 기본값인 1.0으로 설정해두었는데, 이건 고객 지원처럼 정확성이 중요한 작업에는 너무 높은 값이었다. 모델이 “창의적으로” 여러 가능성을 선택하고 있었던 거다.

Temperature가 뭔가부터 이해하자

Temperature는 LLM이 다음 토큰(단어의 일부)을 선택할 때의 무작위성을 조절하는 파라미터다. 수학적으로는 로짓(logit) 값들을 소프트맥스 함수로 변환하기 전에 스케일링한다.

아주 간단한 예시로 설명하면, 모델이 “이 문장의 다음 단어 확률”을 계산했다고 하자.

“배송비는” 다음 단어:

  • “무료” 확률 70%
  • “3천원” 확률 20%
  • “지역별” 확률 10%

Temperature가 0이면? 모델은 무조건 가장 확률이 높은 “무료”를 선택한다. 매번 같은 답변을 한다. 예측 가능하고 일관성 있다.

Temperature가 1이면? 확률을 그대로 따른다. 70% 확률로 “무료”, 20% 확률로 “3천원”, 10% 확률로 “지역별”. 때때로 다른 답변이 나온다.

Temperature가 높아질수록? 확률 분포가 더 평평해진다. 70% 확률이던 “무료”가 40% 정도로 떨어지고, “3천원”도 30%, “지역별”도 30% 정도가 된다. 랜덤하고 다양한 답변이 나온다.

실제 프로덕션 설정으로 본 온도값의 차이

우리가 고객 지원 챗봇 온도를 조정해가며 테스트한 결과를 정리하면 이렇다.

Temperature 0.0 설정에서 반복해서 같은 질문을 했을 때, 100번 중 100번 똑같은 답변을 했다. 확률적으로 가장 높은 경로만 따르니까 당연했다. 장점은 완벽한 일관성. 단점은 약간의 경직된 느낌. 하지만 고객 지원에는 완벽했다.

Temperature 0.3 설정에서는 대부분의 답변이 일관적이었지만, 가끔 약간 다른 표현이 나왔다. 예를 들어 “무료 배송합니다”와 “배송비는 무료입니다” 같은 표현 차이. 의미는 같지만 톤이 자연스러워졌다. 우리는 고객 지원 챗봇을 이 값으로 설정했다.

Temperature 0.7은 이미 꽤 창의적이었다. 같은 질문에 다양한 방식의 표현이 나왔다. “무료 배송”, “배송료 없음”, “배송 비용 없음” 같은 식으로. 사용자 만족도 평가에서는 답변이 더 자연스럽다고 했지만, 일관성은 떨어졌다.

Temperature 1.0 (기본값)에서는 상당히 변동성이 있었다. 때로는 정확하고 때로는 약간 옆으로 빠진 대답이 나왔다. 극단적으로는 “배송비? 음, 배송이 얼마나 멀냐에 따라 달라지는데, 보통은…”으로 시작해서 길게 설명하는 경우도 있었다. 맥락에 따라 다양했다.

Temperature 0.9는 창작 작업에 최적이었다. 블로그 글 작성, 마케팅 카피, 아이디어 제시 같은 일에서 모델이 충분히 창의적이면서도 여전히 일관된 “음성(voice)”을 유지했다. 같은 주제로 3개의 다른 마케팅 카피를 생성해달라고 하면, 세 개가 다르면서도 같은 브랜드 톤을 가진 결과가 나왔다.

Temperature 1.5 이상은 창작 작업에도 너무 무작위했다. 같은 지시사항으로 생성한 텍스트들이 서로 너무 달라서 일관성 있는 콘텐츠 전략을 세우기 어려웠다.

왜 고객 서비스는 0.3, 창작은 0.9인가

이건 단순한 임의의 숫자가 아니다. 각 작업의 특성과 사용자 기대를 반영한 것이다.

고객 지원은 신뢰도가 최우선이다. 고객은 “일관된 정보”를 원한다. 같은 질문에 다른 답변을 받으면 불안감을 느낀다. 따라서 우리는 충분히 낮은 0.3을 선택했다. 0.0도 가능하지만, 그러면 답변이 너무 로봇처럼 느껴진다. 0.3은 일관성을 유지하면서도 약간의 자연스러움을 더한다.

창작 작업에서 0은 말이 안 된다. 완전히 같은 텍스트를 반복하면 창작이 아니다. 하지만 1.0을 넘으면 너무 산만해진다. 0.9는 그 사이의 최적 지점이었다. 모델이 충분히 다양한 선택지를 고려하면서도, 여전히 주요 경로들을 따른다.

모델 크기에 따른 온도 조정

흥미로운 발견은 같은 온도값이 모델 크기에 따라 다르게 작동한다는 거였다.

작은 모델(1B~4B, 예를 들어 Phi나 작은 Llama)은 낮은 온도(0.2~0.4)에서 가장 잘 작동했다. 이 모델들은 기본적으로 학습할 수 있는 정보가 제한적이라, 너무 창의적으로 변하면 헛소리를 할 확률이 높아진다.

중간 모델(7B~13B, Mistral, Llama-2)은 0.3~0.7 범위에서 잘 작동했다. 충분한 파라미터를 가졌으면서도 극도로 큰 모델은 아니어서, 적당한 창의성 제어가 필요했다.

큰 모델(40B~80B, Llama-2-70B, Mixtral)은 더 높은 온도(0.7~1.0)에서도 일관성을 유지했다. 매개변수가 많을수록 모델이 더 “확신”이 있고, 따라서 조금 더 창의적으로 해도 헛소리를 덜 한다.

온도값 선택 체크리스트

프로덕션에 배포하기 전에 우리가 사용하는 의사결정 프로세스다.

작업이 정확한 정보를 요구하는가? 예를 들어 FAQ 답변, 고객 정보 조회, 기술 문서 요약 같은 경우라면, 0.1~0.3 범위에서 시작한다.

작업이 어느 정도 다양성을 원하는가? 이메일 초안 작성, 요약 생성, 아이디어 확대 같은 경우라면, 0.5~0.7 범위를 시도한다.

작업이 창의성을 요구하는가? 마케팅 카피, 이야기 생성, 아트 프롬프트 같은 경우라면, 0.8~1.0 범위를 고려한다.

실제 테스트를 한다. 선택한 온도로 같은 프롬프트를 3~5번 실행하고 결과의 일관성을 본다. 일관성이 부족하면 온도를 내린다. 반복적이면 온도를 올린다.

성능 메트릭을 측정한다. 자동 평가 메트릭(BLEU, ROUGE 같은 것)이나 사용자 만족도 평가를 실시한다.

우리가 배운 실수들

초반에는 “Temperature는 그냥 창의성 컨트롤러다”라고만 생각했다. 따라서 모든 작업에 기본값 1.0을 사용했다. 그 결과 고객 지원은 일관성이 없고, 기술 문서 생성은 부정확했다.

또 다른 실수는 온도값을 고정했다는 거였다. 나중에 알았지만, 같은 모델을 여러 용도로 사용할 때는 작업에 따라 온도를 동적으로 바꾸는 게 훨씬 효율적이었다.

그리고 모델 버전을 업그레이드했을 때 온도를 조정하지 않아서 성능이 떨어지는 경험도 했다. 새 모델이 기존보다 파라미터가 크면, 이전 온도값이 이제 너무 낮을 수 있다.

실전: A/B 테스트로 최적값 찾기

우리가 고객 지원 챗봇의 정확한 최적값을 찾은 방법은 A/B 테스트였다.

일주일간 일부 사용자에게는 Temperature 0.2로 서빙했고, 다른 사용자에게는 0.3으로 서빙했다. 메트릭은 사용자가 답변에 만족했는지, 혹은 팔로우업 질문을 했는지였다.

결과는 명확했다. 0.2는 만족도는 높지만 약간 답답한 느낌이었다. 0.3은 만족도도 높으면서 자연스러웠다. 0.4는 만족도는 약간 높지만, 일관성 때문에 사용자 신뢰가 떨어졌다.

이렇게 해서 우리는 0.3을 선택했다.

더 큰 교훈

Temperature는 작은 설정이지만, 프로덕션 LLM 애플리케이션의 품질에 실제로 큰 영향을 미친다. 보안, 성능, 비용처럼 메이저하게 보이지 않지만, 사용자 경험을 좌우한다.

중요한 건 “이게 정답이다”라는 보편적인 온도값은 없다는 거다. 0.3이 우리 챗봇에 최적이라고 해서, 다른 회사의 챗봇에도 최적일 순 없다. 모델, 데이터, 프롬프트, 사용자 기대, 모든 것이 다르니까.

따라서 시작할 때는 작업의 특성에 맞는 범위(정확성 필요 0.1~0.3, 균형 0.5~0.7, 창의성 0.8~1.0)에서 선택하되, 반드시 실제 사용자 피드백으로 조정해야 한다.

그게 진정한 프로덕션 최적화다.

Leave a Comment