RAG проще, чем вы думаете: 6 архитектур без переусложнения

RAG Is Simpler Than You Think

RAG проще, чем вы думаете: 6 архитектур без переусложнения

Многие перегружают свои RAG-системы эмбеддингами и векторными базами, хотя пользователям часто нужен просто поиск по ключевым словам. Автор разбирает шесть архитектур — от простого BM25 до агентного RAG — и объясняет, как выбрать подходящую, исходя из свежести данных, характера корпуса, паттернов запросов, масштаба и возможностей команды. Главный совет: начинайте с простого и усложняйте только тогда, когда есть данные, подтверждающие необходимость. Также рассматриваются переписывание запросов с помощью LLM, гибридный поиск, горячие/холодные уровни и полное пре-эмбеддинг, с оценкой стоимости и задержек.

Большинство «семантических» проблем поиска — это на самом деле проблемы формулировки запроса.
  1. usernametaken29

    Я раньше работал с крупномасштабными RAG-системами и могу сказать, что люди сильно недооценивают полнотекстовый поиск и сильно переоценивают эмбеддинги. Полнотекстовый поиск действительно прост, портативен и масштабируем, и с ним можно далеко уйти, здесь работает правило 80/20. Эмбеддинги выглядят красиво и волшебно, но когда начинаешь в них разбираться, замечаешь: семантическая схожесть не так хороша, как ты думаешь, и уж точно не удовлетворит всех. Ты неизбежно окажешься в ситуации, когда придётся пересоздавать эмбеддинги для большего или другого количества фрагментов текста, чтобы обеспечить более точный поиск по эмбеддингам — и в этот момент ты пойдёшь до конца и добавишь реранжирование и так далее, при этом всё время поддерживая операционную нагрузку векторного поиска.

    А потом ты разворачиваешься и строишь поисковый запрос из 500 ключевых слов, и, конечно, это мучительно, но это просто работает, покрывает все сценарии использования, масштабируется и в целом менее раздражает в обслуживании.

  2. alansaber

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

  3. jillesvangurp

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

    Ключевой момент в RAG — получить нужную информацию в контексте с как можно меньшим количеством запросов. Это требует хорошего recall (убедиться, что если информация там есть, её можно найти разумным запросом) и precision (убедиться, что лучшие результаты сверху и минимизировать ложные срабатывания).

    В поиске, и, соответственно, в RAG, действует принцип «мусор на входе — мусор на выходе». Большая часть того, что команды поиска делали до ИИ и RAG, по-прежнему является лучшим способом оптимизировать работу с RAG. И если вы испортите это, поиск не будет работать хорошо, и никакое количество ИИ не сможет это компенсировать, или только ценой больших затрат на токены и время. Поэтому наличие ETL-пайплайна для предварительной обработки индексируемого контента, тестирование и бенчмаркинг качества поиска и т.д. — всё это полезно.

    Хорошая новость в том, что для создания чего-то приемлемого не нужно много навыков в агентном программировании. Этот код почти пишет сам себя. И даже небольшие усилия по извлечению структуры перед индексацией могут иметь большое значение.

  4. jrochkind1

    Ещё один текст, сгенерированный LLM, о LLM.

    Кому-нибудь ещё становится всё труднее и труднее читать тексты, сгенерированные LLM? Я нахожу это очень утомительным, мой мозг просто не хочет через это продираться.

  5. Angostura

    У меня особая антипатия к статьям, которые слишком ленивы, чтобы расшифровать аббревиатуры при первом использовании.

    Итак: https://en.wikipedia.org/wiki/Retrieval-augmented_generation

  6. yipinwong

    Только те, кто овладел мастерством, заставляют свою работу выглядеть простой.

    ИИ, который написал это, возможно, и есть мастер, а не автор, так как это выглядит написанным ИИ.

    Я воспользуюсь агентами автора, но не буду читать его статьи или нанимать его для работы.

  7. refactor_master

    Вот ещё более простой подход: просто встройте всё сразу, а затем отслеживайте, что изменилось. Используйте дешёвую модель для суммаризации и очистки документов/чатов с помощью сводок и ключевых слов. Если только у вас нет целых библиотек книг для встраивания, это будет стоить несколько сотен долларов на API-вызовы.

    Затем закиньте всё в BigQuery. Он нативно обрабатывает все векторные штуки.

    Добавьте агентный UI-бот сверху, чтобы всё выглядело всезнающим и волшебным.

    Полагаю, у других вендоров, кроме Google, есть аналогичный подход «всё включено», который можно просто подключить.

  8. klm127

    RAG означает Retrieval Augmented Generation. Цель — искать по корпусу текста по смыслу, а не по точному совпадению.

    Мне пришлось это искать.

Ещё за этот день

2026-08-26