Top-k (выборка по k лучшим)

Top-k — параметр сэмплирования, ограничивающий языковую модель выбором следующего токена только из k кандидатов с наибольшей предсказанной вероятностью: модель перенормирует этот короткий список и делает выборку из него. Всё, что не попало в первые k, отбрасывается сразу, независимо от того, как распределена вероятностная масса. Это более простой родственник top-p (nucleus sampling): top-p оставляет столько токенов, сколько нужно, чтобы набрать заданный порог накопленной вероятности, а top-k держит фиксированное число и форму распределения игнорирует полностью. Из этого различия вырастает весь спор между ними. Когда модель уверена и почти всю вероятность несёт один токен, фиксированное k, равное 50, затягивает внутрь 49 кандидатов, которых не следовало и рассматривать; когда модель действительно колеблется между множеством правдоподобных продолжений, то же самое k способно отсечь варианты, заслуживавшие шанса. Поэтому top-p принято считать более адаптивным из двух: он реагирует на то, насколько остроконечно или плоско распределение на каждом шаге. При этом ни один из них не лучше в абсолютном смысле — они решают одну задачу разными средствами. На стоимость top-k напрямую не влияет: он меняет, какой токен будет выбран, а не то, сколько токенов обработано и оплачено. Его влияние — на характер текста. Очень маленькое k сужает разнообразие и делает генерацию повторяющейся и механической, что иногда как раз и требуется; очень большое приближается к сэмплированию без ограничений и возвращает длинный хвост маловероятных токенов, ради отсечения которого усечение и существует. Практический совет разработчикам: меняйте по одной ручке сэмплирования за раз и оставляйте top-k на значении по умолчанию, если нет конкретной причины поступить иначе. Выставить одновременно top-k, top-p и высокую температуру — распространённый способ получить вырожденный вывод, будучи уверенным, что настраиваешь креативность. Многие API отдают top-k у одних семейств моделей и не отдают у других, так что считайте его риском переносимости в любой конфигурации промпта, которую собираетесь переносить между поставщиками. Стоит знать и то, что top-k и top-p часто активны одновременно и применяются последовательно: короткий список усекается и по числу, и по накопленной вероятности, а побеждает то ограничение, которое сработало раньше. Такая комбинация безобидна, пока оба параметра близки к значениям по умолчанию, и тихо разрушительна, когда оба выставлены агрессивно: каждый по отдельности выглядит разумно, а их пересечение почти не оставляет модели свободы выбора. Симптом выглядит как модель, которая странным образом одеревенела или зациклилась, и его легко принять за проблему качества модели, а не конфигурации. Если вы отлаживаете повторяющуюся или вырожденную генерацию, сначала верните все параметры сэмплирования к значениям по умолчанию и возвращайте их по одному. И помните, чего усечение не умеет: ни один из этих параметров не делает модель точнее. Они лишь определяют, какие из собственных вариантов продолжения модели допущены к выбору, — так что фактическая ошибка, сидящая на вершине распределения, будет выбрана при любом k. Снижение галлюцинаций — задача заземления и извлечения данных, а не сэмплирования.

Похожие термины

Ещё термины: Основы ИИ