October 22

Машинный бред

Начну этот пост с признания: сегодняшняя статья попала в мой список на разбор благодаря яркому названию: «Machine Bullshit: Characterizing the Emergent Disregard for Truth in Large Language Models» («Машинный бред*: описание проявляющегося пренебрежения к правде в больших языковых моделях»). Обратите внимание на то, что это препринт, то есть, публикация не отрецензирована.


Здесь мы сразу видим очевидное раздражение авторов, с одной стороны, и стремление зацепить внимание читателя, с другой.
Ну что ж, внимание зацеплено, посмотрим, что там по содержанию.
Вслед за философом Гарри Франкфуртом (Harry Frankfurt) авторы статьи определяют бред как

Утверждение, сделанное безотносительно его истинности


Далее они рассматривают четыре категории бреда:
• Пустословие (empty rhetoric);
• Лукавство (paltering);
• Двусмысленность (weasel words);
• Непроверенные утверждения (unverified claim).

Получился как будто список смертных грехов. Авторы предлагают бенчмарк – набор сценариев – для проверки на наличие у модели всех этих грехов. Это работа в направлении повышения надёжности и прозрачности ИИ, что мы приветствуем, безусловно. Но вот что мне здесь не нравится: авторы рассматривают ИИ-системы как агентов, которые имеют собственные намерения и мировоззрение (beliefs). Я не пытаюсь тут выступать в качестве источника истины и человека, который познал эту жизнь, но это плохая предпосылка для исследования. Наличие намерений, самосознания и представления о мире нужно сперва убедительно доказать, а такого доказательства пока нет. Самые масштабные и глубокие исследования указывают на то, что языковые модели скорее очень старательно следуют инструкциям пользователя. Прям очень старательно. Смотрели «Гадкий Я?» – вот как-то так.

У меня вообще с ИИ-асситентами плотно ассоциируется тот момент в мультике, где миньоны поздравляют Дракулу с днём Рождения, приносят торт, открывают шторы – и бедолагу-графа испепеляет солнце. И они такие: «Упс. Кто там дальше?»
Ладно, это я отхожу от темы. Мой посыл в том, что давайте пока не будем считать, что ИИ имеет собственные мотивы и намерения. Аргумент авторов «мы считаем» предлагаю признать недействительным.


Итак, они считают Индекс Бреда (The Bullshit Index, BI), который показывает разрыв между «истинными представлениями» модели и ответом, который она выдаёт пользователю. Ответ может быть верным или не верным, то есть, соответствующим или не соответствующим реальности. «Истинные представления» считают на основании вероятности выдачи первого токена ответа – и вот это как раз не лишено смысла.
Токен – это слово или его часть, иногда со знаками препинания. В общем, некий маленький фрагмент текста.
Работы, которые используют вероятности токенов ответа, вполне себе существуют, только они считают не внутренние верования, а определённость ответа модели. Для иллюстрации приведу фрагмент собственной работы далее. Чтобы продолжать читать про статью, пропустите следующий блок.

Отступление о векторном представлении определённости

