Оптимальный транспорт, чтобы взвешивать в ответе модели то, что действительно важно
Контекст
Языковые модели уже давно вышли за рамки поисковой строки: они пишут код, тексты и помогают с ресёрчем. Сегодня доступ к ним — через мобильные приложения и API — есть у каждого. Ассистенты становятся частью повседневности: от советов по личным вопросам и факт-чекинга (при том, что модели честно предупреждают о возможных ошибках) до планов питания и выбора следующего отпуска.
С ростом мощности моделей растёт и требование к доверию: можно ли опираться на их ответы и согласованы ли они с человеческими ценностями и предпочтениями? Это давняя тема. Перед публичным релизом модели обычно дообучают на данных человеческих предпочтений (запрос, выбранный ответ, отклонённый ответ). Вокруг алайнмента (alignment) накопилось много подходов; самый популярный — Direct Preference Optimization (DPO) за счёт простоты и эффективности.
Но у DPO есть системное ограничение: он равномерно взвешивает токены при подсчёте вероятности ответа. Люди же естественно придают больший вес смысловым кускам. Пример:
Пользователь: Назови столицу Франции
LLM: Столица Франции — Париж. Это красивый город с множеством достопримечательностей.
Для нас критично одно слово — «Париж». DPO же даёт одинаковый вклад «Парижу», «это», «красивый» и т.д., размывая обучающий сигнал.
Попытки поправить это уже были — например, SimPO и SamPO. В мае 2025 появился ещё один вариант: OTPO. Идея простая: использовать оптимальный транспорт, чтобы автоматически поднимать веса семантически ключевых токенов и ослаблять второстепенные. Дальше разберём, как это работает и почему помогает точнее согласовывать поведение модели с человеческими предпочтениями.
Почему равномерное взвешивание токенов не работает
Чтобы понять, зачем нужно взвешивать токены, посмотрим, как именно устроен DPO. Типичный пайплайн такой: модель предварительно обучают на корпусах из триллионов токенов (сама модель содержит миллиарды/триллионы параметров), затем делают «инструкционное дообучение (SFT) и уже после — оптимизацию предпочтений методом DPO, чтобы алайнить поведение с человеческими предпочтениями перед публичным релизом.
DPO сравнивает лог-правдоподобия выбранного и отклонённого ответов на уровне токенов. Для каждого примера с выбранным ответом y_w и отклонённым y_l вычисляется целевая функция:

— это оптимизируемая модель,
— эталонная модель, а
обозначает вероятность отклика
y
при заданном пользовательском вводе x
.
Вероятность раскладывается на вычисления по токенам. Для выбранного отклика, состоящего из токенов
[t₁, t₂, …, tₙ]
, логарифм вероятности выражается как:
Каждый токен вносит свой вклад в суммарную лог-вероятность последовательности, и никакого механизма, позволяющего придавать больший вес значимому содержанию по сравнению с «пустыми» словами, не существует. Давайте рассмотрим пример данных предпочтений.
Запрос: What is the capital of France?
Выбранный ответ: The capital of France is Paris.
Отклоненный ответ: The capital of France is Italy, which is actually incorrect.
DPO складывает лог-вероятности токенов с одинаковым весом:
Выбранный: log P("The") + log P("capital") + log P("of") + log P("France") + log P("is") + log P("Paris") + log P(".")
Отклоненный: log P("The") + log P("capital") + ... + log P("Italy") + ... + log P("incorrect") + log P(".")
Критическая фактическая разница — “Paris” vs “Italy” — но в DPO они получают тот же вес, что и артикли/предлоги и прочие служебные токены. Возникает рассинхрон между тем, на чём фокусируется оптимизация, и тем, что реально важно человеку.
Отсюда и смещение к многословию: из-за аддитивности по длине длинные ответы дают больший суммарный вклад в метрику, и модель может неявно «вознаграждаться» за болтологию. Когда смысловые токены усредняются вместе со стилистическими, обучающий сигнал становится шумным и менее надёжным — качество обучения по предпочтениям падает.
Решение очевидно: в расчёте вероятности ответа поднимать вес действительно значимых токенов и ослаблять второстепенные. Именно это и делает OTPO.
Взвешивание токенов на основе оптимального транспорта (OTPO)
Теперь, когда мы разобрались, почему равномерные веса в DPO — это проблема, посмотрим, как OTPO решает её через теорию оптимального транспорта. Мы трактуем оптимизацию предпочтений как транспортную задачу — какая минимальная стоимость преобразования одного ответа в другой?
Например, какова стоимость превращения «Столица Франции — Париж» в «Столица Франции — Италия»? Большинство токенов совпадают, но замена «Париж» → «Италия» — это серьёзная семантическая трансформация.
Формально OTPO строит два распределения массы на носителях из токенов: выбранного ответа (источник) и отклонённого (приёмник). Стоимость переноса отражает семантическую близость пар токенов: близкие пары (например, «Париж» и «Лондон») имеют низкую стоимость, далёкие (скажем, «Париж» и «яблоко») — высокую.
Алгоритм находит транспортный план с минимальной общей стоимостью — по сути, как перераспределить массу между парами токенов. Масса действительно тянется к семантически близким парам (с низкой стоимостью). Однако веса токенов получают суммированием оптимального транспортного плана по соответствующему измерению (без умножения на стоимость); стоимость влияет лишь опосредованно — через
. Это поднимает вклад смысловых различий (например, “Paris” ↔ “Italy”) и ослабляет второстепенные — тем самым адресуя проблему равномерного взвешивания в DPO.
Математическая основа OTPO
Теперь перейдём к математической основе OTPO. Алгоритм включает три ключевых компонента: построение матрицы стоимостей, решение задачи оптимального транспорта и вычисление взвешенных потерь по токенам.
Шаг 1. Матрица стоимостей
OTPO начинается с построения матрицы стоимостей M, которая измеряет семантическое расстояние между каждой парой токенов. Для i-го токена в выбранном (w) ответе и j-го токена в отклонённом (l) ответе стоимость задаётся как:
где и
— это скрытые представления токенов на последнем слое модели. Это евклидово расстояние отражает семантическую близость. Похожие токены, такие как “Paris” и “London”, имеют низкую стоимость, а далёкие, например “Paris” и “apple”, — высокую.
Шаг 2: Задача оптимального транспорта
OTPO формулирует взвешивание токенов как задачу несбалансированного оптимального транспорта:

