Как модель выбирает ответ: logits, temperature и top-p
После одного прохода языковая модель выдаёт для каждого токена не готовое слово, а числовую оценку — logit. Алгоритм декодирования преобразует эти оценки в выбор следующего токена.
Краткий ответ
После одного прохода языковая модель выдаёт для каждого токена не готовое слово, а числовую оценку — logit. Алгоритм декодирования преобразует эти оценки в выбор следующего токена.
После одного прохода языковая модель выдаёт для каждого токена не готовое слово, а числовую оценку — logit. Алгоритм декодирования преобразует эти оценки в выбор следующего токена. Поэтому качество генерации зависит и от модели, и от правил семплирования.
От logits к вероятностям
Softmax экспоненцирует и нормирует logits, получая распределение с суммой вероятностей, равной единице. Разница в несколько единиц logit может сильно изменить соотношение вероятностей. Эти числа условны относительно текущего контекста: после выбора токена весь следующий набор logits пересчитывается.
Вероятность модели не является вероятностью истинности утверждения. Она показывает, насколько токен согласуется с изученным распределением продолжений при данных входах и параметрах. Часто встречающееся заблуждение может получить высокую вероятность.
Temperature, greedy и случайность
Temperature делит logits перед softmax. При значении ниже единицы распределение становится острее: самые вероятные варианты получают большую долю. При значении выше единицы распределение выравнивается и редкие варианты выбираются чаще. Temperature, равная нулю, обычно реализуется как специальный детерминированный режим, а не буквальное деление на ноль.
Greedy decoding каждый раз берёт наиболее вероятный токен. Он воспроизводим при детерминированном вычислении, но не гарантирует лучший текст целиком: локально лучший шаг способен привести к повтору или тупику. Случайное семплирование даёт разнообразие, но увеличивает риск неудачных ветвей.
Top-k и nucleus sampling
Top-k оставляет фиксированное число наиболее вероятных токенов и заново нормирует их веса. Это просто, но одинаковое k плохо учитывает форму распределения: иногда один вариант очевиден, а иногда разумных вариантов десятки.
Top-p, или nucleus sampling, выбирает минимальное множество наиболее вероятных токенов, чья суммарная масса достигает порога p. Размер множества адаптируется к уверенности распределения. Это не фильтр фактов: если все верхние продолжения ошибочны, top-p не исправит знание.
В продуктах дополнительно применяются штрафы за повторение, ограничения грамматики, запрет отдельных последовательностей и structured decoding. Каждый механизм меняет распределение и должен проверяться на реальных задачах.
Почему параметры зависят от сценария
Для извлечения структурированного поля полезна низкая вариативность и строгая схема. Для мозгового штурма допустимо несколько разнообразных кандидатов с последующим отбором. Для программного кода иногда выгодно сгенерировать несколько решений и прогнать тесты.
Не существует универсальной «правильной temperature». Даже одинаковое название параметра может по-разному интерпретироваться поставщиками, а серверная реализация может добавлять скрытые ограничения. Настройки следует версионировать вместе с моделью и промптом.
Упражнение: семплирование на бумаге
Пусть после фразы «На улице идёт» модель дала вероятности: «дождь» — 0,55, «снег» — 0,25, «ремонт» — 0,12, «собака» — 0,08. Сравните greedy, top-k при k = 2 и top-p при p = 0,8.
Для top-p отсортируйте варианты и набирайте массу: 0,55 + 0,25 = 0,80, значит остаются два токена. Затем придумайте распределение 0,92 / 0,03 / 0,03 / 0,02: при том же p ядро станет из одного токена. Объясните, почему адаптивный размер важен.
Частые вопросы
Низкая temperature устраняет галлюцинации?
Нет. Она уменьшает разнообразие и чаще выбирает верхние продолжения. Если модель уверенно предпочитает неверный ответ, низкая temperature сделает ошибку стабильнее.
Один и тот же seed гарантирует одинаковый ответ?
Только при одинаковой модели, токенизаторе, параметрах, коде семплирования и достаточно детерминированном вычислении. Обновление сервиса или параллельные численные операции могут нарушить воспроизводимость.
Почему нельзя всегда использовать greedy?
Greedy оптимизирует каждый шаг отдельно и часто производит однообразные, повторяющиеся продолжения. Для задач с несколькими допустимыми ответами контролируемое семплирование может быть качественнее.
Что важно запомнить
- Модель выдаёт logits, а отдельный алгоритм декодирования выбирает следующий токен.
- Temperature управляет остротой распределения, но не истинностью.
- Top-k использует фиксированное число кандидатов, top-p — адаптивное ядро вероятностной массы.
- Параметры генерации нужно подбирать и тестировать для конкретного сценария.
https://yadro-code.ru/lessons/without-university/generative-ai-foundations/generative-ai-05