Разработка
May 10

Поиск и отбор релевантной информации: от точных методов до нейросетевых приближений

В эпоху, когда языковые модели вроде 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 из «поисковика» в «мыслителя».