{"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/realistic-test-time-adaptation-of-vision","title":"Realistic Test-Time Adaptation of Vision-Language Models","arxiv_id":"2501.03729","date":"2025-01-07","proceeding":"CVPR 2025 1","authors":["Maxime Zanella","Clément Fuchs","Christophe De Vleeschouwer","Ismail Ben Ayed"],"abstract":"The zero-shot capabilities of Vision-Language Models (VLMs) have been widely leveraged to improve predictive performance. However, previous works on transductive or test-time adaptation (TTA) often make strong assumptions about the data distribution, such as the presence of all classes. Our work challenges these favorable deployment scenarios, and introduces a more realistic evaluation framework, including: (i) a variable number of effective classes for adaptation within a single batch, and (ii) non-i.i.d. batches of test samples in online adaptation settings. We provide comprehensive evaluations, comparisons, and ablation studies that demonstrate how current transductive or TTA methods for VLMs systematically compromise the models' initial zero-shot robustness across various realistic scenarios, favoring performance gains under advantageous assumptions about the test samples' distributions. Furthermore, we introduce StatA, a versatile method that could handle a wide range of deployment scenarios, including those with a variable number of effective classes at test time. Our approach incorporates a novel regularization term designed specifically for VLMs, which acts as a statistical anchor preserving the initial text-encoder knowledge, particularly in low-data regimes. Code available at https://github.com/MaxZanella/StatA.","url_abs":"https://arxiv.org/abs/2501.03729v1","url_pdf":"https://arxiv.org/pdf/2501.03729v1.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":"realistic-test-time-adaptation-of-vision","repo_url":"https://github.com/maxzanella/stata","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"test-time-adaptation","task_name":"Test-time Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2501.03729","atlas_url":"https://app.syntology.ai/?focus=2501.03729","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2501.03729"}},"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":"deterministic:regex_extraction","url":"https://github.com/MaxZanella/StatA","reach":null}],"summary":{"ran":1,"ran_draft_wrong":2,"ran_honours":1,"ran_fixture":1,"unverified":4},"by_repo_kind":{"official":{"samples":9,"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":9,"samples":[{"code_sha256_prefix":"628bc1963ce6c63e","entry":"Gaussian","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"628bc1963ce6c63e"}},{"code_sha256_prefix":"f898e18b85c4b129","entry":"build_affinity_matrix","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f898e18b85c4b129"}},{"code_sha256_prefix":"ca99d93556e07af2","entry":"get_zero_shot_logits","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ca99d93556e07af2"}},{"code_sha256_prefix":"43a1bc825650b8c2","entry":"update_beta","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"43a1bc825650b8c2"}},{"code_sha256_prefix":"6461130909559ebf","entry":"update_mu","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6461130909559ebf"}},{"code_sha256_prefix":"12ea1086dfeff3ef","entry":"StatA_solver","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"12ea1086dfeff3ef"}},{"code_sha256_prefix":"022bd0913bf594a9","entry":"init_cov","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"022bd0913bf594a9"}},{"code_sha256_prefix":"e3d6afe3155be045","entry":"update_cov","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e3d6afe3155be045"}},{"code_sha256_prefix":"c1cb89b46c353c60","entry":"update_z","repo":"MaxZanella/StatA","repo_kind":"official","path":"solvers/StatA.py","file_url":"https://github.com/MaxZanella/StatA/blob/HEAD/solvers/StatA.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"AGPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c1cb89b46c353c60"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}