AI 해부교실 · Part 9 대답이 만들어지는 순간
82장 후보 줄이기
Q. 룰렛에 '피자' 칸이 있으면, 언젠가는 정말 '피자'가 뽑히지 않을까요?
- 샘플링에는 함정이 있어요. 후보는 수만 개라서, 아주 작은 막대들도 다 모으면 꼬리가 꽤 두꺼워져요.
- 꼬리가 3%뿐이어도, 100조각짜리 답을 쓰면 어딘가 한 번은 엉뚱한 말이 섞일 확률이 95%나 돼요.
- 그래서 꼬리를 잘라요. 첫째, Top-k. 확률 순서로 위에서 k개만 남겨요. k가 3이면 세 개만 남죠.
- 남은 85%를 다시 나눠서 합을 1로 맞춰요. 간다 61.2%, 갔다 24.7%, 늦었다 14.1%. 이제 룰렛을 돌려요.
- 둘째, Top-p. 위에서부터 확률을 더해 가다가 p, 예를 들어 90%를 넘는 순간 멈추고 나머지를 잘라요.
- Top-k는 늘 3개를 남기지만, Top-p는 모델이 확신하면 1개, 헷갈리면 6개처럼 상황에 맞춰 남겨요.
- 정리하면, 점수를 온도로 나누고, 소프트맥스로 확률을 만들고, 꼬리를 자르고, 룰렛을 돌려요. 이게 조각 하나가 뽑히는 길이에요.
한 장 요약
- 후보가 수만 개라, 작은 꼬리도 모이면 엉뚱한 말이 뽑힐 수 있다.
- Top-k는 위에서 k개만, Top-p는 위에서부터 더해 p를 넘을 때까지 남긴다.
- 자른 뒤 남은 것끼리 다시 나눠 합을 1로 맞추고, 룰렛을 돌린다.