Skip to content

[Automated PR (update-readme)]: Correct stale README claims against the current codebase - #1361

Open
LeoGrin wants to merge 2 commits into
mainfrom
claude/gallant-hypatia-e6dhor
Open

LeoGrin wants to merge 2 commits into
mainfrom
claude/gallant-hypatia-e6dhor

Conversation

@LeoGrin

@LeoGrin LeoGrin commented Oct 5, 2026

Copy link
Copy Markdown
Collaborator

⚠️ This PR was based on the routine defined in update-readme.
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.md against 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_path would load the wrong model

The FAQ tells you to download tabpfn-v3.5-20260909.safetensors, then says to point at it with model_path="/path/to/model.ckpt". Both halves of that filename are load-bearing:

  • Checkpoint.is_safetensors (checkpoint.py:40-42) keys off the .safetensors suffix, so a safetensors payload named .ckpt goes to torch.load and fails.
  • _resolve_model_version (model_loading.py:814-829) infers the version by scanning the basename for v3.5-fast / v3.5 / v2.6 / v2.5 / v3, and falls back to ModelVersion.V2 when none matches. So even a correctly-suffixed model.safetensors is loaded as v2.

Now uses the downloaded filename and states that it must be kept.

2. Linux cache directory ignored XDG_CACHE_HOME

get_cache_dir returns $XDG_CACHE_HOME/tabpfn when 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 predict recomputes the training set (true for the default fit_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 at TABPFN_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 at fit_mode="fit_with_cache".

Also renamed from "Use batch prediction mode", which collides with the unrelated fit_mode="batched" / predict_batched fine-tuning API.

4. TABPFN_MODEL_VERSION was missing from the env-var FAQ

Defined at settings.py:37-40 and consumed at model_loading.py:815-816 whenever no model_path is given. It silently changes which checkpoint TabPFNClassifier() 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_FAST is in _HF_REPOS under the same tabpfn_3_5 repo (model_loading.py:558-569), so it is equally gated behind ensure_license_accepted and 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_version for all six versions; the save/load FAQ (save_tabpfn_model writes via torch.save, so the .ckpt name there is right, and the pickle FAQ still applies to .ckpt checkpoints); download_all_models really 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 against docs/assets/.

Deliberately not included

🤖 Generated with Claude Code

https://claude.ai/code/session_01RL57K146QgbKMwohSA8H23


Generated by Claude Code

claude added 2 commits October 5, 2026 08:09
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

@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 1 potential issue.

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 a43bcbe. Configure here.

Comment thread changelog/1361.changed.md
@LeoGrin
LeoGrin requested a review from bejaeger October 5, 2026 08:32

This branch has not been deployed

No deployments
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