Training facts
- Base:
Qwen/Qwen3-1.7B
- Framework: VERL 0.8.0 with asynchronous vLLM tool-agent rollouts
- Data: 12 deterministic training cases and 4 validation cases
- LoRA: rank 8, alpha 16, all linear projections
- Batch: 2 prompts × 2 rollouts
- Checkpoint: actor update and checkpoint save at global step 50
- Export: 392 LoRA tensors, 8,716,288 adapter parameters
- Load validation: real CUDA load and 12-token generation passed on RTX 4090
Important claim boundary
The step-50 actor, optimizer, RNG and data checkpoint were saved successfully.
The subsequent post-save FSDP-to-vLLM weight synchronization OOMed by 194 MiB on
the 24 GB GPU. The adapter therefore represents the saved step-50 actor, but the
run did not perform a separate final evaluation after that failure. This is an
engineering validation artifact, not a claim of production accuracy or medical
safety.
See export_manifest.json and load_validation.json for machine-readable evidence.
The complete implementation and failure diary are in
EvidenceAgent-MM.
Load
from peft import PeftModel
from transformers import AutoModelForCausalLM
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-1.7B")
model = PeftModel.from_pretrained(
base,
"jatshi/EvidenceAgent-MM-Qwen3-1.7B-Agentic-GRPO-v3",
)