Математическое представление моральных ценностей (у больших языковых моделей)

На одном хакатоне я познакомилась с таким понятием, как «аблитерация» – какая-то из команд посвятила ей свой проект. Оказалось, тема интересная, так что делюсь.

Что это такое вообще

Аблитерация (Abliteration) — это сочетание слов «obliteration» (полное уничтожение), и «ablation» (в области исследований ИИ – последовательное удаление компонентов системы, чтобы понять, как каждый из них влияет на систему в целом).

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

Авторы блога Hugging Face, на который я ссылаюсь, цитируют статью «Refusal in Language Models Is Mediated by a Single Direction» («Отказы языковых моделей [отвечать на потенциально опасные вопросы] управляются одним направленным вектором»). Эта статья, по сути, о том, как устроен механизм отказа языковых моделей выполнять запрос. И в ней приводится способ взлома модели, отключающего эти ограничения.

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

Детали

С языковыми моделями приключилась такая забавная штука: люди их создали, но не до конца понимают, как они работают. Так вот, «широко предполагается, что языковые модели представляют признаки или концепты, как линейные направления в пространстве активаций (as linear directions in activation space, не уверена в своем переводе)». Пришлось попотеть, чтоб разобраться, но вот объяснение (мне сильно помогли ChatGPT, это обсуждение в Stackoverflow и раздел 3 этой статьи):

  1. У нейросетей есть слои. Каждый слой преобразует входные данные, применяя математические операции (например, умножение). На выходе слоя получается матрица, она состоит из векторов, эти векторы называются «активации» (activations).
  2. Векторы образуют векторное пространство. Если взять два вектора из одного пространства и сложить их и/или умножить, получится новый вектор из того же пространства. Если умножить вектор на число и/или прибавить число – опять получится вектор из того же пространства.
  3. Активации находятся в пространстве активаций. Это пространство включает все векторы, которые нейросеть может выдать на выходе слоя, плюс все векторы, которые можно получить из них, складывая или перемножая их между собой или с числами.
  4. Линейное направление – это вектор в пространстве активаций. У него есть начало и направление. Например, есть вектор v, который отвечает за признак «доброта». Вектор -v будет указывать в противоположную сторону и означать признак, противоположный доброте.
  5. Любой вектор, который выдала нейросеть, можно спроецировать на v. Для наглядности посмотрите картинку ниже.
  6. Если проекция торчит со стороны v, признак присутствует (много доброты). Если со стороны -v – присутствует противоположный признак.
<i>Мои каракули</i>
Мои каракули

Если двигать зелёный вектор вдоль v, признак будет усиливаться. Если развернуть и двигать вдоль -v, усиливаться будет противоположный признак.

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

Для эксперимента они сделали две выборки: с безопасными инструкциями и с вредоносными. Далее процесс такой:

  1. Выбрать один слой модели (назовем его l).
  2. На обеих выборках прогнать каждый запрос и собрать активации (выходные векторы слоя l).
  3. Посчитать средний вектор для вредоносной и безопасной выборки.
  4. Посчитать разность этих двух векторов – получится вектор разности средних (difference-in-means vector).
  5. Повторить шаги 2–4 для каждого слоя модели, получая новые векторы разности средних.
  6. Взять первый вектор разности средних (назовем его r) и прогнать модель на новых данных с вредоносными и безопасными запросами. Посчитать метрики:
    · показатель обхода (bypass score) – насколько часто модель обходит ограничения, если r удалили;
    · доля спровоцированных отказов (induce score) – насколько часто модель отказывает на безопасные запросы, если r добавили;
    · KL (KL score) — насколько сильно меняется поведение модели при добавлении/удалении r.
  7. Повторить процедуру для всех векторов разности средних и выбрать наиболее эффективный из числа тех, у которых:
    · доля спровоцированных отказов > 0 – то есть, они реально провоцируют отказ на безобидные запросы;
    · KL < 0,1 – то есть, они не слишком меняют поведение модели в целом, для задач, не связанных с безопасностью;
    · и которые получены на первых 80% слоев – потому что там кодируются абстрактные сущности, а на последних слоях – конкретные токены (слова или их части).
  8. Наконец, из отфильтрованных векторов берут тот, у которого самый низкий показатель обхода – такой вектор лучше всего включает ограничения для вредных ответов.

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

<i>Пример из статьи: Gemma 7B IT отказывает даже на безопасный запрос после добавления вектора</i>
Пример из статьи: Gemma 7B IT отказывает даже на безопасный запрос после добавления вектора

Заключение

Этот метод протестирован на разных моделях и на всех показал эффективность. Так что, добавив немного математики, можно подвинуть этические ориентиры, во всяком случае у языковых моделей. Теперь живите с этим.

Чтобы было не одиноко с этим жить, заходите ко мне в телеграм. Я там вам еще расскажу что-нибудь интересное.

[1] Это данные из эмпирических работ вроде «Outlier dimensions favor frequent tokens in language models» или «Eliciting Latent Predictions from Transformers with the Tuned Lens». Я сама их пока не читала, но вы вполне можете.

1
Начать дискуссию