{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/meta-learning-a-real-time-tabular-automl","title":"TabPFN: A Transformer That Solves Small Tabular Classification Problems in a Second","arxiv_id":"2207.01848","date":"2022-07-05","proceeding":null,"authors":["Noah Hollmann","Samuel Müller","Katharina Eggensperger","Frank Hutter"],"abstract":"We present TabPFN, a trained Transformer that can do supervised classification for small tabular datasets in less than a second, needs no hyperparameter tuning and is competitive with state-of-the-art classification methods. TabPFN performs in-context learning (ICL), it learns to make predictions using sequences of labeled examples (x, f(x)) given in the input, without requiring further parameter updates. TabPFN is fully entailed in the weights of our network, which accepts training and test samples as a set-valued input and yields predictions for the entire test set in a single forward pass. TabPFN is a Prior-Data Fitted Network (PFN) and is trained offline once, to approximate Bayesian inference on synthetic datasets drawn from our prior. This prior incorporates ideas from causal reasoning: It entails a large space of structural causal models with a preference for simple structures. On the 18 datasets in the OpenML-CC18 suite that contain up to 1 000 training data points, up to 100 purely numerical features without missing values, and up to 10 classes, we show that our method clearly outperforms boosted trees and performs on par with complex state-of-the-art AutoML systems with up to 230$\\times$ speedup. This increases to a 5 700$\\times$ speedup when using a GPU. We also validate these results on an additional 67 small numerical datasets from OpenML. We provide all our code, the trained TabPFN, an interactive browser demo and a Colab notebook at https://github.com/automl/TabPFN.","url_abs":"https://arxiv.org/abs/2207.01848v6","url_pdf":"https://arxiv.org/pdf/2207.01848v6.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/automl/tabpfn","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/tabpfn-anonym/tabpfnanonym","is_official":0,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/calvinmccarter/kditransform","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/david-rundel/tabpfn_iml","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/microsoft/ticl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/Ipsedo/TabPFN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"meta-learning-a-real-time-tabular-automl","repo_url":"https://github.com/automl/transformerscandobayesianinference","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"automl","task_name":"AutoML"},{"task_slug":"bayesian-inference","task_name":"Bayesian Inference"},{"task_slug":null,"task_name":"GPU"},{"task_slug":"classification","task_name":"General Classification"},{"task_slug":"in-context-learning","task_name":"In-Context Learning"},{"task_slug":"meta-learning","task_name":"Meta-Learning"},{"task_slug":"missing-values","task_name":"Missing Values"},{"task_slug":"tabular-classification","task_name":"tabular-classification"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"tabpfn","method_name":"TABPFN"},{"method_slug":"test","method_name":"Test"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[{"slug":"tabpfn","name":"TABPFN","full_name":"tabular data Prior-data Fitted Network"}],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2207.01848","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.01848"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/microsoft/ticl","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/calvinmccarter/kditransform","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tabpfn-anonym/tabpfnanonym","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/automl/tabpfn","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Ipsedo/TabPFN","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/automl/transformerscandobayesianinference","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/david-rundel/tabpfn_iml","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":3},"by_repo_kind":{"named_in_paper":{"samples":1,"ran":1,"repositories":1},"listed":{"samples":3,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":1,"samples":[{"code_sha256_prefix":"780c03eff7ee3ccd","entry":"get_params_from_config","repo":"tabpfn-anonym/tabpfnanonym","repo_kind":"named_in_paper","path":"scripts/transformer_prediction_interface.py","file_url":"https://github.com/tabpfn-anonym/tabpfnanonym/blob/HEAD/scripts/transformer_prediction_interface.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"780c03eff7ee3ccd"}},{"code_sha256_prefix":"727e2883a1636069","entry":"betas_for_order","repo":"calvinmccarter/kditransform","repo_kind":"listed","path":"kditransform/ksum.py","file_url":"https://github.com/calvinmccarter/kditransform/blob/HEAD/kditransform/ksum.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"727e2883a1636069"}},{"code_sha256_prefix":"f0a790f7872a572d","entry":"norm_const_K","repo":"calvinmccarter/kditransform","repo_kind":"listed","path":"kditransform/ksum.py","file_url":"https://github.com/calvinmccarter/kditransform/blob/HEAD/kditransform/ksum.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f0a790f7872a572d"}},{"code_sha256_prefix":"b3db2c6133d192da","entry":"roughness_K","repo":"calvinmccarter/kditransform","repo_kind":"listed","path":"kditransform/ksum.py","file_url":"https://github.com/calvinmccarter/kditransform/blob/HEAD/kditransform/ksum.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b3db2c6133d192da"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}