{"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/lapt-label-driven-automated-prompt-tuning-for","title":"LAPT: Label-driven Automated Prompt Tuning for OOD Detection with Vision-Language Models","arxiv_id":"2407.08966","date":"2024-07-12","proceeding":null,"authors":["Yabin Zhang","Wenjie Zhu","Chenhang He","Lei Zhang"],"abstract":"Out-of-distribution (OOD) detection is crucial for model reliability, as it identifies samples from unknown classes and reduces errors due to unexpected inputs. Vision-Language Models (VLMs) such as CLIP are emerging as powerful tools for OOD detection by integrating multi-modal information. However, the practical application of such systems is challenged by manual prompt engineering, which demands domain expertise and is sensitive to linguistic nuances. In this paper, we introduce Label-driven Automated Prompt Tuning (LAPT), a novel approach to OOD detection that reduces the need for manual prompt engineering. We develop distribution-aware prompts with in-distribution (ID) class names and negative labels mined automatically. Training samples linked to these class labels are collected autonomously via image synthesis and retrieval methods, allowing for prompt learning without manual effort. We utilize a simple cross-entropy loss for prompt optimization, with cross-modal and cross-distribution mixing strategies to reduce image noise and explore the intermediate space between distributions, respectively. The LAPT framework operates autonomously, requiring only ID class names as input and eliminating the need for manual intervention. With extensive experiments, LAPT consistently outperforms manually crafted prompts, setting a new standard for OOD detection. Moreover, LAPT not only enhances the distinction between ID and OOD samples, but also improves the ID classification accuracy and strengthens the generalization robustness to covariate shifts, resulting in outstanding performance in challenging full-spectrum OOD detection tasks. Codes are available at \\url{https://github.com/YBZh/LAPT}.","url_abs":"https://arxiv.org/abs/2407.08966v1","url_pdf":"https://arxiv.org/pdf/2407.08966v1.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":"lapt-label-driven-automated-prompt-tuning-for","repo_url":"https://github.com/ybzh/lapt","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"lapt-label-driven-automated-prompt-tuning-for","repo_url":"https://github.com/ybzh/openood-vlm","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"image-generation","task_name":"Image Generation"},{"task_slug":"ood-detection","task_name":"Out of Distribution (OOD) Detection"},{"task_slug":"prompt-engineering","task_name":"Prompt Engineering"},{"task_slug":"prompt-learning","task_name":"Prompt Learning"}],"methods":[{"method_slug":"clip","method_name":"CLIP"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2407.08966","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.08966"}},"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/ybzh/openood-vlm","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ybzh/lapt","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":1,"ran":2,"ran_draft_wrong":3,"ran_violates":2,"unverified":9},"by_repo_kind":{"listed":{"samples":17,"ran":8,"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":"3bde09574ad009e3","entry":"ash_b","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/ash_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/ash_net.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3bde09574ad009e3"}},{"code_sha256_prefix":"e66910fd66299eb9","entry":"ash_p","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/ash_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/ash_net.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":"e66910fd66299eb9"}},{"code_sha256_prefix":"5b873af1f2983f2d","entry":"ash_s","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/ash_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/ash_net.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":"5b873af1f2983f2d"}},{"code_sha256_prefix":"ee80cf467065076b","entry":"conv1x1","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/bit.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/bit.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":"ee80cf467065076b"}},{"code_sha256_prefix":"f01b8d3901f0b289","entry":"conv3x3","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/bit.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/bit.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":"f01b8d3901f0b289"}},{"code_sha256_prefix":"d8339d591bbd7f52","entry":"rew_ce","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/reweight.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/reweight.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d8339d591bbd7f52"}},{"code_sha256_prefix":"61492b343324d2ea","entry":"soft_cross_entropy","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/sce.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/sce.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"61492b343324d2ea"}},{"code_sha256_prefix":"7023eb86801bb3a3","entry":"tf2th","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/bit.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/bit.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7023eb86801bb3a3"}},{"code_sha256_prefix":"c351a5c8ce3da3d8","entry":"Deduplication","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/datasets/wordnet_prepare_via_clip.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/datasets/wordnet_prepare_via_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":"c351a5c8ce3da3d8"}},{"code_sha256_prefix":"3cce4936256bdc33","entry":"Discriminator32","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/arpl_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/arpl_net.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":"3cce4936256bdc33"}},{"code_sha256_prefix":"797cd0913159403b","entry":"Generator","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/arpl_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/arpl_net.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":"797cd0913159403b"}},{"code_sha256_prefix":"893f424fd19a9b6c","entry":"Generator32","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/networks/arpl_net.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/networks/arpl_net.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":"893f424fd19a9b6c"}},{"code_sha256_prefix":"45b6edb2cf78cda2","entry":"create_window","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/ssim.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/ssim.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":"45b6edb2cf78cda2"}},{"code_sha256_prefix":"e2424ce033ba3a0f","entry":"gaussian","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/ssim.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/ssim.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":"e2424ce033ba3a0f"}},{"code_sha256_prefix":"4c1d0e3674921db5","entry":"loss_function","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/rd4ad_loss.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/rd4ad_loss.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":"4c1d0e3674921db5"}},{"code_sha256_prefix":"e1014da2309b3946","entry":"rew_sce","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/reweight.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/reweight.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":"e1014da2309b3946"}},{"code_sha256_prefix":"d1619ad1bb7ea0f7","entry":"ssim","repo":"ybzh/openood-vlm","repo_kind":"listed","path":"openood/losses/ssim.py","file_url":"https://github.com/ybzh/openood-vlm/blob/HEAD/openood/losses/ssim.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":"d1619ad1bb7ea0f7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}