Итак, у нас есть модель, которая отлично продолжает текст. Вы пишете «Кот ел...», она допишет «...сметану». Но если спросить её «Как испечь пирог?», она скорее всего выдаст что-то вроде «пирог рецепт мука яйцо сахар печь» - просто продолжит ряд слов, потому что в её обучающих данных вопросы и ответы не были размечены. Чтобы научить её отвечать, нужен следующий этап - дообучение с учителем.
Разница между до и после SFT - как между студентом, который просто заучил учебник, и тем, кто научился отвечать на экзамене. Давайте посмотрим на конкретном примере.

Этот пример хорошо иллюстрирует главный принцип SFT: модель не узнаёт новые факты. Она уже знает их из pre-training. SFT учит её доставать эти факты в нужном формате, структурировать ответ, начинать с главного, давать пояснения.
SFT - это не про "добавить знаний". Это про формат взаимодействия. Модель уже знает факты из pre-training. SFT учит её доставать их в диалоговой форме.

Чтобы закрепить понимание, представьте себе студента-отличника, который за годы учёбы прочитал тысячи книг и статей (это pre-training). Он знает всё: формулы, исторические даты, химические реакции, но никогда не сдавал устных экзаменов. Если вы спросите его: «Как испечь пирог?», он начнёт бормотать: «мука… яйца… печь… температура…» - просто перечислять термины из памяти, потому что он не умеет строить связный ответ.
Теперь представьте, что этот студент приходит на курс подготовки к экзаменам (SFT). Ему показывают примеры идеальных ответов на типовые вопросы: «Как испечь пирог?» - и в ответе написано: «Сначала смешайте сухие ингредиенты, потом добавьте яйца…». Студент тренируется на сотнях таких примеров, и постепенно усваивает формат диалога: как начинать ответ, как давать пояснения, как подводить итог.
В результате, когда вы снова спросите его про пирог, он выдаст структурированный, понятный ответ. Он не узнал новых фактов, но научился преподносить знания в форме ассистента.
Итак, SFT превращает «ходячую энциклопедию» в ассистента, способного поддерживать диалог. Но у этого ассистента есть один недостаток: он отвечает правильно, но не всегда так, как нравится людям. Он может выдать исчерпывающую, но скучную лекцию там, где нужен короткий ответ. Может случайно обидеть или сказать что-то опасное. Чтобы исправить это, нужен третий, самый сложный этап - обучение с подкреплением на основе обратной связи от человека.
SFT дал нам модель, которая отвечает в формате диалога. Но она пока не знает, что людям нравится. Она копирует стиль из примеров, но не понимает нюансов: где ответ должен быть кратким, а где развёрнутым, где шутка уместна, а где опасна. RLHF - это этап, на котором люди объясняют модели свои предпочтения. На этих данных обучается отдельная модель вознаграждения (reward model) - классификатор, оценивающий качество ответов.
Теперь основная модель генерирует ответ, Reward Model ставит оценку, и модель обновляется, чтобы получать более высокие оценки.
Это цикл
Модель → Ответ → Reward Model → Оценка → Оптимизатор → Обновление весов модели.
Техническая деталь
Чаще всего для этого этапа используется алгоритм PPO (Proximal Policy Optimization)8. (Это технически сложный и нестабильный процесс: он требует держать в памяти две модели одновременно (актор и критик) и следить за тем, чтобы обновления не были слишком резкими, иначе модель «забудет», чему научилась на этапе SFT). Он относится к семейству алгоритмов обучения с подкреплением и хорошо зарекомендовал себя в задачах, где нужно плавно обновлять политику модели, не делая резких шагов, которые могут всё испортить.
Это делает ответы
· полезными (helpfulness);
· честными (honesty);
· безопасными (harmlessness).
Проблема, которую решает RLHF
Проблема подхода SFT в том, что модель учится на «идеальных» ответах, размеченных людьми. Но что значит «идеальный»? Для одного пользователя идеальный ответ - краткий и по делу, для другого - развёрнутый и с примерами. Модель должна научиться чувствовать эти нюансы. Посмотрите на пример.

Модель не понимает нюансов: "покороче", "попроще", "как будто я эксперт". Модель после SFT отвечает правильно, но не гибко. Она не понимает, что просьба «покороче» - это сигнал изменить стиль. Чтобы научить её таким вещам, нужна обратная связь от людей. Но как собрать её в масштабе миллионов примеров?
RLHF решает эту задачу в три этапа
Этап 1. Сбор предпочтений (люди сравнивают попарно)
Вместо того чтобы ставить оценку (например, «4 балла из 5»), люди сравнивают два ответа на один и тот же запрос и выбирают, какой лучше. «Покороче» - этот лучше, потому что краткий. «Попроще» - этот лучше, потому что без терминов. Человеку проще выбрать «лучший из двух», чем ставить абстрактный балл. А модель получает миллионы пар «хороший ответ vs плохой ответ».
Этап 2. Обучение модели-оценщика (Reward Model)
На этих парах обучается отдельная, обычно небольшая модель - Reward Model. Её задача - научиться предсказывать, какой ответ понравится человеку. Она не генерирует текст, она только оценивает. Если Reward Model научилась правильно оценивать ответы на эталонных примерах, её можно использовать вместо людей.
Этап 3. Дообучение основной модели через Reward Model
Теперь основная модель генерирует ответ, Reward Model ставит ему оценку (от 1 до 5), и основная модель дообучается так, чтобы получать более высокие оценки. Это похоже на дрессировку: модель пробует, получает «балл», запоминает, что привело к успеху.
Как работает RLHF (визуализация)

Итак, у нас есть тысячи пар «промт - несколько ответов» и выбор людей, какой ответ лучше. Теперь нужно превратить этот выбор в работающий механизм оценки.

Теперь у нас есть модель-критик, которая умеет выставлять оценки. Осталось научить основную модель генерировать ответы, которые этот критик будет высоко оценивать.

Этот цикл повторяется миллионы раз. Постепенно модель учится давать именно те ответы, которые нравятся людям. Но есть нюанс: люди ценят разные вещи, и они часто конфликтуют.
Исследователи из OpenAI сформулировали три главных критерия, которым должна удовлетворять хорошая модель: полезность, честность и безопасность. Проблема в том, что они часто противоречат друг другу:

Инженерные метрики RLHF
Как измерить успех RLHF? В идеальном мире мы бы спросили людей. Но в инженерии нужны метрики. Давайте посмотрим на реальные цифры на примере LLaMA-2:

Суть RLHF
Модель уже умеет отвечать в формате диалога (SFT), но теперь её ответы оценивают люди (ставят лайки, выбирают лучший вариант из двух). На основе этих оценок модель учится предпочитать те ответы, которые больше нравятся человеку - быть полезной, безопасной, вежливой и попадать в стиль общения.
Примечание для хардкорных инженеров
Существует и более простой метод - Direct Preference Optimization (DPO). Он не требует обучения отдельной модели вознаграждения и сложной настройки PPO, а оптимизирует политику модели напрямую на предпочтениях. DPO становится стандартом для дообучения open-source моделей, хотя RLHF на больших масштабах (OpenAI, Anthropic) всё ещё считается золотым стандартом.
Итак, мы проследили полный цикл обучения современной языковой модели: от «сырого» pre-training на триллионах токенов через SFT, превращающий энциклопедию в ассистента, до RLHF, который доводит её поведение до человеческих предпочтений. Но обучение - это только полдела. Чтобы модель можно было использовать в реальных продуктах, её нужно оптимизировать: ускорить, уменьшить потребление памяти, научить работать с длинными контекстами. Этим инженерным хитростям посвящена следующая глава.