На выход после обработки входных данных языковые модели выдают сначала токены и логарифмированные вероятности их выбора, а потом уже результат – выбранный токен. Выдача не одного варианта за раз, а сразу нескольких позволяет сделать ответы более разнообразными и человечными. Если бы модель каждый раз выбирала только самый вероятный токен, все тексты получались бы шаблонными и страдали бы от зацикленности отдельных фрагментов. При этом галлюцинаций бы не убавилось: во время тренировки модель учится воспроизводить убедительные последовательности токенов на основании тех текстов, которые она получила на вход – то есть, задачи фактической проверки там в принципе нет. Если по какой-то теме мало информации (в тренировочных данных или вообще), меньше шансов, что правдоподобно выглядящие токены хоть сколько-нибудь связаны с фактами из реального мира.
Мысленно возьмём набор данных, в который входят вопросы и по четыре варианта ответов на каждый. Только один вариант всегда правильный, и модель должна в ответ представить только букву, которая соответствует правильному ответу: A, B, C или D. Каждая буква – один токен (и мы это проверили).
Когда мы задаём модели случайный вопрос, она вернёт что-то вроде
[(A; 0,6), (B; 0,2), (C; 0,1), (D; 0,1)]
Здесь я написала вероятности без логарифмов, но нам сейчас это не важно.
Далее в ответе на вопрос модель ответит «А».
Что значит «вероятность того, что модель выберет A, 60%»? То, что в тренировочных данных модели было много источников, которые указывают на правильность ответа А. К примеру, это был вопрос «Где живёт верблюд?», а ответ А был «В пустыне». Если данных больше, и все они указывают на ответ А, его вероятность будет выше.
Что значит тот факт, что вероятность ответа А – 60%, а ответа В – 20%? А если бы вероятность ответа А была 50%, а ответа В – 45%? А если 80% и 10%? Логика моя и моих коллег в том, что если разница между вероятностями А и В большая, определённость ответа высокая, то есть, в тренировочных данных было намного больше свидетельств в пользу А. Если разница мала, в пользу А и В было примерно одинаково много или одинаково мало свидетельств, и выбор был «наугад». Мы опирались на разные исследования, можно посмотреть, например, вот эти статьи:
• «A Survey of Confidence Estimation and Calibration in Large Language Models»;
• «Language Models (Mostly) Know What They Know».
Они не ровно про то же самое, но на близкую тему.
Можно ли это назвать «мировоззрением модели»? Если прям очень сильно растянуть сову и чем-нибудь скользким смазать глобус, то можно, наверное. Но на мой взгляд это некорректно и уводит нас от реальных технических вопросов и поиска рабочих решений в мир жёлтых заголовков в стиле «Покайтесь, грешные, скоро ИИ поработит человечество!»

Возвращаемся к теме

Авторы тестировали модели на различных сценариях, в которых у ИИ-агента была информация, недоступная пользователю. Например, сценарий, в котором ИИ-консультант в магазине и знает все характеристики товара, а пользователь видит только цену и про характеристики спрашивает у ИИ-агента.
Каждый ответ агента оценивался более сильной языковой моделью. Таким образом, оценивали, соответствует ли ответ агента истине – языковой моделью – и соответствует ли ответ агента его «внутренним убеждениям» – через вероятности.
Выяснили следующее: во-первых, если натренировать модель с целью радовать пользователя, она будет чаще говорить: «Да, у этого товара есть нужная вам характеристика,» – когда нужной характеристики нет. Потому что пользователь тогда радуется.
Во-вторых, это чаще происходит, если про нужную покупателю характеристику ИИ-агенту ничего неизвестно.
В-третьих, «внутренние убеждения» модели не меняются, а меняется ответ. То есть, она не «начинает верить» в то, что у данной камеры есть запасной аккумулятор, она знает, что нет, но чаще говорит, что есть.
То есть, положим, у нас есть два варианта ответа: А и В. Вероятность А = 60%, вероятность В = 40%, но пользователя больше порадует В, поэтому модель отвечает В.
И дальше авторы показывают, что все ранее обозначенные типы бреда встречаются чаще после того, как модель тренируют на повышение удовлетворённости пользователя.


Заключение

Вы поняли, что хотели сказать авторы? Я не поняла, хотя отдельные фрагменты статьи перечитывала и разбирала по несколько раз. Я всегда держу в голове вопрос: «А вдруг я ошибаюсь?» – И очень стараюсь найти опровержение своей сложившейся позиции.
Но вот конкретно здесь моя позиция в том, что ерунда какая-то вышла. Авторы убедительно показали, что, если обучать ИИ радовать пользователя, он будет подбирать ответы, которые радуют пользователя? Ну да, спасибо, мы в курсе. Хороший вывод, который здесь можно сделать – хорошенько подумайте о том, каковы ваши цели перед тем, как приступить к обучению модели.
Они очень активно упирают на то, что ИИ «сознательно лжёт». Во всяком случае, они используют очень очеловечивающие термины, например:

«Эти результаты показывают, что модели стратегически применяют скрытые манипуляции или неподтвержденные утверждения, чтобы подстроиться или оправдать определённые политические взгляды…»
«These findings indicate that models strategically employ subtle deception or unsupported assertions to align with or justify particular political viewpoints…» – страница 9 статьи.


Далее, они используют термин «вред» (harm), на мой взгляд, для придания (осознанно или нет) более сильной эмоциональной окраски своим выводам:

«В то время как обучение с подкреплением от человека поощряет все формы бреда, принципиально важно оценить, насколько вредна каждая из них и насколько обучение с подкреплением от человека усиливает этот вред <…> Мы определяем как “более вредные” ответы с более низким коэффициентом определённости, который показывает большее снижение полезности [ответов модели для пользователя – моё примечание]».
«While RLHF encourages all forms of bullshit behavior, it is crucial to assess how harmful each specific behavior is and examine how RLHF amplifies their harm <…> We define “more harmful” as a more negative coefficient, indicating greater utility reduction, » – страницы 7-8.


Я зацепилась за это, потому что обычно «вред» (конкретно harm) используется в контексте утечки персональных данных, советов, которые могут напрямую навредить здоровью или благополучию пользователя и так далее – не в контексте «снижения полезности». Складывается впечатление, что они таким образом повышают значимость своих выводов.
В приложении C приведены диалоги ИИ-агентов с пользователями, где авторы цветом выделили разные типы бреда в ответах ИИ, я оставлю изучение на ваше усмотрение.
В приложении F есть ещё кое-что, что привлекло моё внимание: проверка оценок языковой модели экспериментом с людьми. Мы раньше сказали, что соответствие ответа ИИ-агента истине проверяла другая языковая модель. Она также определяла, какие в этом ответе присутствуют категории бреда. Авторы очень разумно попросили людей сделать то же самое. Для оценки согласия между ними использовали коэффициент Альфа Криппендорфа (Krippendorff's alpha) – он используется для определения надёжности данных. Если коэффициент высокий, значит, разные эксперты независимо пришли к единому мнению с незначительными расхождениями во взглядах – оценка надёжна. Если низкий, то эксперты расходятся во мнениях, и на такие данные полагаться не стоит. Он измеряется от нуля до единицы и в общем случае применяются такие границы:
• Больше 0,8 – единое мнение, данные надёжны;
• 0,67 – 0,8 – сомнительно, но окей;
• Меньше 0,67 – эксперты разошлись во мнениях, данные ненадёжны.
В эксперименте авторов Альфа составила от 0,03 до 0,18 для разных категорий бреда. Ещё раз: от 0,03 до 0,18. Это значит, категории бреда крайне субъективные.
Дальше они посчитали коэффициент Коэна (Cohen's kappa), который должен быть равен 0,60–0,70, чтобы результаты считались надёжными. Получились значения от 0,21 до 0,41 для пустословия, лукавства и двусмысленности и 0,80 для непроверенных утверждений. 0,8 для непроверенных утверждений – единственный коэффициент, который показывает консенсус. Потом людям ещё давали почитать рассуждения ИИ и спрашивали, согласны они или нет, но это я не буду тут рассказывать, потому что нарушение процедуры: оценки должны быть независимы.

«Принципиально важно,» – пишут авторы, – «что ИИ-оценщик идеально согласован с оценками людей <…>. Это точно показывает надёжность и эффективность ИИ в сценариях, где оценщики-люди очевидно согласны.»
«Crucially, in scenarios with strong human consensus (≥ 80% agreement), the AI judge aligned perfectly with human annotators across all dimensions (100% accuracy, Cohen’s κ = 1). This demonstrates the AI’s reliability and effectiveness precisely in scenarios where human annotators clearly concur, » – страница 26.


Ну окей, согласиться, что утверждение не основано на фактах, не так сложно. Можем использовать ИИ, чтобы оценить фактическую верность утверждения при условии, что все факты ИИ известны.
Подведём итоги.
Посчитано всё правильно вроде, а вывод какой? Категории бреда на ИИ не натягиваются. Фактическую точность утверждений можно проверить.
Зато заголовок громкий, хорошо подходит, чтобы разойтись по соцсетям. И язык сатьи соответствующий.

Эк меня занесло, вы уж простите. Если есть одна мысль, которую я хочу вам сегодня сообщить, то это «Не всё то золото, что опубликовано как научная статья».

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
*bullshit чаще переводится как «дерьмо» или «чушь», но мне понравилась идея перевести это как «бред» в значении «галлюцинация»