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].

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