Как измерить частоту галлюцинаций (%) для вашего приложения на базе LLM

Если вы разрабатываете продукт в 202X, скорее всего, вы думали об интеграции LLM в свой продукт. В особенности, если у вас есть варианты использования, связанные с суммированием и/или генерацией текста, интеграция LLM может повысить производительность при минимальных затратах для вас и ваших пользователей.

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

Галлюцинация

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

[1] классифицирует галлюцинации как внутренние (где модель искажает информацию, уже доступную модели) или внешние (где модель добавляет информацию помимо той, которая была им доступна).

Почему вас это должно волновать?

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

Как обнаружить/проверить галлюцинации?

Мы далеки от устоявшихся передовых практик и шаблонов проектирования для тестирования/обнаружения всех проблем, связанных с LLM в производстве, включая галлюцинации. Тем не менее, академическое исследовательское сообщество может предложить вам некоторые приемы.

Например, подход к исследованию, представленный в [1], может быть экономически эффективным образом принят в производственных приложениях. Сосредоточив внимание в первую очередь на обобщении, в документе представлены 2 разных способа обнаружения галлюцинаций [но этот подход достаточно прост, чтобы его можно было воспроизвести и для случаев использования вне обобщений]

Если у вас есть доступ к человеческим оценщикам

  1. Определите около 500 резюме документов из набора данных XSum [2]. Этот набор данных уже поставляется с Gold Summaries. Примечание. Если ваш вариант использования не является суммированием, вы можете найти эталонный набор данных для того же и применить этот метод [8]
  2. Попросите ваше приложение обобщить эти документы.
  3. Отправьте документы, соответствующее приложение и золотые сводки для комментирования вашими оценщиками [в статье было 3 человека-оценщика, которые взялись за работу. В среднем 10 минут на аннотирование каждого документа]
  4. По сути, с помощью аннотаций оценщики читают документ и комментируют/подчеркивают, есть ли какие-либо галлюцинации в заявке и резюме золота, и далее классифицируют их как присущие/существующие.
  5. Опубликовав аннотацию, вы генерируете показатели относительно того, какой % из 500 приложений и золотых сводок были фактическими по сравнению с внутренними или внешними галлюцинациями. Затем вы сравниваете, значительно ли процент галлюцинаций в сводке вашего приложения выше/ниже золотой сводки. Если это выше, то вам явно нужны ограждения, чтобы предотвратить галлюцинации, прежде чем запускать ваше приложение в производство.

Если у вас нет доступа к оценщикам

Но допустим, вы находитесь на более ранней стадии жизненного цикла разработки (например, изучаете осуществимость) и пока не хотите тратить деньги на людей-аннотаторов. В этом случае авторы в [1] обнаружили, что вероятности следования за текстом — хороший способ проверить наличие галлюцинаций в автоматическом режиме.

В частности, авторы разработали классификатор Text Entailment [4] [5], который может предсказать вероятность того, что данный документ, является ли резюме приложения истинным, ложным или нейтральным по отношению к документу.

Если оценка вероятности для «True» слишком низка в наборе данных XSum для вашего LLM-приложения, то было бы безопасно рассмотреть меры по предотвращению галлюцинаций, прежде чем запускать ваше приложение в производство.

Итак, вы можете обнаружить галлюцинации — как же их предотвратить?

Предотвращение галлюцинаций все еще остается открытой исследовательской проблемой. Одним из методов, который применяется в отрасли, является «Заземление», когда вы дополняете LLM соответствующими знаниями, не относящимися к его обучающим данным.

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

Углубленное изучение заземления выходит за рамки этого поста в блоге, поэтому вместо этого я оставлю вам замечательную статью Заземление LLM [6].

Спасибо за то, что продолжаете внедрять инновации в области LLM и генеративного ИИ, и, что более важно, за то, что уделяете приоритетное внимание развитию ответственного ИИ.

Рекомендации

[1]. О достоверности и фактичности в абстрактном обобщении. Джошуа Майнес, Шаши Нараян, Бернд Бонет, Райан Макдональд; Исследования Google

[2]. https://paperswithcode.com/dataset/xsum

[3]. https://cims.nyu.edu/~sbowman/multinli/

[4]. https://paperswithcode.com/dataset/multinli

[5]. https://paperswithcode.com/dataset/snli

[6]. Заземление LLM

[7]. HaluEval: эталон оценки крупномасштабных галлюцинаций для больших языковых моделей. Цзюньи Ли, Сяосюэ Чэн, Уэйн Синь Чжао, Цзянь-Юн Ни, Цзи-Ронг Вэнь

[8]. https://paperswithcode.com/datasets?mod=texts&page=1