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