На NLP/LLM собеседованиях часто проверяют не только знание архитектуры Transformer, но и понимание полного жизненного цикла современной LLM: как модель предобучается, почему обычная GPT-модель ещё не является удобным ассистентом, зачем нужен instruction tuning, как работает RLHF и что такое alignment, какие у него есть подводные камни.
В этой статье - чеклист по GPT-like моделям, prompt engineering, этапам обучения LLM и alignment. Это не полноценная лекция с нуля, а тренажёр перед техническим интервью: пройтись по ключевым определениям, увидеть типовые вопросы и закрыть пробелы в формулировках.
Содержание:
Краткая история развития LLM от GPT до ChatGPT
Техники промпт-инжениринга
Этапы обучения LLM
Alignment
Итоговый чеклист вопросов с собесов
Полезные материалы
Статьи серии
Топ вопросов по математике для ML и Data Science собесов: линейная алгебра и матан
classic ML: основы мл, линейные модели, метрики классификации и регресии
classic ML: Деревья и ансамбли, кластеризация, метрические модели
NLP: языковое моделирование, LLM Alignment и оптимизация трансформеров
NLP: LLM и Alignment [эта часть]
NLP: ускорение обучения и инференса [Soon… Stay fine‑tuned…]
NLP: LLM и агенты [Soon… Stay fine‑tuned…]
Как от ванильного GPT мы дошли до современных LLM?

Первая GPT-модель - это decoder-only Transformer, обученный на задачу next token prediction. GPT училась продолжать текст, а польза была в том, что сначала модель можно предобучить на большом корпусе неразмеченных текстов, а потом адаптировать под downstream-задачи.
Дальше GPT-2 показала, что при масштабировании модели и данных языковая модель начинает решать разные задачи в zero-shot режиме - то есть без отдельного fine-tuning под каждую задачу.
GPT-3 уже была по-настоящему большой 175B моделью и показала, что масштабирование сильно улучшает in-context learning: модель можно адаптировать к задаче через текстовый промпт с инструкцией или несколькими примерами, не меняя веса модели.

Дальше появился InstructGPT: модель сначала дообучали на примерах хороших ответов на инструкции через SFT, а затем дополнительно выравнивали по человеческим предпочтениям через RLHF. Базово модель всё ещё генерирует текст токен за токеном, но её поведение стало ближе к формату: «понять запрос пользователя и дать удобный, полезный ответ».
ChatGPT превратил эту идею в полноценный диалоговый интерфейс. Теперь пользователь не просто пишет промпт, а ведёт разговор: модель учитывает контекст, уточняет, исправляется и помогает решать многошаговые задачи. Современные LLM пошли ещё дальше: вокруг модели появились инструменты, RAG, работа с файлами, мультимодальность, память, guardrails и пользовательская обратная связь.
Что такое промпт-инжениринг?
Prompt engineering - это набор приёмов, которые помогают формулировать запросы к LLM так, чтобы модель решала задачу надёжно, в нужном стиле, в нужном формате и с меньшим количеством ошибок.
Пример плохого промпта:
Сделай нормально.
Пример более управляемого промпта:
Ты - технический интервьюер по NLP. Оцени ответ кандидата по 4 критериям:
Корректность
Полнота
Терминология
Практическая применимость
Верни ответ в JSON: { “score”: число от 1 до 10, “strengths”: [], “mistakes”: [], “better_answer”: “” }
Модель не стала умнее в смысле изменения весов. Но мы лучше задали задачу, и поэтому получили более предсказуемое поведение.
Какие есть способы prompt engineering-а?
Zero-shot prompting
Zero-shot - это режим, когда мы даём модели только инструкцию, без примеров.
Определи язык текста и верни ISO-код. Текст: "Je parle français" Ответ:
Модель должна сама понять задачу и вернуть:
fr
Few-shot prompting
Few-shot prompting - это техника, где мы добавляем в промпт несколько примеров входа и правильного выхода.
Например:
Определи часть речи. Вход: "яблоко" Выход: noun Вход: "быстро" Выход: adverb Вход: "красивый" Выход:
Модель видит шаблон и продолжает его. Few-shot prompting связан с идеей in-context learning: модель как будто «обучается» задаче внутри контекста, но без изменения весов и без градиентного спуска.
По сути, мы не просто объясняем задачу словами, а показываем несколько демонстраций. Часто это один из самых дешёвых способов улучшить качество без fine-tuning.
Chain-of-Thought prompting
Chain-of-Thought - это техника, где модель просят рассуждать по шагам перед тем, как дать итоговый ответ.

