Назад
Dynamic Abliteration: придушення відмов LLM без зміни ваг моделі
SiTech AI Team2 წთ. საკითხავი

Dynamic Abliteration: придушення відмов LLM без зміни ваг моделі

Технічний допис у блозі madhukaraphatak.in описує, як вимкнути відмови відкритої моделі Qwen3-4B під час виконання — без редагування ваг: достатньо втрутитися в кілька середніх шарів через хуки PyTorch.

Аблітерація без редагування ваг

Позбутися відмов у відкритій LLM зазвичай означає «аблітерацію»: вагові матриці моделі проєктують так, щоб напрям, пов'язаний із відмовами, зник. Метод працює, але назавжди змінює ваги й може погіршити якість на сторонніх завданнях.

Технічний допис, опублікований 24 вересня 2026 року в блозі madhukaraphatak.in, описує альтернативу. Замість редагування параметрів рішення втручається в проміжні залишкові потоки моделі під час виконання — через forward-хуки PyTorch — і додає керівні сигнали в кілька середніх шарів. Базові ваги залишаються незмінними; автор зазначає, що вони повністю заморожені.

Демонстраційна модель — Qwen3-4B, відкрита модель на 4 мільярди параметрів, завантажена у форматі bfloat16 на GPU A100 у середовищі Google Colab.

Одного шару недостатньо

Перша спроба торкалася лише одного шару: автор отримав вектор напряму відмови на 14-му шарі, порівнявши активації для відкинутого запиту та схожого безпечного, і віднімав його під час декодування. Модель усе одно відмовлялася — нижчі шари відновлювали поведінку відмови.

Наступна версія обчислила контрастні різницеві вектори на п'яти шарах (12, 14, 16, 18 і 20) та інжектувала їх одночасно. Відмови зникли, але у статичних векторів є недоліки: вони зсувають кожен токен; масштабний коефіцієнт підбирають вручну; а безумовне втручання знижує якість на звичайних завданнях.

Керування через модуль Engram

Щоб втручання стало умовним, допис адаптує архітектуру умовної пам'яті з моделі Engram від DeepSeek. Ковзні вікна токенів гешуються в чотири таблиці для пошуку n-грамів за сталий час, а сигмоїдний гейт вирішує, чи щось інжектувати на цьому шарі. Для звичайних токенів гейт близький до нуля; коли з'являється тригер відмови, він відкривається.

Керівний модуль навчали на 2000 зразках із набору PKU-SafeRLHF (PKU-Alignment), базову модель заморозили — оптимізували лише параметри Engram, дві епохи. Навчання на A100 тривало близько дев'яти хвилин, а втрати впали з приблизно 3,9 до 1,77. У наведеному порівнянні керована модель відповідала на запити, від яких базова відмовлялася або ухилялася.

Що це означає

Результат — модульне та знімне втручання: керівна «голова» — окремий файл, який можна вмикати й вимикати під час виконання, на відміну від донавчання чи класичної аблітерації, де зміни вшиті в саму модель.

Ця гнучкість — і водночас проблема безпеки: якщо відмови можна вимкнути під час виконання на одному GPU, гарантії, що спираються лише на ваги відкритої моделі, слабшають. Повний Jupyter-ноутбук опубліковано на GitHub; автор зазначає, що приклади коду написано за допомогою Google Gemini.

SSiTech

SiTech — веброзробка з підтримкою AI

Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.