PrivacyScalpel: Enhancing LLM Privacy via Interpretable Feature Intervention with Sparse AutoencodersИли какие только названия не придумают. Похоже, в науку пришел маркетинг-принцип, когда название должно быть very attention-grabbing.
Привет, друзья! Ещё одна красивая статья. Она показалась мне полезной как задача на обзор и идея на блюдечке применения SAE в XAI (и, кстати, повышения Safety).
Мотивация:
При условии хорошо собранного запроса, LLM могут раскрывать конфиденциальную информацию (адреса электронной почты или номера телефонов). Это создает утечку риска персональной информации => с этим нужно бороться.
Способы борьбы:
Тривиальный метод — удаление конфиденциальных данных из обучающего набора. Однако, он требует полного анализа всего набора данных для трейда и может привести к потере в способностях модели. ,
Что предлагают авторы:
Для извлечения информации, связанной с персональными данными, авторы предлагают 3х шаговую структуру.
1️⃣ Определение слоя, ответственного за утечку PII (Personally Identifiable Information).
Задача переформирована в «найти слой A_l, такой что разделение информации, связанной и нет с PII на нем максимально. Для этого на активациях обучается линейный зонд — то есть классификатор, задача которого лейбелить представления на связанные с PIII и нет.
2️⃣ Обучение разреженного автоэнкодера (k-Sparse Autoencoder, k-SAE)
После выбора слоя A_l, на нём обучают разреженный автоэнкодер (SAE) для представления активаций через интерпретируемые признаки.
То есть мы активацию a_l и строим ее признаки, как:
z = TopK(W_{enc} (a^l - b_{pre})) — жду когда в тг добавят латех, а пока простите...
W_{enc} — матрица весов энкодера,
(a_l - b_{pre}) — скрытое представление, от которого отнят биас.
TopK() — функция, оставляющая только k наибольших значений (остальные зануляются).
Ещё, авторы используют дополненный (против классического MSE для AE-шек loss):
L = a_l - a_{l, predicted} ^2 + а||e - e_{topK}||^2
первая часть здесь — MSE, вторая — auxiliary loss — разность между ошибкой e = a_l - a_{l, predicted} и e_{topK} = W_{Decoder}*z_{topK}
3️⃣ Имея обученный автоэнкодер, применяется две стратегии для защиты (в комбинации и в соло).
1. Feature Ablation— отключение латентных признаков, связанных с PII.
Для этого:
Собирают датасет с PII, и для каждого примера строим его скрытый вектор z. Однако строят не для примера целиком, а начиная с токена, который содержит персональную информацию (в данном случае email).
Полученные активации в SAE пространстве усредняют и сортируют. А после зануляют активации, связанные с ними.
2. Feature Vector Steering — модификация латентных признаков, чтобы подавить утечки.
Steering — дословно «рулевое» управление и тут в качестве руля выступает вектор v. Он считается так:
v = MEAN(Z_{PII}) - MEAN(Z_{notPII) — то есть среднее активаций на представлениях данных с PII и без.
После вычисления этого вектора, вычисляется сдвиг представление z в сторону, удаляющую PII:
z' = z + a*v
К чему приходит такой танец:
На моделях Gemma2-2b и Llama2-7b удается снизить количество утечек с малой потерей производительности (максимальное падание примерно 2%, при этом утечки уходят до 0).
Ограничение работы, конечно, концентрация на одном нежелательном поведении, но всё же это хороший пример того что вмешательства в параметры (основанные на интерпретируемых представлениях), способны оставить модель "полезной" и при этом, сделать её более хорошей.
Рассчитываю скоро и с SAE потыкать что-то под туториал, пока что руки доходили только до просто AE. Но и для интересных результатов нужно работать с большими модельками, кажется, пора задуматься об аренде GPU...
Где-то в весенних работах, дипломах и вот этом всём,
Ваш Дата автор!