Реши задачу пошагово, затем выведи финальный ответ.

Chain-of-Thought в современных reasoning-моделях
Изначально Chain-of-Thought был именно техникой prompt engineering: мы явно просили модель рассуждать пошагово, чтобы повысить качество ответа на задачах, где нужен многошаговый вывод.
Но в современных reasoning-моделях эта идея частично переехала уже внутрь самого инференса. Модель может сначала сгенерировать специальные внутренние reasoning-токены - условно, «подумать» над задачей, проверить несколько вариантов решения, а уже затем сформировать финальный ответ для пользователя.
В ChatGPT, например, в reasoning моделях эти промежуточные рассуждения обычно не показываются пользователю полностью: наружу выводится уже сжатый, финальный ответ.
У DeepSeek-R1, например, эта идея стала особенно заметной из-за формата с <think>...</think>, где модель явно отделяет внутреннее рассуждение от финального ответа. Упрощённо это выглядит так:
<think> Модель анализирует задачу, пробует разные ходы, проверяет себя. </think> Финальный ответ для пользователя.
Поэтому сейчас CoT - это уже не только промпт вида «реши по шагам». Это ещё и важная часть test-time reasoning: модель тратит дополнительные токены на рассуждение во время инференса, чтобы повысить качество решения сложных задач.

Role prompting
Задаём роль:
Ты — senior ML engineer и технический интервьюер. Проведи мне тестовое собеседование
Это помогает модели выбрать нужный стиль, глубину и критерии ответа.
Structured output prompting
Задаём формат:
Верни ответ строго в JSON. Поля: - score - explanation - mistakes - recommendation
Это важно, например, если ответ дальше будет обрабатываться кодом.
Decomposition
Просим разбить задачу на части:
Сначала выдели подзадачи. Потом реши каждую. Потом собери финальный ответ.
Полезно для сложных задач, где модель может потерять часть требований.
Self-check / critique
Просим модель проверить собственный ответ:
После ответа проверь: - Нет ли противоречий - Все ли условия учтены - Не нарушен ли формат
Tool-use prompting
Если модель работает в агентной системе, промпт может задавать, когда использовать инструменты:
Если вопрос требует актуальных данных, используй поиск. Если нужно посчитать — используй калькулятор. Если нужно найти документ — используй retriever.
От prompt engineering к агентам
Если промпты становятся достаточно сложными, вокруг LLM может появиться целая система:
пользовательский запрос → классификация намерения → выбор инструмента → поиск данных → генерация промежуточного ответа → проверка → финальный ответ
Так постепенно prompt engineering превращается в проектирование мультиагентной системы, где есть несколько моделей, у каждой своя роль (планировщик, исполнитель и тд)

