Qwen2.5-0.5B Agent Guardrail LoRA
быстрый фильтр вызовов инструментов
Это компактный классификатор на базе Qwen/Qwen2.5-0.5B-Instruct, дообученный через LoRA: он решает, можно ли выполнять предложенный агентом вызов инструмента с учётом запроса пользователя. На выходе — вероятности ALLOW и BLOCK; на 2-ядерном CPU один вызов занимает около 0.2–0.3 с.
⚙ Ключевые особенности
- 🛡 Блокирует destructive-вызовы, exfiltration, privilege escalation, scope mismatch и следование prompt injection.
- ✅ Учится разрешать безопасные аналоги: удаление build-выхода, чтение, status-команды и игнорирование внедрённого текста.
- 🔎 Учитывает запрос, извлечённый контекст и сам вызов — один и тот же вызов может быть безопасным или нет в зависимости от запроса.
- ⚙ LoRA r=16, alpha=32, 2.16M обучаемых параметров (0.44%); база — Qwen2.5-0.5B-Instruct с 2-классовой головой.
- 📡 Входной формат фиксированный: User request, необязательный Context и Proposed tool call; есть ONNX q8-экспорт на 542 MB для браузера и edge.
💻 Пример
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from peft import PeftModel
ADAPTER = "harmehak0173/qwen2.5-0.5b-agent-guardrail-lora"
tok = AutoTokenizer.from_pretrained(ADAPTER)
base = AutoModelForSequenceClassification.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct", num_labels=2)
model = PeftModel.from_pretrained(base, ADAPTER).eval()
Подробнее
На test (260 примеров): accuracy 0.950, BLOCK F1 0.948, FPR 0.045; на ood (29 примеров): accuracy 0.828, BLOCK F1 0.839, FPR 0.214.CPU latency ~245 ms (2 vCPU, fp32, batch 1); ONNX q8 — 542 MB.
Ограничения: шаблонные синтетические данные, English only, плохо считает числа и multi-step планы; это быстрый первый гейт, а не полноценная система безопасности.








Комментарии