🤖 LLM 예측 가능성을 조절하는 주요 생성 옵션
LLM(Large Language Model)은 우리가 입력한 문장을 그대로 계산하는 게 아니라,
“다음에 올 가장 그럴듯한 단어”를 확률적으로 예측(Sampling) 하면서 문장을 만듭니다.
즉, LLM의 출력은 결정론적(Deterministic) 이 아니라 확률적(Stochastic) 인 거죠.
이때 어떤 확률 분포를 기준으로 단어를 선택할지, 얼마나 창의적이게 할지,
혹은 얼마나 보수적으로 답변할지를 정하는 설정들이 바로 **“생성 옵션(Generation Parameters)”**입니다.
오늘은 그중에서도 모델의 예측 가능성(=일관성) 을 조절하는 핵심 옵션 12가지를 깊게 살펴볼게요.
🌡️ 1️⃣ Temperature — “창의성의 온도”
핵심 역할:
모델의 전반적인 무작위성을 조절하는 가장 대표적인 파라미터입니다.
temperature는 확률 분포의 기울기(sharpness) 를 바꿉니다.
낮은 온도에서는 모델이 가장 확률이 높은 단어만 선택하려 하고,
온도를 높이면 확률이 낮은 단어도 선택될 가능성이 커집니다.
- 0.1 ~ 0.3 → 정형적이고 논리적인 답변
- 0.7 ~ 1.0 → 다양하고 자연스러운 표현
- 1.2 이상 → 창의적이지만 불안정하거나 엉뚱한 결과 가능
💡 활용 팁
- 정보 중심(Q&A, 요약 등): 0.2~0.4
- 아이디어 생성, 스토리텔링: 0.8~1.2
🎯 2️⃣ Top-p (Nucleus Sampling)
핵심 역할:
전체 단어 확률 분포에서 누적 확률이 p 이하인 단어만 남기고 나머지는 제거합니다.
즉, 확률이 높은 단어들로 이루어진 ‘핵심 영역(nucleus)’ 내에서만 선택을 하는 방식이에요.
이 덕분에 확률 꼬리 부분의 엉뚱한 단어가 선택되는 것을 방지할 수 있습니다.
- top_p=0.3 → 모델이 안정적이고 예측 가능한 답변을 생성
- top_p=0.9 → 다양성과 자연스러움이 높아짐
💬 비유하자면:
“온도(temperature)”가 전체 분위기를 조절하는 난방기,
“top_p”는 단어를 담는 그릇의 크기라고 생각하면 돼요.
🧩 3️⃣ Top-k — “후보 단어 개수 제한”
핵심 역할:
다음 단어를 예측할 때 확률이 높은 상위 k개의 단어만 후보로 남기고 선택합니다.
- k가 작을수록 → 선택 폭이 좁아져 일관성 ↑
- k가 클수록 → 다양한 단어가 나와 창의성 ↑
💡 예시
top_k=50은 “다음에 올 단어 후보 50개 중에서 선택”을 의미합니다.
이 방법은 특히 작은 모델이나 특정 문체를 유지해야 하는 작업에서 유용합니다.
📘 Top-p와 Top-k는 비슷하지만, Top-p는 확률 합으로, Top-k는 개수로 제한합니다.
📏 4️⃣ Max Tokens (또는 Max New Tokens)
핵심 역할:
한 번의 생성에서 모델이 출력할 수 있는 최대 길이를 정합니다.
너무 짧게 설정하면 문장이 중간에 끊기고,
너무 길면 불필요한 반복이 생기거나 주제가 흐려질 수 있습니다.
💡 추천 설정
- 단답형 응답: 200~300
- 요약문, 기사, 블로그 초안: 1000~2000
- 긴 에세이나 소설형 응답: 3000~5000
이 옵션은 “출력의 완성도”뿐 아니라 비용과 응답 시간에도 직접적인 영향을 줍니다.
🔁 5️⃣ Repetition Penalty — “반복 억제”
핵심 역할:
모델이 같은 단어나 구문을 반복하지 않도록 점수를 낮추는 기능입니다.
- 1.0 → 제약 없음
- 1.2~1.8 → 반복 억제 강화
💡 예시:
블로그 요약 중 “AI는 매우 유용하다.”가 계속 반복된다면
repetition_penalty=1.5 정도로 조정하면 훨씬 자연스러워집니다.
📘 너무 높게 설정하면 모델이 단어를 회피하다가 어색한 문장을 만들 수도 있으니 주의!
🔡 6️⃣ Frequency Penalty — “단어 등장 빈도 제어”
핵심 역할:
이미 자주 등장한 단어일수록 점수를 깎아,
같은 단어가 반복되지 않게 조정합니다.
- frequency_penalty=0.8 → 문장 내 어휘 다양성 증가
- 낮을수록 → 일관성은 유지되지만 단어가 반복될 가능성 증가
💬 활용 예:
요약문, 인터뷰 스크립트 등 같은 단어가 자주 등장하는 문장에서 매우 유용합니다.
🆕 7️⃣ Presence Penalty — “새로운 주제 유도”
핵심 역할:
이미 한 번 등장한 단어를 또 사용할 가능성을 낮춥니다.
이 옵션은 “빈도”가 아니라 “존재 여부”를 기준으로 작동해,
새로운 주제나 아이디어를 도입하도록 모델을 유도합니다.
💡 활용 예:
- 브레인스토밍, 글쓰기, 마케팅 카피 등에서 새 표현을 다양하게 생성
- presence_penalty=0.5~1.0 권장
Frequency Penalty가 **“같은 말을 너무 자주 쓰지 말라”**면,
Presence Penalty는 **“이미 한 말은 다시 하지 말라”**입니다.
⛔ 8️⃣ Stop Sequence — “출력 중단 조건”
핵심 역할:
특정 문자열이 등장하면 모델이 출력을 멈추도록 설정합니다.
“stop”: [“\n\n”, “###”, “END”]
💬 활용 예:
- 코드 블록, 표, 섹션 구분이 있는 글 생성 시
- 대화형 모델에서 “User:”나 “Assistant:” 다음에 자동 중단
이 기능은 출력 형식을 예측 가능하게 고정하고,
불필요한 이어쓰기(looping)을 방지하는 데 매우 유용합니다.
🎲 9️⃣ Typical P (전형성 샘플링)
핵심 역할:
확률 분포의 “정보 엔트로피(Entropy)” 중심부 근처에서만 단어를 선택합니다.
쉽게 말해, “너무 평범한 단어”도, “너무 희귀한 단어”도 제외하고
자연스럽게 들리는 단어만 선택하도록 하는 방식이에요.
- typical_p=0.9 → 자연스러운 균형
- 낮을수록 → 더 일관되고 보수적인 결과
💬 이 옵션은 temperature와 top-p 사이의 중간 역할을 하며,
뉴스, 블로그, 자연스러운 문체 생성에 특히 강력합니다.
🧮 🔟 Mirostat Sampling — “지능형 온도 조절”
핵심 역할:
긴 문장에서도 무작위성을 동적으로 조정하여 일관성을 유지합니다.
일반적인 샘플링은 글이 길어질수록 점점 불안정해지지만,
Mirostat은 **“목표 엔트로피”**를 정해놓고 그 수준을 유지하면서
문장 길이와 상관없이 일정한 톤을 유지하도록 합니다.
| 옵션 | 설명 |
| mirostat=1 or 2 | 동작 모드 |
| mirostat_tau | 목표 퍼플렉시티(문장 다양도) |
| mirostat_eta | 조정 속도 |
💡 예시:
mirostat_tau=5.0, mirostat_eta=0.1 정도가 자연스러운 문장 생성에 적당합니다.
🧭 11️⃣ No-repeat N-gram — “문장 패턴 중복 방지”
핵심 역할:
같은 단어 조합(N-gram)이 반복되는 것을 막습니다.
예를 들어 no_repeat_ngram_size=3이면
“the end of the” 같은 3단어 조합이 다시 등장하지 않게 됩니다.
이 설정은 특히 요약, 번역, 긴 문서 생성에서
문장 패턴이 반복되는 문제를 예방하는 데 효과적입니다.
🎯 12️⃣ Seed — “결과 재현성 확보”
핵심 역할:
무작위 샘플링의 초기값(난수 시드)을 고정해 매번 같은 결과를 재현합니다.
“seed”: 42
💬 이 옵션은 모델 테스트나 비교 실험 시 필수입니다.
다만, 클라우드 환경에서는 서버 로드 밸런싱에 따라
시드가 완전히 동일하게 작동하지 않을 수도 있습니다.
💎 보너스 옵션 (모델별)
| 옵션 | 역할 | 지원 모델 |
| Tail-free Sampling (tfs) | 확률 꼬리 자르기 | Mistral, Llama |
| Penalty Alpha | Top-k + Top-p 조합 | HuggingFace |
| Beam Search | 여러 후보 경로 탐색 | 번역, 요약 |
| Length Penalty | 문장 길이 가중치 | Beam 기반 모델 |
| Early Stopping | 조건 충족 시 중단 | 대부분 모델 |
🧠 전체 요약표
| 옵션명 | 역할 | 낮을 때 | 높을 때 |
| Temperature | 무작위성 조절 | 예측적 | 창의적 |
| Top-p / Top-k | 단어 후보 제한 | 집중적 | 다양성↑ |
| Repetition Penalty | 반복 억제 | 반복↑ | 자연스러움↑ |
| Frequency / Presence | 단어 다양성 제어 | 일관성↑ | 새로운 표현↑ |
| Stop Sequence | 출력 구조 고정 | 자유로움↑ | 형식적 일관성↑ |
| Typical / Mirostat | 샘플링 균형 | 단조로움↑ | 자연스러움↑ |
| No-repeat N-gram | 문장 패턴 억제 | 반복↑ | 일관성↑ |
| Seed | 결과 재현성 | 불안정 | 동일 결과 |
🪄 마무리
✨ “온도와 샘플링은 창의성을,
패널티와 스톱은 예측 가능성을,
시드는 재현성을 결정한다.”
LLM의 출력 품질은 결국 이 세 가지 축의 조화로 완성됩니다.
이 옵션들을 이해하고 조합할 줄 안다면,
ChatGPT 같은 AI의 결과를 **“우연”이 아닌 “의도된 스타일”**로 바꿀 수 있습니다. 🎯