Какие есть этапы обучения LLM?
Выделяют 3 этапа:
Pretraining
делаем модель умнойSFT: Supervised (instruction) fine-tuning
делаем модель умной и полезнойAlignment: Preference tuning (optimization)
делаем модель умной, полезной и безопасной
Как выглядит pretraining этап обучения LLM?
Сначала нужно собрать большой (прям огромный) корпус текстов. Источники могут быть разными: веб-страницы, книги, статьи, Wikipedia, документация, код, форумы, научные публикации.
Задача обучения всё та же - next token prediction. Модель получает фрагмент текста и учится предсказывать следующий токен. Лосс такой же как и в gpt - cross entropy.
Что получается после pretraining?
После pretraining модель уже многое знает:
язык
грамматику
факты из обучающего корпуса
стили текстов
код
типичные структуры документов
математические паттерны
фрагменты reasoning
Но она ещё не обязательно является удобным ассистентом. Она может продолжать текст, но не всегда хорошо следует инструкциям.
Почему pretraining сложный?
Pretraining больших моделей - это дорого, долго и технически сложно:
огромные объёмы данных
очистка данных
дедупликация
фильтрация токсичного и мусорного контента
обучение на тысячах GPU
распределённое обучение
ограничение памяти
нестабильность обучения
контроль loss spikes
checkpointing
восстановление после падений
подбор learning rate schedule
контроль качества данных
Поэтому pretraining современных frontier LLM обычно делают крупные компании и лаборатории. Большая часть команд не обучает LLM с нуля, а берёт open-source модель и адаптирует её дальше.
Как выглядит этап Supervised Fine-Tuning / Instruction Tuning?
После pretraining модель дообучают на датасете инструкций.
Формат данных:
Инструкция → Ответ
Например:
### Instruction: Объясни, что такое overfitting, простыми словами. ### Answer: Overfitting — это ситуация, когда модель слишком хорошо запомнила обучающую выборку...
Или в режиме чата:
### User: Объясни, что такое overfitting, простыми словами. ### Bot: Overfitting — это ситуация, когда модель слишком хорошо запомнила обучающую выборку... ### User: А как тогда можно это отследить? ### Bot: ...
На этом этапе модель учится:
отвечать на вопросы
следовать инструкциям
быть ассистентом
соблюдать формат
решать пользовательские задачи
вести диалог
Что меняется после SFT?
До SFT модель просто продолжала текст. После SFT она начинает понимать формат инструкций, чат-ботов.
Но есть проблема: SFT обучает модель быть полезной. Иногда слишком полезной.
Если пользователь попросит опасную инструкцию, модель после SFT может попытаться выполнить и её. Если пользователь задаст вопрос, на который нет ответа, модель может начать галлюцинировать, потому что в SFT датасете часто ответы выглядят уверенно и законченно.
Как выглядит этап Alignment?
Alignment - это этап, на котором модель стараются согласовать с человеческими предпочтениями и ограничениями.
Грубо говоря, мы хотим, чтобы модель соответсвовала правилу 3х "H":
полезной (Helpful)
честной (Honest)
безопасной (Harmless)
То есть модель должна:
помогать пользователю
не выдавать ложь за факт
не причинять вред
отказываться от опасных запросов
признавать неопределённость
не галлюцинировать там, где нужно сказать «не знаю»

Чтобы не пропустить выход статей и видео по ML, NLP, LLM, подпишись на мои соц. сети:
В Telegram канале — регулярный контент по ML и Data Science
На Ютуб канале — видеоразборы вопросов с собеседований (и по этой статье)
На Boosty — разборы задач по математике, реальных собеседований и еще больше обучающих материалов
Полная карта со всем моим контентом
Вкат с нуля или повышение грейда в ML — менторство
Какие есть проблемы подготовки датасета для претрена?
Качество LLM очень сильно зависит от качества pretraining-данных. Принцип простой: мусор на входе - мусор на выходе.
Основные проблемы:
дубли
токсичный контент
контент низкого качества
bias в данных, расизм, стереотипы и тд
несбалансированные данные по источникам, темам и тд
Как бороться с дубликатами данных?
Дубли могу быть следующие:
перепечатки статей
одинаковые новости на разных сайтах
копии документации
зеркала репозиториев
шаблонные страницы
SEO-страницы
одинаковые рецепты
скопированные ответы с форумов
Если не удалять дубли, модель будет переобучаться на часто повторяющиеся фрагменты.
Это может приводить к:
запоминанию
ухудшению разнообразия
завышению веса популярных, но не обязательно качественных текстов
утечкам данных из train в eval и переоценке качества на бенчмарках
Используют дедупликацию:
Exact deduplication
удаляет полностью одинаковые документыNear deduplication
удаляет почти одинаковые документы, например через MinHash/SimHashSemantic deduplication
ищет тексты с одинаковым смыслом, но разной формулировкой
Как бороться с низким качеством данных?
В веб-корпусах много плохого контента:
спам
SEO-мусор
автоматически сгенерированные страницы
токсичность
оскорбления
мат
ложные факты
конспирология
стереотипы
страницы с плохой грамматикой
бессмысленные тексты
Если всё это без фильтрации отправить в pretraining, модель будет впитывать эти паттерны.
Используют несколько уровней фильтрации:
Фильтрация по источникам
Rule-based эвристики
Классификаторы качества
Классификаторы токсичности
Классификаторы языка
Простые эвристики:
слишком много спецсимволов
слишком высокая доля ссылок
слишком короткий документ
слишком много повторов
подозрительная структура страницы
не тот язык
Более сложные методы:
классификатор «качественный / некачественный текст»
классификатор токсичности
тематический классификатор
фильтрация по доменам
embedding-based filtering
Как бороться с перекосом по темам?
Интернет не является равномерным отражением мира.
Одних тем очень много, например, новостей. А других существенно меньше, например, научных статей по медицине.
Если просто собрать веб как есть, модель будет лучше знать популярные темы и хуже - редкие.
Используют:
стратификацию
балансировку источников
ограничение доли категорий
oversampling редких доменов
отдельные доменные корпуса
Как бороться с проблемой учетки тренировочных данных в валидационный бенчмарк?
Если тестовые данные попали в pretraining-корпус, модель может не решать задачу, а просто помнить ответ.
Это особенно опасно для популярных бенчмарков: MMLU, TruthfulQA и др.
Используют:
поиск точных совпадений
fuzzy matching
n-gram overlap
embedding similarity
temporal split
private eval sets
ручной аудит подозрительных примеров

В каком виде собирать датасет для alignment?
Для alignment можно использовать разные форматы данных.
Выделим три основных варианта:
инструкция - ответ
инструкция - ответ - лейбл
инструкция - side-by-side: winner > loser ответы

Что такое RLHF?
RLHF расшифровывается как Reinforcement Learning from Human Feedback.
Это подход, в котором модель дообучают с использованием человеческих предпочтений. RLHF использует концепции обучения с подкреплением. Модель генерирует текст, reward model оценивает его, а дальше мы обновляем модель так, чтобы хорошие ответы становились вероятнее.

Папйплайн RLHF из статьи OpenAI:
Берём pretrained model
Делаем SFT на instruction dataset
SFT Модель генерирует несколько ответов на один prompt
Люди выбирают, какие ответы лучше
На этих предпочтениях обучается reward model
Затем LLM дообучается так, чтобы максимизировать reward model score, использую алгоритмы RL (PPO)
При этом модель ограничивают, чтобы она не слишком далеко уходила от исходной SFT-модели (KL-дивиргенция)

Как обучается reward model?
Reward model - это модель, которая получает prompt и ответ LLM, а на выходе выдаёт одно число. Чем выше score, тем лучше ответ с точки зрения человеческих предпочтений.
Reward model можно строить по-разному:
взять SFT-модель и заменить language modeling head на scalar head
взять отдельную encoder-модель, например DeBERTa/BERT-подобную
взять более лёгкую LLM
использовать специализированный reranker-like подход
Классический pairwise loss для модели наград выглядит так:
где:
- prompt
- chosen answer
- rejected answer
- reward model score
- sigmoid

Если reward для chosen сильно выше, чем reward для rejected, loss маленький.
Если reward model оценивает плохой ответ выше хорошего, loss большой.
Как выглядит алгоритм PPO в RLHF?
После обучения reward model нужно дообучить саму LLM.
В классическом RLHF для этого часто используют PPO - Proximal Policy Optimization.
Модель генерирует ответ, reward model оценивает его, а PPO обновляет policy так, чтобы повышать reward.
Но есть важное ограничение: нельзя позволить модели слишком далеко уйти от SFT-модели.
Иначе она может начать оптимизировать reward model странными способами.
Зачем нужна KL-дивергенция во время PPO и алаймента?
Цель можно записать так:
где:
- обучаемая модель
- reference model, обычно SFT-модель
- reward model
- KL-дивергенция
- сила штрафа
То есть хотим высокий reward, но так, чтобы модель не слишком далеко ушла от исходной SFT-модели. Это, кстати, говоря, еще применяется как способ борьбы с reward hacking - об этом чуть ниже.

Оговорка:
КЛ дивергенция не является полноценным расстоянием, потому что KL-дивергенция несимметрична. Поэтому важно, какое распределение стоит первым.
В чем отличие прямой KL от обратной KL?
Есть два направления:
Forward KL: D_KL(P || Q)
Reverse KL: D_KL(Q || P)
Они ведут себя по-разному:
forward KL является усредняющей. Она пытается охватить все вероятные исходы, поэтому распределение Q старается растянуться так, чтобы покрыть все возможные пики истинного распределения P.
reverse KL является собирающей моду (mode-seeking). Она заставляет распределение Q выбрать один самый выраженный пик истинного распределения P и сфокусироваться только на нем, игнорируя остальные, менее вероятные варианты.

Что такое ревард хакинг?
Reward hacking - ситуация, когда модель находит способ получить высокий reward, но ответ при этом плохой для человека.
Например, reward model может любить слишком длинные ответы, определённые шаблонные фразы, формальную структуру, избыточные объяснения. Это типичный риск любой оптимизации по прокси-метрике.

Кстати, в 2024 году завирусился мем про слово delve: его начали воспринимать как нестрогий маркер ИИ-текста, потому что ChatGPT использовал его заметно чаще людей. Это хороший бытовой пример того, как модель может научиться писать правильно выглядящий текст, но при этом оставлять узнаваемые стилевые артефакты.
Какие есть проблемы в RLHF и в частности в PPO?
Дорогая разметка
Для reward model нужен датасет предпочтений. Его часто собирают через людей (асессоров, экспертов, пользователей). Это долго, дорого, сложно масштабировать, обновлять.
Reward hacking
ситуация, когда модель находит способ получить высокий reward, но ответ при этом плохой для человека.
Высокая вычислительная стоимость
В PPO нужно держать несколько моделей или компонентов: обучаемую policy model, reference model для KL, reward model. Для больших LLM это тяжело по памяти и инфраструктуре.
Нестабильность PPO
PPO чувствителен к гиперпараметрам:
learning rate, batch size, KL coefficient, reward normalization, clipping, длина генерации, sampling parameters, advantage estimation.
Из-за этого PPO может быть сложно воспроизводить и стабильно обучать.

Что такое DPO, в чем отличие от PPO?
DPO: Direct Preference Optimization, появился как более простой способ обучать модель на preference data.
Главная идея DPO: можно напрямую оптимизировать языковую модель на парах winner > loser, без отдельного обучения reward model и без полноценного RL-цикла. Авторы DPO показывают, что стандартную RLHF-задачу можно перепараметризовать и получить простой classification loss.
Плюсы:
не нужна отдельная reward model
не нужен полноценный RL
проще пайплайн
меньше компонентов в памяти
проще имплементировать
напрямую работает с preference pairs
Но сложности остаются:
всё ещё нужен preference датасет
нужна reference model
обучение может быть чувствительным к
возможно переобучение на preference данных
качество зависит от выбранных rejected ответов
данные должны быть достаточно разнообразными

Как выглядит лосс DPO?
Формула DPO:
где:
- prompt
- winner answer
- loser answer
- обучаемая policy
- reference policy
- коэффициент регуляризации
- sigmoid
Смысл:
увеличиваем вероятность хорошего ответа
уменьшаем вероятность плохого ответа
но сравниваем это относительно reference model

Что такое GRPO?
GRPO: Group Relative Policy Optimization - это вариант RL-оптимизации, который стал особенно известен в контексте моделей для математики и reasoning.
GRPO был представлен в работе DeepSeekMath как модификация PPO, которая улучшает математическое reasoning качество и снижает потребление памяти по сравнению с PPO за счёт отказа от отдельной value function.
Алгоритм grpo:
Берём prompt
Генерируем группу ответов
Оцениваем каждый ответ reward model / rule-based reward
Считаем средний reward группы
Для каждого ответа считаем advantage относительно среднего
Обновляем policy:
хорошие относительно группы ответы делаем вероятнее
плохие относительно группы ответы делаем менее вероятными
Добавляем ограничение, чтобы policy не уходила слишком далеко
То есть модель учится не просто по абсолютному reward, а по относительному качеству внутри группы ответов для одного prompt.
В PPO обычно нужна value model, которая оценивает ожидаемую награду. А в GRPO вместо value function использует group baseline (= средний reward ответов на один prompt).

GRPO хорошо ложится на задачи, где можно сгенерировать несколько вариантов и оценить их:
математика, код, задачи с проверяемым ответом
В таких задачах часто можно получить reward не только от человека, но и автоматически:
совпал финальный ответ, прошли unit-тесты, код исполнился без ошибок.
Плюсы grpo:
меньше памяти, чем PPO с value model
хорошо подходит для reasoning-задач
использует несколько сэмплов на один prompt
относительная оценка внутри группы может быть устойчивее абсолютной
удобно сочетать с reward/checker-based задачами
Минусы grpo:
всё ещё нужен reward signal
нужно генерировать несколько ответов на prompt, что дорого
качество зависит от reward model/checker
возможен reward hacking
не универсальное решение для всех типов alignment
Итоговый чеклист вопросов с собесов
вопросы, на которые нужно уметь отвечать
1. GPT-like модел, in-context learning и prompt-engineering
Как мы дошли до ChatGPT от обычной gpt? Что изменилось?
Что такое in-context learning?
Почему in-context learning не является fine-tuning?
Что такое zero-shot режим?
Что такое few-shot режим?
Что такое prompt engineering?
Почему качество промпта влияет на качество ответа, если веса модели не меняются?
Чем плохой промпт отличается от хорошего?
Что такое Chain-of-Thought prompting?
Для каких задач CoT особенно полезен?
Чем CoT как prompting отличается от reasoning-моделей?
Что такое test-time reasoning?
Что такое role prompting?
Что такое structured output prompting?
Почему промпт “верни JSON” не гарантирует валидный JSON?
Что такое tool-use prompting?
Чем prompt engineering отличается от проектирования агентной системы?
2. Этапы обучения LLM
Какие основные этапы обучения современной LLM можно выделить?
Что происходит на этапе pretraining?
Какой loss обычно используется при autoregressive pretraining?
Что модель получает после pretraining?
Почему после pretraining модель ещё не обязательно является хорошим ассистентом?
Что такое Supervised Fine-Tuning?
Чем SFT отличается от pretraining?
Как выглядит датасет для SFT?
Что такое instruction tuning?
Какие способности усиливаются после SFT?
Почему SFT не решает полностью проблему безопасности?
Почему SFT может усиливать галлюцинации?
Что такое alignment в контексте LLM?
Почему alignment шире, чем просто preference tuning?
Что означает принцип Helpful, Honest, Harmless?
Почему helpfulness, honesty и harmlessness могут конфликтовать?
3. Данные для pretraining и alignment
Почему качество pretraining-данных критично для качества LLM?
Какие основные проблемы есть у pretraining-датасетов?
Почему дубликаты в данных вредны для LLM?
Чем exact deduplication отличается от near deduplication?
Что такое benchmark contamination?
Почему попадание тестовых данных в pretraining-корпус опасно?
Как фильтруют низкокачественные веб-данные?
Почему токсичный контент в обучающих данных влияет на поведение модели?
Что такое topic imbalance в pretraining-корпусе?
Какие форматы данных используют для alignment?
Чем формат “instruction → answer” отличается от preference dataset?
Что такое chosen/rejected пара?
Почему side-by-side разметка удобна для preference learning?
Какие проблемы есть у пользовательских лайков/дизлайков как сигнала качества?
4. Alignment
Что такое RLHF?
Из каких этапов состоит RLHF-пайплайн?
Что такое reward model?
Что reward model получает на вход и предсказывает на выходе?
Зачем в RLHF нужен PPO?
Почему при RLHF модель ограничивают от слишком сильного отклонения от SFT-модели?
Что такое reward hacking?
Почему высокий reward не всегда означает хороший ответ для пользователя?
Что такое DPO?
Чем DPO отличается от RLHF?
Почему DPO не требует отдельной reward model?
Почему качество chosen/rejected пар критично для DPO?
5. Практические вопросы с собеседований
У вас есть base LLM. Как превратить её в чат-ассистента?
Как понять, что задачу лучше решать prompt engineering, SFT, DPO/RLHF или агентной системой?
Как бы вы построили evaluation для instruction-following модели?
Полезные материалы
Курс NLP от ШАДа | GPT week от Яндекса | курс DLS
Чтобы не пропустить выход статей и видео по ML, NLP, LLM, подпишись на мои соц. сети:
В Telegram канале — регулярный контент по ML и Data Science
На Ютуб канале — видеоразборы вопросов с собеседований (и по этой статье)
На Boosty — разборы задач по математике, реальных собеседований и еще больше обучающих материалов
Полная карта со всем моим контентом
Вкат с нуля или повышение грейда в ML — менторство
