Я на ICML в Сеуле, и тут на main conference аж две мои статьи, чем я очень горжусь! Но и это еще не все, еще две статьи — на
MechInterp воркшопе, который будет 10 числа. И сегодня уже через пару часов буду стоять у
постера одной из статей (если мне его таки распечатали))), поэтому приходите в HALL A #2606 в первую постерную сессию посмотреть на меня и помочь толпой сделать вид что статья популярна, хах
Статья:
MidSteer: Optimal Affine Framework for Steering Generative Models (
arxiv link)
Это — вторая моя статья по теме representation engineering, и первая попытка уйти от чисто эмпирического рукомахательного рисерча и сделать что-то более математически/теоретически обоснованное.
История такая: как я писала раньше, первой моей статьей по этой теме была CASteer — steering-метод для удаления концептов из активаций диффузионной модели. В CASteer стиринг для удаления применяется довольно наивно, без нормального теоретического обоснования, только что-то вроде "ну вот у нас есть linear representation hypothesis, поэтому логично двигать активацию в сторону анти-стиринг-вектора, и давайте подвинем именно на такой коэффициент потому что такая трансформация сохраняет норму". После того, как я доделала CASteer, мне захотелось понять, как делать стиринг для удаления более фундаментально, т.е. можно ли вывести в некотором смысле лучшее преобразование для удаления концепта из активации.
Оказалось, что для задачи удаления такое уже существует. Это статья
LEACE: Perfect linear concept erasure in closed form. В ней выводится в некотором смысле лучшее линейное преобразование для удаления концепта из векторов-активаций моделей. Но применяется это в статье только для активаций, которые были получены из модели типа BERT и потом применяются для решения какой-нибудь downstream задачи классификации. То есть, метод не применяли на активациях LLM/диффузий, чтобы влиять на их генерацию.
Разобравшись с LEACE, оказалось, что обычный activation steering для удаления концептов из активаций, который делается оргононализацией активации к стиринг вектору — это просто частный случай LEACE. То есть, обычный стиринг == LEACE в предположении о том, что матрица ковариаций активаций слоя единична, и среднее активаций равно нулю. Тут у меня возник вопрос, а почему тогда в статьях по стирингу не используется LEACE. Тут два предположения: 1) для LEACE надо считать матрицу ковариации слоя, что долго и дорого 2) как писала выше, статья LEACE не тестирует метод на генеративных моделях, и, возможно, поэтому о LEACE просто мало знают те, кто стирят LLMки
Хорошо, стиринг для удаления — частный случай LEACE.
Давайте теперь попробуем сделать что-то новое. Например, попробуем решить чуть другую задачу — не удаления концепта из активации, а перевода одного концепта c_1 в другой c_2 (
concept switching). Например, c_1=котик, c_2=песик, и тогда цель — чтобы LLM/диффузия генерили текст/картинки с песиками вместо котиков, если в промпте при этом просят котиков. И, как и в LEACE, скажем, что преобразование должно быть линейным и в некотором смысле "оптимальным". Оптимальность в данном случае задается как "минимальное изменение вектора активации при условии изменения концепта c_1 -> c_2".
Оказывается, такое "оптимальное" линейное преобразование для concept switching можно вывести. Более того, есть даже два варианта. Первое очень просто получается из LEACE изменением коэффициента, но у него есть недостаток — при применении оно меняет c_1 c_2 в обе стороны, т.е. вместо котиков вы получите песиков, и наоборот. А второе — новое, которое меняет c_1 -> c_2, но не наоборот.
Вот это новое преобразование для concept switch (
теорема и результаты экспериментов)
и есть главное novelty статьи.В итоге главные моменты статьи: • Cтиринг для удаления концептов — частный случай LEACE
• Оптимальное линейное преобразование для concept switch (случай c_1 c_2) — следствие LEACE
• Новая теорема и эксперименты: оптимальное линейное преобразование для concept switch (случай c_1 -> c_2) —
MidSteer
Ссылки:
Статья на arxiv Alpharxiv (тут можно поставить лайк)
GitHub (а тут звёздочку 🥺)