Meta FAIR, alongside researchers from the University of Oxford and University College London, has released AI Research Preference Models (RPMs) to sort machine learning experiments before they consume GPU time. The team argues that while generating ideas costs little, verifying them is expensive. Training a single candidate can take hours or days. Agents currently propose far more candidates than they can afford to run, making the selection process the critical bottleneck for research progress.
In this article
The new system ranks unexecuted candidates and selects one for execution. The researchers found that language models cannot reliably predict absolute scores or execution outcomes, so RPMs avoid forecasting metrics entirely.
Is the system deployable? Partially. RPMs rely on frozen, pretrained large language models with no fine-tuning required. The underlying scaffold, AIRA-dojo, and the benchmark, AIRS-Bench, are open source. The backbone model, Qwen3.6-27B, is available with open weights.
Where the RPM sits in the agent loop
AIRA-dojo functions as an evolutionary tree search. It uses greedy parent selection and Draft, Improve, and Debug operators to return the node with the highest validation score. The RPM intervenes only at the child creation stage. Instead of generating one child and executing it, the agent applies the operator 15 times in parallel to create 15 unexecuted candidates. These candidates then face off in a pairwise knockout tournament. Only the winner proceeds to execution. Each comparison is grounded in context nodes collected by a breadth-first search walk of the explored tree, displaying the validation score each node obtained.
Two variants, two compute budgets
Inference-only RPM: This version acts as a judge over candidate plans, code, and search history using a large language model. The prompt was optimized with MIPROv2 from DSPy, converging on a principal-investigator rubric that tolerates fixable bugs, rewards extensibility, and penalizes redundant directions. Offline accuracy ranges from 57.7% to 59.0%.
Agentic RPM: This variant combines the same judge with a sandbox that clones the agent’s environment, including a single H200 GPU. Tools available include python, bash, and submit_solution. It runs small-scale pilot experiments, then a feedback model either proposes the most informative next experiment or ends the loop. Two design choices carry weight: the remaining budget is deliberately overstated (2,700 seconds reported against a real 300 seconds) so the agent does not stop early, and pilots are capped at 30 with a 60-second threshold. Pilot time competes with the agent’s own clock, so the agentic selector runs only on Draft and Improve steps; Debug reverts to random selection.
Results on AIRS-Bench
Setup involved 20 public text and tabular tasks, with 24 hours of time on a single H200 GPU per task. The test used 10 seeds and Qwen3.6-27B as the backbone for both the operators and the RPM, meaning the gain comes from the selection layer rather than a stronger judge.
| Child selection | Avg. normalized score |
|---|---|
| No RPM (random pick) | 0.684 |
| Inference-only RPM | 0.711 |
| Agentic RPM | 0.729 |
| Validation oracle (ceiling) | 0.748 |
| Test oracle (ceiling) | 0.759 |
The probability of improvement over No-RPM is 0.5923 and 0.5913, with 95% CI lower bounds at 0.5066 and 0.5018.
Efficiency is the more practical result. Inference-only reaches the baseline’s final 0.684 score in 14.88 hours (1.61× faster). The agentic version reaches it in 15.50 hours (1.55× faster). Self-hosted inference adds 0.660 hours per run; adjusting for this still gives a score of 0.708 at 23.34 hours.
Two new state-of-the-art results were reported. The Agentic RPM achieved WinoGrande 94.1% against a prior agentic state-of-the-art of 90.4% from AIRA₂. The inference-only version reached SVAMP 95.7% against a prior human state-of-the-art of 94.2%.
What it means
For researchers running automated experiments, the change is practical rather than theoretical. The agent no longer wastes compute on random guesses. It generates a batch of variations, compares them using a frozen model, and executes only the winner. This cuts the time needed to reach a target performance level by roughly one-third, allowing teams to iterate faster without needing new hardware.




