Prompt Study

Prompt Engineering Study log
Prompt Study 일기
<Prompt Research 시작 일기> LLM의 hyper-parameter 중 temperature에 대한 기록. api나 playground를 통해 llm(특히, GPT or Claude)을 사용하다보면 hyper-paramter인 temperature, top_p, presense_penalty, frequency_penalty, stop(or stop_sequence)를 볼 수 있다. 하나씩 정리해보고자 한다. Temperature (온도): 물의 온도를 생각해보자. 물이 팔팔 끓으면 수증기로 기화가 되어서 자유분방하게 날라다닌다. -> LLM의 temperature를 높일수록 creative가 높아진다. -> 단, 기화가 될 정도로 높이면 수증기가 날라다니듯, 글자도 깨져서 날라다닌다. 온도를 낮추면 물이 얼어서 얼음이라는 고체가 된다. -> LLM은 상당히 사무적이고 딱딱하면서 고정적인 답변을 되돌려 준다. -> 반복적이고 비교적 정확성을 요구하는 task에 대해서 보통은 온도를 낮춘다고 한다. However, [The Effect of Sampling Temperature on Problem Solving in Large Language Models, M Renze, E Guven(2024)]를 보면, 0.0 ~1.0 사이에서 accuracy에 대한 통계적 유의성은 거의 없다. Task별, 모델별, 상황에 맞게 temperature를 변경해야 한다. temperature는 보통 0.0~2.0 사이로 맞추는데, 1.0을 넘어가면서부터는 창의성과 성능 사이의 trade-off가 발생한다. 필요에 따라 잘 조절할 필요가 있다고 생각한다. temperature가 낮을수록 확률적 변동성이 줄기 때문에 답변의 일관성을 높일 수 있는데, 이런 경향 때문인지 복잡한 업무, 정밀한 업무를 할 때에도 temperature를 0으로 고정해놓고 사용하는 경우를 종종 겪었다. 하지만, 필요에 따라 0.0~1.0으로 변동을 할 필요가 있어보인다. 실례로, gpt 4o 기준 temperature: 0.6 상태에서 아무 문제 없이 수학 문제의 정답을 잘 추론했는데, 0.0으로 낮췄더니 오답률이 80%가 증가하는 케이스도 있었다. (40회 반복 테스트 중) 문제에 따라서, 필요도에 따라서 temperature는 지속적인 튜닝이 필요한 것으로 보인다. 개인적으로 0.25로 맞춰 놓고 고도화를 진행할 때 조금씩 줄여보거나 높이는 방향으로 테스트 해보고 있다.
  • J
    Jerry_Kwon