Почему нейросеть сама не знает ваших документов

Нейросеть училась на открытых текстах. Она не читала ваш регламент доставки, прайс-лист, договоры и карточки заказов, а то, что было в документах вчера, сегодня уже могло измениться. Если спросить её о ваших условиях, она ответит уверенно, но может выдать правдоподобную выдумку

Можно доучить модель на ваших текстах, но это дорого, быстро устаревает и не показывает, откуда взят ответ. Есть путь проще: не заставлять модель помнить документы, а дать ей нужные страницы перед ответом. Это и есть RAG, от английского retrieval-augmented generation: ответ, дополненный поиском1

Толстая книга со светящейся страницей между листов в тёмной библиотеке
Нужная страница находится до ответа, и модель отвечает, глядя в неё
Экзамен с открытой книгой

Без RAG модель отвечает по памяти. С RAG она сначала находит нужные страницы в ваших документах и отвечает, глядя в них. Ошибиться труднее, а любой ответ можно проверить по источнику

Как это работает: три шага

  1. Подготовка, один раз. Документы режут на небольшие фрагменты, и каждый превращают в набор чисел - отпечаток смысла. Фрагменты про доставку получают похожие отпечатки, фрагменты про отпуск - другие. Отпечатки хранятся в индексе рядом с текстом
  2. Поиск, при каждом вопросе. Вопрос превращается в такой же отпечаток. Система сравнивает его с отпечатками фрагментов и берёт несколько самых близких. Совпадать должны не слова, а смысл: «сколько везти до Твери» найдёт тариф доставки в Тверь
  3. Ответ. Найденные фрагменты вместе с вопросом отправляют в языковую модель с просьбой отвечать только по ним и указывать номера. Человек получает короткий ответ и ссылки, по которым можно открыть первоисточник
Слева бумажный архив с папками на стеллажах, справа ряды серверных стоек
Было: бумажный архив, где ищут по папкам. Стало: индекс по документам, где ищут по смыслу

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

Попробуйте на примере

Задайте вопрос или выберите готовый. Сначала он превратится в отпечаток из восьми чисел, затем на карте смыслов появится рядом с самыми близкими фрагментами, и только после этого сформируется ответ. Последний пример не про компанию: посмотрите, что система делает, когда ответа в документах нет

Обратите внимание на архивный фрагмент с прошлогодней ценой доставки: он почти совпадает с вопросом, но в ответ не попадает. Без такой фильтрации система уверенно назвала бы старую цену

Что значит «похоже по смыслу»

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

Поэтому поиск по смыслу находит нужное, даже когда слова не совпадают: «когда приедет заказ» и «сроки доставки» близки, хотя общего слова в них нет. Обычный поиск по словам этого не умеет

Когда смысла мало: номера и точные названия

Зато номер заказа, артикул или фамилию лучше искать точным совпадением: для модели «ORD-2026-1045» и «ORD-2026-1054» почти одно и то же. Поэтому рабочие системы сочетают поиск по смыслу, полнотекстовый поиск и точные совпадения. Так устроено демо из нашего кейса о поиске по данным компании

Где RAG ошибается

RAG снижает риск выдумки, но не убирает его. Чаще всего проблемы такие:

  • Устаревшие версии. В базе лежат и действующий регламент, и архивный. Нужны статусы и даты, чтобы архив не попадал в ответ
  • Ответа в документах нет. Модель должна сказать «не нашёл», а не отвечать по общим знаниям. Это проверяют отдельными вопросами, на которые ответа быть не должно
  • Неудачная нарезка. Если фрагмент оборвал таблицу или отделил условие от исключения, ответ получится неполным
  • Права доступа. Сотрудник не должен получить ответ по документу, который ему нельзя читать, поэтому доступ проверяют до поиска, а не после

Качество проверяют так же, как любой рабочий процесс: собирают набор настоящих вопросов с ожидаемыми ответами и прогоняют его после каждого изменения. Спорные случаи остаются за людьми

Когда RAG нужен, а когда нет

RAG оправдан, когда документов много, они меняются, а сотрудникам важно быстро найти ответ и убедиться в нём по первоисточнику: регламенты, инструкции, договоры, база знаний поддержки

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

Хотите понять, нужен ли RAG вашей компании? Оценка по вашему ТЗ. Можете также посмотреть наши решения и примеры внедрения

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

Чем RAG отличается от дообучения модели?

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

Нужно ли отправлять документы во внешний сервис?

Зависит от настроек. Приложение с индексом можно разместить во внутренней сети, но модель для ответа может работать и там, и во внешнем сервисе. Это два отдельных решения, и выбирают их по требованиям к данным

Как понять, что ответу можно верить?

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

Сколько стоит внедрение?

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

Источники

  1. Patrick Lewis et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS, 2020

Внедряем ИИ в рабочие процессы

Берём один процесс, разбираем его вместе с сотрудником, который его ведёт, подключаем модель к вашим данным и проверяем качество на ваших примерах. Спорные случаи остаются за людьми, а в отчёте виден расход на ИИ

Подробнее