Единица 3 / 12

Генерация ответов из базы знаний (Введение в RAG)

Прибыль:

  • Понимание логики генерации знаний (RAG) и того, почему она уменьшает галлюцинации
  • Возможность получить ответ модели с цитированием, основываясь только на предоставленных исходных документах.
  • Возможность управлять вопросами, которых нет в источнике, путем их безопасной передачи, без составления вопросов.

Языковая модель «знает» многое, но она не знает сегодняшнюю политику возврата вашей компании, текущий прайс-лист или соглашение о доставке, которое изменилось вчера. Хуже того, когда он не знает, то часто выдумывает и пишет крайне уверенным тоном. Это фатальный недостаток в обслуживании клиентов: в модели указано «Возврат средств осуществляется в течение 30 дней», тогда как срок действия вашего полиса может составлять 14 дней. Подход, закрывающий этот пробел, называется RAG: Retrival-Augmented Generation, то есть «производство, дополненное поиском».

Идея проста: модель отвечает на вопрос не по памяти, а на основе правильных исходных документов, находящихся перед ней в данный момент. Сначала правильная часть документа, имеющая отношение к вопросу, — это «извлечение», затем модель «генерирует» ответ только на основе этой части. В этом модуле вы поймете логику RAG и узнаете, как обуздать модель, чтобы она придерживалась только проверенного источника, который вы предоставляете.

Примечание. В этом модуле изучаются рабочая логика и подсказки RAG. Системы автоматического поиска документов масштаба предприятия (векторная база данных и т. д.) требуют технической установки; Дисциплина здесь является основой для правильной реакции этой системы.

Почему RAG уменьшает галлюцинации?

Галлюцинация — это когда модель выдает нереальную информацию, как если бы она была реальной. Модель запрограммирована на выработку реакции, которая кажется «возможной», когда она видит пробел; Не знает, правда это или нет. RAG заполняет этот пробел: вы даете модели актуальный текст вместе с вопросом и говорите: «Ответ только отсюда». Таким образом, модель не «должна» подходить.

Есть три компонента:

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

Шаг за шагом: правдивый ответ источнику

  1. Подготовьте исходник. Найдите текст, на котором будет основан ответ (политика, FAQ) в понятном и актуальном формате.
  2. Вставьте источник в подсказку. Поместите текст в тег типа <source>.
  3. Напишите правило лояльности. «Используйте только информацию из источника; не отклоняйтесь от источника».
  4. Сделайте ссылку обязательной. Пусть он/она укажет, на каком разделе основан ответ.
  5. Определите нересурсное поведение. Если ответа нет в источнике, пусть скажет «У меня нет этой информации» и передаст дальше.
  6. Проверять. Подтвердите ответ, сравнив его с исходным предложением, на котором он основан.

Копируемые подсказки

Подсказка ответа на основе основного источника:

Роль: Вы помощник службы поддержки клиентов. Отвечайте на вопрос ТОЛЬКО на основе информации в блоке <source> ниже. Не добавляйте никакой информации, которой нет в источнике, не догадывайтесь и не отвечайте на основе ваших общих знаний. Добавьте раздел, на который вы полагаетесь, в конце своего ответа в формате «[Источник: ...]». Если ответа нет в источнике, напишите следующее: «Я не обладаю точной информацией по этому вопросу, передаю вас должностному лицу, которое сможет дать правильный ответ».

В случае нескольких источников будет предложено указать, на каком документе он основан:

Есть несколько ресурсов, пронумерованных ниже. Отвечая на вопрос, укажите номер источника, который вы использовали, например [Источник 2]. Если вам противоречит более одного источника, четко скажите об этом и укажите, что вам следует спросить, какой из них более актуален.<sources>1) {{ source_1 }}2) {{ source_2 }}3) {{ source_3 }}</sources>Вопрос: {{ customer_question }}

Подсказка, которая безопасно решает вопрос, не связанный с источником:

Если ответ на вопрос ЧАСТИЧНО найден в источнике: ответьте только на ту часть, которая раскрыта в источнике, а на оставшуюся часть скажите «этой детали нет в источнике». Никогда не заполняйте недостающую часть путем догадок.

Подсказка, которая переводит ответ на язык клиента, но сохраняет верность источнику:

Переведите официальное/техническое выражение в источнике на простой язык, понятный клиенту, но НЕ МЕНЯЙТЕ смысл и числовые значения (день, сумма, курс). Например, округление «14 календарных дней» до «около двух недель»; сохранить полную стоимость.

Слабая подсказка/Сильная подсказка

Слабая подсказка

Мощная подсказка

«Расскажите нам о нашей политике возврата»

Встраивает исходный код + «ответить только здесь» + запрашивает цитату

Ответ по памяти модели (может неправильно)

Ответ из текущего документа

Если этого нет в источнике, он это выдумывает.

Он говорит: «У меня нет этой информации» и передает ее дальше.

Может округлять и искажать числа

Точно поддерживает день/сумму/ставку

