Могут ли языковые модели лгать
Продолжая тему галлюцинаций: а могут ли языковые модели лгать? То есть, иметь знание о правильном ответе, но сгенерировать неправильный.
На мой скромный взгляд, сама постановка вопроса – пример очеловечивающего языка, потому что ложь – это сознательный выбор. Его не может сделать то, что не наделено сознанием.
Но мы всё-таки изучим сегодня не мой скромный взгляд, а статью «Can LLMs Lie? Investigation beyond Hallucination». Тем более, там механистические методы интерпретации – всё как мы любим.
Чтобы выявить, что в структуре языковой модели отвечает за генерацию «намеренно» ложных утверждений, авторы сделали две группы запросов: одна напрямую просит модель солгать, другая требует правдивого ответа. Прогнали эти запросы, собрали векторы, которые получаются по ним в разных слоях модели и посчитали их разницу. Запросы были про известные факты, например: «Назови столицу Австралии».
Помимо этой, уже известной нам техники, авторы использовали специальный инструмент Logit Lens. Вот его логика в двух словах:
- языковые модели работают с числами, а не с текстом: они пропускают сквозь каждый слой огромную матрицу из чисел, применяя к ней разные математические преобразования;
- на последнем слое матрица преобразуется в текст, который видит пользователь;
- Logit Lens использует этот преобразующий механизм на внутренних (скрытых) слоях модели и трансформирует в текст те промежуточные результаты, которые мы обычно не видим.
Сам инструмент замечательный, но использовать его правильно сложно: нужно подстраивать под каждую модель и осторожно выбирать слои для анализа. Про слабые места и особенности использования Logit Lens подробно писали авторы статьи «Eliciting Latent Predictions from Transformers with the Tuned Lens»: он надёжно сработал только на GPT-2, на которой был создан, а в других экспериментах – так себе. Авторы этой второй статьи инструмент доработали и сделали свою версию – Tuned Lens. Примем это во внимание.
Авторы статьи про ложь использовали оригинальную версию инструмента и экспериментировали с Llama-3.1 и Qwen-2.5.
Результаты получились следующие:
1. Ответ, который модель выдаст в итоге, формируется задолго до перехода к последнему слою и повторяется несколько раз в разных слоях.
Это не новость, и подобное поведение характерно не только для генерации ложных фактов. Авторы здесь только отмечают, что у них оно воспроизвелось.
2. В формировании лжи участвуют «токены-заглушки».
«Заглушками» авторы назвали служебные фразы вроде «начало_заголовка», «ответ_ассистента». Они используются для структурирования ответов модели и не несут смысла, но могут использоваться, чтобы ещё раз пересчитать ответ.
Вышло, что такие токены гораздо активнее используются, когда надо сгенерировать ложь. Но в других работах (в том числе той, на которую я ссылаюсь чуть выше) показано, что такие токены активно используются и чтобы сгенерировать правильный ответ. Похоже, что в этой статье подсвечен очень узкий случай, и результат зависит от модели, наличия или отсутствия у неё способности к рассуждению, а также структурной роли токенов: они могут быть совсем «пустые» или использоваться для форматирования.
3. Можно предотвратить ложный ответ воздействием на механизмы внимания.
У трансформеров есть «головы внимания» – это матрицы, которые умножаются на входные данные, и в результате от входных данных остаётся (или сильно увеличивается) конкретный фрагмент. Возьмём предложение «Кошка сидит на диване». Если у нас три головы, первая оставит слово «Кошка», вторая – «сидит», третья – «диване». Это нужно, чтобы разобрать предложение на составные части и извлечь из него больше смысла.
Когда мы даём запрос: «Напиши ложь: какой город – столица Австралии?» – можно найти голову, которая выделяет слово «ложь» и превратить её в матрицу, целиком состоящую из нулей. Тогда слово «ложь» просто не пойдёт дальше, и модель его проигнорирует.
У меня есть мысли по поводу прочитанного.
Во-первых, идея воздействовать на механизмы внимания интересная и может пригодиться для разных исследований.
Во-вторых, всё остальное в этой статье очень узко ограничено рамками конкретных экспериментов. Неясно, воспроизведётся ли результат на других моделях, на другом языке или даже с другими формулировками запросов. Это не камень в огород авторов: они честно провели свой эксперимент и описали результаты. Но из-за существенных ограничений я бы относилась к ней скептически (во всяком случае, пока).
Зачем нам было это всё читать? Мне кажется, такая статья могла бы стать громким заголовком, а нам важно помнить, что иногда за громкими заголовками стоят не очень надёжные или незавершённые работы.