RF-DETR (ICLR 2026, Roboflow + CMU) lands a quiet but consequential result: a weight-sharing NAS over a DETR backbone that sweeps thousands of accuracy-latency configurations without retraining, then hands you a Pareto curve for your dataset. The 2x-large variant crosses 60 AP on COCO, and on Roboflow100-VL it beats GroundingDINO (tiny) by 1.2 AP while running ~20× faster. The nano beats D-FINE nano by 5.3 AP at the same latency.
My applied read: this is the death knell for the reflex of fine-tuning a heavy open-vocabulary VLM (GroundingDINO, OWLv2) for every closed-set production task. In practice, once you know your 30 SKUs / defect classes / document regions, an open-vocab model is paying a massive latency tax for a flexibility you've already collapsed. RF-DETR lets you keep transformer-quality detection while choosing the latency bucket your hardware actually has.
When to reach for RF-DETR (and when not):
| Situation | Use RF-DETR | Stay with VLM detector |
|---|---|---|
| Fixed taxonomy, ≥ a few hundred labels/class | ✅ | ❌ |
| Edge / Jetson / on-device, <30ms budget | ✅ (nano/small) | ❌ |
| Long-tail, classes added weekly by prompt | ❌ | ✅ |
| Zero-shot demo to a client | ❌ | ✅ |
| You need 60+ AP on COCO-like data | ✅ (2x-large) | usually ❌ |
The 4-step adoption I'd ship:
- Label 200–500 instances/class with the existing VLM as a pre-annotator; correct in Roboflow or CVAT.
- Fine-tune the RF-DETR base on the target set — one training run.
- Run the NAS sweep and pick the config that fits your p99 latency budget on the actual target device, not a desktop GPU.
- Export ONNX/TensorRT, freeze the config, and keep the VLM only as your cold-start labeller for the next class.
The trade-off is honest: you give up open-vocabulary inference and you inherit DETR's quirks around small objects and dense scenes. The win is that one fine-tune yields a whole latency menu — no more retraining three model sizes to negotiate with the hardware team.
The transferable rule: in production, specialise as soon as the taxonomy stops moving. Generality is a cost you keep paying every frame.
Paper + code: https://github.com/roboflow/rf-detr