Поиск и отбор релевантной информации: от точных методов до нейросетевых приближений
В эпоху, когда языковые модели вроде GPT-4.1 и Claude 3.7 умеют генерировать тексты уровня человека, их главная слабость остаётся неизменной — они не знают того, чего нет в их обучающих данных, а потому подвержены «галлюцинациям» (более правильный термин — конфабуляция, то есть выдумывание того, чего не знает модель, для правдоподобного заполнения лакун). Именно поэтому RAG (Retrieval-Augmented Generation) стал святым Граалем современных систем ИИ: этот подход сочетает поиск актуальной информации с её творческой обработкой. Но за кажущейся простотой «найти и добавить в контекст» скрывается сложный алгоритмический механизм, который решают, что искать, как искать и почему это важно.
Почему сегодня RAG переживает бум?
До 2020 года поиск информации для ИИ ограничивался базами знаний вроде Wikipedia или корпоративных документов. Сегодня RAG вышел за эти рамки:
- Динамические данные: новости, курсы акций, соцсети — модели должны работать с информацией, которой не было при их обучении.
- Точность: генерация «от балды» неприемлема в медицине, юриспруденции или технической документации.
- Эффективность: перетренировка 500-миллиардной модели на новых данных стоит дороже, чем поиск релевантных фрагментов.
Этот тренд вернул в фокус старую проблему информационного поиска — как найти иголку в стоге данных, не перелопачивая всё сено.
Эволюция методов: от ключевых слов к векторным мирам
1980 — 2000: Эра точного соответствия
Ранние поисковые системы (Altavista, Archie) искали документы по булевым запросам («И», «ИЛИ», «НЕ»). Релевантность измерялась частотой ключевых слов.
Проблема: «Чёрный ящик» → «Чёрный кофе в ящике» считалось релевантным.
2000 — 2010: Семантика и ранжирование
PageRank от Google ввёл понятие важности страниц. LSI (Latent Semantic Indexing) добавил учёт синонимов («автомобиль» ≈ «машина»). Но подходы всё ещё работали на уровне слов, а не смыслов.
2010 — н. в.: Векторная революция
С появлением Word2Vec (2013) и BERT (2018) информация стала представляться как векторы в многомерном пространстве. Теперь «король» ближе к «монарху», чем к «картошке», даже если они не встречаются в одном документе.
Методы поиска: от грубой силы до нейросетевой магии
1. Точный поиск (Flat Index)
Принцип: перебор всех векторов в базе и выбор ближайших по косинусной близости.
- Плюсы: практически 100 % точность.
- Минусы: сложность O(n) — для 1 млн векторов требуется 1 млн сравнений.
- Использование: только для tiny-data (например, чанки из 10 тыс. документов).
2. Inverted File Index (IVF)
Принцип: кластеризация векторов на группы (воронки) + поиск только в ближайших кластерах.
- Оптимизация: снижает сложность до O(√n).
- Проблема: качество зависит от кластеризации — если запрос на границе кластеров, пропускает релевантные данные.
- Пример: база данных Faiss с IVF.
3. Product Quantization (PQ)
Принцип: сжатие векторов путём разбиения на подвекторы и их квантования (замена на эталонные «коды»).
- Эффект: вектор из 1024 измерений → 64 байта.
- Компенсация потерь: IVF + PQ — сначала отбор кластеров, потом поиск в сжатых данных.
- Где используется: Spotify для рекомендаций треков.
4. HNSW (Hierarchical Navigable Small World)
Принцип: построение иерархического графа, в котором каждый уровень — это «карта» с разной детализацией. Поиск начинается с верхнего уровня, спускаясь вниз.
- Скорость: O(log n) для поиска.
- Память: требует хранения графа, что увеличивает размер индекса.
- Лидер: Elasticsearch с плагином HNSW.
5. Гибридные подходы
- IVF + HNSW + PQ: кластеризация → поиск по графу в кластере → сравнение сжатых векторов.
- ScaNN (Google): динамическая комбинация PQ и tree-AH для баланса точности и скорости.
За пределами метрик: как выбор метода влияет на RAG
- Точность vs. скорость: HNSW быстр, но может пропустить нюансы; Flat точен, но неприменим для big data.
- Контекстное окно БЯМ: даже идеальный поиск бессмыслен, если чанк не помещается в размер контекстного окна (например, 128k токенов).
- Семантическая целостность: плохой чанкинг (см. статью про сегментирование) разобьёт смысл на части.
Что дальше? Нейросетевые ранкеры и агентный поиск
Современные системы начинают комбинировать векторный поиск с кросс-энкодерами (нейросетями, осуществляющими переоценку релевантности) и агентами, которые решают:
В следующей статье разберём архитектурные паттерны RAG: от классических «поиск → генерация» до рекурсивных агентов с самоисправлением.
Заключение
Поиск релевантной информации — это не техническая деталь, а философский выбор. Используете ли вы HNSW как «быстрый, но поверхностный гид» или IVF как «методичного архивариуса» — это определяет, станет ли ваш RAG помощником или источником галлюцинаций.
Как показывает опыт чанкинга, успех системы зависит от симбиоза методов. Алгоритмы — всего лишь инструменты. Главное — понять, какую иглу вы ищете в стоге данных и сколько времени готовы на это потратить.
Подписывайтесь на Telegram-канал «Технооптимисты» (https://t.me/drv_official) — в следующих статьях также разберём, как превратить RAG из «поисковика» в «мыслителя».