RAG (Retrieval-Augmented Generation)

RAG (Retrieval-Augmented Generation) — это технология в области ИИ, которая сочетает генерацию текста большими языковыми моделями (LLM) с поиском релевантной информации из внешних источников. Она позволяет моделям использовать актуальные данные, недоступные в исходном обучении, минимизируя галлюцинации и повышая точность ответов.

Как работает RAG

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

Преимущества

RAG ускоряет внедрение, снижает затраты на вычисления и обеспечивает актуальность знаний, что идеально для корпоративных чат-ботов или Q&A по документам. В сравнении с fine-tuning, RAG проще в обновлении и контролируемее, хотя может уступать в доменной специализации.

Применение

Технология подходит для чат-ботов по внутренним документам, поиска по нормативам (ГОСТ, регламенты) или ассистентов в энергетике/ERP-системах вроде 1C. В продакшене используют векторные БД (pgvector, Weaviate) с моделями типа Llama или GigaChat.

Какие форматы контента лучше хранить для RAG

Для RAG лучше всего хранить контент в форматах, которые легко парсятся на текст, сохраняют структуру и позволяют эффективное чанкование без потери смысла. Предпочтительны Markdown (.md) для унифицированной обработки, чистый текст (.txt), документы Word (.docx) и таблицы Excel (.xlsx).

Рекомендуемые форматы

  • Markdown (.md): Идеален для структурированных текстов — заголовки, списки и таблицы сохраняются, упрощает извлечение с помощью библиотек вроде Docling.
  • TXT и чистый текст: Простой парсинг, минимальные потери, подходит для баз знаний без сложной верстки.
  • DOCX и PDF: Хорошо для корпоративных документов, но требуют инструментов (Unstructured, Docling) для извлечения таблиц, изображений и flowchart.
  • XLSX/CSV: Структурированные данные (таблицы) — преобразуйте в текст с метаданными для векторного поиска.

Почему эти форматы

Они позволяют разбивать на чанки по 500–1000 токенов с перекрытием, добавлять метаданные (дата, источник) в JSON-подобной структуре для reranking. JSON рекомендуется для гибкости хранения чанков с метаданными в векторных БД (pgvector, Pinecone). Избегайте сырых изображений/видео без транскриптов — конвертируйте в текст.

Советы по подготовке

Используйте Docling или Unstructured для конвертации в Markdown/текст перед индексацией. Для вашего стека (1C, нормативы ЖКХ) храните ГОСТы/регламенты как .md с метаданными (версия, дата). Тестируйте на релевантность поиска с overlap 20–30%.

Как работает индексирование документов для RAG

Индексирование документов для RAG — это оффлайн-процесс подготовки базы знаний, который включает загрузку, разбиение на чанки и векторизацию для быстрого поиска. Этапы выполняются заранее и обновляются по мере поступления данных, чтобы LLM могла оперативно извлекать релевантный контекст.

Этапы индексирования

Сначала документы загружаются с помощью загрузчиков (PDF, DOCX, базы данных, веб-страницы) и разбиваются на чанки оптимального размера (500–1000 токенов) с перекрытием 20–30% для сохранения контекста. Затем каждый чанк преобразуется в эмбеддинг (вектор) с помощью модели вроде sentence-transformers или OpenAI embeddings и сохраняется в векторной БД (FAISS, pgvector, Milvus).

Типы индексов

  • Векторный: Поиск по семантике через косинусное сходство векторов — основной для RAG.
  • Текстовый (BM25): По ключевым словам, дополняет векторный для гибридного поиска.
  • Гибридный/иерархический: Комбинирует уровни для ускорения на больших объёмах (сводный индекс + детальный).

Оптимизации

Добавляйте метаданные (источник, дата, тип) к чанкам для фильтрации и reranking; используйте HNSW-алгоритм для баланса скорости и точности. Для вашего стека (1C, нормативы) индексируйте регламенты как Markdown-чанки в pgvector с обновлением по триггеру изменений.

Виктория Москва
Оцените автора
( Пока оценок нет )
SA|BOOK