여러 LLM API를 오가며 자동화 파이프라인을 만들다 보면, 같은 이름의 파라미터라도 플랫폼마다 지원 범위와 동작이 미묘하게 다르다는 걸 자주 느낀다. 헷갈릴 때마다 매번 문서를 다시 뒤지는 대신, 한 번 정리해뒀다.

기본 파라미터 정의

  • temperature: 확률 분포를 얼마나 평평하게(무작위성을 높게) 만들지 조절. 값이 낮을수록 결정적이고 반복 가능한 출력, 높을수록 다양하고 창의적인 출력.
  • top_p (nucleus sampling): 누적 확률이 p에 도달할 때까지의 후보 토큰만 남기고 샘플링.
  • top_k: 확률 상위 k개 토큰만 후보로 남기고 샘플링.
  • frequency_penalty / presence_penalty: 이미 등장한 토큰의 재등장 확률을 낮춰 반복을 억제.
  • stop_sequence: 특정 문자열이 등장하면 생성을 중단.

플랫폼별 지원 범위

파라미터OpenAIClaudeGemini(2026 최신)xAI Grok
temperature0~20~1지원(단, 최신 플래시 모델은 비권장)지원
top_p0~1지원지원(최신 모델은 비권장)지원
top_k미지원지원지원(최신 모델은 비권장)지원
frequency_penalty-2~2미지원제한적지원
presence_penalty-2~2미지원제한적지원

눈에 띄는 트렌드 두 가지

1. Claude는 애초에 파라미터 폭이 좁다. temperature도 0~1 범위로 제한되어 있고, frequency/presence penalty 자체가 없다. 게다가 최근 Opus급 최상위 모델 중 일부는 기본값 이외의 샘플링 오버라이드 자체를 거부하는 경우도 있었다. 세밀한 샘플링 튜닝보다는, 프롬프트 자체의 품질로 원하는 출력을 유도하는 방향에 무게를 두는 설계 철학으로 보인다.

2. Gemini는 샘플링 파라미터에서 점점 손을 떼는 추세다. 최신 모델(예: gemini-3.7-flash 계열)에서는 temperature·top_k·top_p 같은 전통적 샘플링 파라미터보다, 시스템 인스트럭션 기반 제어를 권장하는 쪽으로 무게중심이 옮겨가고 있다. “출력을 더 창의적으로 만들고 싶다"는 요구를, 숫자 파라미터가 아니라 프롬프트 상의 지시문으로 해결하라는 방향이다.

실무에 주는 의미

여러 플랫폼을 번갈아 쓰는 파이프라인을 설계한다면, “이 파라미터가 모든 플랫폼에서 똑같이 동작할 것"이라는 가정은 위험하다. 특히 Claude로 짠 파이프라인을 그대로 Gemini나 OpenAI로 옮기려 할 때 frequency_penalty 값을 그대로 넘기면 무시되거나 에러가 날 수 있고, 반대로 Gemini 최신 모델에 temperature를 세밀하게 튜닝해봐야 기대만큼 효과가 없을 수 있다. 플랫폼을 바꿀 때는 파라미터 이름의 유사성보다 각 플랫폼의 최신 문서를 한 번씩 확인하는 게 안전하다.