{"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/candidate-pseudolabel-learning-enhancing","title":"Candidate Pseudolabel Learning: Enhancing Vision-Language Models by Prompt Tuning with Unlabeled Data","arxiv_id":"2406.10502","date":"2024-06-15","proceeding":null,"authors":["Jiahan Zhang","Qi Wei","Feng Liu","Lei Feng"],"abstract":"Fine-tuning vision-language models (VLMs) with abundant unlabeled data recently has attracted increasing attention. Existing methods that resort to the pseudolabeling strategy would suffer from heavily incorrect hard pseudolabels when VLMs exhibit low zero-shot performance in downstream tasks. To alleviate this issue, we propose a Candidate Pseudolabel Learning method, termed CPL, to fine-tune VLMs with suitable candidate pseudolabels of unlabeled data in downstream tasks. The core of our method lies in the generation strategy of candidate pseudolabels, which progressively generates refined candidate pseudolabels by both intra- and inter-instance label selection, based on a confidence score matrix for all unlabeled data. This strategy can result in better performance in true label inclusion and class-balanced instance selection. In this way, we can directly apply existing loss functions to learn with generated candidate psueudolabels. Extensive experiments on nine benchmark datasets with three learning paradigms demonstrate the effectiveness of our method. Our code can be found at https://github.com/vanillaer/CPL-ICML2024.","url_abs":"https://arxiv.org/abs/2406.10502v1","url_pdf":"https://arxiv.org/pdf/2406.10502v1.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":"candidate-pseudolabel-learning-enhancing","repo_url":"https://github.com/vanillaer/cpl-icml2024","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2406.10502","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2406.10502"}},"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/vanillaer/cpl-icml2024","reach":{"status":"ok"}}],"summary":{"ran":5,"unverified":3},"by_repo_kind":{"official":{"samples":8,"ran":5,"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":8,"samples":[{"code_sha256_prefix":"a91e1c48ba3267cf","entry":"prepare_dataset_SSL","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"methods/main_SSL.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/methods/main_SSL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a91e1c48ba3267cf"}},{"code_sha256_prefix":"84248144ff38728b","entry":"prepare_dataset_TRZSL","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"methods/main_TRZSL.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/methods/main_TRZSL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"84248144ff38728b"}},{"code_sha256_prefix":"87b2e016e638f780","entry":"prepare_dataset_UL","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"methods/main_UL.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/methods/main_UL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"87b2e016e638f780"}},{"code_sha256_prefix":"7c704876eb29e7d0","entry":"setup_log_path","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"methods/main_SSL.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/methods/main_SSL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7c704876eb29e7d0"}},{"code_sha256_prefix":"e6d9c15ff860d004","entry":"setup_log_path","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"methods/main_UL.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/methods/main_UL.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e6d9c15ff860d004"}},{"code_sha256_prefix":"39e6b23b55f376ea","entry":"build_model","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"clip/model.py","file_url":"https://github.com/vanillaer/cpl-icml2024/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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"39e6b23b55f376ea"}},{"code_sha256_prefix":"daf3b65ae0ebb2b2","entry":"build_model","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"LaFTer/clip/model.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/LaFTer/clip/model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"daf3b65ae0ebb2b2"}},{"code_sha256_prefix":"819322964b74fbe7","entry":"test","repo":"vanillaer/cpl-icml2024","repo_kind":"official","path":"LaFTer/LaFTer.py","file_url":"https://github.com/vanillaer/cpl-icml2024/blob/HEAD/LaFTer/LaFTer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"819322964b74fbe7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}