RAG: что это и как работает
RAG (Retrieval-Augmented Generation, генерация с поиском) это способ заставить нейросеть отвечать по вашим документам. Перед ответом система находит в базе знаний несколько подходящих фрагментов и передаёт их модели вместе с вопросом. Модель отвечает на основе найденного и может сослаться на источник. Так делают чат-ботов поддержки, поиск по внутренним регламентам и ассистентов по документации без дообучения модели.
Большая языковая модель знает только то, что было в её обучающих данных, и не знает ваших договоров, базы знаний или вчерашнего прайса. Можно вставлять документы в каждый запрос, но их бывает тысячи. RAG решает это поиском: в запрос попадает только то, что относится к вопросу.
Как устроена RAG-система
- Нарезка. Документы делят на фрагменты (чанки) по несколько абзацев.
- Эмбеддинги. Каждый фрагмент превращают в вектор, набор чисел, который отражает смысл текста. Похожие по смыслу тексты получают близкие векторы.
- Индекс. Векторы складывают в векторную базу (pgvector, Qdrant, Pinecone, Weaviate и другие) или в обычный поисковый индекс.
- Поиск. Вопрос пользователя тоже превращают в вектор и находят ближайшие фрагменты. Часто добавляют обычный поиск по словам (BM25) и переранжирование.
- Генерация. Найденные фрагменты и вопрос отправляют модели с инструкцией отвечать только по ним и указывать источник.
RAG, дообучение и длинный контекст
| RAG | Дообучение (fine-tuning) | Всё в контекст | |
|---|---|---|---|
| Когда подходит | много документов, они часто меняются | нужен стиль, формат, узкая манера ответа | документов мало, помещаются в запрос |
| Обновление знаний | добавить документ в индекс | заново обучать | вставить новый текст |
| Ссылки на источник | да | нет | да |
| Сложность | средняя | высокая | низкая |
На практике начинают с самого простого: если документы помещаются в контекст модели, RAG может быть не нужен.
Почему RAG отвечает плохо: частые причины
- Поиск не нашёл нужный фрагмент. Чаще всего проблема не в модели, а в поиске. Помогает гибридный поиск (векторы плюс BM25), переформулировка вопроса и переранжирование.
- Неудачная нарезка. Ответ разорван между двумя чанками или чанк без заголовка теряет смысл. Добавляйте к фрагменту название документа и раздела.
- Модель додумывает. Нужна явная инструкция: «если ответа нет в фрагментах, так и скажи».
- Нет оценки качества. Соберите 30–50 реальных вопросов с правильными ответами и прогоняйте их после каждого изменения.
Где научиться делать RAG
В академии на русском три курса разбирают RAG от идеи до кода, первые уроки бесплатны:
- Anthropic, «Разработка с Claude API»: что такое RAG, текстовые эмбеддинги, собираем RAG своими руками, лексический поиск BM25;
- Cohere LLM University: RAG с нуля: самая простая версия, как оценивать качество RAG, улучшаем RAG: Rerank и переформулировка запросов, агентный RAG;
- Microsoft, «Генеративный ИИ для начинающих»: RAG и векторные базы данных.
Если нужен ключ для первых экспериментов, смотрите гиды «API-ключ Claude» и «API-ключ Gemini».
Разработка с Claude API
Официальный курс Anthropic: API, промпты, инструменты, RAG и агенты. 92 урока на русском, первые бесплатно.
Открыть курсЧастые вопросы
Что такое RAG простыми словами?
Это когда нейросеть перед ответом ищет подходящие фрагменты в ваших документах и отвечает по ним, а не только по своим знаниям.
Чем RAG отличается от дообучения модели?
RAG подставляет нужные документы в запрос и обновляется добавлением файлов. Дообучение меняет саму модель, это дороже и не даёт ссылок на источник.
Нужна ли векторная база для RAG?
Не обязательно. Для небольших объёмов хватает поиска по словам или векторов в обычной базе, например PostgreSQL с pgvector.
Где бесплатно научиться делать RAG?
В AI University на русском есть уроки по RAG из курсов Anthropic, Cohere и Microsoft, первые уроки открыты бесплатно.
