← Назад к базе знаний

RAG

RAG — фреймворк

Суть. Перед ответом система находит подходящие фрагменты в вашей базе документов и передаёт их модели вместе с вопросом. Модель отвечает по ним, а не по тому, что запомнила при обучении. Это базовый способ заставить ИИ говорить фактами компании и приводить источник.

Какие три задачи решает

Все три не решаются подбором формулировок запроса, и это важно понимать, прежде чем спорить о промптах.

  • Ответы по внутренним документам. Модель не знает ваших регламентов, договоров и историй сделок — их нужно подать.
  • Актуальность без переобучения. Обновили документ — система отвечает по-новому уже сегодня, а не после следующего цикла обучения.
  • Проверяемость. Ответ со ссылкой на конкретный пункт документа принимают, ответ без ссылки в корпоративной среде обычно нет.

Как устроено

Шаг Что происходит Где теряется качество
Нарезка Документы режутся на фрагменты Фрагмент обрывается на середине мысли — модель отвечает по обрубку
Индексация Фрагменты переводятся в векторы Одна модель эмбеддингов на разноязычный корпус работает хуже, чем кажется
Поиск Подбираются ближайшие фрагменты Чисто векторный поиск промахивается на точных названиях и артикулах
Переранжирование Найденное пересортировывается по релевантности Шаг часто пропускают — и в контекст попадает мусор
Ответ Модель формулирует и цитирует источники Без явного требования цитировать модель «забывает» это делать

Хорошие системы сочетают векторный поиск с обычным по словам: первый ловит смысл, второй — точные термины. Отдельно вектор или отдельно слова работают заметно хуже связки.

Где ломается

Порядок в документах. Если внутри лежат три версии одного регламента без пометки, какая действует, система честно отразит этот беспорядок — и будет уверенно цитировать отменённый пункт. Качество ответов упирается не в модель, а в состояние базы.

Права доступа. Если индекс не знает, кому что можно, сотрудник получит ответ по документу, который ему видеть не положено. Права нужно закладывать на этапе поиска, а не фильтровать ответ постфактум.

Свежесть индекса. Документ обновили, индекс — нет. Расхождение накапливается тихо; нужен регламент переиндексации и способ увидеть, когда фрагмент устарел.

Дешёвая проверка перед внедрением: возьмите двадцать реальных вопросов сотрудников и посмотрите, на сколько из них ответ вообще существует в документах. Часто выясняется, что знание живёт в головах, и тогда сначала нужен не поиск, а описание.

Что это меняет в продаже

Если вы продаёте такое решение, ключевой разговор не про модель, а про подготовку базы. Клиент, который ждёт «подключим за неделю», через месяц будет разочарован качеством ответов — и виноватой окажется ваша система, а не его документы. Это лучше проговорить на входе.

Когда применять

Задача звучит как «нужно, чтобы система отвечала по нашим документам»: база знаний, регламенты, договоры, техническая документация, архив переписки. Это самый частый и самый окупаемый сценарий внедрения языковых моделей в компании, потому что не требует ни обучения модели, ни выноса данных за пределы контура при правильной архитектуре.

Не подходит там, где ответ должен быть вычислен, а не найден: расчёты, агрегаты по базе, прогнозы. Для этого нужен доступ к данным через запросы, а не поиск по тексту.

Из чего складывается качество

Этап Что здесь ломается чаще всего
Подготовка документов Сканы без распознавания, дубли, устаревшие версии рядом с актуальными
Разбиение на фрагменты Слишком крупные куски размывают ответ, слишком мелкие теряют контекст
Поиск Только смысловой поиск проигрывает на точных терминах и артикулах; помогает сочетание с обычным
Отбор В контекст попадает всё найденное, включая нерелевантное
Генерация Нет требования опираться только на найденное — модель дополняет из своих знаний
Ссылки на источник Ответ без ссылки невозможно проверить, и им не пользуются

Практическое наблюдение: качество на восемьдесят процентов определяется первыми двумя строками, а внимание команды обычно уходит на последние две.

Как проверять

  1. Собрать пятьдесят реальных вопросов от будущих пользователей с эталонными ответами и указанием, в каком документе ответ.
  2. Мерить отдельно поиск и генерацию: нашёлся ли нужный фрагмент вообще и правильно ли по нему ответили.
  3. Включить в набор вопросы без ответа в документах — система обязана говорить «не знаю», а не придумывать.
  4. Повторять замер при каждом изменении разбиения, модели или подсказки.

Права доступа

Самая недооценённая часть. Если в базу попали документы разного уровня доступа, поиск начинает возвращать пользователю то, что он не должен видеть, — и обнаруживается это после запуска. Права должны фильтровать выдачу до попадания в контекст, а не после.

Частые вопросы

Нужно ли дообучать модель
В большинстве случаев нет. Поиск по своим документам решает задачу дешевле и обновляется мгновенно при изменении документа, тогда как дообучение требует повторения при каждом обновлении.
Сколько документов нужно, чтобы это заработало
Работает и на сотне. Важнее не объём, а актуальность и отсутствие противоречащих версий одного документа.
Почему система отвечает уверенно и неправильно
Обычно потому, что нужного фрагмента не нашлось, а требования отвечать только по найденному нет. Лечится на уровне подсказки и проверкой наличия источника.

Связанное

  • Три слоя работы с ИИ — куда встраивается этот слой
  • MCP — как дать модели доступ к системам, а не только к документам
  • MLOps — эксплуатация того, что получилось
Материал оказался полезным?