Method
Text-only NF4 QLoRA supervised fine-tuning (r2-sft-001) followed by two TRL GRPO passes (r2-grpo-001, r2-grpo-002) using procedurally generated arithmetic prompts and an exact-integer reward. The merged weights are BF16 safetensors; the tested local runtime loads them with NF4 double quantization and BF16 compute.
Small local evaluation (not broad superiority)
Table with columns: Suite, Untouched Qwen3.5-9B, Omida R1 merged, Omida R2 merged| Suite | Untouched Qwen3.5-9B | Omida R1 merged | Omida R2 merged |
|---|
| Omida Operator Eval, 30 tasks | 29/30 | 29/30 | 27/30 |
| Fixed GSM8K test subset, 30 tasks | 20/30 | 22/30 | 27/30 |
| Held-out xLAM exact JSON calls, 100 tasks | 68/100 | 67/100 | 79/100 |
| Generated exact arithmetic, 64 tasks | 59/64 | not run | 51/64 |
R2 shows promising gains over the base model on the measured GSM8K subset and held-out exact JSON tool-call set. The tool-call evaluation measures serialization and argument correctness, rather than runtime tool execution. These evaluations are small and task-specific: operator completion and generated arithmetic scores are lower than the base model, and broader coding, agentic, and hallucination-rate improvements have not yet been established.
Local use
From the repository root, use the included NF4 inference config:
.venv\Scripts\python.exe inference\run_omida.py --config inference\r2_config.json
Training configs, adapters, checkpoints, evaluation outputs, and reproducibility logs are retained in the repository under configs/, runs/, and eval/omida-r2/. See reports/FINAL_REPORT.md for complete lineage and limitations.