Qwen3-4B C Repair LoRA
чиним C-баги минимальным патчем
Это rank-32 LoRA-адаптер для Qwen/Qwen3-4B, который исправляет небольшие C-функции с одной security-уязвимостью минимальным патчем. Автор — SecureAI-SE; адаптер сделан для курса «LLMs for Security Engineers».
🤓 Ключевые особенности
- 📝 Обучение в два этапа: SFT на 1 329 эталонных фиксах, затем GRPO на 946 багах, которые SFT исправлял лишь иногда.
- 🔫 Reward в GRPO: патч маленький, компилируется, trigger-вход чист под AddressSanitizer + UBSan, обычные входы дают правильный вывод.
- 🤔 Промпт без thinking: просит минимальное изменение и только полную исправленную функцию в одном блоке кода C.
- 😎 Два этапа слиты и пересобраны в один rank-32 адаптер через SVD.
- 🙅♂ Не доказательство безопасности: проверка только на синтетических багах из тех же 15 классов.
😎 Пример
Запуск через vLLM с LoRA:
from vllm import LLM, SamplingParams
from vllm.lora.request import LoRARequest
llm = LLM(model='Qwen/Qwen3-4B', enable_lora=True, max_lora_rank=32)
out = llm.chat([{'role': 'user', 'content': prompt}],
SamplingParams(temperature=0.8, max_tokens=1024),
lora_request=LoRARequest('repair', 1, '/path/to/adapter'),
chat_template_kwargs={'enable_thinking': False})
Подробнее
На 116 held-out багах × 8 фиксов: pass@1 0.509, pass@8 0.897 у этого адаптера против 0.247/0.371 у базовой Qwen3-4B.Проверка in-distribution: те же синтетические 15 классов багов; реальные CVE не тестировались.
«Исправлено» = trigger-вход чист, 2–4 обычных входа дают правильный вывод; это не доказательство обработки всех атак.
Код модели запускайте только в sandbox.








Комментарии