Learning MegaGem, from self-play to price discovery Jane Street's three-player auction game MegaGem was used to train a 4B specialist model, with SFT raising Qwen3-4B-Instruct's benchmark rating from 551 to 1158, ahead of Claude Sonnet 4.6, Claude Opus 4.8, and GPT-5.5, and distillation from an analytic expert further raising it to 1275, the highest rating in the benchmark and roughly equal with Gemini 3.1 Pro. The released weights are available on Hugging Face, and the repository is on GitHub. The game combines elements of Figgie, Splendor, and poker, and the research explores whether SFT, self-play, or distillation produces robust sequential decisions across opponents. We study MegaGem, a three-player, general-sum, imperfect-information auction game developed by Jane Street, and train a 4B specialist to play it. SFT raises Qwen3-4B-Instruct’s benchmark rating from 551 to 1158, ahead of Claude Sonnet 4.6, Claude Opus 4.8, and GPT-5.5. Distilling an analytic expert raises it further to 1275, the highest rating in the benchmark and roughly equal with Gemini 3.1 Pro. Our rollout infrastructure runs multi-agent evaluation, self-play, and data generation. Although relative-outcome self-play yields no measured transferable improvement, the resulting self-play data support a market model and a distributional bidder whose decisions we distill into our final model. The released weights are available on Hugging Face: the SFT checkpoint https://huggingface.co/djdumpling/qwen3-4b-instruct-megagem-sft-step1200-v2 and the final distilled checkpoint https://huggingface.co/djdumpling/qwen3-4b-instruct-megagem-distill-para . The repository can be found here https://github.com/djdumpling/MegagemBench . This blog would not be possible without the ongoing support of many people. I’m especially grateful to Johannes Hagemann https://x.com/johannes hage?lang=en , Sebastian Müller https://x.com/omouamoua , Christian Reetz https://x.com/creet z , and Peyton Walters https://x.com/peywalt for their generous provisioning of credits for compute and access to model APIs. Additionally, thank you to early readers for providing invaluable feedback, including Sebastian Müller, Varun Srivastava, Nan Jiang, Austin Feng, Stephen Xia, Aaron Yu, and Lauren Shen. Reading note: To keep the main argument moving, several derivations, diagnostics, and examples are collapsed by default. Feel free to read linearly or ignore collapsed sections : . The rules in brief: three players each start with 35 coins and a secret hand of five gems. Each round, the top auction card is flipped and all three players submit sealed bids simultaneously; the highest bid wins, with ties broken by turn order. The winner takes the auction’s payoff, then reveals one gem from their hand to a public Value Display. A public Value Chart maps that display to everyone’s gem values. The final score is $$ \text{final score}=\text{coins left}+\text{collection value}+\text{mission rewards}-\text{loan repayments}+\text{investment returns} $$The game ends when no treasure gems remain to be auctioned, typically after ~15 rounds. At its core, MegaGem combines three familiar strategic games. In Figgie https://www.figgie.com/ , each player observes only part of the supply and must infer fair value from what others are willing to pay and what is revealed over time. In Splendor https://en.wikipedia.org/wiki/Splendor game , resources matter in combinations: public objectives create races, and players balance improving their own position, preserving flexibility, and blocking an opponent. In poker , hidden holdings and public action histories invite opponent modeling, while position and stack sizes determine which late-game outcomes can still be forced. Furthermore, MegaGem puts all three inside repeated sealed-bid auctions, where every bid trades the chance to win the current lot against the value of keeping cash available. That combination can make MegaGem useful as a benchmark, because it gives post-training and multi-agent researchers a compact way to study whether SFT, self-play, or distillation produces robust sequential decisions across opponents, while giving agent builders a test of state tracking and reliable structured action. To understand the game better, let’s walk through six decisions from different points in a game. The 30-gem deck contains six gems of each color, and the terminal Value Display is the 15 gems dealt into players’ hands. From your five-card hand and the two face-up auction gems, 23 gems remain unseen and the opponents’ ten hand cards are drawn from them. Let $N R$ and $N Y$ be the terminal display counts for Red and Yellow, and $V$ the corresponding value dictated by the value chart A, which pays 4 points per displayed gem up to 5. Then, the EV is $$ \begin{aligned} \mathbb E N R &= 2 + 10\left \frac{3}{23}\right =\frac{76}{23} \implies \mathbb E V R = 4\mathbb E N R =\frac{304}{23}\approx13.22\\ \mathbb E N Y &= 10\left \frac{5}{23}\right =\frac{50}{23} \implies \mathbb E V Y = 4\mathbb E N Y =\frac{200}{23}\approx8.70\\ \mathbb E V {\mathrm{lot}} &= \mathbb E V R +\mathbb E V Y =\frac{504}{23}\approx21.91 \end{aligned} $$ Winning the Blue–Green auction changes your collection to Red–Red–Blue–Blue–Green, completing two of the missions for 25 points total. Factoring in the blue and green gems from the lot and their values on the display, we know that winning this lot is worth at least $25+2\cdot4+2\cdot4=41$. Because neither Alice nor Bob has more than 12 coins and you are first in tiebreak order, you can win the auction for 12 and earn at least $41-12=29$ in positive EV. Their lack of liquidity lets you take the auction much more cheaply. Because you are last in tiebreak order, matching Alice’s bid is a losing action: to clear a predicted bid of $b$, you must bid $b+1$. Alice can bid at most 12 and Bob at most 6, so 13 is the minimum bid to guarantee the lot. However, this increase must still be weighed against the gem’s value and the option value of keeping that coin for the remaining auctions; it may make the lot no longer worth bidding on. Both cards enter the Value Display at game end, so revealing Red or Purple does not change final gem values, but it changes what other players are willing to pay before then . Revealing Purple moves its public count from 2 to 3 and its current quote from 8 to 12. Bob already owns Yellow gems, so another Purple would also complete the 5-point Pendant mission. This reveal raises his visible reservation value for a future Purple from roughly $8+5=13$ to $12+5=17$. That can be useful if the goal is to induce Bob to spend his six coins, but it also makes a strategically important Purple harder to buy or deny, especially when you have only two coins and act last in ties. Revealing Red has the opposite advantage. Moving Red’s quote from 4 to 8 has a null effect on public perception because there are no more red gems to be auctioned off all 6 are either in a collection or will be in the value display . It also keeps Purple quoted at 8 while your hidden Purple guarantees that its terminal supply is higher than the table can see. This usually makes Purple easier to snipe later for example, to block Bob’s pendant . Revealing Red does advertise more of your lead making you a bigger threat to other players who want to block you , but its direct price impact is confined to a market that has already closed. The 20 borrowed coins are matched by a 20-point repayment at scoring, so the principal itself creates no terminal value. Winning the loan for 10 changes your available cash to $C {\mathrm{after}}=2+20-10=12$, but carrying those coins to the end would leave you 10 points worse off. For example, if you win and have 14 coins, you can guarantee winning the last two auctions by first paying 7 beating Bob in the tiebreak and paying 7 again since you just won, you are last in the tiebreak and need to one-up Bob’s liquidity of 6 . Of the five cards still hidden, two are Purple, which puts a Purple gem’s expected value at $0.1 12 +0.6 16 +0.3 20 =16.8$. With 2 coins, under rational play by your opponents, you would never be able to win the last two auctions. But for the reasons explained above, the loan gives you an out to win these last two, and because the EV suggests a positive trade, it is worth winning the loan auction. Before the final lot, terminal-value accounting puts you at 77, Alice at 75, and Bob at 63. The Purple gem is worth 16 on Chart A; it would also complete Bob’s 5-point Pendant mission, but Bob has only 1 coin. The score branches are: $$ \begin{aligned} S {\mathrm{Bob}} 1 &= 63+16+5-1=83\\ S {\mathrm{Alice}} 4 &= 75+16-4=87\\ S {\mathrm{You}} 5 &= 77+16-5=88 \end{aligned} $$Your tie priority beats Bob, so a bid of 1 covers his branch. Alice, however, acts before you so 5 is the smallest bid that covers both stacks. Any bid from 6 through 12 buys the same gem while needlessly giving away score. The asset is fundamentally worth 16, but the correct price is 5 because the opponents’ remaining cash sets the clearing threshold. Several well-known RL systems use self-play: AlphaGo https://www.nature.com/articles/nature16961 in Go, AlphaStar https://www.nature.com/articles/s41586-019-1724-z in StarCraft II, and Pluribus https://doi.org/10.1126/science.aay2400 in poker. The broad recipe is to train an agent against copies or historical versions of itself known as fictitious self-play and reward successful play. Opponents therefore co-evolve with the learner, creating an automatic curriculum without a fixed external teacher. Self-play also works outside two-player zero-sum 2p0s games, but it’s cleanest in that setting. Unfortunately, MegaGem removes those conveniences one by one. Another complication is that the policy to be trained is an LLM, not a policy head that emits one move. Consider AlphaGo again, which uses search with policy and value networks to select a single legal board action. Now contrast this with temperature sampling in LLMs that operates across an autoregressive response, so response entropy accumulates very quickly. Now a game-level reward must assign credit through a long natural-language trajectory, and many distinct responses can collapse to the same parsed bid. Chess, Go, and heads-up poker are standard examples. One player’s gain is the other’s loss, so a value function $V s $ can describe the expected outcome from a position for either player, with the sign reversed for the opponent. This is the same object visualized by the evaluation bar beside an online chess board. Under pure opposition, you must assume the opponent chooses whatever hurts you most. You therefore choose the strategy with the best worst case, the maximin. Your opponent does the converse, minimizing the maximum value you can obtain, the minimax. Von Neumann’s minimax theorem https://en.wikipedia.org/wiki/Minimax theorem says these values are equal. If neither player can improve by deviating alone, the joint policy is in Nash equilibrium. In a 2p0s game, its equilibrium strategies are also minimax. This supplies a clean progress measure: exploitability, or how much a worst-case opponent could gain by deviating. A lower exploitability means the strategy is becoming harder for any opponent to exploit. Ordinary policy-gradient self-play can still cycle think of rock-paper-scissors in the latest policy. Practical systems therefore often average policies or train with fictitious self-play, exploiters, and wider populations, and these mechanisms can stop the fresh policy from forgetting old weaknesses. Those conveniences disappear in five places: General-sum games remove the requirement that the players’ payoffs add to a constant in every outcome. If you’re interested in the cooperative side of multi-agent RL, Arturo wrote a great hands-on account of training LLM agents to play Hanabi https://nphard.io/2026/02/23/hanabi.html , including the communication conventions that emerge under self-play. General-sum rewards give each player a different value for the same position. Multiple equilibria may exist, so different conventions or tradeoffs are common. MegaGem adds more players. Score changes are not constrained to sum to zero, and an action can redistribute advantage among players in ways that barely affect the actor. A losing player can decide which leader wins. Two players can pressure the leader without sharing a formal team reward. A single optimal bid also breaks down because best play is contingent on opponents. Against a player who always bids 0, bidding 1 wins cheaply; against a rational player, the same bid loses. If a kingmaking action barely changes the acting player’s own reward, a policy-gradient update receives almost no direct signal for which rival benefits. We can measure deviation gains around a specified joint policy. No unique opponent-independent strategy supplies a universal reference point. In a general-sum game, the word “improvement” must name an opponent distribution, equilibrium-selection rule, or population game. The self-play reward describes the population that produced it. First, deals are stochastic. A strong hand can raise terminal score without reflecting a better decision. Same-deal comparisons remove much of this variance. Second, MegaGem has imperfect information. A player observes an information state consisting of its private hand and the public history; the hidden state remains unknown. Formally, the observation defines a set of hidden worlds still consistent with what the player has seen. New bids and reveals update the player’s belief over those worlds. A poker four-bet leaves the cards hidden while shifting the belief toward stronger hands. This makes MegaGem a partially observable Markov decision process POMDP because the relevant value depends on the full belief state, not just the current board. The effective state space is therefore much larger and harder to estimate over. Because bids are simultaneous, action selection also requires a distribution over clearing prices. For a candidate bid $b$, we need $P \text{win}\mid b $, the probability that the bid beats both opponents. Every bid trades the surplus retained after paying against the probability of winning. Also, terminal gem values are fixed by the initial deal but revealed endogenously through play. Every private gem eventually enters the public Value Display, so the final display does not change. The order of reveals changes what each player believes before the remaining auctions. A reveal can therefore move perceived value even when it does not move terminal value. For the common-value component of a lot, winning also carries information. If both opponents decline to pay your price, you may have overvalued the asset, the auction version of the winner’s curse. Private mission value weakens that inference because the same lot can rationally be worth different amounts to different seats. Using Prime Intellect’s verifiers https://github.com/PrimeIntellect-ai/verifiers , we build the RL environment https://app.primeintellect.ai/dashboard/environments/djdumpling/megagem around LLM clients playing one another. The implementation described here uses the legacy v0 API, but the newer, v1 API natively supports multi-agent RL environments such as this one To reduce context cost, a game runs as chained single-turn interactions. On every round, each player receives all information available to that seat, including the public state, their private hand, and the public history of the last five auctions to maintain a sort of multi-turnness . The model returns a structured response and the environment parses the bid, resolves the winner, and prompts that player again if a gem reveal is required. Each game emits a trajectory containing the prompts, responses, parse and legality telemetry, bids, public state, final scores, and the seed needed to reconstruct the deal. The environment emits complete game trajectories without defining the RL reward. A separate offline scorer reconstructs per-turn credit, and the update masks every opponent token so only the trainable seat receives gradients. Experimental design determines which triples play, on which deals, and in which seats. Estimation derives Elo-scaled Plackett-Luce ratings and confidence intervals. The benchmark uses three measurements that should not be conflated: Ratings come from a balanced 624-game schedule fitted with a lightly regularized Plackett-Luce model, with 95% confidence intervals from bootstrapped deal clusters. To compare two models A and B directly, we simply determine how often A beats B in games where both appear, which removes more deck variance because it is a paired statistic. For balanced rating estimation, we use a Steiner triple system, which places every pair of models in exactly one triplet. With 13 models, this produces 26 triplets, each playing 8 seeds with the models rotating through all 3 starting hands: 624 games, or 144 games per model. We then fit the resulting three-player rankings with a lightly regularized Plackett-Luce model. Given a strict finish $i\succ j\succ k$ and positive rating $\gamma$, the Plackett-Luce model assigns this ordering probability $$ P i\succ j\succ k =\frac{\gamma i}{\gamma i+\gamma j+\gamma k}\cdot \frac{\gamma j}{\gamma j+\gamma k} $$ MM iteration https://projecteuclid.org/journals/annals-of-statistics/volume-32/issue-1/MM-algorithms-for-generalized-Bradley-Terry-models/10.1214/aos/1079120141.full fits a lightly regularized Plackett-Luce model. The model factors each final ranking into rank selections. In game $g$, let $Z {g,r}$ be the summed strength of the models still eligible at ranking position $r$; for the ordering above, $Z {g,1}=\gamma i+\gamma j+\gamma k$ and $Z {g,2}=\gamma j+\gamma k$, the two denominators in $P$. We add 0.1 virtual wins and losses against a strength-1 anchor to stabilize finite samples. Let $W i = 0.1 + \ \{\text{games in which } i \text{ does not finish last}\}$. Initialize $\gamma i=1$ and repeat until convergence: Finally, take $\theta i = \ln\gamma i$, center them on the field mean, and convert to the conventional Elo scale at $\frac{400}{\ln 10} \approx 173.7$ points per logit. For example, a rating of 1275 is 275 points above the fitted center. To quantify uncertainty, we bootstrap matchup-on-deck clusters , each of which contains the three seat rotations of one triple on one deal. Resampling whole clusters preserves the correlation introduced by a shared deck. We report 95% confidence intervals. The observed cyclic component is indistinguishable from finite-sample noise. No statistically resolved triple forms a directed cycle, and the fitted rankings are stable. The base Qwen3-4B-Instruct is sufficiently coherent to parse but strategically awful. It spends almost all its coins, completes few missions, and hallucinates a gem outside its private hand on roughly 2–5% of reveal turns. We collect teacher games from a 70/30 mixture of Gemini 3 Flash and Claude Opus 4.6. Flash makes it affordable to collect broad coverage, while Opus contributes longer rationales. | teacher | full-field mean score | self-play mean score | visible rationale length | |---|---|---|---| | Gemini 3 Pro | 82.5 | 68.7 -14.3 | 207 words | | Gemini 3 Flash | 80.4 | 69.4 -11.0 | 230 words | | Claude Opus 4.5 | 77.3 | 73.1 -4.2 | 327 words | | Claude Opus 4.6 | — | — | ≈421 words | We choose the teachers on two criteria: For production collection, we keep Gemini 3 Flash and replace the screened Claude Opus 4.5 with its newer Claude Opus 4.6 successor. We choose the successor based on model family; the screen itself tests only Claude Opus 4.5. The training set contains 6,153 examples from 150 teacher games, with a further 10 games held out for validation. Keeping only the winner’s traces would waste data and select the luckiest copy of an otherwise identical policy. It would also remove the lower liquidity and slower tempo states that Qwen3-4B-Instruct needs to handle. So instead, we consider the top two models’ traces from each game while removing unparseable or illegal turns only 10 training turns fail those validity gates . The final split contains: | split | teacher games | examples | bid turns | reveal turns | |---|---|---|---|---| | train | 150 | 6,153 | 4,990 | 1,163 | | validation | 10 | 420 | 342 | 78 | We train for 1,200 optimizer steps $\sim 3$ epochs , and retain merged checkpoints from steps 1,000 and 1,200. Despite the growing train–validation gap, the loss curve shows no sign of overfitting over the evaluated range. On a 6-model validation panel, step 1,200 finishes first in 64.7% of games, including 50% of those against two Claude Opus 4.6 copies. We select it. Checkpoint selection uses a fixed 6-model panel on the 10 validation deals. Qwen faces two copies of each opponent and occupies all three seats, for 180 panel games, plus 10 self-play games. | checkpoint | panel first-place rate | vs two Claude Opus 4.6 copies | parseable | illegal reveal | self-play mean score | |---|---|---|---|---|---| | base Instruct | 2.8% | 0.0% | 99.6% | 5.3% | 59.77 | | SFT step 1,000 | 61.7% | 16.7% | 100% | 0.9% | 64.27 | | SFT step 1,200 | 64.7% | 50.0% | 100% | 0% | 61.63 | The self-play mean is only a sanity check, since all three copies co-evolve, but it does show that the model hasn’t degenerated. Across a reconstructed audit set of 7 mainline GRPO configurations, the two runs played against the SFT checkpoint remained flat. Several others improve against a fixed scripted heuristic, demonstrating opponent-specific learning. Because five configurations did not record the same stationary anchor, those gains don’t measure transfer. Because first-place rate among three evolving, co-adapting copies remains approximately $\frac1{3}$ regardless of how much the policy evolves, population-based reward isn’t sufficient. Instead, we need an anchor, and the initial SFT policy is the perfect choice. The evidence uses two instruments, which should not be conflated: The figure separates these two measurements. Several policies learn to exploit the scripted heuristic, but neither directly anchored run improves against the frozen SFT policy. None of these results rules out a richer league design. In the directly anchored SFT-anchor mixed-pool run and the later weak-KL ablation, opponent mixing and weaker KL likewise fail to produce a positive anchor trend. The configurations use the same DAPO-style clipped objective; the labels below describe what changed in the training pool or schedule. Snapshots are lagged copies of the learner, and SFT anchor is the frozen step-0 policy. The two snapshots-plus-Flash rows are separate replications of the same basic pool. The frontier-API pool substitutes Gemini 3.1 Pro, Claude Opus 4.6, and Claude Sonnet 4.5; the 400-step run doubles the usual training horizon; seat rotation moves the learner through all three seats; and the final mixed pool combines the SFT anchor, lagged snapshots, and a decaying scripted-heuristic share. The figure abbreviates that final pool as “heterogeneous.” | GRPO configuration | scripted-heuristic $\Delta$ own score vs SFT 95% CI | |---|---| | snapshots + Flash replication 1 | +4.64 2.68, 6.57 | | snapshots only 400 steps | +16.48 14.26, 18.93 | | snapshots only replication | +4.36 2.89, 5.88 | | snapshots only + seat rotation | +4.04 −3.88, 11.88 | | snapshots + Pro/Opus/Sonnet | −2.07 −3.89, −0.31 | | snapshots + Flash replication 2 | −1.16 −3.22, 0.89 | | SFT anchor + snapshots + heuristic | +0.65 −1.14, 2.43 | The heuristic contrasts use 60 matched seed groups with eight samples each, except the 24-game seat-rotation diagnostic. The optimizer can learn a narrow exploit. In each run, one seat is trainable while the other two come from some mixture of frozen SFT, lagged snapshots, a scripted heuristic, and external models. For each seed, seat assignment, and opponent table, the trainable policy plays the same deal $K=8$ times with different sampled responses. Each fresh rollout batch supports six optimizer steps. The terminal reward is a squashed competitive margin: each player’s score minus the average of the other two plus a bonus for finishing first. Illegal actions are penalized, and a lightly weighted shaping channel assigns intermediate credit between rounds. For player $i$, playing against $j$ and $k$, define competitive margin as $m i=s i-\frac{s j+s k}{2}$. The terminal reward is $$ R i^{\text{terminal}} =\tanh\left \frac{m i}{19.6}\right +0.1 \cdot \mathbf 1 i\text{ wins} $$We calibrate the scale 19.6 so the median absolute margin maps to 0.5 via $\tanh\left \frac{10.75}{19.6}\right \approx 0.5$. This compresses extreme wins and losses while preserving their order via monotonicity. We add a shaping channel weighted by 0.01 that assigns intermediate credit from reconstructed public-score changes between rounds. Then, a terminal correction aligns its cumulative accounting with the final margin. Illegal actions receive $-0.5$. Let $r u$ denote the terminal, legality, or shaping reward assigned at turn $u$. For each trainable turn $q$, define the return $G q=\sum {u\ge q}r u$ and subtract an exponential-moving-average baseline $b q$ indexed by game phase and seat role. Let $\mathcal G$ contain all trainable turns from the eight sibling games. Then, we define the advantage here as $$ A q=\frac{ G q-b q - \operatorname{mean} {v\in\mathcal G} G v-b v } {\operatorname{std} {v\in\mathcal G} G v-b v } $$Only turns from the trainable seat receive gradients. We sample at temperature 1.0 and top-$p=0.95$, then update a rank-32 LoRA with learning rate $10^{-5}$ and KL coefficient 0.01. The SFT-anchor mixed-pool run completes 100 optimizer steps with 192 games per rollout generation. Taken together, the diagnostics below rule out a dead adapter, broken reward ordering, or format collapse as explanations for the null effect. | diagnostic | SFT-anchor mixed-pool run | |---|---| | mean KL from reference | 0.0037 | | maximum KL | 0.0061 | | mean PPO ratio clip fraction | 0.0012 | | advantage variance | 0.81 | | zero-standard-deviation groups | 0 | | advantage↔terminal-margin Spearman | 0.902 | | training parse failures | 5 / 66,649 | | final-eval illegal actions | 0 / 480 | A second problem is assigning those wins to individual decisions. GRPO is easy to engineer in this setup. Its statistical fit is weak for this task. It avoids training a separate critic, yet this setup is far from the typical single-turn GRPO task. A game lasts roughly 15–25 rounds of interleaved bids, reveals, loans, and investments. Most reward arrives at the end, so an early bid and a late reveal can inherit nearly the same verdict even though either may have changed every state that follows. The same-deal comparison removes hand luck. It leaves within-trajectory credit unresolved. We don’t claim that GRPO cannot work on long-horizon or multi-turn tasks. Dense verifiable rewards, process supervision, much larger groups, or environments in which one decision dominates the outcome can still make trajectory-level comparison useful. For each fixed board $b$, let $\bar Y b$ and $s b^2$ be the sample mean and within-board variance of its rollout returns. Because the observed variance of board means includes finite-sample noise, we estimate the true between-board variance as $$ \hat\sigma^2 {\text{board}} =\max\left 0, \operatorname{Var} b \bar Y b -\frac{\mathbb E b s b^2 }{K} \right $$with within-board variance $\hat\sigma^2 {\text{trajectory}}=\mathbb E b s b^2 $. In the probe, 99.8% of the estimated variance lies among trajectories from the same board, while only 0.2% lies between corrected board means. The within-board term contains both action effects and continuation noise; it isn’t a clean action signal. A state-value critic must learn the much smaller between-board component from labels dominated by within-board variation. Under relative-margin self-play, all three copies benefit from the same favorable deal, which suppresses most common board advantage. The fixed-heuristic probe allows repeated outcomes to recover more of the position’s value. The probe argues against learning $V I $ from these particular relative-margin labels but doesn’t rule out state values in general. However, an action-conditioned value $Q I,a $ remains viable because it could still distinguish bids within the same state. The first plausible fix is a piKL https://arxiv.org/abs/2210.05492 -style target, inspired by Meta’s work on Diplomacy, a seven-player game outside the 2p0s setting. It builds a search distribution that favors bids with higher action value $Q I,a $ while paying a KL penalty for moving too far from the SFT policy. Here, $Q I,a $ means the expected outcome after taking bid $a$ from information state $I$ and playing the game to completion. We estimate $Q$ by simulation. The acting player cannot see the opponents’ hands or the undealt deck order, so we sample several worlds $w$: complete assignments of the hidden information that remain consistent with the player’s hand and the public history. In each world, we force candidate bid $a$, let the SFT continuation policy $\pi$ finish the game in the acting seat while policy $\omega$ controls the opponents, and read off the terminal score margin: Here, $\xi$ is the continuation of the game generated by $\pi$ and $\omega$. We score every candidate on the same sampled worlds to reduce variance. The estimate $Q$ still depends on $\omega$ because changing the continuation opponent can reorder bids even when $ I,a $ stays fixed. piKL combines these action values with sampled action frequencies $\hat\tau$ from the SFT policy, upweighting high-$Q$ bids while remaining KLed to the SFT policy: $$ \pi {\text{piKL}} a\mid I \;\propto\;\hat\tau a\mid I \,\exp\ \left \frac{Q I,a }{\lambda {\mathrm{KL}}}\right $$The temperature $\lambda {\mathrm{KL}}$ controls the strength of the anchor. As $\lambda {\mathrm{KL}}\to\infty$, the $Q$ tilt vanishes and the distribution returns to the SFT frequencies $\hat\tau$; as $\lambda {\mathrm{KL}}\to0$, it concentrates on the sampled candidate with the largest $Q I,a $. The $\lambda {\mathrm{KL}}=0$ arm in the table implements that limiting argmax directly. We label decisions with this $Q$, build piKL targets at several $\lambda {\mathrm{KL}}$ values, and distill them with LoRA SFT. Each candidate then occupies every seat against two frozen SFT copies over the same 120 games, 40 per seat. | $\lambda {\mathrm{KL}}$ | first-place rate | mean margin 95% CI | paired Δ margin vs $\lambda=\infty$ 95% CI | |---|---|---|---| | $\infty$ | 0.425 | +1.23 −2.21, 4.68 | — | | 1 | 0.417 | +2.73 −1.06, 6.51 | +1.49 −3.37, 6.35 | | 0.3 | 0.317 | −1.38 −4.72, 1.95 | −2.62 −7.12, 1.89 | | 0.1 | 0.292 | −1.79 −5.06, 1.48 | −3.02 −7.55, 1.51 | | 0 | 0.350 | −0.25 −3.64, 3.13 | −1.49 −6.37, 3.40 | Mean-margin arm intervals use the normal approximation; paired intervals use a $t$ interval over matched games. At 40 bid nodes with up to six candidates each, changing only the continuation opponent from self-play to base Qwen reduces median action-rank correlation with the self-play ordering from 1.0 to 0.43, while top-action agreement falls from 100% to 27.5%. The sign of each candidate’s advantage over the reference bid still agrees 72.5% of the time. The probe is too small, and the alternative opponent too weak, to establish the mechanism by itself. It does show that fine $Q$ rankings can depend strongly on the continuation policy. A second five-arm sweep replaces the self-play continuation with Gemini 3 Flash. Relative to its $\lambda=\infty$ control, the $\lambda=1$ and argmax contrasts are +6.10 0.38, 11.82 and +5.81 0.70, 10.93 . These comparisons are exploratory, uncorrected for multiplicity, and unreplicated. On a separate 43-node offline proxy, aggregating $Q$ over five fixed continuation types also never beats the single-self-play-$Q$ baseline. This diagnostic uses an offline proxy and provides no live policy comparison. GRPO’s group return cannot identify which bid changes the outcome. PPO could instead update from an action-specific advantage supplied by a learned critic. Before paying for an actor update, we test whether such a critic can rank candidate bids reliably enough to be useful. The actor produces a bid using $I$ before the opponents’ bids are known. Once the auction resolves, those bids become public. During training, a critic can use this newly revealed information even though the actor never receives it at inference centralized training with decentralized execution . We can fix the observed opponent bids $\mathbf b {-i}^{\mathrm{obs}}$ to determine what happens when only our bid changes. $$ Q^{\mathrm{obs}} {\pi,\omega} I,a =Q {\pi,\omega}\ \left I,a\mid\mathbf b {-i}=\mathbf b {-i}^{\mathrm{obs}} \right $$Most raw $Q$ variation reflects whether the state itself is favorable. To isolate differences among bids, we center each target over the retained candidate set $C I $: $$ \widetilde Q C I,a =Q^{\mathrm{obs}} {\pi,\omega} I,a -\frac{1}{|C I |}\sum {a'\in C I } Q^{\mathrm{obs}} {\pi,\omega} I,a' $$This target centers candidates with equal weight. A PPO update would instead require an advantage weighted by the actor policy. At each treasure-bid state reached by the actor, we sample $K=16$ bids and compress them to 6 diverse candidates. The selection retains the played bid while approximately preserving both the policy’s sampled mass and the numerical range of bids. We score every candidate on the same sampled worlds and random seeds, and hold the opponents’ observed bids fixed. After the forced bid, a deterministic frozen SFT policy completes the game. The labels therefore apply to that frozen continuation policy; an updated PPO actor would induce a different distribution. For 32 games, we evaluate each candidate with $M=64$ hidden-world samples to get 379 bid states and ~1.5k candidate rows. Because smaller estimates reuse prefixes of the same 64 worlds, we can compare 4, 8, 16, or 32 worlds without further rollouts. “Pair-sign agreement” measures whether actions separated by a $Q$ gap of at least 0.05 and 95% paired sign confidence retain their ordering while regret measures how much reference $Q$ is lost by selecting the lower-sample-budget argmax. | worlds | pair-sign agreement with $M=64$ | mean regret vs $M=64$ | 90th-percentile regret vs $M=64$ | all-state argmax agreement | |---|---|---|---|---| | 16 | 95.45% | 0.0207 | 0.0770 | 55.3% | | 32 | 99.77% | 0.0105 | 0.0370 | 71.1% | | 64 | 100% | 0 | 0 | 100% | Since the later training set retains confidently separated pairs, we adopt 32 worlds at half the rollout cost. Across all 379 calibration states, the mean spread from worst to best retained action is 0.2149 in $\tanh$-margin utility, and the estimated best action improves 0.0931 over the SFT-weighted candidate mean. That second number is an in-sample rollout-oracle bound, not realizable policy uplift. The average gap between the top two is only 0.0599, and the SFT policy’s played action is already best 36.1% of the time. Most candidate-$Q$ variation is irrelevant to choosing a bid: 84.8% lies between states, while only 15.2% separates actions within a state. To be clear, this split measures paired rollout-$Q$ estimates grouped by decision state while the earlier 99.8% figure measures raw whole-trajectory variation across replicas grouped by initial deal. PPO can use only the within-state component because a state-wide offset raises or lowers every candidate together. Across 4 split seeds, 4-fold cross-validation fits small structured models to multi-action states from the $M=64$ reference labels. In the table, “uplift” is offline $Q$ improvement over the SFT candidate mixture. Each non-control row is a gradient-boosted tree ensemble fitted to the candidate-$Q$ labels. The centralized model receives the observed opponent bids, while the actor-visible model does not. Two negative controls either shuffle the targets or drop the candidate bid, leaving a model that can predict only common state value. “Filtered pair accuracy” scores only the confidently separated action pairs defined above. | model | filtered pair accuracy | full-set argmax | mean $Q$ uplift vs SFT | |---|---|---|---| | centralized context | 74.8–75.9% | 33.4–35.9% | +0.0268 to +0.0315 | | actor-visible state only | 72.3–74.6% | 32.2–35.6% | +0.0272 to +0.0314 | | shuffled-target control | 44.3–51.9% | 23.8–29.4% | −0.0309 to −0.0062 | | no-action control | all ties | 23.2% | −0.0680 | We reuse three confidence gates from calibration: gap $\ge0.05$, 95% sign confidence, and at most 6 pairs per state. The SFT-initialized critic’s Bradley–Terry loss ranks the better bid above the worse one, while a Huber regression term trains the numeric centered value at weight 0.25. | critic | filtered pair accuracy | full-set argmax 75 groups | mean grouped regret | $R^2$ on centered advantage | |---|---|---|---|---| | non-leaky linear-bid baseline | — | 40.0% | — | — | | 1 epoch, seed 0 | 62.9% | 24.0% | 0.0989 | −2.31 | | 1 epoch, seed 1 | 59.5% | 25.3% | 0.1096 | −107.54 | | 1 epoch, seed 2 | 64.8% | 34.7% | 0.1051 | −17.64 | | 3 epochs, seed 0 | 66.2% | 25.3% | 0.1011 | −16.56 | Even with the preregistered gates, every neural run misses the 55% argmax threshold and the 40% linear-bid baseline. The next meaningful rung uses 128 games and roughly 1,485 decision states. It costs an estimated 328 H200-hours, with $\pm40\%$ uncertainty. Reaching 1,024 games and then evaluating on the sequestered 128-game final test approaches 3,000 H200-hours. PPO could in principle improve beyond a fixed expert, but it must first compress expensive rollouts into small critic differences and then refresh them as the actor’s state distribution moves. We therefore stop after the critic diagnostics: no production label corpus and no actor update. A corpus of policy-generated games contains two kinds of information: GRPO uses the first at trajectory level, while the action critic tries to refine it to individual decisions. We model the second as a conditional price law $\hat F$. This law makes one sealed-bid auction inside the multiplayer game tractable. Given an estimated lot value and a distribution over opponent bids, we can score every legal bid by expected surplus. A point model treats one predicted opponent bid as certain. A distribution instead asks what fraction of the predicted bid mass each candidate beats: $$ U {\hat F} b = \hat V-b \hat P {\hat F} \text{win}\mid b $$One final search variant keeps the terminal rollouts but replaces the opponents’ current bids with deterministic predictions from a fitted market model. The best arm changes paired margin by only +0.58 −5.6, +6.8 , therefore unresolved. A separate diagnostic asks whether a much better point predictor would solve the problem. A gradient-boosted tree trained on ~3.2k logged Gemini 3 Flash bids reaches an out-of-fold mean absolute error MAE of 1.10 coins with essentially zero bias all variance . However, it still predicts the wrong side of the actual win/loss threshold on 26.1% of auctions. 55% of auctions resolve within one coin, where Flash’s own sampling noise straddles the boundary even when the conditional mean is accurate. Prediction error now shifts probability mass across outcomes. We develop the first version on Gemini 3 Flash logs, then test whether the SFT policy’s own bids can fit the same price law. The acting player knows three useful quantities for color $c$: There are six gems of each color in the game. Because the player’s remaining hand eventually enters the display, a live lower bound on the final count is $L c=\text{display} c+\text{own-hand} c$. Collected gems never enter the display, so an upper bound is $U c=6-\text{collection} c$. An 11-feature classifier uses these bounds, reveal progress, and round number to predict the final count $n c$, one of 7 values from 0 through 6. It never sees opponents’ hidden hands. The prediction also remains independent of the Value Chart until inference, when we convert the count distribution to points. We split games 70/10/20 for fitting, calibration, and held-out testing and train using a regularized MLP for at most 300 iterations. For a lot with colors $g 1,\ldots,g r$, the head outputs the 7-way count distribution $\hat P n {g i}=k\mid I $. We map that distribution through the active chart to get each gem’s raw expected value, then apply an isotonic calibration map $f$ before summing the gems. This flexible one-dimensional correction curve can fix systematic bias while preserving monotonicity: $$ \hat V {\text{lot}} = \sum {i=1}^r f\ \left \sum {k=0}^{6} \hat P n {g i}=k\mid I \operatorname{Chart} k \right + \operatorname{MissionBonus} \text{collection},\text{lot} $$Here $\operatorname{Chart} k $ is the eventual per-gem value when $k$ gems of that color appear in the final display. The mission term is computed exactly. Thus $\hat P$ is the classifier output, while $\hat V {\text{lot}}$ is the calibrated value supplied to the selector. A histogram gradient-boosted regressor predicts each opponent seat’s conditional mean bid $\hat\mu s x $ from 16 public features e.g. coin count, lot size and displayed value, recent clearing prices, and tiebreak position . We fit it on ~3.6k Gemini 3 Flash bid rows, cross-validated in folds grouped by paired seed. The grouped out-of-fold MAE is 1.230 coins with bias +0.013; 69.4% of predictions land within one coin. But we can go further. Instead, let $B s$ be opponent seat $s$’s actual bid in the current auction. We retain every out-of-fold residual $\epsilon=B s-\operatorname{round} \hat\mu s x $ and pool them into an empirical noise distribution. At inference, we shift those historical errors by the current predicted mean, round to integers, and clamp to the opponent’s legal budget. With $N$ stored residuals and current budget $c s$, $$ \hat P B s=z\mid x =\frac{1}{N}\sum {r=1}^N\mathbf 1\left z=\operatorname{clip}\big \operatorname{round} \hat\mu s x +\epsilon r ,0,c s\big \right $$For clarity, suppose the current mean prediction is 8 and the residual law puts 20% of its mass at −1, 50% at 0, and 30% at +1. The implied opponent bids are 7, 8, and 9 with probabilities 0.2, 0.5, and 0.3. Bidding 9 is no longer treated as a certain win: it beats 70% of that distribution and wins or loses the 30% tie mass according to public tiebreak order. With exact tiebreak handling, the probability that candidate bid $b$ beats opponent $s$’s unknown bid $B s$ is $$ p s b =\hat P B s