Xiaomi published the reward fix that keeps GRPO learning
Two mechanisms sit under the cost-capability collapse: a reward that multiplies pass/fail by LLM-written checklists, and a KV cache small enough that agent cost now turns on cache hits, not output.
GRPO (group-relative policy optimization) normalizes rewards within each group of attempts. When all 16 rollouts for a prompt pass, a binary pass/fail reward scores every attempt identically. Each attempt then carries zero advantage and contributes no gradient, though the compute was still spent. Xiaomi multiplies the test result (0 or 1) by two LLM-written checklist scores. On prompts the model rarely passes, it swaps in a listwise grader that ranks the few passing attempts. Both changes restore within-group reward variance at the points where pass/fail goes flat.
The ablation is the part to copy. Trained without the quality grader, the policy added code the task never requested, let errors pass silently, and skimped on input validation until the tests went green. That pattern is what a reward checking only "did it pass" tends to produce. With the grader, diffs came out smaller and more focused. Xiaomi did not publish diff-size distributions or human-acceptance rates, so the size of the effect is unknown. The LLM checklist and grader are also optimization targets, and a 30-step run may be too short for the policy to learn to exploit them.
The economics are now a published recipe. Xiaomi reports $2.6M of RL compute for the Pro model: roughly 25,088 rollouts per step across 30 steps and about 123 hours, or near $3.45 per rollout. It also released 7,000-plus training environments along with the code. After the environments were scrubbed and network access was blocked, confirmed leaked-answer attempts stayed below 2%. A team can now price frontier-scale RL as a line item and reproduce part of it.
Where the serving cost actually lives
Inference is a separate bill, and context storage now sets agent cost. DeepSeek-V4.1-Flash gets to 890 bytes of KV cache per token, about 4x smaller than its predecessor and 437x smaller than its V1 line. It gets there by sharing an encoder-decoder cache (only 4 of 40 layers compute a full one), top-512 sparse selection, and 4-bit cache storage. Per-output-token compute rises only 25% as input grows from 4K to 1M tokens.
An agent making 40 tool calls over a growing transcript reads roughly 98 input tokens per output token (a 98:1 ratio). With an append-only transcript, most of that input is cached. Cached input runs around 2% of the uncached rate, which cuts input cost about 15x. Gemini 4 Argon's 95% cached-input discount points the same direction. At those prices, the cache-hit rate moves the bill more than switching models within a tier. Capability benchmarks do not measure that variable. Every context rewrite, mid-run state compression included, invalidates the cached prefix.
At identical capability scores, the open-weight edge is in dollars. Those dollars depend on reward variance in training and cache hits in serving. Cache hits are the lever a team can move first, and they are worth about 15x on input cost.
What to do
Log the fraction of GRPO prompt groups with zero reward variance this sprint, then A/B a pass(0/1)×checklist_A×checklist_B reward against pure pass/fail on your code-RL pipeline.
Add a judge-hacking audit: have a held-out human panel blind-review the top-ranked rollouts every N steps and track the grader-versus-human score gap.
Instrument input, cached-input and output tokens per tool call, make transcripts append-only, and keep system prompts and tool schemas byte-stable to protect cache-hit rate.