RAG (генерация с дополнением поиском)
RAG — подход, при котором модель перед ответом ищет нужные фрагменты в вашей базе и отвечает уже по ним. Так она работает со свежими и закрытыми данными, которых не было в обучении, и заметно реже выдумывает.
Как это работает
Документы заранее нарезаются на куски и превращаются в векторы — числовые представления смысла. Они складываются в векторную базу. При запросе в векторы превращается и он, база находит ближайшие по смыслу фрагменты, и они подставляются в контекст вместе с вопросом.
Модель отвечает уже по этому материалу, а не по памяти. Отсюда два выигрыша: ответ опирается на проверяемый источник, и его можно снабдить ссылкой на конкретный документ.
Поиск идёт по смыслу, а не по словам. Запрос «как вернуть товар» находит раздел «политика возврата», даже если этих слов в нём нет, — потому что сравниваются векторы, а не строки.
RAG или дообучение
- RAG — когда меняются данныеДокументы обновляются без переобучения модели: достаточно переиндексировать базу. Дообучение так не умеет.
- Дообучение — когда меняется поведениеСтиль ответа, формат вывода, специфический жаргон — это про дообучение, а не про поиск.
- Качество упирается в нарезкуСлишком мелкие куски теряют контекст, слишком крупные размывают поиск. Это основная настройка всей схемы.
- Плохой поиск — плохой ответЕсли база отдала не те фрагменты, модель уверенно ответит по ним. RAG сокращает выдумки, но не отменяет проверку.