Skip to main content
ИИ
Блог

Точность RAG чат-бота: ответ решает поиск

Когда бизнес-чат-бот отвечает неверно, инстинкт — обвинить модель или сменить её. В системе на основе поиска этот инстинкт обычно неверен. Модель пишет только то, что ей передали, а передал это шаг поиска, на который никто не смотрит. Эта статья объясняет тот шаг на языке, на котором может действовать владелец бизнеса, и даёт чек-лист для его оценки. Статья разбирает четыре разных способа, которыми ломается поиск, что чанкинг и ранжирование делают с ответом, чего требует заземление как политика, а не как промпт, и как собрать фиксированный набор вопросов.

17 сентября 20267 мин чтения

Что на самом деле делает генерация с поиском

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

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

Отсюда и суть статьи: если шаг поиска передал не те три абзаца, ни одна модель не выдаст правильный ответ. Значит, большая часть работы над точностью — это работа над поиском, а большинство команд тратит её на промпты.

Четыре сбоя поиска

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

Чанкинг на бизнес-языке

Чанкинг — это то, как ваши документы нарезаются перед индексацией. Звучит инженерной деталью и меняет ответы сильнее почти всего остального.

  • Слишком мелкие фрагменты теряют контекст, делающий утверждение верным: цена без тарифа, к которому она относится, условие без исключения.
  • Слишком крупные фрагменты размывают совпадение: очень релевантное предложение, закопанное в длинной странице, ранжируется ниже умеренно релевантного короткого.
  • Фрагменты, режущие естественную границу, — худший случай: половина правила извлекается так, будто это правило целиком.
  • Материал, написанный как короткие самодостаточные ответы, нарезается хорошо вообще без настройки. Это самое дешёвое доступное улучшение точности, и это задача письма, а не техники.

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

Ранжирование и значение верхнего результата

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

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

Заземление: чтобы ответ оставался в материале

Заземление — это дисциплина отвечать только из найденного. Отчасти это промпт, в основном политика, и именно оно отличает бизнес-чат-бота от уверенного угадывателя.

  • У системы должно быть заданное поведение, когда поиск не вернул ничего полезного: сказать об этом, предложить человека и не импровизировать.
  • Бот не должен заполнять пробелы общим знанием о мире в вопросах, специфичных для бизнеса. Придуманный им правдоподобный срок доставки хуже признания.
  • Границы зоны должны быть и в материале, и в промпте: юридические консультации, медицинские утверждения и сравнения с конкурентами должны быть явно вне зоны.
  • Ответы должны быть прослеживаемы. Если система фиксирует, какие фрагменты породили ответ, неверный ответ превращается в документ для правки. Если нет — в спор.

Как оценивать качество поиска

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

Как поиск устроен в Vexvon

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

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

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

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

6Результатов поиска по умолчанию
4Типа сбоя поиска
15Сообщений памяти диалога

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

  1. Что такое RAG чат-бот?Это бот, который ищет в вашем материале подходящие отрывки, а затем просит модель ответить, используя только их. Смысл в том, что ответы прослеживаются до документов, которыми вы управляете, и неверный ответ чинится правкой, а не переобучением.
  2. Почему он всё равно ошибается?Обычно потому, что поиск передал не тот материал, а не потому, что модель плохо написала. Большую часть объясняют четыре сбоя: ничего релевантного не найдено, найдено релевантное, но устаревшее, найден нужный документ, но не тот фрагмент, и смешано слишком много слабо связанного.
  3. Решает ли точность более сильная модель?В вопросах, специфичных для бизнеса, — редко. Модель может использовать только то, что ей дали. Улучшение материала и того, что находится, влияет намного сильнее смены модели.
  4. Что такое чанкинг и почему он важен?Это то, как документы режутся перед индексацией. Слишком мелкие фрагменты теряют контекст, делающий утверждение верным, а фрагменты, режущие правило, могут изложить условие без исключения.
  5. Как это оценивать?Соберите фиксированный набор из пятидесяти-ста реальных вопросов с известными ответами, где минимум десять процентов материал не покрывает, и перезапускайте весь набор после каждого изменения.
  6. Когда бот должен отказаться отвечать?Всегда, когда поиск не вернул ничего полезного, и по всему вне зоны, например юридическим или медицинским утверждениям. Правильное поведение — сказать об этом и предложить человека.

Начните с набора вопросов, а не с промпта

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

Live demo

Ready? Let's start

See Vexvon live in a 10-minute demo.

  • A scenario built for your business
  • A live sample call
  • A tour of the platform
Get a demo

Your details are used only for the demo and to get in touch.

Book a Meeting with Vexvon

Pick a time that suits you in our calendar.