Repository navigation
Conversation
Fixes discrepancies found between README.md and the code: - Offline FAQ suggested `model_path="/path/to/model.ckpt"` right after telling the user to download a `.safetensors` file. Both halves matter: `Checkpoint.is_safetensors` keys off the suffix, and `_resolve_model_version` infers the version from the filename, falling back to `ModelVersion.V2` when it carries no identifier. Use the downloaded filename and say why it must be kept. - Linux cache dir: `get_cache_dir` honours `$XDG_CACHE_HOME` before `~/.cache/tabpfn`. - Usage tip advised splitting large test sets into 1000-row chunks, which contradicts the same bullet's point that each `predict` recomputes the training set, and is obsolete now that `memory_saving_mode="auto"` batches internally and cached inference chunks test rows at `TABPFN_MAX_BATCHED_TEST_ROWS`. Point at `fit_mode="fit_with_cache"` instead. Also rename the tip, since "batch prediction mode" collides with the unrelated `fit_mode="batched"` / `predict_batched` API. - Document `TABPFN_MODEL_VERSION`, which selects the default checkpoint and was missing from the environment-variable FAQ. - TabPFN-3.5-Fast is gated through the same HF repo as TabPFN-3.5 (`_HF_REPOS` in model_loading.py), so name it in the licence section and in the licence-acceptance FAQ. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RL57K146QgbKMwohSA8H23
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RL57K146QgbKMwohSA8H23
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a43bcbe. Configure here.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Routine owner: Philipp Singer — the person to ping if this PR misbehaves or the routine produces bad output.
As the automatically chosen reviewer, you are responsible for this PR.
Feel free to close or edit the PR, and either merge when ready or assign another reviewer if needed.
If the PR is not satisfactory, please edit the prompt in update-readme in the misc/claude-routines directory, or contact the routine owner.
Weekly sweep of
README.mdagainst the code. Six discrepancies, each verified against a specific source location. No new sections — every change corrects or completes text that is already there.1. Offline FAQ: the example
model_pathwould load the wrong modelThe FAQ tells you to download
tabpfn-v3.5-20260909.safetensors, then says to point at it withmodel_path="/path/to/model.ckpt". Both halves of that filename are load-bearing:Checkpoint.is_safetensors(checkpoint.py:40-42) keys off the.safetensorssuffix, so a safetensors payload named.ckptgoes totorch.loadand fails._resolve_model_version(model_loading.py:814-829) infers the version by scanning the basename forv3.5-fast/v3.5/v2.6/v2.5/v3, and falls back toModelVersion.V2when none matches. So even a correctly-suffixedmodel.safetensorsis loaded as v2.Now uses the downloaded filename and states that it must be kept.
2. Linux cache directory ignored
XDG_CACHE_HOMEget_cache_dirreturns$XDG_CACHE_HOME/tabpfnwhen that variable is set and non-blank, and only then falls back to~/.cache/tabpfn(model_loading.py:500-504). Windows and macOS entries were already correct.3. Usage tip: "split it into chunks of 1000 samples each"
This bullet contradicted itself — it opens by saying each
predictrecomputes the training set (true for the defaultfit_mode="fit_preprocessors"), then advises chunking, which under that same default re-runs the train context once per chunk. It is also obsolete:memory_saving_mode="auto"batches internally, and cached inference chunks test rows automatically atTABPFN_MAX_BATCHED_TEST_ROWS(inference.py:1502-1519). The library's own OOM message (errors.py:109-127) frames manual splitting as an OOM remedy, not standing advice — the tip now says the same and points atfit_mode="fit_with_cache".Also renamed from "Use batch prediction mode", which collides with the unrelated
fit_mode="batched"/predict_batchedfine-tuning API.4.
TABPFN_MODEL_VERSIONwas missing from the env-var FAQDefined at
settings.py:37-40and consumed atmodel_loading.py:815-816whenever nomodel_pathis given. It silently changes which checkpointTabPFNClassifier()loads, so a FAQ that claims to enumerate the environment variables should name it.5–6. TabPFN-3.5-Fast omitted from the licence section and the licence-acceptance FAQ
ModelVersion.V3_5_FASTis in_HF_REPOSunder the sametabpfn_3_5repo (model_loading.py:558-569), so it is equally gated behindensure_license_acceptedand covered by the same licence file the README already links. The README promotes it in Basic Usage, so both places now name it — same kind of gap #1328 closed for the CPU sample limit.Checked and left alone
Verified as correct, no change needed: the Basic Usage snippets and
create_default_for_versionfor all six versions; the save/load FAQ (save_tabpfn_modelwrites viatorch.save, so the.ckptname there is right, and the pickle FAQ still applies to.ckptcheckpoints);download_all_modelsreally does fetch the ensemble variants; the HF checkpoint filenames; CPU sample limits; the Windows/macOS cache paths;ignore_pretraining_limits; Python 3.10–3.14; the macOS PyTorch 2.13 note; and the SVG alt text againstdocs/assets/.Deliberately not included
TABPFN_MODEL_CACHE_SIZE/TABPFN_EXCLUDE_DEVICES— already covered by the still-open [Automated PR (update-readme)]: Document TABPFN_MODEL_CACHE_SIZE and TABPFN_EXCLUDE_DEVICES env vars #1244.TABPFN_MAX_BATCHED_ESTIMATOR_ROWS/_CELLS(settings.py:72-90) andTABPFN_AUTH_GUI_URL/TABPFN_AUTH_API_URL— also undocumented, but they sit exactly where [Automated PR (update-readme)]: Document TABPFN_MODEL_CACHE_SIZE and TABPFN_EXCLUDE_DEVICES env vars #1244 appends, and the auth URLs overlap Move from ux.priorlabs.ai to platform.priorlabs.ai #1213. Left for whichever lands first.BHnX2Ptf4j, community sectionVJRuU3bSxt, demo notebookqK7AaXPN) are inconsistent, but I could not reach Discord from this environment to tell which is current. Worth a human check.🤖 Generated with Claude Code
https://claude.ai/code/session_01RL57K146QgbKMwohSA8H23
Generated by Claude Code