{"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/self-regulating-prompts-foundational-model","title":"Self-regulating Prompts: Foundational Model Adaptation without Forgetting","arxiv_id":"2307.06948","date":"2023-07-13","proceeding":"ICCV 2023 1","authors":["Muhammad Uzair Khattak","Syed Talal Wasim","Muzammal Naseer","Salman Khan","Ming-Hsuan Yang","Fahad Shahbaz Khan"],"abstract":"Prompt learning has emerged as an efficient alternative for fine-tuning foundational models, such as CLIP, for various downstream tasks. Conventionally trained using the task-specific objective, i.e., cross-entropy loss, prompts tend to overfit downstream data distributions and find it challenging to capture task-agnostic general features from the frozen CLIP. This leads to the loss of the model's original generalization capability. To address this issue, our work introduces a self-regularization framework for prompting called PromptSRC (Prompting with Self-regulating Constraints). PromptSRC guides the prompts to optimize for both task-specific and task-agnostic general representations using a three-pronged approach by: (a) regulating prompted representations via mutual agreement maximization with the frozen model, (b) regulating with self-ensemble of prompts over the training trajectory to encode their complementary strengths, and (c) regulating with textual diversity to mitigate sample diversity imbalance with the visual branch. To the best of our knowledge, this is the first regularization framework for prompt learning that avoids overfitting by jointly attending to pre-trained model features, the training trajectory during prompting, and the textual diversity. PromptSRC explicitly steers the prompts to learn a representation space that maximizes performance on downstream tasks without compromising CLIP generalization. We perform extensive experiments on 4 benchmarks where PromptSRC overall performs favorably well compared to the existing methods. Our code and pre-trained models are publicly available at: https://github.com/muzairkhattak/PromptSRC.","url_abs":"https://arxiv.org/abs/2307.06948v2","url_pdf":"https://arxiv.org/pdf/2307.06948v2.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":"self-regulating-prompts-foundational-model","repo_url":"https://github.com/muzairkhattak/promptsrc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"self-regulating-prompts-foundational-model","repo_url":"https://github.com/asif-hanif/vafa","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":"prompt-engineering","task_name":"Prompt Engineering"},{"task_slug":"prompt-learning","task_name":"Prompt Learning"},{"task_slug":"model","task_name":"model"}],"methods":[{"method_slug":"clip","method_name":"CLIP"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/prompt-engineering-on-caltech-101","task":"Prompt Engineering","dataset":"Caltech-101","model":"PromptSRC","rank_in_archive_order":11,"of":14,"metrics":{"Harmonic mean":"96.02"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-dtd","task":"Prompt Engineering","dataset":"DTD","model":"PromptSRC","rank_in_archive_order":8,"of":14,"metrics":{"Harmonic mean":"71.75"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-eurosat","task":"Prompt Engineering","dataset":"EuroSAT","model":"PromptSRC","rank_in_archive_order":11,"of":14,"metrics":{"Harmonic mean":"82.32"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-fgvc-aircraft","task":"Prompt Engineering","dataset":"FGVC-Aircraft","model":"PromptSRC","rank_in_archive_order":8,"of":14,"metrics":{"Harmonic mean":"40.15"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-food-101","task":"Prompt Engineering","dataset":"Food-101","model":"PromptSRC","rank_in_archive_order":7,"of":13,"metrics":{"Harmonic mean":"91.10"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-imagenet","task":"Prompt Engineering","dataset":"ImageNet","model":"PromptSRC","rank_in_archive_order":11,"of":15,"metrics":{"Harmonic mean":"74.01"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-imagenet-v2","task":"Prompt Engineering","dataset":"ImageNet V2","model":"PromptSRC","rank_in_archive_order":4,"of":8,"metrics":{"Top-1 accuracy %":"64.35"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-imagenet-a","task":"Prompt Engineering","dataset":"ImageNet-A","model":"PromptSRC","rank_in_archive_order":5,"of":9,"metrics":{"Top-1 accuracy %":"50.90"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-imagenet-r","task":"Prompt Engineering","dataset":"ImageNet-R","model":"PromptSRC","rank_in_archive_order":2,"of":9,"metrics":{"Top-1 accuracy %":"77.80"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-imagenet-s","task":"Prompt Engineering","dataset":"ImageNet-S","model":"PromptSRC","rank_in_archive_order":2,"of":9,"metrics":{"Top-1 accuracy %":"49.55"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-oxford-102-flower","task":"Prompt Engineering","dataset":"Oxford 102 Flower","model":"PromptSRC","rank_in_archive_order":7,"of":14,"metrics":{"Harmonic mean":"85.95"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-oxford-iiit-pet-dataset","task":"Prompt Engineering","dataset":"Oxford-IIIT Pet Dataset","model":"PromptSRC","rank_in_archive_order":11,"of":14,"metrics":{"Harmonic mean":"96.30"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-sun397","task":"Prompt Engineering","dataset":"SUN397","model":"PromptSRC","rank_in_archive_order":10,"of":14,"metrics":{"Harmonic mean":"80.52"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-stanford-cars-1","task":"Prompt Engineering","dataset":"Stanford Cars","model":"PromptSRC","rank_in_archive_order":6,"of":14,"metrics":{"Harmonic mean":"76.58"},"uses_additional_data":false},{"leaderboard":"/sota/prompt-engineering-on-ucf101","task":"Prompt Engineering","dataset":"UCF101","model":"PromptSRC","rank_in_archive_order":8,"of":14,"metrics":{"Harmonic mean":"82.74"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2307.06948","atlas_url":"https://app.syntology.ai/?focus=2307.06948","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2307.06948"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/muzairkhattak/promptsrc","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/asif-hanif/vafa","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/muzairkhattak/PromptSRC","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran":13,"unverified":4},"by_repo_kind":{"official":{"samples":6,"ran":4,"repositories":1},"listed":{"samples":15,"ran":13,"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":"11d8e1b97b2f5801","entry":"clip_by_tensor","repo":"asif-hanif/vafa","repo_kind":"listed","path":"generate_adv_samples.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/generate_adv_samples.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":2,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"11d8e1b97b2f5801"}},{"code_sha256_prefix":"98f385d847636a3e","entry":"basic_clean","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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":"26f9951311aad9a4","entry":"basic_iterative_method_l_inf","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/bim.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/bim.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"26f9951311aad9a4"}},{"code_sha256_prefix":"b4bd444510dc7370","entry":"block_merging_3d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/decompression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/decompression.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b4bd444510dc7370"}},{"code_sha256_prefix":"6ec553f76a64ec2b","entry":"block_splitting_2d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/compression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/compression.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ec553f76a64ec2b"}},{"code_sha256_prefix":"540c488a5c1d1cbd","entry":"block_splitting_3d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/compression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/compression.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"540c488a5c1d1cbd"}},{"code_sha256_prefix":"ba26afd892405335","entry":"compute_ci95","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"parse_test_res.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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":"717c228e9810218e","entry":"dct_3d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/compression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/compression.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"717c228e9810218e"}},{"code_sha256_prefix":"7b0ecad70df7f175","entry":"dice","repo":"asif-hanif/vafa","repo_kind":"listed","path":"trainer.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/trainer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7b0ecad70df7f175"}},{"code_sha256_prefix":"37251df462837488","entry":"diff_round","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/utils.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/utils.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":"37251df462837488"}},{"code_sha256_prefix":"5eac0a1d1c33cb09","entry":"fast_gradient_sign_method_l_inf","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/fgsm.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/fgsm.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5eac0a1d1c33cb09"}},{"code_sha256_prefix":"191a40826c2817e4","entry":"gaussain_noise","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/gn.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/gn.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"191a40826c2817e4"}},{"code_sha256_prefix":"d919ae32e5e4e616","entry":"get_pairs","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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":"c3db89de9732f13a","entry":"get_slices","repo":"asif-hanif/vafa","repo_kind":"listed","path":"generate_adv_samples.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/generate_adv_samples.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c3db89de9732f13a"}},{"code_sha256_prefix":"355f982908ae421b","entry":"idct_3d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/decompression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/decompression.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"355f982908ae421b"}},{"code_sha256_prefix":"8d28994182c6f301","entry":"profile","repo":"asif-hanif/vafa","repo_kind":"listed","path":"trainer.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/trainer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8d28994182c6f301"}},{"code_sha256_prefix":"9542161e9640b858","entry":"whitespace_clean","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"clip/simple_tokenizer.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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":"06d539bf83ec69a8","entry":"block_merging_2d","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/decompression.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/decompression.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":"06d539bf83ec69a8"}},{"code_sha256_prefix":"48ac2bd4dcbfb717","entry":"build_model","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"clip/model.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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":"48ac2bd4dcbfb717"}},{"code_sha256_prefix":"fbf8c0143d9c48e3","entry":"load","repo":"muzairkhattak/PromptSRC","repo_kind":"official","path":"clip/clip.py","file_url":"https://github.com/muzairkhattak/PromptSRC/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"}},{"code_sha256_prefix":"c8febed4b57496fc","entry":"phi_diff","repo":"asif-hanif/vafa","repo_kind":"listed","path":"attacks/vafa/utils.py","file_url":"https://github.com/asif-hanif/vafa/blob/HEAD/attacks/vafa/utils.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":"c8febed4b57496fc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}