Понимание и смягчение галлюцинаций LLM

Понимание и устранение галлюцинаций в мире LLM

Проблемы обнаружения галлюцинаций LLM и возможное решение, представленное в ведущей научной статье

Изображение от Enrique с Pixabay

Недавно были продемонстрированы впечатляющие и увеличивающиеся возможности больших языковых моделей (LLM), включая генерацию высокоформальных и убедительных ответов на запросы пользователей. Однако LLM известны своей способностью генерировать неправдоподобные или нелепые утверждения, которые более известны как “галлюцинации”. Эта характеристика может подорвать доверие во многих ситуациях, где требуется достоверность, таких как задачи суммаризации, генеративного ответа на вопросы и создания диалогов.

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

Обнаружение галлюцинаций до сих пор не было решено и является активной областью исследования. В этом блоге мы представим задачу в общих чертах, ее проблемы и один возможный подход, описанный в научной статье SELFCHECKGPT: Zero-Resource Black-Box Hallucination Detection for Generative Large Language Models[1]. Мы приведем некоторые подходы, представленные в статье, с реальными примерами, указывая некоторые плюсы и минусы каждого метода. Вы можете просмотреть примеры самостоятельно, перейдя в эту тетрадку Google Colab.

В этом блоге мы рассмотрим:

  • Что такое галлюцинация LLM
  • Подход: SelfCheckGPT
  • Методы проверки согласованности:
    1. BERTScore
    2. Естественная языковая интерпретация
    3. Подсказка LLM
  • Эксперименты
  • Выводы
  • Ссылки

Что такое галлюцинация LLM

В генерации естественного языка галлюцинацию можно определить как “сгенерированное содержимое, которое лишено смысла или противоречит предоставленному исходному содержимому”[2]. Исходное содержимое может представлять разные функции для разных задач. Например, для задач суммаризации исходным является входной текст, который должен быть суммирован, в то время как для генеративных задач вопросно-ответных исходное содержимое является мировыми знаниями[2]. Давайте сосредоточимся на задаче вопросно-ответного формирования и рассмотрим один пример вопроса пользователя и ответа, полученного моделью GPT от OpenAI (текст-davinci-003):

Пользовательский запрос: Кто такой Филип Хэйворт?

Ответ LLM: Филип Хэйворт был английским адвокатом и политиком, который занимал должность члена парламента в городе Тетфорд с 1859 по 1868 год.

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

Однако у нас мало информации для ответа нашему новому вопросу. У нас нет контекста с подтвержденными фактами, которые мы можем использовать, чтобы проверить утверждение. LLM обычно обучены на огромной корпусе текстов и сложно установить, основано ли утверждение на определенном источнике информации. Быстрый поиск в Google не дает никаких результатов о человеке, соответствующем ответу. Что именно является галлюцинацией, до сих пор еще плохо установлено, но в данном примере можно понять, что это галлюцинация, потому что данный человек с таким именем, местоположением и занятостью мог и не существовать.

Давайте попробуем еще раз с другим вопросом:

Пользовательский запрос: Кто такой Билл Гейтс?

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

Окей, эти утверждения гораздо проще проверить и подтверждаются быстрой проверкой на Википедии, поэтому это маловероятно является галлюцинацией. Во время обучения очень вероятно, что LLM увидел много утверждений о Билле Гейтсе, поэтому следующие токены после “Билл Гейтс _” скорее всего будут генерироваться с большой уверенностью. С другой стороны, LLM может не быть уверенным, какие слова использовать после “Филип Хейворт _”. Это позволяет нам связать неопределенность с фактическим содержанием, поскольку фактические предложения, вероятно, будут содержать токены, предсказанные с более высокой вероятностью по сравнению с галлюцинационными предложениями. Однако, у нас может не быть вероятностного распределения результата для большого числа случаев.

Пример и содержание текущей сессии основаны на оригинальной статье [1], и мы продолжим исследовать подход статьи в следующих разделах.

Подход: SelfCheckGPT

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

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

Давайте вернемся к предыдущим примерам. Чтобы применить метод обнаружения, нам нужно больше примеров, поэтому давайте зададим LLM тот же вопрос еще три раза:

Таблица автора

Действительно, ответы противоречат друг другу – иногда Филип Хейворт британский политик, а в других примерах он австралийский инженер или американский юрист, живший и действовавший в разные периоды.

Сравним с примером о Билле Гейтсе:

Таблица автора

Мы можем заметить, что профессии, организации, и характеристики, присвоенные Биллу Гейтсу, согласуются во всех примерах, используются равные или семантически похожие термины.

Проверка на согласованность

Теперь, когда у нас есть несколько примеров, последний шаг – выполнить проверку на согласованность – способ определить, согласуются ли ответы между собой. Это можно сделать несколькими способами, поэтому давайте рассмотрим некоторые подходы, представленные в статье. Вы можете выполнить код самостоятельно, проверив эту тетрадку Google Colab.

BERTScore

