Перейти к основному содержимому

Основы

Промптинг, RAG и дообучение: в чём разница?

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

Все разборы · Последняя проверка:

Три разных решения для трёх разных проблем

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

Промптинг меняет только тот запрос, что перед вами

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

Промптинг также стоит исчерпать в первую очередь, прежде чем обращаться к чему-то ещё. Удивительно большая доля проблем «модель не умеет делать X» на самом деле оказывается проблемой «инструкции никогда не просили сделать X».

RAG добавляет факты и документы, не трогая модель

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

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

Дообучение меняет саму модель

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

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

Подбирайте метод под реальный сбой, а не под самый эффектный вариант

Не тот тон, не тот формат, пропущенные инструкции: обычно проблема промптинга. Неверные или отсутствующие факты, особенно о собственных или быстро меняющихся материалах: обычно проблема извлечения. Специализированное поведение, которое вы хотите применять последовательно, в каждом запросе, не объясняя его заново каждый раз: именно для этого и создано дообучение. Эти методы не исключают друг друга — дообученной модели по-прежнему можно давать промпт и извлечённый контекст, — но каждый решает только тот сбой, для которого он создан, а выбор не того метода оставляет реальную проблему нерешённой, добавляя при этом стоимость и сложность.

Почему многие продукты вообще не обращаются к дообучению

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

Частые вопросы

Обновляет ли RAG знания модели навсегда?
Нет. RAG меняет то, что включено в контекст одного запроса; сама модель никогда не изменяется. Следующий запрос, который не извлекает тот же материал, начинается без него — точно так же, как любой другой промпт.
Всегда ли дообучение точнее промптинга или RAG?
Нет. Дообучение закрепляет паттерн из своих обучающих примеров, но не добавляет факты, отсутствующие в этих обучающих данных, и не поддерживает факты в актуальном состоянии так, как это может делать извлечение. Дообученная модель может по-прежнему уверенно ошибаться во всём, что выходит за рамки её обучения.
Можно ли комбинировать промптинг, RAG и дообучение?
Да. Они меняют разные части системы, поэтому дообученная модель по-прежнему может получать извлечённый контекст и явные инструкции в одном и том же запросе. Их комбинирование — обычная практика; относиться к ним как к взаимоисключающим вариантам не нужно.
Что стоит попробовать первым?
Почти всегда — промптинг. Он не требует инфраструктуры, и изменение формулировки можно проверить за секунды. Переходите к извлечению, когда пробел — это отсутствующая или устаревшая информация, и рассматривайте дообучение только тогда, когда конкретное, чётко определённое поведение должно быть последовательным на объёме запросов, достаточно большом, чтобы оправдать затраты на обучение и поддержку.

Лучше попробовать, чем читать

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