같은 프롬프트, 다른 답
temperature 0에서도 modern 모델은 비트 단위로 deterministic하지 않아. server-side batching, tokenizer 변화, floating-point 순서가 output을 흔들어. non-zero temperature에서는 distribution에서 sampling하는 거고. "방금 한 번 해봤는데 됐어"는 프롬프트가 work한다는 evidence가 아니야 — 한 sample이 work했다는 evidence지.
'work한다'가 진짜 뭘 뜻하나
프롬프트가 work한다는 건, 너가 신경 쓰는 input distribution에 대한 output distribution이 너가 견딜 수 있는 비율로 contract를 만족한다는 거야. 이 한 문장이 평범하지 않은 이유는 모든 단어가 load-bearing이거든.
- input distribution — 너가 시도해본 그 한 example만이 아니야.
- output distribution — 너가 본 그 한 sample만이 아니야.
- 견딜 수 있는 비율 — safe rejects는 99%, creative task는 80%; 의도적으로 골라.
최소 eval
프롬프트 ship하기 전에 representative input 적어도 20개 (디자인할 때 쓴 거 말고)에 대해 돌려봐. output을 contract 기준으로 score해. failure mode를 메모해. 이게 의미 있는 "works"의 최소 단위야. 트랙 8에서 진짜 eval design으로 확장.
한 번 성공한 프롬프트에 기대지 말고 통계적 분포를 테스트 해야 한다.
프롬프트가 동일함에도 결과가 매번 다른 이유는 모델의 확률적 출력(Probabilistic Output) 특성 때문이다. Temperature 0에서도 결정론적(Deterministic)이지 않은 요인이 존재하므로, 무작위 샘플링 환경에서 출력 분포(Output Distribution)가 흔들리는 것은 자연스러운 현상이다. 실습 과정에서 한 번 PPT 형태로 예쁘게 나온 것은 프롬프트가 완성되었다는 신호(Signal)가 아니라 하나의 일화적 샘플일 뿐이다. 이후 단순 텍스트가 출력된 현상 역시 프롬프트가 안정적인 출력 분포(Output Distribution)를 형성하지 못했음을 보여준다. 작성한 프롬프트가 의도한 형식을 안정적으로 유지하는지 검증하려면 본문의 가이드대로 최소 20개 이상의 다양한 입력값으로 테스트하여 내가 견딜 수 있는 비율(계약 조건)을 만족하는지 통계적으로 확인해야 한다.