기초 이론 편 · 3부 ChatGPT는 어떻게 대답을 만들까? — 3.3
같은 질문인데 왜 매번 답이 다를까
모델은 다음 말을 확률로 내놓고, 그중에서 '뽑습니다'. 얼마나 과감하게 뽑을지가 온도입니다.
ChatGPT에 똑같은 질문을 두 번 하면, 답이 조금씩 다릅니다. “다시 생성” 버튼을 누르면 또 다른 답이 나오고요. 모델이 매번 헷갈리는 걸까요?
3.1에서 모델이 다음 말마다 확률을 낸다고 했습니다. “김치찌개 38%, 뭐 27%…” 이렇게요. 여기서 중요한 건, 모델이 보통 제일 높은 것만 고르지 않고, 확률대로 뽑는다는 것입니다. 38% 확률이면 열 번 중 네 번쯤만 “김치찌개”가 나옵니다.
"오늘 점심은" 다음 말을 뽑아요. 온도를 바꾸면 확률 막대가 어떻게 변하는지 보고, 여러 번 뽑아보세요.
확률은 설명을 위해 직접 정한 예시 숫자예요.
해보면 보이는 것
온도 1: 원래 확률 그대로 뽑습니다. 10번 뽑으면 여러 말이 섞여 나옵니다.
온도를 낮추면: 높은 후보는 더 높게, 낮은 후보는 더 낮게 바뀝니다. 0.3이면 “김치찌개”가 67%가 되고, 0.1이면 97%로 거의 항상 나옵니다. 온도 0이면 무조건 제일 높은 것만 고릅니다.
온도를 높이면: 막대들이 비슷해집니다. 2까지 올리면 네 후보가 31%, 26%, 23%, 20%로 거의 고르게 됩니다. 15%였던 “간단하게”도 다섯 번에 한 번은 나옵니다. 더 다양하고 의외의 문장이 되지만, 엉뚱한 말이 나올 위험도 커집니다.
왜 굳이 뽑을까
항상 제일 높은 것만 고르면 늘 같은 답이 나오니까 더 정확할 것 같죠? 그런데 그러면 글이 단조롭고 같은 표현을 반복하는 경향이 생깁니다. 아이디어를 여러 개 받고 싶을 때나 글을 쓸 때는 다양성이 필요하고요.
그래서 용도에 따라 다릅니다. 정확한 답이 중요한 일(계산, 사실 확인, 코드)에는 낮은 온도가, 다양한 아이디어가 필요한 일에는 높은 온도가 어울립니다. ChatGPT 같은 서비스는 이 값을 적당히 정해두고, API로 직접 쓰면 이 값을 바꿀 수 있는 경우가 많습니다.
더 깊게 · 온도가 하는 계산
모델은 사실 확률이 아니라 후보마다 점수(로짓)를 내고, 그 점수를 확률로 바꿉니다. 온도는 이 점수를 온도로 나누는 것입니다. 온도가 1보다 작으면 점수 차이가 커져서 1등이 더 압도적이 되고, 1보다 크면 점수 차이가 줄어서 고르게 됩니다.
온도 말고도 뽑는 방법을 조절하는 장치가 더 있습니다. 예를 들어 top-p는 확률이 높은 순서대로 더해서 일정 비율(예: 90%)이 될 때까지의 후보만 남기고, 나머지 꼬리는 아예 버린 다음 뽑습니다. 아주 엉뚱한 후보가 뽑히는 걸 막는 방법입니다.
정리
- 모델은 다음 말마다 확률을 내고, 보통 그 확률대로 뽑습니다. 그래서 같은 질문에도 답이 달라집니다.
- 온도가 낮으면 확실한 쪽으로, 높으면 다양한 쪽으로 뽑힙니다.
- 온도가 낮다고 정답이 보장되는 건 아닙니다. 확률이 높은 것과 맞는 것은 다를 수 있습니다.
이 장을 복사합니다. ChatGPT나 Claude 같은 AI에 붙여넣고 그대로 보내면 AI가 다 읽었다고 답합니다. 그다음 궁금한 걸 물어보세요.