Чем дообучение модели отличается от подсказки: разница и выбор подхода

Подсказка меняет только входной текст запроса, а дообучение меняет сами веса модели на ваших примерах. Если нужно быстро поправить тон, формат или роль — начинайте с подсказки: это минуты работы и никаких данных для обучения. Если модель должна одинаково держать узкий формат или стиль на тысячах запросов и подсказка стабильно даёт сбои — переходите к дообучению.

Короткий ответ: что именно меняется

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

Дообучение, или fine-tuning, обновляет параметры модели на парах «запрос — желаемый ответ». Модель запоминает закономерности ваших примеров и применяет их по умолчанию, без длинного текста в каждом запросе. Отсюда главное различие: подсказка живёт в запросе, дообучение — в самой модели.

Как работает подсказка: инструкции, примеры и контекст

Самый простой вариант — zero-shot: вы даёте задачу без примеров, например «определи, жалоба это или похвала». Few-shot добавляет несколько образцов прямо в запрос, и модель копирует их логику. Chain-of-thought просит рассуждать по шагам перед ответом — это помогает на задачах, где важен порядок вывода.

У подсказки есть физический предел — контекстное окно, то есть максимальный объём текста, который модель принимает за один запрос. Всё, что вы вставили, оплачивается как токены: токен — примерно часть слова, и длинная инструкция с десятком примеров заметно увеличивает счёт при большом потоке. Зато подсказку можно изменить за минуту и сразу проверить через API или интерфейс.

Слабое место — нестабильность. Формулировка влияет на результат, а обновление версии модели может сдвинуть поведение. Поэтому подсказку стоит проверять на наборе тестовых запросов после каждого изменения промпта и после смены версии модели.

Как работает дообучение: данные, веса и затраты

Для дообучения нужен датасет: пары «вход — желаемый выход» с разметкой. Для классификации отзывов это текст отзыва и метка «жалоба» или «похвала», для извлечения данных — описание товара и правильный JSON. Качество датасета важнее его размера: противоречивые примеры модель выучит вместе с ошибками.

Полное дообучение обновляет все параметры и требует серьёзных вычислений. Параметрически эффективные методы, такие как LoRA, обучают небольшие добавки к весам и дают близкий результат при меньших затратах на GPU. Точные требования к числу примеров и поддержку метода проверяйте в документации выбранного провайдера: они различаются между моделями.

Зато на инференсе — то есть при обычных ответах пользователям — дообученная модель не нуждается в длинной инструкции в каждом запросе. Это экономит токены и снижает разброс формата. Плата за это — подготовка данных, время обучения и хранение версий модели.

Сравнение по критериям: что выбрать

Разница проявляется не в абстрактном «качестве», а в конкретных условиях: объём запросов, стабильность требований и наличие размеченных данных. Таблица помогает сопоставить подходы по этим условиям.

Критерий Подсказка Дообучение
Что меняется Входной текст запроса Веса модели
Скорость запуска Минуты Дни и недели
Нужны данные Нет, хватит нескольких примеров в запросе Да, сотни или тысячи размеченных пар
Стабильность формата Зависит от формулировки, возможны сбои Обычно выше на узкой задаче
Свежие факты Легко обновить в запросе или через поиск по базе Требует переобучения
Стоимость на потоке Растёт с длиной инструкции в каждом запросе Экономит токены, но требует бюджета на обучение

Порог выбора простой: если задача разовая или меняется каждую неделю — подсказка. Если формат и стиль стабильны, а запросов много и ошибки дорого стоят — считайте дообучение. Когда нужны и свежие данные, и единый стиль, работает гибрид: дообучение на стиль плюс подсказка с актуальными данными из базы.

Пример: извлечение названия и цены в JSON

Интернет-магазин хочет, чтобы модель доставала из описания товара название и цену в формате JSON с полями name и price. Сначала пробуют подсказку: «Верни JSON с полями name и price. Пример: …». Проверяют на 20 описаниях и считают долю точных ответов: 15 из 20 — 75%. Этого мало, если ответы идут в автоматическую обработку.

Тогда собирают 300 описаний с правильными JSON-ответами и дообучают модель. Повторная проверка на тех же 20 описаниях даёт 19 из 20 — 95%. Подсказка дала быстрый старт без данных, дообучение потребовало подготовки примеров, но повысило стабильность формата. Числа здесь условные, для иллюстрации; свои метрики считайте на своём наборе тестов.

Типичные ошибки при выборе подхода

  • Дообучают на малом или грязном датасете и получают переобучение: модель повторяет ошибки примеров.
  • Пытаются зашить быстро меняющиеся факты, например остатки на складе, в веса модели — их придётся обновлять переобучением.
  • Ждут, что длинная подсказка заменит дообучение на сложной узкой задаче, где нужен устойчивый стиль.
  • Внедряют подход без оценки качества до и после: не с чем сравнить результат.
  • Игнорируют стоимость токенов при больших объёмах запросов с длинной инструкцией.

Проверяйте результат на одном и том же наборе тестовых запросов до и после изменения. Так вы увидите, помог ли переход к дообучению или хватило переписать подсказку.

Вопросы читателей

Можно ли обойтись только подсказкой, если запросов очень много?

Можно, если формат держится стабильно и длина инструкции не раздувает счёт. Сравните стоимость токенов на потоке с затратами на подготовку данных и обучение — решение станет очевидным.

Дообучение заменяет поиск по базе знаний?

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

Сколько примеров нужно для дообучения?

Зависит от задачи и модели: универсального числа нет. Начните с подсказки, замерьте качество, затем соберите датасет и проверьте прирост на тестовом наборе.

Что делать, если модель обновилась и подсказка перестала работать?

Прогоните тестовые запросы на новой версии, сравните результаты и поправьте формулировку. Держите набор тестов под рукой, чтобы замечать сдвиги сразу.