Здесь — это транспортный план (переменная, которую мы ищем), сопоставляющий токены между выбранным и отклонённым ответами.
управляет энтропийной регуляризацией. Слагаемые с
-дивергенцией обеспечивают, чтобы маргинальные распределения
были близки к наивным равномерным весам DPO. Решение
показывает, как оптимально переносить вероятностную массу между токенами выбранного и отклонённого ответов.
Шаг 3: Вычисление весов токенов
На основе решения задачи оптимального транспорта мы получаем веса для отдельных токенов путём суммирования по измерениям:

Здесь обозначает вес, присвоенный паре токенов
из выбранного ответа
и отклонённого ответа
. Эти веса в дальнейшем используются в функции потерь DPO вместо равномерного взвешивания.
Разница в вознаграждении с новым методом взвешивания также представлена на изображении из статьи.

Результаты экспериментов и ограничения
OTPO тестировали на разных задачах, но в контролируемых условиях. В задачах суммаризации он показал прирост качества примерно на +8,6 % относительно лучшего бейзлайна (SamPO), судья — GPT-4o. На проверке устойчивости к смещению в пользу более длинных ответов (length bias) на датасете UltraFeedback и на моделях меньшего размера, таких как Llama-3 8B, OTPO выдавал более короткие ответы. Предварительные результаты указывают, что метод помогает снизить многословие и повышает долю ответов, которые людей устраивают чаще.
Однако масштаб экспериментов пока недостаточен, чтобы делать обобщённые выводы об эффективности метода на разных типах задач; на ряде датасетов результаты получились неоднозначными. Кроме того, OTPO вычислительно затратен: требуется считать матрицу стоимостей и транспортный план. В качестве оценщика качества ответов использовалась сама LLM, после чего ответы дополнительно проверялись вручную небольшой группой рецензентов. Эти процедуры полезны, но их надёжность существенно зависит от оценщиков и может смещаться в пользу некоторых типов данных.
Заключение
Алайнмент LLM с человеческими предпочтениями остаётся одной из центральных тем исследований, и OTPO показывает обнадёживающие результаты в контролируемых условиях. Подход не идеален, но взвешивание токенов задаёт хорошую основу для более тонкой настройки моделей под предпочтения пользователей.
В завершение рекомендую к посещению бесплатные уроки, которые будут полезны начинающим специалистам по ML:
8 сентября в 18:00. Методы ансамблирования в ML, которые должен знать любой Data Scientist
18 сентября в 18:00. Data Science — это проще, чем кажется!
23 сентября в 20:00. Алгоритм классификации KNN — определим класс объекта по ближайшим соседям
А для системного и полного обучения машинному обучению с нуля есть специализация Machine Learning. Ее разработали и ведут эксперты индустрии, опираясь на рабочие кейсы.