January 9

Могут ли языковые модели лгать

Продолжая тему галлюцинаций: а могут ли языковые модели лгать? То есть, иметь знание о правильном ответе, но сгенерировать неправильный.

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

Но мы всё-таки изучим сегодня не мой скромный взгляд, а статью «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.      Можно предотвратить ложный ответ воздействием на механизмы внимания.

У трансформеров есть «головы внимания» – это матрицы, которые умножаются на входные данные, и в результате от входных данных остаётся (или сильно увеличивается) конкретный фрагмент. Возьмём предложение «Кошка сидит на диване». Если у нас три головы, первая оставит слово «Кошка», вторая – «сидит», третья – «диване». Это нужно, чтобы разобрать предложение на составные части и извлечь из него больше смысла.

Когда мы даём запрос: «Напиши ложь: какой город – столица Австралии?» – можно найти голову, которая выделяет слово «ложь» и превратить её в матрицу, целиком состоящую из нулей. Тогда слово «ложь» просто не пойдёт дальше, и модель его проигнорирует.

У меня есть мысли по поводу прочитанного.

Во-первых, идея воздействовать на механизмы внимания интересная и может пригодиться для разных исследований.

Во-вторых, всё остальное в этой статье очень узко ограничено рамками конкретных экспериментов. Неясно, воспроизведётся ли результат на других моделях, на другом языке или даже с другими формулировками запросов. Это не камень в огород авторов: они честно провели свой эксперимент и описали результаты. Но из-за существенных ограничений я бы относилась к ней скептически (во всяком случае, пока).

Зачем нам было это всё читать? Мне кажется, такая статья могла бы стать громким заголовком, а нам важно помнить, что иногда за громкими заголовками стоят не очень надёжные или незавершённые работы.