Logit Bias (Логит-смещение)
Logit Bias (логит-смещение) — это параметр в настройках больших языковых моделей (таких как ChatGPT), который позволяет разработчику искусственно увеличивать или уменьшать вероятность генерации определенных слов или символов (токенов).
Современные нейросети не мыслят словами в привычном нам понимании. Они оперируют токенами — кусочками слов, слогами или отдельными символами. Когда языковая модель пишет текст, она математически предсказывает, какой токен должен идти следующим, основываясь на контексте. Каждому возможному следующему токену присваивается базовая числовая оценка — логит (logit). Затем эти сырые оценки пропускаются через математическую функцию (обычно Softmax), которая превращает их в проценты вероятности (от 0 до 100%).
Чем выше изначальный логит, тем больше шансов, что нейросеть выберет именно этот токен. И вот здесь в игру вступает Logit Bias. Этот параметр работает как «математический штраф» или «бонус», который мы можем вручную добавить к логиту конкретного слова до того, как модель сделает окончательный выбор.
Как это работает на практике?
Представьте, что нейросеть выбирает следующее слово в предложении: «На завтрак я люблю есть...». Модель рассчитывает вероятности:
- «яйца» — 40%
- «кашу» — 30%
- «гвозди» — 0.001%
Если мы применим положительный Logit Bias к токену «гвозди», мы искусственно завысим его оценку. Если смещение будет достаточно большим, нейросеть с уверенностью выдаст: «На завтрак я люблю есть гвозди». И наоборот, если мы применим отрицательный Logit Bias к слову «яйца» (например, установив значение -100), модель навсегда «забудет» это слово и никогда его не сгенерирует, выбрав вместо него «кашу» или другой подходящий вариант.
Настройка Logit Bias в API
В программных интерфейсах популярных моделей параметр Logit Bias обычно принимает словарь, где ключами являются идентификаторы токенов (Token ID), а значениями — числа от -100 до +100.
- От -1 до -10: Легкое снижение вероятности. Слово будет появляться реже.
- -100: Полный запрет (бан). Вероятность сводится к абсолютному нулю.
- От +1 до +10: Повышение шансов на использование слова.
- +100: Экстремальное принуждение. Модель будет использовать этот токен везде, где это хоть немного синтаксически возможно (что часто приводит к поломке текста и бесконечным повторениям).
Примеры использования Logit Bias
Этот инструмент активно используется разработчиками для тонкой настройки поведения искусственного интеллекта. Вот несколько классических сценариев:
- Создание жестких фильтров (цензура): Установив максимальный отрицательный bias на нецензурные или запрещенные слова, разработчики гарантируют, что бот никогда их не произнесет.
- Форматирование ответов: Если нужно, чтобы ИИ отвечал только «Да» или «Нет» в автоматизированной системе, всем остальным словам задается отрицательный вес, а этим двум — положительный.
- Устранение клише: Языковые модели часто злоупотребляют фразами вроде «Как искусственный интеллект, я...». Понижение вероятности этих токенов делает текст более живым и естественным.
Интересный факт: Цифровое табу и липограммы
С помощью Logit Bias энтузиасты заставляют нейросети писать липограммы — тексты, в которых намеренно пропущена определенная буква или целая группа слов. Например, если запретить все токены, содержащие букву «о», модель начнет выкручиваться, подбирая невероятно сложные синонимы и перестраивая предложения, чтобы выполнить задачу. Это похоже на игру, в которой ИИ приходится проявлять максимум творчества, чтобы обойти жесткие математические ограничения, наложенные на его словарный запас.