What it is. The framework's first step beyond discrete answer sets, in two tracks. Track 1 replicates the "turtle paper" (outcome-based RL to predict the future) on Polymarket binary questions: the model reads a question written before resolution and outputs a probability, rewarded by a proper scoring rule once the outcome is known. Track 2 moves to continuous targets, where the model outputs a full density — first a single Beta distribution, then a mixture of Betas. Everything is GRPO + LoRA on Qwen3-4B (scale probes at 14B/32B), trained on 4.7k synthetic "future-as-label" examples, tested on 1,265 real Polymarket questions (zero train/test contamination verified by exact-match and Jaccard checks).
Headline table below is the historical parse-conditioned view — each model scored only on the questions it parsed. The parse % column is the new addition that exposes the catch: the Beta-format methods abstain on ~20% of questions, so their Brier is not comparable to the ~99%-parse point methods. The set-matched comparison directly below corrects this.
| Model / config | parse % | Brier ↓ | ECE ↓ | Acc ↑ | extreme (>0.95) % |
|---|---|---|---|---|---|
| Base Qwen3-4B, point probability | ~0.99 | 0.486 | 0.487 | 0.420 | ~20% |
| Base Qwen3-14B, point probability | 0.990 | 0.347 | 0.262 | 0.576 | 34% |
| Base Qwen3-14B, Beta format, zero-shot | 0.809 | 0.211 | 0.091 | 0.679 | 2% |
| Base Qwen3-32B, Beta format, zero-shot | 0.912 | 0.204 | 0.113 | 0.688 | 2.4% |
| 4B + Brier-reward LoRA (s300) | 0.993 | 0.256 | 0.143 | 0.638 | 8.2% |
| 4B + log-reward LoRA (s300) | 0.997 | 0.241 | 0.141 | 0.648 | 5.8% |
| 4B + Beta-format RL (s200) — best 4B | 0.802 | 0.213 | 0.093 | 0.692 | 0.2% |
| o1 (reference, no RL) | 1.000 | 0.202 | 0.096 | 0.700 | — |
| ReMax 14B, 110k train (turtle paper SOTA) | 1.000 | 0.191 | 0.053 | 0.717 | — |
| Polymarket aggregate odds (oracle) | 1.000 | 0.151 | 0.045 | 0.781 | — |
Brier/ECE/Acc here are each model's own parsed subset
(1,265-question turtle test set). Parse % from forecasting_matched.py; Beta-format
rows abstain heavily (PP-Beta 4B parses 1014/1265). o1 / ReMax / Polymarket predictions are
full-coverage references shipped with the test set.
Findings.
The same question ("Will Apple launch an iPhone SE on February 19?", gold = No) answered by the 14B base model under three prompt formats — full reasoning and completion each:
Parse failure is informative abstention: a model that declines 20% of questions is scored
only on the (easier) 80% it answered, so a parse-conditioned Brier flatters it. The
project-wide fix (see Overview → Measurement standards) is to compare every method on the
matched subset — the questions all methods in the group parsed — and to show
parse rate beside the score. Full-coverage references (o1, ReMax, Polymarket) are scored on the
same subset. Tooling: 4-regression-forecasting/forecasting_matched.py.
The 4B reward comparison (log vs Brier vs Beta-format RL), matched n=1005:
| 4B method | parse % | Brier (own / matched) | ECE | Acc | extreme |
|---|---|---|---|---|---|
| log-reward LoRA | 0.997 | 0.241 / 0.232 | 0.129 | 0.651 | 0.044 |
| Brier-reward LoRA | 0.993 | 0.256 / 0.236 | 0.122 | 0.650 | 0.056 |
| Beta-format RL | 0.802 | 0.213 / 0.213 | 0.092 | 0.693 | 0.008 |
| o1 (ref) | 1.000 | 0.202 / 0.207 | 0.101 | 0.691 | 0.092 |
| ReMax (ref) | 1.000 | 0.191 / 0.192 | 0.066 | 0.710 | 0.074 |
| Polymarket (ref) | 1.000 | 0.151 / 0.154 | 0.050 | 0.779 | 0.272 |
On the matched subset Beta-format RL still leads the 4B field (0.213 vs log 0.232) — that win is real, not an artifact. But log/Brier improve when restricted to the questions Beta answered (0.241→0.232, 0.256→0.236), confirming those 1005 questions are easier; and Beta carries a 20-point lower parse rate. The honest reading: Beta is better per answered question while answering fewer of them.
The base-model format/scale comparison (14B/32B point vs Beta), matched n=964:
| base method | parse % | Brier (own / matched) | ECE | Acc | extreme |
|---|---|---|---|---|---|
| 14B point probability | 0.990 | 0.348 / 0.282 | 0.186 | 0.632 | 0.240 |
| 14B Beta, zero-shot | 0.809 | 0.203 / 0.200 | 0.089 | 0.682 | 0.024 |
| 32B Beta, zero-shot | 0.912 | 0.204 / 0.202 | 0.105 | 0.691 | 0.023 |
The point format's Brier falls hard on the matched subset (0.348→0.282): the questions Beta abstains on are exactly where the point format flails. The Beta win survives matching (0.200 vs 0.282) but is ~40% smaller than the parse-conditioned gap implied.
For each method, a confident-correct rollout and a confident-wrong one (the overconfident miss is the failure a proper score punishes). Each shows the full prompt, reasoning, gold resolution, and completion.
For continuous outcomes the model emits an XML mixture of Betas (K ≤ 4 components, normalized weights), inducing \( p(y) = \sum_k w_k\, \mathrm{Beta}(y;\alpha_k,\beta_k) \) on the range-normalized target, rewarded with the mixture log-likelihood. Unlike the binary case, here the full density is scored — mixtures can genuinely help.
Oracle ceilings: true mixture +0.377 nats mean LL; best possible single Beta (moment-matched) +0.106 nats. The mixture's theoretical advantage is therefore +0.271 nats.
| Model | steps | LL ↑ | MSE ↓ | cov 80% | PIT KS p | % bimodal |
|---|---|---|---|---|---|---|
| Single Beta | 200 | −0.290 | 0.095 | 0.79 | 0.000 | 0 |
| Single Beta | 800 | +0.001 | 0.085 | 0.85 | 0.055 | 0 |
| Mixture | 400 | +0.130 | 0.077 | 0.86 | 0.125 | 100 |
| Mixture | 800 | +0.223 | 0.077 | 0.80 | 0.82 | 100 |
Set-matched check: unlike Track 1, the Track 2 headline rows do not need a matched-subset correction — at s800 both the mixture and single-Beta parse 300/300 test cases (parse rate 1.00), so every continuous metric is already computed over the same complete set. Parse rates only dip at s200 (single-Beta 0.89, mixture 0.98); those are not the reported architectural-comparison rows.
| Checkpoint | LL ↑ | MSE ↓ | cov 80% | mean K | % K≥2 |
|---|---|---|---|---|---|
| Single Beta s200 | −0.988 | 0.099 | — | 1 | 0 |
| Mixture s200 | −0.719 | 0.073 | 0.66 | 1.81 | 80 |
| Mixture s400 (best calibration) | −0.583 | 0.064 | 0.76 | 1.95 | 95 |
| Mixture s800 | −0.461 | 0.069 | 0.74 | 1.76 | 76 |
Mixture beats single Beta by −26% MSE and +0.27 nats at matched steps; s800 keeps improving LL but MSE worsens slightly — log-likelihood mildly incentivizes oversharpening. A per-component sharpness bonus (λ=0.1) was ablated and does not help (−0.12 nats on branching, flat on Metaculus).
Status: both tracks complete. Last activity: prompt-ablation study, 2026-05-28.