Downloads · 30 days
7
29% of all-time downloads
MASad1984/gpt2-small-steering-direction-correction
gpt2-small-steering-direction-correction is a machine learning model from MASad1984. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for pytorch. The card lists the license as mit.
Этот репозиторий содержит два артефакта из исследования стиринга признаков SAE в residual stream GPT-2 small после шестого блока. Основной результат — обученная поправка направления
Downloads · 30 days
7
29% of all-time downloads
All-time downloads
24
Public
Repo size
9.9 MB
Likes
0
Public
Click a slice to open those files.
.pt9.9 MB · 100%
From the Hugging Face model README
Этот репозиторий содержит два артефакта из исследования стиринга признаков SAE в residual stream GPT-2 small после шестого блока. Основной результат — обученная поправка направления
w(v) = normalise(v + A Bᵀv)
Матрицы имеют ранг 64, всего в модели 98 304 параметра. При интервенции h + s·w(v̂) норма
возмущения совпадает с наивным вариантом h + s·v̂. Поэтому сравнение отражает изменение
направления без скрытого увеличения силы стиринга.
Автоматические метрики показывают более сильную доставку целевого признака и меньший Pythia log-perplexity. Дополнительная слепая разметка одним AI-аннотатором подтверждает усиление целевого признака, но не подтверждает улучшение связности или общего качества. У неё также больше случаев дегенерации. Человеческой разметки и второго независимого аннотатора в работе нет.
import torch
from model import load_direction_correction
correction = load_direction_correction("direction_correction.pt")
v_hat = torch.randn(768)
v_hat = v_hat / v_hat.norm()
w = correction(v_hat.unsqueeze(0))[0]
h_tilde = h + s * w
model.py содержит определение модуля и функцию загрузки. В полной реализации интервенция
применяется ко всем позициям, кроме первых двух. На этих позициях норма residual stream является
выбросом и искажает оценку масштаба.
Сила задаётся как s = c · max_activation · ‖W_dec[f]‖, то есть относительно естественного
масштаба конкретного признака. Поправка обучалась для c ∈ [0.5, 2.5]. При c = 0.5 улучшения
нет, значения выше c ≈ 3 не проверялись.
direction_correction.pt — основной артефакт, поправка направления ранга 64denoiser.pt — денойзер residual stream из первого раунда экспериментовmodel.py — автономное определение моделей и функции загрузкиconfig.json — архитектура и зафиксированные параметрыREADME.md — эта карточка моделиdirection_correction.pt принимает нормированное направление формы (..., 768) и возвращает
направление той же формы с единичной нормой. denoiser.pt принимает активацию с последней
размерностью 768 и величину возмущения.
Поправка обучалась через зафиксированную верхнюю половину GPT-2. Для чистой активации h,
направления v и силы s оптимизировался отклик финальных логитов:
L = −A / A_naive + γ · relu(C / C_naive − 1)
A измеряет сохранённый отклик вдоль малосигнального причинного направления, а C — относительный
размер нелинейной невязки. Референсные величины считаются в том же батче с исходным направлением.
Так оптимизатор не может получить хороший loss простым уходом в безопасное направление без доставки
признака. Обучение занимало около 4,2 минуты на GTX 1660 Ti с 6 ГБ памяти.
Денойзер обучался отдельно на активациях OpenWebText с квадратичным loss
‖h − D(h + s·u)‖². Во всех абляциях использовалось одинаковое распределение энергии шума.
Признаки SAE для обучения не пересекаются с признаками для выбора параметров и итоговой оценки. Из обучающего словаря исключены признаки с абсолютной косинусной близостью не меньше 0,3 к любому оценочному направлению. Поправка также проверялась на двенадцати признаках, исключённых из её обучающего пула до финального переобучения.
Полный экспериментальный протокол, таблицы, графики и анализ механизма находятся в GitHub-пакете, ссылка на который прикладывается к форме сдачи вместе с этим репозиторием модели.