{"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/arxiv-2602-11824","title":"Revis: Sparse Latent Steering to Mitigate Object Hallucination in Large Vision-Language Models","arxiv_id":"2602.11824","date":"2026-02-12","proceeding":"ICML","authors":["Jialin Wu","Wei Shi","Han Shen","Peigui Qi","Kunsheng Tang","Zhicong Huang","Binghao Wang","Zhou Yang"],"abstract":"Despite the advanced capabilities of Large Vision-Language Models (LVLMs), they frequently suffer from object hallucination. One reason is that visual features and pretrained textual representations often become intertwined in the deeper network layers. To address this, we propose REVIS, a training-free framework designed to explicitly re-activate this suppressed visual information. Rooted in latent space geometry, REVIS extracts the pure visual information vector via orthogonal projection and employs a calibrated strategy to perform sparse intervention only at the precise depth where suppression occurs. This surgical approach effectively restores visual information with minimal computational cost. Empirical evaluations on standard benchmarks demonstrate that REVIS reduces object hallucination rates by approximately 19% compared to state-of-the-art baselines, while preserving general reasoning capabilities.","url_abs":"https://arxiv.org/abs/2602.11824","url_pdf":"https://arxiv.org/pdf/2602.11824","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2602.11824","atlas_url":"https://app.syntology.ai/?focus=2602.11824","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.11824"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/antgroup/Revis","reach":null}],"summary":{"unverified":17},"by_repo_kind":{"found_in_text":{"samples":17,"ran":0,"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":"64c97831bbe858d3","entry":"calculate_metrics","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mmvet_judge_only.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mmvet_judge_only.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"64c97831bbe858d3"}},{"code_sha256_prefix":"d02c7b781becb0da","entry":"calculate_mme_metric","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mme.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mme.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d02c7b781becb0da"}},{"code_sha256_prefix":"05907cd5f0aa2eeb","entry":"eval_jsonl_file","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mme.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mme.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"05907cd5f0aa2eeb"}},{"code_sha256_prefix":"7da4de2c6f0bb6bc","entry":"get_llm_layers_module","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"steering_utils/llm_layers.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/steering_utils/llm_layers.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7da4de2c6f0bb6bc"}},{"code_sha256_prefix":"475fb2362ae38138","entry":"get_model_inputs","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"layer_select.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/layer_select.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"475fb2362ae38138"}},{"code_sha256_prefix":"b5bdcadedce1d8bb","entry":"get_pure_direction_with_pca","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"steering_utils/vector_calculator.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/steering_utils/vector_calculator.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b5bdcadedce1d8bb"}},{"code_sha256_prefix":"5fe2830411127fe3","entry":"grade_mmvet_results","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mmvet_ori.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mmvet_ori.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5fe2830411127fe3"}},{"code_sha256_prefix":"2e2e273f233576a7","entry":"load_image_and_mask","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"steering_utils/data_loader.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/steering_utils/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2e2e273f233576a7"}},{"code_sha256_prefix":"dbb22e2435f1864b","entry":"load_model_generic","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"layer_select.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/layer_select.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dbb22e2435f1864b"}},{"code_sha256_prefix":"8e970b80e8c8a067","entry":"load_model_generic","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"main_all_visual_only.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/main_all_visual_only.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e970b80e8c8a067"}},{"code_sha256_prefix":"b5f4cdfb98eafc38","entry":"load_steering_data","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"steering_utils/data_loader.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/steering_utils/data_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b5f4cdfb98eafc38"}},{"code_sha256_prefix":"22f3c8885d3d43b7","entry":"parse_pope_answer","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"main_all_visual_only.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/main_all_visual_only.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"22f3c8885d3d43b7"}},{"code_sha256_prefix":"2886b13f15990b8f","entry":"process_layer_calibration","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"layer_select.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/layer_select.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2886b13f15990b8f"}},{"code_sha256_prefix":"b88e74963350fcf2","entry":"qwen_api_call","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mmvet_judge_only.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mmvet_judge_only.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b88e74963350fcf2"}},{"code_sha256_prefix":"098ce1dbb8a719bf","entry":"read_jsonl","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/chair.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/chair.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"098ce1dbb8a719bf"}},{"code_sha256_prefix":"81483ccb3b201a30","entry":"run_mmvet_inference","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"utils/mmvet_ori.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/utils/mmvet_ori.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"81483ccb3b201a30"}},{"code_sha256_prefix":"a5dbff5dd48042c6","entry":"svd_flip","repo":"antgroup/Revis","repo_kind":"found_in_text","path":"steering_utils/pca.py","file_url":"https://github.com/antgroup/Revis/blob/HEAD/steering_utils/pca.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a5dbff5dd48042c6"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}