Transcription
Приветствую всех на канале. Я сейчас озвучу три факта. Ваша задача — понять, как они связаны. Итак, приступим.
Факт номер один: расстояние от Земли до Солнца — 38 км. Факт номер два: до того, как я увлёкся искусственным интеллектом, я работал пилотом. Факт номер три: обнаружена вода на Луне.
Что же общего у этих утверждений? Оказывается, все три факта — это галлюцинация большой языковой модели, или ЛМ. Хотя на первый взгляд они выглядят уверенно и реалистично. Примеры таких моделей: ChatGPT, Яндекс GPT, ГигаЧад или нашумевший на днях Гипси.
38 млн км — это неверно. На самом деле расстояние от Земли до Солнца намного больше, около 150 млн км. В компании работал не я, а другой. Открытие воды на Луне произошло задолго до запуска телескопа Джеймс Уэбб.
Хотя большие языковые модели умеют говорить на разные темы достаточно гладко, они могут придумывать правдоподобно. Обсудим, как снизить вероятность таких ошибок при работе с ЛМ.
Галлюцинациями понимают ответы, которые не соответствуют фактам или контексту. Они могут быть разными: от незначительных неточностей до полных выдумок. Но можно классифицировать эти ошибки по нескольким уровням детализации.
Самый простой случай — противоречие в самом тексте ответа. Например, модель говорит: "На улице солнечная погода", а сейчас там идёт сильный ливень. Это прямое внутреннее несоответствие.
Ещё один вид — противоречие исходной задаче или заданному промту. Если я прошу написать восторженный отзыв в ресторане, а модель отвечает: "Еда была отвратительна, обслуживание ужасно", это идёт вразрез с тем, что я хотел получить.
Российской Федерации — это фактологическая неточность. Ну, есть случаи, когда модели внезапно вставляют что-то бессвязное или неуместное. Ну, например, на вопрос "Назови столицу России", модель ответит: "Столица России — город Москва, а ещё Москва носит название серия речных теплоходов". Звучит абсурдно и совсем не к месту.
Теперь, когда мы знаем, что такое галлюцинации, нужно понять, почему они возникают. Короткого ответа нет, потому что механизм генерации текста во многом остаётся "чёрным ящиком" даже для разработчиков. Но есть несколько общих причин. Давайте с ними ознакомимся.
Первое — качество данных. Модели обучены на огромном объёме текста, где могут быть ошибки, неточности, предвзятости или противоречия. Например, некоторые модели видят источники, которые являются, конечно же, абсолютно достоверными. Даже если бы данные были идеальны, они не обязаны охватывать все темы, о которых мы можем спрашивать. Модель обобщает информацию, не умея проверять её истинность, и иногда ошибается.
По мере улучшения механизмов рассуждения количество галлюцинаций уменьшается. В примеры таких методов, как выбор наиболее вероятных слов, максимальное правдоподобие, обучение с подкреплением — все эти методы влияют на баланс между плавностью, согласованностью текста и разнообразием, точностью и креативностью. Ну, например, greedy search может выдавать более частые слова, но пропускать специфические детали.
Третье распространённое — это контекст. Идеи, которые мы можем сделать и повлиять на ситуацию. Контекст — это та информация, которую мы указываем в самом запросе. Он помогает модели давать более точный ответ, но если он недостаточно чёток или противоречив, модель может запутаться.
Ну, например, я спрашиваю: "А могут ли кошки говорить по-русски?" Естественно, ожидать ответа "нет". "Не пора ли вам отдохнуть?" Представьте, важная деталь: мы вообще-то говорим о коте Матроскине из Простоквашино. В таком случае модель могла бы ответить: "Да, разумеется, кот умеет говорить и вполне может открыть вам холодильник, если вы попросите". Контекст важен. Если мы не уточним, что речь про вымышленного персонажа, нам не стоит ждать правильного ответа.
В такой специфике тоже самое касается стиля. Если мы не говорим, что нам нужен академический тон или наоборот художественный, модель может отвечать слишком плывя. К контексту может также относиться тип ошибки, вызванный отсутствием актуальных знаний у модели. С момента её обучения, как правило, проходит уже достаточно времени. Если модель не обладает способностью искать новую информацию, то ответ может быть устаревшим. Это особенно важно для областей, где регулярно происходит изменение версий документов, библиотек, законов и тому подобное.
Ну и наконец, третий вопрос, или правильнее сказать, уменьшить вероятность галлюцинаций. Один из способов — это формулировать чёткие, конкретные задачи или промты. Чем точнее просьба, тем больше шанс, что ответ будет корректным. Ну, вместо "Расскажи о чемпионате мира по футболу", скажем: "Опиши результаты Чемпионата мира по футболу 2022 года".
Нам нужно чётко указывать модели инструкции из разряда: "А если не знаешь ответа, то скажи: я не знаю". Отвечать только на основе переданного контекста. Попросить можно найти свежую информацию из интернета, если мы общаемся с моделями через интерфейс, обладающий такими возможностями.
Можно также использовать так называемые активные стратегии снижения ошибок или стройку параметров. Ну, например, настраивать параметры генерации, такие как температура, которая регулирует случайность ответа. При низком параметре модель даёт более сдержанные, точные ответы, а при высоком — более креативные и непредсказуемые. Но чем выше креативность, тем больше шанс, что модель выдумает что-то лишнее.
Ещё один пример: в отличие от few-shot learning, где мы не даём ни одного примера, или даём ровно один пример, multi-shot learning означает, что мы приводим несколько образцов того, что хотим получить, чтобы модель лучше поняла задачу. Это полезно при написании кода, стихов, текстов в особом стиле, потому что модель лучше улавливает контекст и формат.
Итак, хотя большие языковые модели иногда галлюцинируют, утащить нас на 38 км в космос, понимание причин таких сбоев и умение с ними работать нам раскрыть их потенциал и свести выдумки к минимуму. На нашем канале на YouTube мы часто разбираем реальные кейсы, анализируем промты, обсуждаем качество генерации контента, способы защиты от галлюцинаций и другие полезные техники построения систем. Подписывайтесь и оставайтесь с нами.
Ну, а если вы хотите обучить языковые модели, то пишите в Telegram-канал @Smirnov_ai, и мы с радостью вам в этом поможем. Спасибо за просмотр и до новых встреч, друзья!