Словарь ИИ
Что такое top-k
Коротко
Top-k это настройка генерации, при которой модель на каждом шаге выбирает следующий токен только из k наиболее вероятных вариантов.
Языковые модели · top-k sampling
Михаил МозгПроверено: 1 минута чтения
Ребенку
Учительница спрашивает класс, и руку тянут двадцать человек. Она решает: выберу одного, но только из первых пяти, кто поднял руку быстрее остальных. Так отвечает тот, кто точно готов, но не всегда один и тот же ученик. Нейросеть похожим способом выбирает слово из короткого списка подходящих, а остальные пропускает.
Простыми словами
На каждом шаге модель оценивает все слова, которые знает, и у каждого есть шанс оказаться следующим. Эта настройка говорит: рассматривай только k вариантов с наибольшими шансами, а остальные вычеркни. Если k равно единице, модель всегда берет наиболее вероятное слово и отвечает одинаково. Если k большое, выбор шире и текст разнообразнее. Например, при k около десяти ответ на просьбу придумать слоган будет каждый раз новым, но без бессмысленных слов из хвоста списка.
Для бизнеса
Как и другие параметры выбора слов, k ничего не стоит и задается в запросе или в настройках сервера. Учтите, что фиксированное число вариантов работает по-разному в разных местах ответа. Где правильное продолжение одно, например номер договора или сумма, даже небольшой k оставляет шанс выбрать ошибочный токен, если включено сэмплирование. Где вариантов много, слишком малый k делает текст шаблонным. Поэтому для задач с точным ответом сэмплирование обычно выключают, а для свободных текстов k подбирают вместе с температурой. Доступность параметра зависит от сервиса, проверьте документацию поставщика. Настройки генерации для агента поддержки проверяют на реальных обращениях.
Для специалиста
Сэмплирование top-k (top-k sampling) применили Fan, Lewis и Dauphin (2018) в генерации историй: модель случайно выбирала слово из 10 наиболее вероятных кандидатов, и авторы нашли такую стратегию заметно эффективнее лучевого поиска, который выдает частые фразы и повторы. Алгоритм сортирует распределение, оставляет k токенов с наибольшими вероятностями, обнуляет остальные и перенормирует. При k = 1 получается жадное декодирование. Недостаток фиксированного k разобрали Holtzman и соавторы (2019): при плоском распределении он отсекает уместные варианты, при остром оставляет неуместные, поэтому они предложили адаптивное ядерное сэмплирование (top-p). На практике фильтры комбинируют: в Hugging Face Transformers top_k по умолчанию равен 50, если модель не задает свое значение, и работает вместе с top_p и температурой при do_sample=True. Технически фильтр применяют к логитам: значения вне множества заменяют минус бесконечностью до softmax.
Пример
Разработчик чат-бота кофейни ставит top-k равным сорока, и бот каждый раз по-новому приветствует гостей. Для подсчета суммы заказа тот же бот делает отдельный вызов без сэмплирования, чтобы цифры не менялись.
Связанные термины
Вопросы и ответы
Чем top-k отличается от top-p?
Что будет, если поставить top-k равным единице?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений