Как из предсказания слова получается диалог

Если модель просто продолжает текст, почему ChatGPT отвечает на вопросы, а не дописывает их? Этот урок соединяет «предсказатель токенов» с «собеседником».

Чат-разметка — это служебный формат, который превращает диалог с ролями (система, пользователь, ассистент) в единую последовательность токенов для модели.

Базовая модель просто продолжает

«Сырая» предобученная модель (base model) умеет лишь одно — продолжать текст. Если дать ей «Как приготовить омлет?», она с равным успехом может выдать рецепт, а может — продолжить список вопросов из учебника, ведь в интернете вопросы часто идут пачками. Базовая модель не знает, что от неё хотят ответа. Она угадывает наиболее вероятное продолжение, а не самое полезное.

Шаг 1. Дообучение под инструкции

Чтобы модель отвечала, а не продолжала, её дообучают на парах «инструкция → хороший ответ» (это SFT, разберём в разделе про обучение). После такого дообучения наиболее вероятным продолжением запроса становится именно полезный ответ. Модель не получила нового механизма — сместилось распределение: теперь после вопроса вероятнее идёт ответ, а не ещё один вопрос.

Шаг 2. Роли и чат-разметка

Диалог нужно как-то уложить в одну линейную последовательность токенов. Для этого вводят роли и служебные маркеры. Концептуально это выглядит так (формат у разных моделей свой):

<|system|>
Ты вежливый ассистент. Отвечай кратко и по делу.
<|user|>
Что такое токен?
<|assistant|>
Токен — это кусочек текста, единица, которой оперирует модель.

Здесь три роли:

  • system — общие инструкции и характер ассистента (его «настройки»);
  • user — реплики пользователя;
  • assistant — ответы модели.

Модель по-прежнему делает ровно одно — предсказывает следующий токен. Но теперь она обучена так, что, увидев маркер <|assistant|>, продолжает текст как полезный, вежливый ответ. Диалог — это иллюзия, собранная из служебной разметки поверх всё того же предсказания токенов.

Шаг 3. Выравнивание

Финальный штрих — выравнивание (alignment) через обучение с обратной связью от людей (RLHF). Оно делает ответы не просто правдоподобными, а полезными, честными и безопасными: модель учится отказываться от вредных просьб и не выдумывать лишнего. Этому посвящён отдельный урок в разделе про обучение.

Почему это важно понимать

Осознав, что «диалог» — это разметка поверх предсказания токенов, вы сразу понимаете многие вещи: почему системный промпт влияет на поведение (он буквально часть входной последовательности), почему модель иногда «забывает» инструкцию (она ушла далеко за пределы внимания) и почему так важен порядок сообщений.

Итог

  • Базовая модель только продолжает текст и не отличает вопрос от просьбы ответить.
  • Дообучение под инструкции смещает распределение так, что после запроса вероятнее идёт полезный ответ.
  • Роли system/user/assistant и чат-разметка укладывают диалог в одну последовательность токенов.
  • Выравнивание (RLHF) делает ответы полезными, честными и безопасными.
Проверьте себя
1. Чем «сырая» базовая модель отличается от чат-ассистента?
AБазовая модель работает быстрее
BБазовая модель просто продолжает текст и может не дать ответа, а лишь дописать вопрос
CБазовая модель не использует токены
DМежду ними нет разницы
2. Зачем нужна роль system в чат-разметке?
AЧтобы хранить пароли
BЧтобы задать общие инструкции и характер ассистента — она часть входной последовательности
CЧтобы ускорить генерацию
DЧтобы переводить текст
3. Диалог в LLM — это…
Aотдельный механизм, не связанный с предсказанием токенов
Bразметка с ролями поверх всё того же предсказания следующего токена
Cпоиск ответа в базе вопросов
Dслучайная генерация
Поддержать проект