Qwen3-Codexine
Qwen3-8B с RLVR для короткого Python-кода
Это Qwen3-8B, дообученная в два этапа: SFT на 15k синтетических код-трейсах (багфикс, доработка, кодогенерация; thinking + tool-calling), затем GRPO с верифицируемой наградой (RLVR) на задачах со скрытыми stdin→stdout тестами. Модель учили отвечать коротко, без длинных reasoning-цепочек, и выдавать код одним python-блоком.
👀 Ключевые особенности
- 👀 Два этапа: SFT на 15k трейсов, затем GRPO/RLVR на 997 gold-верифицированных задачах.
- 💪 Награда в RLVR: прохождение скрытых тестов в песочнице, частичный pass rate, бонус за полное решение и format reward.
- 🐾 Формат
/no_think: RL шёл на коротких ответах 70–600 токенов; рекомендация — системный промпт на один python-блок. - 💸 Пилот 30 шагов: reward MA5 вырос с +0.09 до +0.52; полный ран — на RTX PRO 6000.
👉 Пример
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained('voperl/Qwen3-Codexine', torch_dtype='auto', device_map='auto')
tok = AutoTokenizer.from_pretrained('voperl/Qwen3-Codexine')
messages = [{'role': 'system', 'content': 'Ты — Python-разработчик. Дай код одним блоком.'}, {'role': 'user', 'content': 'задача\n\n/no_think'}]
inputs = tok.apply_chat_template(messages, return_tensors='pt', add_generation_prompt=True).to(model.device)
out = model.generate(inputs, max_new_tokens=2048, temperature=0.0, do_sample=False)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
Подробнее
Бенчмарки: пилот GRPO — reward MA5 +0.09 → +0.52 за 30 шагов.Железо: пилот на RTX L4, полный ран на RTX PRO 6000 (Blackwell).
Ограничения: RLVR учил stdin/stdout-задачи; на tool-calling и код-ревью поведение может сместиться; награда по тестам, а не по корректности рассуждений.
Воспроизведение: Unsloth + TRL GRPOTrainer, vLLM, LoRA r=16.








Комментарии