Подготовка данных для RAG: пошаговое руководство

Технический процесс создания базы знаний для максимальной эффективности RAG-системы.
Подготовка данных для RAG: технический процесс создания базы знаний
Эффективность RAG-системы определяется качеством подготовки данных. Плохо обработанные документы приводят к нерелевантным ответам, потере контекста и низкому доверию пользователей к системе. Процесс подготовки включает шесть последовательных этапов.
Этап 1. Сбор и аудит данных
Принципы отбора источников
Релевантность данных определяет границы компетенций вашей RAG-системы. Для корпоративного помощника это внутренние регламенты, процедуры, базы знаний. Для службы поддержки — FAQ, инструкции по продуктам, история решений тикетов.
Важно учитывать жизненный цикл документов. Устаревшие версии политик компании или неактуальные прайс-листы создают больше проблем, чем отсутствие информации. Система будет генерировать ответы на основе неверных данных.
Источники данных
Структурированные источники: Базы данных, CRM-системы, ERP, корпоративные wiki. Преимущество — четкие метаданные, недостаток — может потребоваться извлечение неструктурированного текста из полей.
Полуструктурированные источники: Веб-страницы, PDF-документы, презентации. Содержат полезную информацию, но требуют предварительной очистки от навигационных элементов и форматирования.
Неструктурированные источники: Email-переписка, чаты, заметки. Высокое информационное содержание, но сложности с извлечением релевантных фрагментов.
Этап 2. Очистка и нормализация контента
Удаление технического шума
Веб-страницы содержат множество элементов, не относящихся к основному контенту: меню навигации, рекламные блоки, ссылки "поделиться", колонтитулы. Для автоматического извлечения основного содержания используются инструменты типа Readability.js или библиотека Trafilatura для Python.
PDF-документы часто содержат артефакты сканирования, водяные знаки, служебную информацию. Требуется OCR для отсканированных документов и постобработка для удаления повторяющихся элементов.
Стандартизация форматов
Единообразие представления данных критично для качества поиска. Например, денежные суммы должны быть в одном формате: "1000 рублей", а не смесь "1000 руб", "тысяча рублей", "1k RUB".
Даты, номера телефонов, адреса также требуют нормализации. Это улучшает как семантический поиск (через эмбеддинги), так и лексический (через точные совпадения терминов).
Обработка дубликатов
Одинаковая информация в разных форматах создает избыточность в результатах поиска. Дубликаты выявляются через:
- Точное совпадение текста
- Семантическое сходство (косинусное расстояние между эмбеддингами > 0.95)
- Сходство на уровне n-грамм
Этап 3. Стратегии чанкинга
Чанкинг — разбиение больших документов на фрагменты, с которыми может работать система поиска и генерации. Выбор стратегии влияет на релевантность найденной информации.
Фиксированный размер (Fixed-size chunking)
Деление текста на равные блоки по количеству токенов с опциональным перекрытием.
Преимущества: Простота реализации, предсказуемый размер чанков
Недостатки: Может разрывать семантически связанные фрагменты
Применение: Однородные тексты без выраженной структуры
Пример параметров: размер чанка 300 токенов, перекрытие 50 токенов (16.7%)


