Выборка Top-K
Выборка Top-K (Top K sampling) — продвинутый параметр генерации текста в LLM, основан он на том, что на каждом шаге декодирования рассматриваются только K наиболее вероятных токенов из всего словаря модели. Позволяет более тщательно управлять тем, какой текст генерируется, насколько в нём высока оригинальность или точность.
Описание[править]
На каждом временном шаге t языковая модель вычисляет распределение вероятностей P(w_t | w_1, …, w_{t-1}) для всех токенов w в словаре V. В стандартном процессе выборки по методике Top-K процесс определения следующего токена происходит следующим образом: из полного распределения вероятностей выбираются K токенов с наивысшими вероятностями, вероятности этих K токенов перенормализуются так, чтобы их сумма равнялась 1, следующий токен выбирается из этого усеченного распределения.
Формально, если V_K обозначает множество K наиболее вероятных токенов, то перенормализованная вероятность для токена w ∈ V_K вычисляется как:
- P'(w_t = w) = P(w_t = w) / Σ_{v ∈ V_K} P(w_t = v)
Для токенов вне V_K вероятность устанавливается равной нулю.
Этот метод появился как альтернатива базовым методам генерации текста, а именно выбор токена с максимальной вероятностью на каждом шаге (это приводит к повторяющемуся и предсказуемому тексту) или же выбор токена из полного распределения вероятностей (тогда часто выбираются маловероятные и нерелевантные токены).
Сложность выборки составляет O(|V| + K log K), где |V| описывает размер словаря.
Конкретные результаты генерации определяются значением Top-K, которое можно задать в формате числа. Эффективность Top-K зависит от того, насколько хорошо откалиброваны вероятности модели. Плохо настроенные модели могут переоценивать вероятности определенных токенов, что приводит к выдаче бреда.
Влияние параметра K[править]
При малых значениях K генерация становится более детерминированной и консервативной. Модель выбирает наиболее вероятные токены, таким образом генерится более предсказуемый, когерентный, но менее оригинальный текст. При K=1 метод вырождается в жадное декодирование, то есть всегда выбирается самый вероятный вариант.
Средние значения K позволяют сохранить определённую точность, но при этом сделать вывод параметров оригинальным. В основном в современных LLM применяется значение в 20-50. При программировании посредством ИИ предпочтительно использовать малые показатели Top-K, так как при высоких начинают появляться баги.
При больших значениях K модель начинает выбирать из огромного количества токенов, в том числе из крайне маловероятных вариантов. За счёт этого креативность генерации становится властной, но повышается риск появления несвязных фрагментов текста, просто ошибок.
Иное[править]
В современных моделях часто используются совместно Top-K и Top-P, сначала применяется Top-K для ограничения пространства поиска, затем Top-P для окончательной выборки.