Skip to content

Add v3.5_default model alias - #374

Open
simo-prior wants to merge 14 commits into
mainfrom
ENG-977/v3.5-model-alias
Open

Add v3.5_default model alias#374
simo-prior wants to merge 14 commits into
mainfrom
ENG-977/v3.5-model-alias

Conversation

@simo-prior

@simo-prior simo-prior commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

ENG-975

Change Description

Adds the v3.5_default alias and stops resolving model names on the client: model_path now goes to the server unchanged, and the server owns the name → checkpoint mapping.

  • model_path is sent as given (v3.5_default, v2.5_real, gn2p4bpt, or a full checkpoint filename). _model_name_to_path, the family identifier constants and client-side name validation are removed. None sends no model_path; "auto" / "default" go through as given and the server resolves them. The client keeps the alias list only to pick the default-version limits for its pre-flight checks.
  • The <version>_default entries of list_available_models() are derived from ModelVersion (newest first) instead of hand-maintained constants; ModelVersion.V3_5 is added. create_default_for_version builds the alias the same way and rejects versions not in the enum. The substring-safe ordering that tabpfn-time-series relies on is kept and tested.
  • model_version_from_path accepts short names as well as filenames, so the client-side pre-flight limit checks and full-output chunking keep working; bare hash names resolve to v2.

Tests cover the pinned model lists, pass-through of the name on the wire and create_default_for_version(ModelVersion.V3_5); tests for the removed helpers are dropped.

Motivation: the tabpfn-server v3.5 smoke test (basic_v3_5 preset) uses this alias; the pinned client rejects it today.

If you used new dependencies: Did you add them to requirements.txt? No new dependencies.

Who did you ping on Mattermost to review your PR?

Breaking changes

Does this PR break the API? If so, what is the corresponding server commit? Wire change: the client sends short model names instead of tabpfn-<family>-<task>-<name>.ckpt filenames. gapi's fill_or_validate_model_path must accept and resolve them (not yet on tabpfn-server main). Until it does, any explicit model_path, including "auto" / "default", fails at fit with the server's invalid-model-path error; only None and full checkpoint filenames keep working.

Does this PR break the user interface? If so, why? Two small behaviour changes: create_default_for_version no longer sets n_estimators=8 / softmax_temperature=0.9, it only pins model_path; and unknown model names are no longer rejected locally but by the server at fit time.

🤖 Generated with Claude Code

Add `v3.5_default` to both estimators' available models, `ModelVersion.V3_5`,
and `create_default_for_version` support, so a caller can pin the TabPFN 3.5
pre-release the same way as v3/v2.6/v2.5.

The wire name follows the existing template
(`tabpfn-v3.5-{classifier,regressor}-v3.5_default.ckpt`). Since "v3" is a
prefix of "v3.5", the v3.5 identifier is matched before v3 in
`_model_name_to_path`; the unit tests pin both families.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@simo-prior
simo-prior requested a review from a team as a code owner September 2, 2026 14:15
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@simo-prior simo-prior changed the title feat(estimator): add v3.5_default model alias Add v3.5_default model alias Sep 2, 2026
@simo-prior simo-prior changed the title Add v3.5_default model alias Add v3.5_default model alias Sep 2, 2026
@simo-prior
simo-prior requested review from ggprior and removed request for a team September 2, 2026 14:39
Comment thread tests/unit/test_tabpfn_regressor.py Outdated
ggprior
ggprior previously approved these changes Sep 2, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 0f4df02. Configure here.

Comment thread src/tabpfn_client/estimator.py
Comment thread src/tabpfn_client/estimator.py
Comment thread src/tabpfn_client/estimator.py
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.

3 participants