Top P

Top P (탑 P 샘플링)

Top P는 퍼센트를 기준으로 고려할 토큰 수를 제한하는 샘플러 설정이에요. 아이디어는 샘플링할 때 어휘(vocabulary) 전체를 고려하지 말고, 특정 확률 질량(probability mass) 안의 일정량만 고려하자는 거예요.

Top P를 0.1로 설정했다고 해볼게요. 이러면 확률 합이 10%가 되는 최선의 토큰들만 고려된다는 뜻이에요.

출처: 문서

본문

시각화 (Visualization)

아래 데모에서는 먼저 Temperature를 설정하고 나서 Top P를 50%로 설정할 거예요. Temperature가 0이면 항상 결정적(deterministic)이어서, 이 시나리오에서 Top P는 아무것도 바꾸지 못한다는 점을 기억하세요.

일이 일어나는 순서는 이렇게 돼요:

  • 먼저 Temperature가 적용돼요.
  • 그다음 Top P 0.5가 가장 가능성 높은 토큰만 남겨요.
  • 특정 토큰들이 더 이상 선택지가 아니게 되면서 확률이 다시 분배돼요.

분포는 이렇게 변해요.

(4비트 정밀도의 Mistral 7B에서 서로 다른 Temperature 값과 상위 5개 토큰을 보여줘요.)

Top P는 50% 목표에 도달할 때까지 최상위 토큰들만 고려해요.

다른 토큰들의 확률은 이제 0이 되고, 남은 토큰들의 확률이 다시 조정돼요.

Top P는 질량 확률(mass probability)에 기반해서 가능성이 낮은 토큰이 선택될 가능성을 완전히 제거해요. 항상 스펙트럼의 높은 쪽만 유지해서 아주 고품질인 토큰만 고려해요. 그래서 선택의 다양성은 어느 정도 유지하면서, 아주 나쁜 토큰이 선택될 가능성은 완전히 없애줘요. 이 둘은 고려되지 않으니까요. Temperature와 Top P 둘 다 균형 잡는 건 보통 매우 까다로워서, 보통 둘 중 하나를 고정하고 나머지 하나만 바꾸는 걸 권장해요. 다만 여러분의 사용 사례에 맞는 최적 설정을 자유롭게 실험해 보세요!

무엇을 배웠나요? (What Have We Learnt?)

  1. Top P의 역할: Top P는 지정된 확률 질량에 기반해서 고려할 토큰 수를 제한하는 샘플러 설정이에요. 가장 가능성 높은 토큰에 집중해서 LLM이 생성하는 출력의 품질을 개선하는 데 도움을 줘요. Top P 값을 설정하면 누적 확률이 지정된 퍼센트까지 합해지는 토큰들만 고려돼요. 예를 들어 Top P 0.1은 확률 합이 10%가 되는 토큰들만 고려한다는 뜻이에요.
  2. Temperature와의 상호작용: Top P는 보통 Temperature 설정 이후에 적용돼요. 다만 샘플러는 종종 고도로 커스터마이즈될 수 있어요.
  3. 출력에 미치는 영향: Top P를 쓰면 모델이 아주 가능성이 낮은 토큰을 고려하지 않아서, 출력의 품질과 일관성을 어느 수준 유지하는 데 도움이 돼요.
  4. Temperature와 Top P의 균형: Temperature와 Top P를 둘 다 균형 잡는 건 자주 어려워요. 특정 사용 사례에 맞는 최적 설정을 찾으려면 한 파라미터를 고정하고 다른 하나를 조정하는 걸 권장해요. 하지만 최선의 조합을 찾는 핵심은 실험이에요.

다른 샘플러 설정도 확인해 보세요 -> Sampling

더 알아보기 (Learn more)