Разница в том, что сильная подсказка дает модели привязку (исходный текст) и запрет (исход из исходного текста). Модель больше говорит не по памяти, а из реальности перед собой.

Три мини-кейса

Случай 1. Старая политическая ловушка. «Возврат принимается в течение 30 дней», — сообщил бот одного магазина, работая без кредита; Однако компания сократила срок до 14 дней. Когда обновленный текст политики добавляется в источник при установке RAG, бот теперь отвечает «14 календарных дней [Источник: Политика возврата, статья 2]». Споры о возврате средств, возникающие из-за ложных обещаний, были сброшены.

Случай 2 — Уловить противоречие. Клиент спросил о стоимости доставки. Как старые, так и новые прайс-листы были введены в систему в качестве источников. Благодаря подсказке из нескольких источников модель сказала: «Два источника дают разные цены (49 турецких лир и 59 турецких лир); мне нужно подтвердить текущую» и передала проблему человеку. Вместо того, чтобы сообщить клиенту неверную сумму, он честно сообщил о неопределенности.

Случай 3. Наказание за частичное реагирование. «Отправляете ли вы товар за границу и кто платит таможенную пошлину?» В вопросе источник лишь сообщил, что отгрузка была осуществлена, о том, кто заплатил налог, ничего не говорилось. Модель сказала: «Да, доставка осуществляется за границу [Источник: Cargo FAQ]. Однако в этом документе не указано, кто платит таможенную пошлину; я передаю вас чиновнику, чтобы он это разъяснил». Вместо полуправдивого, полусфабрикованного ответа он дал честный и уверенный результат.

Совет: Сохраняйте самую актуальную и единственную версию своей базы знаний. Наличие одной и той же информации (например, периода возврата), записанной по-разному в трех отдельных документах, является самым большим врагом RAG; Модель реагирует по-разному в зависимости от того, на что она смотрит. Сначала выполните дедупликацию документов, а затем автоматизируйте их.

Проверка: не расслабляйтесь только потому, что источник существует

ТРЯП значительно уменьшает галлюцинации, но не сбрасывает их. Иногда модель может неправильно истолковать источник, перепутав два предложения или сделав «вывод», которого нет в источнике. Вот почему требование цитирования имеет решающее значение: откройте раздел, на котором якобы основан ответ, и проверьте, действительно ли там так сказано. Этот контроль не подлежит обсуждению, особенно в ответах, содержащих числа (день, сумма, ставка) и условия (исключение, условие).

Внимание: если сам источник неправильный или устаревший, RAG добросовестно повторяет эту ошибку. Сказать «модель говорит из источника» не означает «модель говорит правильно»; Вы несете ответственность за актуальность и точность вашего источника.

Поддержание базы знаний в готовности к реагированию

Качество RAG во многом зависит от того, как написан исходный текст. Модель дает гораздо более точный ответ, чем хорошо структурированные, озаглавленные, однотемные тексты. Практический совет: пишите свою политику в коротких разделах с заголовками, а не в длинных вложенных абзацах; Пусть каждый раздел отвечает на один вопрос («Сколько дней составляет срок возврата?», «Какие товары нельзя вернуть?»). Сохранение часто задаваемых вопросов (FAQ) в формате вопросов и ответов облегчает модели поиск нужной детали. Указывайте такие значения, как дата, сумма и курс, четко и в одном месте в тексте; Написание одного и того же числа по-разному в разных разделах запутывает модель.

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

Распространенные ошибки

  • Сказать «объясните нашу политику», не скрывая источник и полагаясь на запоминание модели.
  • Отсутствие определения границы «только ответ от источника» и поведения, не связанного с источником.
  • Не запрашивать цитату/ссылку на источник и оставлять ответ непроверяемым.
  • Хранение конфликтующих версий одной и той же информации в нескольких документах базы знаний.
  • Разрешение модели округлять/интерпретировать числовые значения.
  • Забывание обновить источник, в результате чего модель точно повторяет старую информацию.

В заключение

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

Задача приложения

Возьмите актуальный текст политики (возврат, доставка или членство) вашего собственного бизнеса и вставьте его в качестве источника в базовое приглашение RAG выше. Затем задайте три вопроса: (1) вопрос, ответ на который ясен в источнике, (2) вопрос, ответа на который вообще нет в источнике, (3) вопрос, ответ на который в источнике лишь неполный. Убедитесь, что модель отвечает правильно, говорит «У меня этого нет» и честно отмечает частичный ответ и пропущенный ответ соответственно. Исправьте девиантное поведение, усилив в подсказке правила лояльности и нересурсности.

контрольный список

  • [ ] Я встроил в подсказку текущий источник, на основе которого будет основан ответ.
  • [ ] Я добавил правило «Только ответ от источника, не выходите за рамки».
  • [ ] Я указал ссылку на источник/цитирование.
  • [ ] Я определил поведение делегирования, если ответ недоступен в источнике.
  • [ ] Я потребовал, чтобы числовые значения сохранялись точно.
  • [ ] Я подтвердил ответ из исходного предложения, на котором он основан.