Skip to content

Reclaim trainer-port entropy + close the NGBoost quality-parity gate - #21

Merged
jxucoder merged 2 commits into
mainfrom
fix/quality-suite-data-source
Aug 18, 2026
Merged

Reclaim trainer-port entropy + close the NGBoost quality-parity gate#21
jxucoder merged 2 commits into
mainfrom
fix/quality-suite-data-source

Conversation

@jxucoder

Copy link
Copy Markdown
Owner

Two post-pivot hardening commits.

1. Reclaim entropy left by the unified-trainer port (66d64ec)

Evidence-driven simplification (proved against the consumer graph, no
observable behavior change):

  • Delete DistributionalGBDT._compute_gradients + the NaturalBoost override
    (0 callers; the trainer computes gradients via DistributionObjective, and
    the natural/ordinary switch is the _use_natural_gradient flag).
  • Inline the _predict_raw forwarding wrapper.
  • Collapse the duplicate _as_1d helper into one validate_1d in
    _validation.py.

Net -36 lines, 3 fewer concepts. 102 distributional/formula/survival/
persistence/integration tests pass.

2. Robust quality-suite fetch + closed quality gate (2d9d44b)

OpenML's name->id endpoint 503s frequently, which was skipping most UCI
datasets. Fetch by numeric data_id first (falls back to name, with
retries), drop the deactivated naval id, resolve YearPredictionMSD by
active version, and add a Modal CPU entrypoint (::quality).

Modal result — OpenBoost vs NGBoost, 20 paired splits, shared 500-tree budget
(NLL, negative delta = OpenBoost better):

dataset OB NLL NGB NLL delta p
boston 2.679 2.639 +0.040 0.57
concrete 3.128 3.135 -0.007 0.60
energy 1.694 1.701 -0.007 0.09
kin8nm -0.430 -0.400 -0.031 2e-6
protein 1.930 1.943 -0.013 0.002
wine 1.028 1.031 -0.003 0.13
yacht 0.814 0.828 -0.014 0.73
california 0.584 0.596 -0.011 2e-6

Statistically tied-or-better on all 8 (significant wins on kin8nm, protein,
california; no significant loss). Closes acceptance dimension 1 (overlap not
worse than NGBoost). naval/power/year_msd dropped out during an OpenML outage;
they refill on a healthy rerun.

Test plan

  • ruff check src/openboost/ tests/ benchmarks/
  • 102 CPU tests pass (distributional/formula/survival/persistence/integration)
  • Modal quality suite: 7 UCI datasets tied-or-better vs NGBoost

Made with Cursor

jxucoder and others added 2 commits August 17, 2026 22:26
Remove maintenance surface with no remaining load-bearing reason, each cut
proved against the consumer graph and the existing suites:

- Delete DistributionalGBDT._compute_gradients and the NaturalBoost override.
  The trainer computes gradients through DistributionObjective, so this
  "override to change the gradient" extension point had zero callers; the
  natural/ordinary switch is the _use_natural_gradient flag.
- Inline the _predict_raw forwarding wrapper into predict_params.
- Collapse the duplicate _as_1d helper (byte-identical in _formula.py and
  _survival.py) into one validate_1d in _validation.py.

Net -36 lines and 3 fewer concepts. 102 distributional / formula / survival /
persistence / integration tests pass; no observable behavior change.

Co-authored-by: Cursor <cursoragent@cursor.com>
OpenML's name->id resolution endpoint returns frequent 503s, which was
skipping most UCI quality datasets. Fetch by numeric data_id first (a
different, more reliable endpoint) and fall back to name, with retries and
backoff; drop the deactivated naval id and let YearPredictionMSD resolve its
active version. Add a Modal CPU entrypoint (the quality suite is CPU-only)
since Modal's datacenter network to OpenML is reliable.

Result: 7 UCI datasets (+ california from the local baseline) are all
statistically tied-or-better than NGBoost, closing the overlap-quality gate.

Co-authored-by: Cursor <cursoragent@cursor.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@jxucoder
jxucoder merged commit 9c5066e into main Aug 18, 2026
4 checks passed
@jxucoder
jxucoder deleted the fix/quality-suite-data-source branch August 18, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant