qwen35-9b-secfix-grpo-lead-step300-merged
агент для исправления уязвимостей
Модель от sparrow-co-ltd (SecLLM team) на базе Qwen/Qwen3.5-9B: 9,65B параметров, дообученная под исправление подтверждённых SAST-находок. Сначала LoRA SFT, затем GRPO; обе стадии слиты в полные веса, отдельный адаптер не нужен.
💻 Ключевые особенности
- 🩹 На входе один подтверждённый SAST-финдинг: агент читает файл через
read_code, правит черезedit_codeи отправляет фикс черезsubmit_fix. - 🎧 Жёсткий протокол: ровно один tool call на ход, до 3 попыток верификации, описание фикса — одно корейское предложение до 300 символов.
- 💻 Поддерживаемые языки: C, C++, Java, Python, JavaScript, Go, TypeScript.
- 🔮 Архитектура и токенизатор не менялись относительно базы; обучены только LoRA-проекции, затем слиты в fp32 и сохранены в bf16.
- ✅ При запуске обязателен
enable_thinking=False; MTP speculative decoding включать нельзя — голова MTP осталась необученной копией базы. - ❗ Задача узкая: только этот трёхинструментальный протокол, без общего чата и кодинг-ассистента.
📚 Пример
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL = "sparrow-co-ltd/qwen35-9b-secfix-grpo-lead-step300-merged"
tok = AutoTokenizer.from_pretrained(MODEL)
model = AutoModelForCausalLM.from_pretrained(MODEL, dtype=torch.bfloat16, device_map="auto")
prompt = tok.apply_chat_template(messages, tools=TOOLS, add_generation_prompt=True, tokenize=False, enable_thinking=False)
out = model.generate(**tok(prompt, return_tensors="pt").to(model.device), max_new_tokens=4096)
Подробнее
SFT: 2 205 траекторий, 3 эпохи, max length 12 288 токенов.GRPO: пул 10 390 SAST-финдингов, шаг 300 из 325, до 8 rollouts на находку.
Патчи — кандидаты: перед мержем нужны повторный SAST, тесты и человеческое ревью; возможны затяжные ходы.
Лицензия наследуется от Qwen3.5-9B (Apache-2.0).








Комментарии