Поправка направления стиринга для GPT-2 small

Этот репозиторий содержит два артефакта из исследования стиринга признаков 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 — основной артефакт, поправка направления ранга 64
  • denoiser.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 к любому оценочному направлению. Поправка также проверялась на двенадцати признаках, исключённых из её обучающего пула до финального переобучения.

Ограничения

  • Проверены только GPT-2 small, один слой интервенции и один релиз SAE.
  • Обучающий seed один, поэтому устойчивость к переобучению поправки не измерена.
  • Вывод основан на двенадцати признаках с объективным лексическим правилом отбора.
  • Автоматический выигрыш по perplexity не означает улучшения качества текста для человека.
  • При генерации распределение активаций сдвигается с ростом силы, а поправка остаётся фиксированной линейной картой.
  • Перенос на другие модели, слои и SAE не проверялся.

Полный экспериментальный протокол, таблицы, графики и анализ механизма находятся в GitHub-пакете, ссылка на который прикладывается к форме сдачи вместе с этим репозиторием модели.

Downloads last month
14
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for MASad1984/gpt2-small-steering-direction-correction

Finetuned
(2276)
this model