Интуитивным подходом для выполнения этой проверки является измерение семантической схожести между примерами, и для этого есть способ – BERTScore[3]. BERTScore вычисляет оценку схожести для каждого токена в выбранном предложении с каждым токеном в референсном предложении для расчета скора схожести между предложениями.

В контексте SelfCheckGPT оценка вычисляется для каждого предложения. Каждое предложение из первоначального ответа будет оценено по отношению к каждому предложению данного примера, чтобы найти наиболее похожее предложение. Максимальные оценки схожести будут усреднены по всем примерам, что даст итоговую оценку галлюцинации для каждого предложения из оригинального ответа. Итоговая оценка должна стремиться к 1 для несхожих предложений и к 0 для похожих предложений, поэтому необходимо вычесть оценку схожести из 1.

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

Изображение автора

Максимальный балл для первого образца составляет 0,69. Повторив процесс для двух оставшихся образцов и предположив, что остальные максимальные баллы составляют 0,72 и 0,72, наш окончательный балл за эту фразу составит 1 — (0,69+0,72+0,72)/3 = 0,29.

Использование семантической схожести для проверки согласованности – это интуитивный подход. Другие кодировщики могут использоваться для получения вложенных представлений, поэтому это также подход, который можно дальше исследовать.

Естественный вывод из естественного языка

Естественный вывод из естественного языка – это задача определения следствия, то есть, является ли гипотеза истинной, ложной или невыясненной на основе предпосылки[4]. В нашем случае каждый образец используется в качестве предпосылки, а каждое предложение исходного ответа используется в качестве гипотезы. Оценки по образцам усредняются для каждого предложения, чтобы получить окончательную оценку. Тождественность выполняется с помощью модели Deberta, дообученной на наборе данных Multi-NLI[5]. Мы будем использовать нормализованную вероятность предсказания вместо фактических классов, таких как “следствие” или “противоречие”, для вычисления оценок.[6]

Задача следствия ближе к нашей цели проверки согласованности, поэтому мы можем ожидать, что модель, дообученная для этой цели, покажет хорошие результаты. Автор также открыто поделился моделью на HuggingFace, и другие NLI-модели доступны в открытом доступе, что делает этот подход очень доступным.

LLM шаблон

Учитывая, что мы уже используем LLM для генерации ответов и образцов, мы можем также использовать LLM для выполнения проверки согласованности. Мы можем запросить LLM на проверку согласованности для каждого исходного предложения и каждого образца в качестве контекста. Изображение ниже, взятое из репозитория оригинальной статьи, иллюстрирует, как это делается:

SELFCHECKGPT С LLM ШАБЛОН. С: HTTPS://GITHUB.COM/POTSAWEE/SELFCHECKGPT/TREE/MAIN

Окончательный балл может быть рассчитан путем присвоения 1 “Нет”, 0 “Да”, 0,5 для N/A и усреднения значений по образцам.

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

Эксперименты

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

Таблица автора

Эти значения предназначены только для иллюстрации метода. С всего лишь тремя предложениями они не должны быть средством сравнения и определения, какой подход лучше. В оригинальной статье приводятся результаты экспериментов в репозитории статьи, которые включают дополнительные версии, не обсуждавшиеся в этом блог-посте. Я не буду вдаваться в подробности результатов, но согласно всем трем метрикам (NonFact, Factual и Ranking), LLM-Prompt является наилучшей версией, плотно следующей за NLI версией. Версия BERTScore, кажется, существенно хуже, чем две остальные. Наши простые примеры кажутся следовать результатам, опубликованным в статье.

Заключение

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

Обсуждаемый подход имеет преимущество не требовать внешнего контекста (нулевой ресурс) и также не требовать распределения вероятности вывода Байесовской сети языковой модели (черный ящик). Однако это требует определенных затрат: кроме исходного ответа, нам нужно сгенерировать дополнительные образцы для выполнения проверки согласованности, что увеличивает время задержки и стоимость. Проверка согласованности также потребует дополнительные вычисления и языковые модели для кодирования ответов в эмбеддинги, выполнения текстуального эквивалента или запросы к Байесовской сети языковой модели в зависимости от выбранного метода.

Ссылки

[1] — Manakul, Potsawee, Adian Liusie и Mark JF Gales. “Selfcheckgpt: Detection of zero-resource black-box hallucination for generative large language models.” arXiv предварительная печать arXiv:2303.08896 (2023).

[2] — JI, Ziwei и др. Обзор галлюцинаций в генерации естественного языка. ACM Computing Surveys, том 55, №12, с. 1–38, 2023.

[3] — ZHANG, Tianyi и др. Bertscore: Оценка генерации текста при помощи Bert. arXiv предварительная печать arXiv:1904.09675, 2019.

[4] — https://nlpprogress.com/english/natural_language_inference.html

[5] — Williams, A., Nangia, N., & Bowman, S. R. (2017). Обширный корпус вызовов для понимания предложений через логику. arXiv предварительная печать arXiv:1704.05426.

[6] — https://github.com/potsawee/selfcheckgpt/tree/main#selfcheckgpt-usage-nli