Intro

<aside> 🔥

가끔 chat-gpt를 쓰거나 IDE에서 copilot 같은 LLM을 이용한 보조 툴을 사용하면 결과물이 재현이 안되는 경우가 존재합니다. 그래서 다음 두가지를 알아보고자 합니다. (마지막 수정일 : 2025년 3월 16일)

  1. 재현이 안되는 이유
  2. 재현을 가능하게 하는 방법 </aside>

Body

1. 재현이 안되는 이유

1.1. LLM의 구조적인 문제

AI 모델은 기본적으로 확률론에 기반한 이론입니다. 수많은 확률 중에서 가장 높은 확률의 결과물을 내뱉기 때문에 동일한 결과가 나오지 않을 수 있습니다. 예를 들어봅시다.

만약, 제가 메이플스토리 장비 강화 업데이트를 한다고 해봅니다. 100% 주문서를 장비에 사용할 경우 당연히 강화가 될 겁니다. 반면에, 60%의 확률의 주문서를 사용할 경우 강화가 될지 안될지는 장담하기 어렵습니다..

만약, 95% 확률의 주문서라면 어떨까요? 보통의 사람이라면 “95%면 당연히 발리겠지” 라는 생각을 가지게 될겁니다. 그러나 정말 운이 좋지 않다면 5%의 확률로 강화에 실패하게 될 것입니다. 즉, 확률을 자신에게 유리한 방향으로 재해석하여 받아들이기 때문에 결과물을 해석하는 것에 대한 왜곡이 발생하게 됩니다.

아무리 “롤링 썬더 지작 슛~"을 외쳐도 확률은 변하지 않습니다.

아무리 “롤링 썬더 지작 슛~"을 외쳐도 확률은 변하지 않습니다.

LLM 모델도 동일합니다. 95%의 확률로 동일한 결과물이 나올수도, 5%의 확률로 다른 결과물이 나올 수도 있습니다. 하지만, 사람들은 95% 정도면 당.연.히. 나올 것이라는 착각을 하게 되면서 동일한 결과물이 나올 것이라고 생각합니다.

이러한 확률론의 개념을 이해하신다면 조금은 모델이 실수를 하더라도 너그러히 용서할 수 있게 됩니다.

1.2. Temperature

LLM에서는 확률을 변경할 수 있는 설정이 있습니다. 바로 temperature라고 하는 설정입니다.

위에서 LLM의 결과물은 확률적으로 나온다는 것을 언급했습니다. 정확하게는 token이라고 하는 sub-word 단위의 결과물에 대한 확률값인데요. temperature은 token의 확률적인 분포를 smoothing 해주는 정도를 의미합니다. 의미가 너무 어려우니 간단히 아래처럼 이해해주시면 됩니다.

temperature가 높다 : 창의적인(다양한) 결과물들이 나온다.

temperature가 낮다. : 덜 창의적인(일관된) 결과물들이 나온다.

즉, temperature을 0.0으로 설정해주시면 재현 가능한 결과물들이 나오게 됩니다.

하지만, 이것도 완벽하게 재현이 되지 않는 경우가 있는데요. 컴퓨터 공학적으로 분수를 계산할 때, 4/0 처럼 세상에 존재할 수 없는 분수 계산을 막기 위해 4/0.000000000001 처럼 값을 넣어주게 됩니다. 이러한 값을 epsilon(eps)라고 하고, 이 값이 들어감으로써 오차가 발생하여 완벽하게 수학적으로 동일한 값이 재현이 되지 않습니다.

1.3. history prompt

temperature도 0.0이고 운이 좋게도 수학적으로 계산했을때 오차가 큰 영향이 없어서 완벽하게 재현이 가능하다고 가정해봅시다. 그럼에도 결과가 다를 수 있는 것은 여러분이 이미 입력했던 prompt에 따라서 결과값이 달라질 수 있습니다.

스크린샷 2025-03-16 오후 3.32.59.png

스크린샷 2025-03-16 오후 3.33.28.png

의사한테 햄버거가 맛있는지를 설명하는 대답과 요리사에게 햄버거가 맛있는지를 설명하는 대답이 서로 차이가 있음을 알 수 있습니다. 즉, 기존에 입력했던 히스토리에 따라 LLM 모델이 그 히스토리를 고려하여 응답(multi-turn)을 하기 때문에 결과물이 완벽하게 같을 수 없습니다.

2. 재현을 가능하게 하는 방법

1. 재현이 안되는 이유를 보시면 재현을 한다는 건 불가능하다는 것을 아실 수 있습니다. 그럼에도 재현을 최대한 하고 싶으시다면 아래와 같은 방법이 있을거 같습니다.

2.1. temperature = 0.0

temperature를 설정하는 기능은 OpenAI API에서 설정할 수는 있지만, 일반 대중들은 이 설정을 컨트롤하기는 어려울 수 있습니다. 특히, Cursor나 Windsurf에서는 temperature 설정하는 기능은 제공하지 않아 더더욱 재현은 어렵습니다.

2.2. 구체적인 프롬프트

Chat-gpt에 프롬프트를 입력할 때, 오해의 소지가 없도록 구체적으로 작성해준다면 그대로 재현할 가능성이 그나마 높아집니다. 다양하게 해석할 여지가 있다면 확률적으로도 더 왔다갔다할 가능성이 높다고 이해하면 좋습니다.

Conclusion

AI 모델은 확률론에 근거한 계산기이기 때문에 틀릴 수 있다는 것을 항상 염두해둡니다!


⬅️ 이전 페이지

➡️ 다음 페이지

Gemini API 사용법

Reference

https://www.youtube.com/watch?v=k7SJiIW8wgk

<aside>

Topics

왜 Chat-gpt는 재현이 안될까?

Gemini API 사용법

허깅페이스 잘 사용하기

컴퓨터의 소수점 표현

모델 추론 메모리 측정하기

성능과 추론 time

GPU 효율적인 학습

프롬프트 엔지니어링

AI 스쿼드 팀 만들기

</aside>