문장은 그대로인데 결과를 바꾸는 조절값
온도 0과 온도 1에서 실행한 같은 프롬프트는 사실상 서로 다른 계약이야. 샘플러 설정도 프롬프트 계약의 일부인데, 프롬프트 설계를 설명하는 글에서는 자주 빠져.
각 조절값이 건드리는 것
- 온도(temperature) — 표본을 뽑기 전에 로짓의 폭을 조절해. 낮으면 선택지가 좁고 결과가 일정해지며, 높으면 뜻밖의 선택이 늘어나. 모델의 확신을 나타내는 값은 아니야.
- Top-P(핵 표본추출) — 누적 확률이 p 이상이 되는 가장 작은 토큰 집합 안에서만 다음 토큰을 뽑아. 온도가 높을 때 선택지가 끝없이 퍼지는 걸 눌러줘.
- Top-K — 확률과 관계없이 상위 k개 토큰만 남겨. 요즘 최전선 API에서는 Top-P보다 덜 자주 보여.
- 시드(seed) — 일부 제공업체가 실행 결과를 되풀이하기 쉽게 노출해. 다만 최선을 다해 비슷하게 맞출 뿐, 비트 단위 재현까지 보장하지는 않아.
- 중단 문자열(stop sequence) — 이 문자열이 나오면 생성을 멈춰. 울타리로 감싼 출력을 받을 때 특히 유용해.
일할 때 잡는 기준
추출·분류·JSON 출력처럼 정답이 있는 작업은 온도 0 또는 0.2에서 시작해. 문체나 발상이 다양해야 하는 창작 작업은 0.7~1.0이 출발점이야. 1.2를 넘기기보다는 대개 Top-P를 0.9 정도로 묶는 편이 낫고.
추론 예산이라는 네 번째 축
Claude의 extended thinking, OpenAI의 o-series, Gemini의 thinking처럼 별도 추론 모드를 가진 모델에서는 추론 예산도 결과를 바꿔. 이 축은 네 번째 트랙에서 자세히 다룰 거야.
[contract] 아래 후보 중 "내부 투자검토 메모에 가장 적합한 후보" 하나를 선택하라.
후보:
선택 기준:
출력 contract:
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이런식으로 점점 복잡하게 했는데도 결과값은 temperature=0.0 | average_score=10.00/10 | perfect=5/5 temperature=0.7 | average_score=10.00/10 | perfect=5/5 temperature=1.2 | average_score=10.00/10 | perfect=5/5 이처럼 전부 만족을 하네요. 아마도 제가 temperature별로 명확한 답을 얻을 수 있는 문제를 선택해서, 문제의 변별력이 떨어졌나봐요