Qwen3-VL-2B со сдвигом отказов
safety-правка без градиентов
Это Qwen/Qwen3-VL-2B-Instruct от автора utsavz с изменёнными весами: правится только отказное поведение, остальные веса, tokenizer, processor, chat template и конфиги байт-в-байт совпадают с оригиналом. Модель на 2,13 млрд параметров, задача — image-text-to-text.
🔥 Ключевые особенности
- 💻 Изменены только два тензора
down_projв MLP-слоях 18 и 21: около 129,7 тыс. и 129,3 тыс. BF16-записей. - 🧘♀️ Правка по формуле
W = W0 + 2 · outer(u, m ⊙ (u @ W0)):u— единичное «направление отказа»,mвыбирает 64 MLP-нейрона. - 🔮 Усиливает текстово-обусловленный отказ на чувствительные запросы: идентификацию/персональные данные, политику, медицину, запросы «сгенерируй мем».
- ❌ Не добавляет отказ, обусловленный изображением: нейтральная инструкция к вредному изображению всё ещё может быть выполнена.
- 📚 Правка сделана только на training-наборе VLGuard, бюджет — 500 forward passes.
💻 Пример
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
import torch
proc = AutoProcessor.from_pretrained('utsavz/wsp_nov9_qwen3vl2b', max_pixels=1280*32*32)
model = Qwen3VLForConditionalGeneration.from_pretrained('utsavz/wsp_nov9_qwen3vl2b', dtype=torch.bfloat16, device_map='cuda:0')
msgs = [{'role': 'user', 'content': [{'type': 'image'}, {'type': 'text', 'text': 'What is shown in this image?'}]}]
text = proc.apply_chat_template(msgs, add_generation_prompt=True, tokenize=False)
Подробнее
VLGuard test, 1 558 промптов:ASR_strict aggregate 0.350 → 0.182; unsafes 0.500 → 0.353; safe_unsafes 0.231 → 0.047.ORR на benign: 0.000 → 0.020; 11/558 безопасных промптов стали новыми отказами.
Оценка rule-based, независимая судейская проверка ещё ожидается; отказы становятся короче и более общими, возможны зацикливания.
Лицензия Apache-2.0.








Комментарии