Привязка ответов LLM к источникам
Привязка ответов LLM к источникам предполагает, что ответ языковой модели опирается на относящиеся к задаче подтверждающие сведения, происхождение которых можно установить. В ответе по документу каждое фактическое утверждение должно подтверждаться применимым фрагментом или проверенным наблюдением. Само по себе включение текста в контекст не доказывает, что модель использовала его правильно.
Автор: Ai Flowi · Опубликовано
Привязка к источникам также отличается от доказательства истинности самого источника. Ответ может точно пересказывать устаревшие правила. Проверяйте и связь ответа с предоставленными сведениями, и то, являются ли эти сведения актуальными, авторитетными и подходящими для пользователя.
Чем наличие контекста отличается от подтверждения утверждений?
Извлечение доставляет потенциально подходящие материалы в приложение. Формирование контекста определяет, что получает модель. Привязка к источникам касается связи между ответом и этими материалами. На этих этапах возможны независимые ошибки: нужный фрагмент может быть извлечён, но исключён из контекста, либо включён, но ответ будет ему противоречить.
Ссылка указывает на фрагмент источника. Чтобы подтвердить утверждение, этот фрагмент должен действительно его обосновывать. Отгрузочная ведомость подтверждает, что было указано для отправки, а запись о приёмке — что было зафиксировано при прибытии. Ссылка на ведомость рядом с утверждением о доставке подменяет необходимое наблюдение более ранним этапом процесса.
Определение RAG описывает архитектуру извлечения с последующей генерацией. Эта статья подробнее рассматривает подтверждение утверждений; инструкции по загрузке документов остаются в существующем руководстве по базам знаний.
Реестр соответствия утверждений фрагментам источников
Рассмотрим синтетический пример проверки отгрузки. Запись S-A гласит: «В ведомости указаны три ящика для отправки». S-B гласит: «Принимающая сторона зафиксировала два ящика при прибытии». S-C гласит: «Расхождение всё ещё расследуется». Проверяющему нужна сводка о состоянии отгрузки, отделяющая зафиксированное расхождение от любых предложенных объяснений.
Используйте категории ошибок из статьи «Галлюцинации нейросетей», чтобы обозначить каждое решение в реестре.
| Утверждение в ответе | Фрагмент | Заключение | Основание |
|---|---|---|---|
| Для отправки были указаны три ящика. | S-A | Подтверждено. | Описывает ведомость, а не фактическое прибытие. |
| Принимающая сторона зафиксировала все три ящика при прибытии. | S-B | Противоречит источнику. | Запись о приёмке указывает два ящика. |
| Перевозчик потерял третий ящик. | S-C | Не подтверждено. | Незавершённое расследование не устанавливает причину. |
| Количество в ведомости и записи о приёмке различается на один ящик. | S-A и S-B | Подтверждённый вывод. | Вычитает указанные количества, не объясняя расхождение. |
Этот составленный автором реестр даёт сводку о состоянии отгрузки: записи расходятся на один ящик, а причина не установлена. Он не доказывает, что физически отсутствует ровно один ящик, поскольку возможна и ошибка в записи. Результат работы — проверяемое описание записей, а не заключение о вине перевозчика или наблюдаемый результат модели.
Сохраняйте уточнения и область применимости источника
Сохраняйте глаголы «указаны» и «зафиксировала». Замена любого из них на «доставлены» превращает утверждение о документе в утверждение о физическом событии. Сохраняйте также уточнение «при прибытии»: последующее исправление может изменить итоговое количество в записи о приёмке, не отменяя исходную запись о прибытии.
Если позже появляется исправленная запись о приёмке, явно укажите момент проверки реестра. Историческая сводка может сохранять количество при прибытии с указанием исправления; сводке текущего состояния нужны исправленное количество и его источник. Не перезаписывайте фрагмент молча, оставляя при нём идентификатор старой записи.
Для выведенного утверждения покажите все необходимые предпосылки. Разница количеств требует обеих записей, а не только ведомости. Проверяющий реестр должен иметь возможность воспроизвести вычитание и определить соответствующую отгрузку. Сравнение количеств из разных отгрузок даст арифметически верный расчёт, но неверное заключение.
Разработайте контракт ответа, который показывает пробелы
Предлагаемый контракт может запрашивать текст ответа, идентификаторы источников, подтверждающие цитаты и поле для сведений, которые ещё не удалось установить. В этой проверке отгрузки такое поле должно сохранять неизвестную причину и вопрос о наличии исправленной записи о приёмке. Пустое поле скрыло бы открытый вопрос, существенно влияющий на сводку.
Перед оценкой разделяйте предложения, содержащие несколько утверждений. «Два ящика прибыли, потому что перевозчик потерял один» соединяет наблюдение при приёмке с неустановленной причиной. Первую часть можно сузить до того, что зафиксировала принимающая сторона; второй нужны отсутствующие подтверждения. Если присвоить всему предложению одну метку «подтверждено», обоснованное количество придаст видимость обоснованности причинному утверждению.
Если ответ предлагает проверить исправленную запись о приёмке, поместите это в отдельное примечание о следующем шаге. Это действие проверки, предложенное автором, а не ещё один факт об отгрузке. Реестр должен показывать это различие, не заставляя читателя угадывать его по тону ответа.
Привязка к источникам и компоненты каталога
Документация Knowledge Base описывает извлечение записей, используемых как подтверждения.
Страница Parser описывает интерфейс преобразования извлечённых записей в текст.
Справочник Prompt Template описывает составление запроса для реестра.
Статья о структурированном выводе объясняет контракт ответа, используемый для представления проверяемых полей.
Для этого реестра предлагаются поля приложения claim, source_ids, excerpt, decision и reason. Для выведенного утверждения о разнице количеств требуйте и S-A, и S-B. Основание должно называть операцию или уточнение, связывающее источник с утверждением, а не повторять «подтверждено» более пространно. Это поля, разработанные автором, а не встроенный формат импорта схемы.
Принимайте утверждение о расхождении только после проверки того, что процитированные количества относятся к одной и той же отгрузке и одному и тому же этапу. Отклоняйте объяснение, что ящик потерял перевозчик, пока его не подтвердит отдельный вывод расследования. Это делает решение по итогам проверки конкретным: ещё одна ссылка на S-C не исправит утверждение, поскольку S-C сообщает о состоянии расследования, а не о его результате.
документировано в каталоге; не протестировано Ai Flowi в производственной среде
Проверьте компоненты реестра в каталоге компонентов; проверка отгрузки с помощью модели требует предоставленных вами учётной записи и учётных данных API, а внешние расходы на генерацию не входят в подписку на рабочий процесс.
Ограничения проверки и распространённые ошибки
Сверяйте решения реестра с исходными фрагментами, включая неполные, противоречивые и нерелевантные сведения. Модель, которая пишет и ответ, и собственный подтверждающий реестр, может повторить ошибку в обоих местах. Наличие поля основания не является независимой проверкой.
Не приравнивайте корректную схему к обоснованному фактическому утверждению и не считайте идентификатор источника подтверждением без изучения фрагмента. Также не штрафуйте честный ответ «неизвестно», когда сведения отсутствуют. При проверке отгрузки лучше оставить причину неустановленной, чем выдать обвинение перевозчика за вывод.
Категории ошибок см. в статье «Галлюцинации нейросетей», а проектирование задач — в статье «Промпт-инжиниринг». Справочник Agent и библиотека сценариев использования описывают компоненты приложений. Привязка к источникам делает утверждения проверяемыми; она не удостоверяет истинность источника и не разрешает действия с существенными последствиями.