feat(investigate): ask for confidence on a grid, so a band can be judged - #90
feat(investigate): ask for confidence on a grid, so a band can be judged#90adityak74 wants to merge 1 commit into
Conversation
23a33a3 to
49ca84e
Compare
A forecaster free to write any confidence spreads a run across bands that can never individually be judged. Thirty scored forecasts in a live run landed on six confidences between 0.93 and 0.99, the thickest band holding seven. required_band_n asks for the larger of a flat twenty and 1/(1-confidence), so that run needed a hundred rows in the 0.99 band alone, about five hundred usable attempts at the observed mix, and roughly forty-four hours of model time. No go was reachable, and the reason had nothing to do with whether the forecaster was any good. The question is now asked on a grid of 0.5, 0.7, 0.8, 0.9 and 0.95. Every level needs only the flat floor, which a run of ordinary size reaches, and a test asserts that rather than trusting the arithmetic to stay true if the grid changes. This does not make a forecaster better calibrated and is not meant to. It makes the answer measurable. Asking for a free number is asking to tell 0.97 from 0.98 with evidence that cannot tell them apart, and the old prompt's own example, 0.80, is on the grid: the shape of the answer has not changed, only the precision claimed for it. Nothing enforces the grid. parse_forecast still accepts any confidence in (0, 1), because filtering an off-grid answer would discard a real forecast and bias the sample toward the runs where the model complied. A test holds that open. Stacked on the band-evidence change, which is where required_band_n comes from and which is what makes this necessary. Claude-Session: https://claude.ai/code/session_01KGPVQ8wUG7h36zashWYCp4
e471fac to
72d4b2f
Compare
|
Closing this. It does not work, and the run says so. The model ignores the grid. With a binary I verified in release ( And it made the harness worse. The reasoning in the PR body still stands: free-form confidences shatter the sample across bands nothing can judge. The fix is to bin at scoring time, which does not depend on the model complying with anything. That is #91, which I am rebasing onto #89 so it no longer carries this change. Note for anyone reading the diff later: the arithmetic here was right and the intervention was wrong. Asking a model nicely is not a substitute for scoring the answer properly. |
|
Correcting one of the two reasons I gave for closing this. I said the grid prompt raised What did change is not this PR. The earlier 60-directory run on the same original prompt saw 8 of 60, about 13%. Three candidates: the corpus sample differs (stride 56 at n=60 against stride 17 at n=200, so different directories), The closure still stands, on the other reason alone. Five of five forecasts came back off-grid from a binary verified in release with no recompile between build and launch. The model does not honour the instruction, so the change buys nothing whatever its effect on formatting. #91 bins at scoring time and does not depend on the model complying. Worth noting for whoever picks this up: PR #88 captures the model's raw answer next to each discard. Right now a |
Stacked on #89. That PR is where
required_band_ncomes from, and it iswhat makes this necessary. Merge #89 first.
The problem
A forecaster free to write any confidence spreads a run across bands that can
never individually be judged. From a live run, thirty scored forecasts:
Six bands, thickest holding seven.
required_band_nasks for the larger of aflat twenty and
1 / (1 - confidence):At roughly four minutes per attempt that is about forty-four hours of model
time, and no GO was reachable before then. The reason had nothing to do with
whether the forecaster was any good.
The change
The question is asked on a grid: 0.5, 0.7, 0.8, 0.9, 0.95.
Every level needs only the flat floor of twenty, which a run of ordinary size
reaches. A test asserts that against
required_band_nrather than trusting thearithmetic to stay true if someone edits the grid:
This is not a way to manufacture a GO
Worth being direct, because a change to a measurement that makes a verdict
easier to obtain deserves the suspicion.
0.9 and is right 60% of the time still fails, and now fails with enough rows
behind the finding to mean it.
prompt's own worked example was
0.80, which is on the grid.for a free number is asking to tell 0.97 from 0.98 with a sample that cannot
tell them apart. Fixed grids are how calibration is measured everywhere else
for exactly this reason.
demonstrating miscalibration than thin ones, not less.
The grid is asked for, never enforced
parse_forecaststill accepts any confidence in (0, 1), anda_confidence_off_the_grid_is_still_parsedholds that open.Filtering off-grid answers would discard real forecasts and bias the sample
toward the runs where the model happened to comply, which is a worse failure
than a thin band: it would be invisible.
Verification
cargo test -p zorp-agent --features research0 failed (17 ininvestigate::forecast, 3 new, all watched failing first oncannot find value CONFIDENCE_GRID).cargo fmt --all --checkclean.A 150-directory run on this grid is under way. I will report the curve and the
verdict it produces, whichever way it goes.
https://claude.ai/code/session_01KGPVQ8wUG7h36zashWYCp4