{"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/variational-prompt-tuning-improves","title":"Bayesian Prompt Learning for Image-Language Model Generalization","arxiv_id":"2210.02390","date":"2022-10-05","proceeding":"ICCV 2023 1","authors":["Mohammad Mahdi Derakhshani","Enrique Sanchez","Adrian Bulat","Victor Guilherme Turrisi da Costa","Cees G. M. Snoek","Georgios Tzimiropoulos","Brais Martinez"],"abstract":"Foundational image-language models have generated considerable interest due to their efficient adaptation to downstream tasks by prompt learning. Prompt learning treats part of the language model input as trainable while freezing the rest, and optimizes an Empirical Risk Minimization objective. However, Empirical Risk Minimization is known to suffer from distributional shifts which hurt generalizability to prompts unseen during training. By leveraging the regularization ability of Bayesian methods, we frame prompt learning from the Bayesian perspective and formulate it as a variational inference problem. Our approach regularizes the prompt space, reduces overfitting to the seen prompts and improves the prompt generalization on unseen prompts. Our framework is implemented by modeling the input prompt space in a probabilistic manner, as an a priori distribution which makes our proposal compatible with prompt learning approaches that are unconditional or conditional on the image. We demonstrate empirically on 15 benchmarks that Bayesian prompt learning provides an appropriate coverage of the prompt space, prevents learning spurious features, and exploits transferable invariant features. This results in better generalization of unseen prompts, even across different datasets and domains. Code available at: https://github.com/saic-fi/Bayesian-Prompt-Learning","url_abs":"https://arxiv.org/abs/2210.02390v3","url_pdf":"https://arxiv.org/pdf/2210.02390v3.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":"variational-prompt-tuning-improves","repo_url":"https://github.com/saic-fi/bayesian-prompt-learning","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"few-shot-learning","task_name":"Few-Shot Learning"},{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"},{"task_slug":"multimodal-deep-learning","task_name":"Multimodal Deep Learning"},{"task_slug":"prompt-engineering","task_name":"Prompt Engineering"},{"task_slug":"prompt-learning","task_name":"Prompt Learning"},{"task_slug":"variational-inference","task_name":"Variational Inference"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"clip","method_name":"CLIP"},{"method_slug":"variational-inference","method_name":"Variational Inference"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/few-shot-learning-on-caltech101","task":"Few-Shot Learning","dataset":"Caltech101","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"96.44"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-dtd","task":"Few-Shot Learning","dataset":"DTD","model":"Variational Prompt Tuning","rank_in_archive_order":4,"of":4,"metrics":{"Harmonic mean":"67.27"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-eurosat","task":"Few-Shot Learning","dataset":"EuroSAT","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"77.71"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-fgvc-aircraft-1","task":"Few-Shot Learning","dataset":"FGVC Aircraft","model":"Variational Prompt Tuning","rank_in_archive_order":3,"of":4,"metrics":{"Harmonic mean":"34.69"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-flowers-102","task":"Few-Shot Learning","dataset":"Flowers-102","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"81.12"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-oxfordpets","task":"Few-Shot Learning","dataset":"OxfordPets","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"96.82"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-sun397","task":"Few-Shot Learning","dataset":"SUN397","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"78.51"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-stanforcars","task":"Few-Shot Learning","dataset":"StanforCars","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"73.07"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-ucf101","task":"Few-Shot Learning","dataset":"UCF101","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"79"},"uses_additional_data":false},{"leaderboard":"/sota/few-shot-learning-on-food101","task":"Few-Shot Learning","dataset":"food101","model":"Variational Prompt Tuning","rank_in_archive_order":1,"of":1,"metrics":{"Harmonic mean":"91.57"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2210.02390","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.02390"}},"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/saic-fi/bayesian-prompt-learning","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":3,"ran":1,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":0,"samples":[{"code_sha256_prefix":"98f385d847636a3e","entry":"basic_clean","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/clip/simple_tokenizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"98f385d847636a3e"}},{"code_sha256_prefix":"ba26afd892405335","entry":"compute_ci95","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"parse_test_res.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/parse_test_res.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ba26afd892405335"}},{"code_sha256_prefix":"d919ae32e5e4e616","entry":"get_pairs","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/clip/simple_tokenizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d919ae32e5e4e616"}},{"code_sha256_prefix":"9542161e9640b858","entry":"whitespace_clean","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/clip/simple_tokenizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9542161e9640b858"}},{"code_sha256_prefix":"c47aa9e5b049a11d","entry":"build_model","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"clip/model.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/clip/model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c47aa9e5b049a11d"}},{"code_sha256_prefix":"fbf8c0143d9c48e3","entry":"load","repo":"saic-fi/bayesian-prompt-learning","repo_kind":"official","path":"clip/clip.py","file_url":"https://github.com/saic-fi/bayesian-prompt-learning/blob/HEAD/clip/clip.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fbf8c0143d9c48e3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}