English translation is not available yet. Showing Russian content.
Что такое KTO (Kahneman-Tversky Optimization) и чем отличается от DPO?
Краткий тезис
KTO (Kahneman-Tversky Optimization) — метод fine-tuning языковых моделей, основанный на prospect theory (теория перспектив Канемана-Тверски). В отличие от DPO (Direct Preference Optimization), KTO не требует парных предпочтений (A > B), а использует только бинарную оценку (хороший/плохой ответ). Это позволяет обучать модель на данных, где есть только метка качества, без необходимости собирать сравнительные пары, что значительно упрощает сбор данных и расширяет применимость.
1. Термин: KTO (Kahneman-Tversky Optimization)
KTO — метод alignment (выравнивания) LLM, предложенный в 2024 году (Kawaguchi et al.). Название отсылает к prospect theory — поведенческой модели принятия решений, где люди оценивают выигрыши и потери асимметрично (loss aversion — неприятие потерь сильнее, чем стремление к выигрышам). KTO использует эту асимметрию для оптимизации политики модели: плохие ответы штрафуются сильнее, чем хорошие поощряются.
Ключевая идея: модель учится не просто максимизировать вероятность хороших ответов, а минимизировать вероятность плохих с большим весом. Это соответствует человеческому поведению: мы больше стараемся избежать ошибки, чем получить награду.
2. Термин: DPO (Direct Preference Optimization)
DPO — метод alignment, который напрямую оптимизирует политику модели на основе парных предпочтений (ответ A лучше ответа B). DPO выводит loss из Bradley-Terry модели предпочтений и не требует отдельной reward model (модели вознаграждения), как в RLHF. Loss DPO штрафует модель, если она назначает более высокую вероятность непредпочтительному ответу.
Основное ограничение DPO нужны парные сравнения (A > B). Сбор таких данных дорог и трудоёмок, особенно для специфических доменов.
3. Ключевое отличие: требования к данным
| Характеристика | KTO | DPO |
|---|---|---|
| Тип данных | Бинарные метки (good/bad) | Парные предпочтения (A > B) |
| Объём данных | Меньше (достаточно одного ответа на запрос) | Больше (нужно два ответа на запрос) |
| Сложность сбора | Низкая (можно использовать лайки/дизлайки пользователей) | Высокая (нужны экспертные сравнения) |
| Применимость | Любые данные с обратной связью | Только когда есть парные оценки |
4. Prospect theory в основе KTO
Prospect theory (Канеман, Тверски, 1979) описывает, как люди принимают решения в условиях неопределённости. Ключевые элементы:
- Асимметрия gain/loss: потери ощущаются примерно в 2–2.5 раза сильнее, чем выигрыши того же размера.
- Функция ценности: вогнутая для выигрышей (убывающая чувствительность), выпуклая для потерь, и более крутая в области потерь.
- Reference point (точка отсчёта): люди оценивают результат относительно некоторого нейтрального уровня.
KTO адаптирует эту функцию ценности в loss для LLM: плохой ответ (loss) штрафуется с коэффициентом >1, хороший (gain) — с коэффициентом <1. Это заставляет модель избегать генерации плохих ответов сильнее, чем стремиться к хорошим.
5. Как работает KTO: loss function
Loss KTO для одного примера (запрос (x), ответ (y), бинарная метка (b \in {0,1}), где 1 — хороший):
[ \mathcal{L}{[text](/wiki/text){KTO}}(x,y,b) = \begin{cases} -\sigma([beta](/wiki/beta) \cdot (v(x,y) - v{[text](/wiki/text){ref}})) & [text](/wiki/text){если } b=1 \ -\sigma(-[beta](/wiki/beta) \cdot (v(x,y) - v_{[text](/wiki/text){ref}})) & [text](/wiki/text){если } b=0 \end{cases} ]
где:
- (v(x,y) = \log \frac{\pi_\theta(y|x)}{\pi_{[text](/wiki/text){ref}}(y|x)}) — логарифм отношения вероятностей текущей политики к референсной (как в DPO).
- (v_{[text](/wiki/text){ref}}) — reference point, обычно среднее значение (v) по всем ответам в батче.
- ([beta](/wiki/beta)) — температурный параметр.
- (\sigma) — сигмоида.
Асимметрия вводится через разный знак аргумента сигмоиды для хороших и плохих ответов. На практике часто добавляют весовые коэффициенты (\lambda_{[text](/wiki/text){good}}) и (\lambda_{[text](/wiki/text){bad}}) (например, (\lambda_{[text](/wiki/text){bad}} > \lambda_{[text](/wiki/text){good}})), чтобы усилить штраф за плохие ответы.
6. Сравнение KTO и DPO: loss и оптимизация
| Аспект | KTO | DPO |
|---|---|---|
| Loss основа | Prospect theory (асимметрия gain/loss) | Bradley-Terry (парные предпочтения) |
| Формула loss | Сигмоида от разности (v - v_{[text](/wiki/text){ref}}) с разными знаками | Сигмоида от разности (v_{[text](/wiki/text){chosen}} - v_{[text](/wiki/text){rejected}}) |
| Reference point | Среднее по батчу (динамическое) | Не требуется |
| Асимметрия | Явная (разные веса для good/bad) | Неявная (через парное сравнение) |
| Вычислительная сложность | O(N) на батч | O(N) на батч (но нужно два ответа на запрос) |
7. Преимущества KTO
- Меньше затрат на сбор данных: достаточно одного ответа с меткой (лайк/дизлайк). Это позволяет использовать логи чатов, A/B тесты, обратную связь от пользователей.
- Работает с несбалансированными данными: если хороших ответов много, а плохих мало — KTO всё равно эффективен благодаря асимметрии.
- Более устойчив к шуму в метках: prospect theory предполагает, что люди склонны переоценивать потери, поэтому модель не будет чрезмерно подстраиваться под редкие хорошие примеры.
- Можно комбинировать с другими методами: например, использовать KTO для начального alignment, а затем DPO для тонкой настройки на парных данных.
8. Недостатки и ограничения KTO
- Зависимость от reference point: выбор (v_{[text](/wiki/text){ref}}) (среднее по батчу) может быть нестабильным при малых батчах или смещённых данных.
- Менее точное ранжирование: KTO не учит различать два хороших ответа (оба получат положительную метку), тогда как DPO может упорядочить их.
- Требует калибровки весов: асимметрию ((\lambda_{[text](/wiki/text){good}}/\lambda_{[text](/wiki/text){bad}})) нужно подбирать эмпирически.
- Меньше теоретических обоснований, чем у DPO (который выведен из принципа максимума правдоподобия для предпочтений).
9. Когда выбирать KTO, а когда DPO
| Сценарий | Рекомендуемый метод |
|---|---|
| Есть только бинарные метки (лайки/дизлайки) | KTO |
| Есть парные сравнения от экспертов | DPO (или KTO + DPO) |
| Нужно точное ранжирование ответов | DPO |
| Данных мало, но есть шум | KTO (устойчивее к шуму) |
| Хочется быстро прототипировать alignment | KTO (проще собрать данные) |
10. Экспериментальные результаты (из статьи KTO)
Авторы KTO (Kawaguchi et al., 2024) показали, что на бенчмарках MT-Bench, AlpacaEval и HH-RLHF KTO достигает сопоставимых или лучших результатов, чем DPO, при использовании только бинарных меток. При этом KTO требует примерно в 2 раза меньше данных (один ответ на запрос вместо двух). В сценариях с шумными метками KTO превосходит DPO на 5–10% по метрикам helpfulness и harmlessness.
11. Связь с RLHF и другими методами alignment
KTO — это альтернатива RLHF и DPO в семействе offline preference optimization. В отличие от PPO (который требует онлайн-генерации и reward model), KTO работает офлайн на статическом датасете. KTO также можно рассматривать как вариант SPIN (Self-Play Fine-Tuning), но с асимметричным loss.
Пет-проект для закрепления
Задача Обучить небольшую языковую модель (например, GPT-2 или TinyLlama) генерировать вежливые ответы на запросы, используя KTO, и сравнить с DPO.
Инструменты
- Python, PyTorch, Transformers (Hugging Face)
- Датасет: Anthropic HH-RLHF (содержит как парные сравнения, так и бинарные метки) или синтетический датасет (сгенерировать хорошие/плохие ответы через LLM).
- Библиотека TRL (Transformer Reinforcement Learning) — поддерживает DPO и KTO (начиная с версии 0.9.0).
Шаги:
- Загрузить предобученную модель (например, gpt2).
- Подготовить датасет: для KTO — взять только один ответ на запрос и метку (chosen/rejected). Для DPO — взять пары (chosen, rejected).
- Настроить конфигурацию KTO: задать ([beta](/wiki/beta)=0.1), (\lambda_{[text](/wiki/text){good}}=1.0), (\lambda_{[text](/wiki/text){bad}}=2.0).
- Обучить модель на 1 эпоху.
- Оценить на тестовом наборе: метрики reward score (через отдельную reward model), perplexity, human evaluation (или LLM-as-judge).
- Повторить с DPO на тех же данных (где есть пары).
- Сравнить результаты: KTO должен показать сопоставимое качество при меньшем объёме данных.
Ожидаемый результат Вы увидите, что KTO требует меньше данных для достижения того же уровня alignment, а также более устойчив к шуму (если искусственно добавить неправильные метки).
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 335 | DPO (Direct Preference Optimization) |
| 334 | RLHF (Reinforcement Learning from Human Feedback) |
| 337 | PPO (Proximal Policy Optimization) |
| 338 | Reward Modeling |
| 339 | Constitutional AI |
| 340 | SPIN (Self-Play Fine-Tuning) |
Навигация
- Предыдущий: 335
- Следующий: 337
- Индекс: 00. Индекс разборов