ММООЗЗГГ.ru

Словарь ИИ

Что такое 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 всегда оставляет одинаковое число вариантов. Top-p оставляет столько, сколько нужно, чтобы набрать заданную долю вероятности: когда модель уверена, вариантов мало, когда сомневается, больше.

Что будет, если поставить top-k равным единице?

Модель всегда будет брать наиболее вероятный токен, это жадное декодирование. Ответы станут одинаковыми при повторных запусках, но в длинных текстах чаще появляются повторы.

Источники

Где это применяют в компании

Не уверены, нужно ли это вашей компании?

Карта ИИ-решений
Написать в Telegram