Back to archive
#ai#llm#glossary#aigen

Top-k Sampling

Przy losowaniu kolejnego fragmentu model dopuszcza wiele bardzo mało prawdopodobnych możliwości. Chcesz zachować trochę różnorodności, ale usunąć daleki ogon kandydatów. Możesz dopuścić tylko określoną liczbę liderów.

Top-k Sampling losuje kolejny token, czyli kawałek tekstu, spośród k najwyżej ocenionych kandydatów. Pozostałych wyklucza, a szanse zachowanych przelicza do sumy jeden.

Jeśli A ma szansę 0,5, B 0,3, a pozostali razem 0,2, dla k=2 zostają A i B. Po podzieleniu przez 0,8 ich szanse to 0,625 i 0,375. B nadal może wygrać; metoda nie daje wszystkim po równo.

Stałe k określa liczbę kandydatów, nie ich łączną wiarygodność. Przy bardzo płaskim rozkładzie nawet liderzy mogą mieć małe szanse. Top-p Sampling wyznacza zbiór według sumy prawdopodobieństw, a Temperature reguluje ich proporcje.

Mechanizm i szczegóły

Praktyczna implementacja może filtrować logity jeszcze przed Softmax: odrzuconym pozycjom przypisuje ujemną nieskończoność. Wtedy po normalizacji ich prawdopodobieństwo wynosi zero. Ten mechanizm opisuje dokumentacja Transformers: TopKLogitsWarper.

Dwóch kandydatów nie oznacza równych szans

Własny przykład dla k=2k=2:

TokenPrzed filtrowaniemPo filtrowaniu i normalizacji
A0,500,625
B0,300,375
C0,150
D0,050

A i B miały łącznie prawdopodobieństwo 0,80. Dzielimy przez tę sumę: 0,50/0,80=0,6250{,}50/0{,}80=0{,}625 i 0,30/0,80=0,3750{,}30/0{,}80=0{,}375. Losowanie nadal może wskazać B. Przy k=1k=1 i jednoznacznym maksimum wybieramy zawsze najwyżej oceniony token.

Stałe kk kontroluje liczbę kandydatów, nie ich łączne prawdopodobieństwo przed odcięciem. Dwie zachowane pozycje mogą skupiać niemal cały rozkład albo tylko jego niewielką część. Top-p Sampling dobiera granicę według sumy prawdopodobieństw. Temperature zmienia proporcje szans; samo dodatnie skalowanie nie zmienia kolejności skończonych logitów.

Przy remisach warto sprawdzić implementację. Kod Transformers 5.17.0 usuwa wyniki ściśle niższe od wyniku k-tego kandydata. Może więc zachować także dodatkowe tokeny z taką samą wartością na granicy. Przykład w tabeli nie zawiera remisów.