brunch

왜 ChatGPT는 따뜻할수록 더 창의적일까?

ChatGPT의 temperature 이해하기

by 여운

OpenAI의 ChatGPT, 구글의 Gemini, 메타의 Llama2 등 다양한 LLM이 쏟아져 나오는 시대다. 여러 LLM을 테스트해 보면서 생성 관련 파라미터의 값도 조정해 보기 마련인데, 이 파라미터들의 의미가 무엇일까?


파라미터의 값을 조정하면 기대할 수 있는 결과는 API 문서에도 잘 정리되어 있다. ChatGPT API 문서에 따르면, temperature는 값을 높이면 좀 더 랜덤한 문장이, 낮추면 좀 더 정제된 문장이 생성된다고 한다.

https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature

스크린샷 2024-01-27 오전 10.50.14.png


그게 어떻게 가능할까?

LLM은 문장을 생성할 때 한 번에 한 단어(토큰)씩 생성한다. 지금까지 주어진 문맥을 고려하여 그다음에 올 단어를 하나씩 예측하는데, 이때 그 모델이 알고 있는 모든 단어를 고려한다. 주어진 문맥 다음에 각 단어가 나올 확률을 고려하여 가장 적절한 단어를 선택해 문장을 이어나가는 방식이다.

이때 각 단어가 나올 확률을 조금씩 조정하면 색다른 문장이 만들어질 수 있다. 이를 조정하는 방식 중 하나가 temperature이다.


LLM이 내뱉는 raw 반환값은 모델이 알고 있는 모든 단어의 logits값이다. 확률이 아니라는 의미다. 이 logits 값을 확률로 만들어주기 위해 softmax라는 함수를 적용해 준다. softmax 함수는 logits값들 사이의 대소관계를 유지하며, 합은 1로 바꿔준다. 그러면 LLM은 이 확률에 따라 단어를 고른다. 단어 A의 확률이 0.85, 단어 B의 확률이 0.06이라면, 0.85의 확률로 단어 A가 선택되고, 0.06의 확률로 단어 B가 선택되도록 하면서 랜덤하게 단어를 선택한다는 의미다.


KakaoTalk_Photo_2024-01-27-13-38-27.jpeg


temperature는 이 softmax 함수에 적용되어 단어들의 확률 분포를 조금씩 조정해 준다. 각 단어의 logits 값을 temperature로 나눈 후 softmax를 적용해 조정된 확률 분포를 만드는 것이다. 따라서 temperature 값이 1이면 원래의 확률 분포와 같은 결과가 나온다. 그래서인지 ChatGPT API에서 temperature의 디폴트 값도 1이다.


KakaoTalk_Photo_2024-01-27-13-38-33.jpeg


위의 수식은 기본적인 softmax, 아래 수식은 softmax에 temperature를 적용한 버전이다. 파란색으로 쓴 t가 temperature를 의미한다. x_i가 i번째 단어의 logits이고 이를 softmax에 넣어 나온 반환값이 i번째 단어의 (조정된) 확률이라고 보면 된다. n은 모델이 알고 있는 단어의 개수이다.


temperature 값은 작을수록 확률 분포가 더 양극화된다. temperature 값이 작으면 안 그래도 나올 확률이 높았던 단어의 확률은 더 높아지고, 안 그대로 나올 확률이 낮았던 단어의 확률은 더 낮아진다는 의미다. 그래서 좀 더 뻔하고 확실한 문장이 생성될 수 있다. ChatGPT API 문서에 따르면 temperature 0.2 정도는 작은 값으로 본다.


반면 temperature 값이 커지면 각 단어의 확률이 비슷비슷해진다. 나올 확률이 높았던 단어의 확률과 나올 확률이 낮았던 단어의 확률이 고만고만해진다는 것이다. 그래서 temperature 조정 전에는 정말 뽑히기 어려웠던 단어도 좀 더 쉽게 뽑히고, 더 랜덤하고 창의적이고 새로운 문장이 생성될 수 있다. ChatGPT API 문서에 따르면 temperature 0.8 정도는 큰 값으로 본다.



참고

https://huggingface.co/blog/how-to-generate

https://medium.com/mlearning-ai/softmax-temperature-5492e4007f71




Thumbnail Image by freestocks on Unsplash

keyword
매거진의 이전글챗GPT의 할머니, Transformer (01)