Я решила вернуться красиво и напекла новый туториал. Какое-то количество постов назад писала о библиотеках для interventions и начала делать материалы, чтобы можно было "вкатиться" в них на практике. В туториале описан Activation Steering — это inference-time интервенция: мы не трогаем веса модели, а вмешиваемся в поток вычислений «на лету», пока трансформер генерирует.
Базовая идея:
h⁽ˡ⁾ ← h⁽ˡ⁾ + α · v̂
Вектор v̂ кодирует нужное направление, α — сила вмешательства.
В туториале описаны три способа реализовать это вмешательство: PyTorch hooks и две библиотеки nnsight, pyvene.
Попутно разобрана вся теория. А именно:
• Метод CAA (Contrastive Activation Addition) — откуда вообще берётся steering vector;
• Почему residual stream и почему последний токен
• Странные термины: failure modes: prompt leakage, oversteering, layer mismatch, concept entanglement
• PCA-диагностика: видим ли мы разделение классов в латентном пространстве вообще?
Модель — GPT-2, запускается везде, коллаб тоже сделан.
🐑 [ссылка на ноутбук]
🐑 [ссылка на Хабр]