Skip to content

[Library Request] tabpfn #9749

Description

@AlexCatarino

Summary

Add the tabpfn package to the default QuantConnect Python environment.

Package details

  • PyPI: https://pypi.org/project/tabpfn/ (latest 8.4.0, requires_python >=3.10)
  • GitHub: https://github.com/PriorLabs/TabPFN (public, ~7.8k stars, actively maintained - last push 2026-08-25)
  • License: Prior Labs License - Apache 2.0 with an additional attribution provision (paragraph 10: "Built with PriorLabs-TabPFN" attribution when the work/weights or a derived model are distributed or made available). Internal benchmarking and testing without external communication is explicitly exempt.
  • Maintainer: Prior Labs

TabPFN is a transformer-based foundation model for tabular data that performs classification and regression by in-context learning: instead of fitting parameters, it runs a single forward pass over the training rows, so a "fit" on a small/medium table is effectively instant and needs no hyperparameter search. It exposes a scikit-learn compatible API (TabPFNClassifier / TabPFNRegressor), which makes it a drop-in alternative to the sklearn / LightGBM estimators already in the image for the small-sample tabular problems that dominate quantitative research.

Dependencies

Runtime requirements (from PyPI metadata for 8.4.0):

torch>=2.5, scikit-learn>=1.2.0, numpy>=1.21.6, scipy>=1.11.1, pandas>=1.4.0, lightgbm>=4.4, huggingface-hub>=0.23.0, safetensors>=0.4.0, pydantic>=2.8.0, pydantic-settings>=2.10.1, einops>=0.4.0, joblib>=1.2.0, tqdm>=4.66.0, filelock>=3.11.0, typing_extensions>=4.12.0.

Most of these (torch, scikit-learn, numpy, scipy, pandas, lightgbm, huggingface-hub, safetensors, joblib, tqdm, filelock) are already in the environment; einops, pydantic-settings and the torch>=2.5 floor are the items to check against the current pins. The mlx requirement is macOS/arm64-only and does not apply to the Linux image.

Open question - pretrained weights need to be baked into the image

TabPFN is a pretrained model: on first use the client downloads its checkpoint from Hugging Face (huggingface-hub) into a local cache. Algorithm containers have no outbound internet access, so pip install tabpfn alone would leave the package raising a download error at fit() time in both Research and Backtest.

For the library to be usable, the model checkpoints need to be pre-fetched at image build time and the cache directory (HF_HOME / the package's model cache path) pointed at that baked-in location, the same way other pretrained-model packages are handled. Worth confirming which classifier/regressor checkpoints to ship - the default ones are on the order of a few hundred MB.

Proposed change

Add tabpfn (plus any missing transitive dependencies) to the LEAN Python Docker image at the next batched library rebuild, and pre-download the default model checkpoints into the image cache so the estimators work offline.

Source

QuantConnect support ticket [Intercom 215475645137717].

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions