Skip to content

feat(tabpfn): served model id follows the loaded checkpoint (0.11.0) - #29

Merged
amrit110 merged 1 commit into
mainfrom
feat/tabpfn-version-aware-id
Oct 17, 2026
Merged

amrit110 merged 1 commit into
mainfrom
feat/tabpfn-version-aware-id

Conversation

@amrit110

Copy link
Copy Markdown
Member

Summary

  • TabPFNBackend.name was hardcoded to tabpfn-3, but tabpfn 9.x loads TabPFN-3.5 by default (a different model and license). A default install therefore served TabPFN-3.5 named tabpfn-3.
  • The id is now derived from tabpfn's resolved model_version (TABPFN_MODEL_VERSION): v3.5 → tabpfn-3.5, v3 → tabpfn-3, v3.5-fast → tabpfn-3.5-fast.
  • The pretraining-limit integration test now exceeds the 160-class limit. The feature limit it used is 20,000 on v3.5 (2,000 on v3), so it no longer tripped.
  • Bumps to 0.11.0. Needed by VectorInstitute/inference-platform#168 to serve TabPFN-3.5 in prod.

Breaking: callers that send "model": "tabpfn-3" to a deployment on the default version must switch to tabpfn-3.5, or the deployment must pin TABPFN_MODEL_VERSION=v3.

Test plan

  • Unit suite (259) + ruff
  • tests/integration/test_tabpfn_backend.py on CPU with tabpfn==9.1.0, offline (HF_HUB_OFFLINE=1, no token, read-only cache dir): 4/4 on v3 and 4/4 on v3.5
  • build_engine() with TABCTX_BACKEND=tabicl,tabpfn serves ['tabicl-v2', 'tabpfn-3.5'] (v3.5) and ['tabicl-v2', 'tabpfn-3'] (v3)

🤖 Generated with Claude Code

The TabPFN id was hardcoded to tabpfn-3, but tabpfn 9.x loads
TabPFN-3.5 by default, so a default install served TabPFN-3.5 under
the TabPFN-3 name. The id now follows tabpfn's resolved model_version
(TABPFN_MODEL_VERSION): v3.5 -> tabpfn-3.5, v3 -> tabpfn-3.

The pretraining-limit integration test now exceeds the 160-class limit
instead of the feature limit, which is 20,000 on v3.5 (2,000 on v3).

Release 0.11.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov-commenter

codecov-commenter commented Oct 17, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.50%. Comparing base (021f6e5) to head (af6fa7b).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main      #29   +/-   ##
=======================================
  Coverage   89.50%   89.50%           
=======================================
  Files          25       25           
  Lines        1372     1372           
=======================================
  Hits         1228     1228           
  Misses        144      144           
Flag Coverage Δ
integration 39.79% <ø> (ø)
unit 82.06% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/tabctx/serve/app.py 42.14% <ø> (ø)

Impacted file tree graph

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@amrit110
amrit110 merged commit a49e6a3 into main Oct 17, 2026
3 checks passed
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.

2 participants