{"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-2508-05606","title":"Uni-cot: Towards Unified Chain-of-Thought Reasoning Across Text and Vision","arxiv_id":"2508.05606","date":"2025-08-07","proceeding":"ICLR","authors":["Luozheng Qin","Jia Gong","Yuqing Sun","Tianjiao Li","Mengping Yang","Xiaomeng Yang","Chao Qu","Zhiyu Tan","Hao Li"],"abstract":"Chain-of-Thought (CoT) reasoning has been widely adopted to enhance Large Language Models (LLMs) by decomposing complex tasks into simpler, sequential subtasks. However, extending CoT to vision-language reasoning tasks remains challenging, as it often requires interpreting transitions of visual states to support reasoning. Existing methods often struggle with this due to limited capacity of modeling visual state transitions or incoherent visual trajectories caused by fragmented architectures. To overcome these limitations, we propose Uni-CoT, a Unified Chain-of-Thought framework that enables coherent and grounded multimodal reasoning within a single unified model. The key idea is to leverage a model capable of both image understanding and generation to reason over visual content and model evolving visual states. However, empowering a unified model to achieve that is non-trivial, given the high computational cost and the burden of training. To address this, Uni-CoT introduces a novel two-level reasoning paradigm: A Macro-Level CoT for high-level task planning and A Micro-Level CoT for subtask execution. This design significantly reduces the computational overhead. Furthermore, we introduce a structured training paradigm that combines interleaved image-text supervision for macro-level CoT with multi-task objectives for micro-level CoT. Together, these innovations allow Uni-CoT to perform scalable and coherent multi-modal reasoning. Furthermore, thanks to our design, all experiments can be efficiently completed using only 8 A100 GPUs with 80GB VRAM each. Experimental results on reasoning-driven image generation benchmark (WISE) and editing benchmarks (RISE and KRIS) indicates that Uni-CoT demonstrates SOTA performance and strong generalization, establishing Uni-CoT as a promising solution for multi-modal reasoning. Project Page and Code: https://sais-fuxi.github.io/projects/uni-cot/","url_abs":"https://arxiv.org/abs/2508.05606","url_pdf":"https://arxiv.org/pdf/2508.05606","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":{"atlas_url":"https://app.syntology.ai/?focus=2508.05606","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2508.05606"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/Fr0zenCrane/UniCoT","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_fixture":2,"ran_draft_wrong":4,"ran":3,"ran_honours":1,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":14,"ran":10,"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":"30d7eec482ebf6b1","entry":"repeat_kv","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/qwen2/modeling_qwen2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/qwen2/modeling_qwen2.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"30d7eec482ebf6b1"}},{"code_sha256_prefix":"bac65c3dafaec040","entry":"apply_rotary_pos_emb","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/qwen2/modeling_qwen2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/qwen2/modeling_qwen2.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bac65c3dafaec040"}},{"code_sha256_prefix":"4102c144078044c7","entry":"apply_rotary_pos_emb","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/siglip_navit.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/siglip_navit.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4102c144078044c7"}},{"code_sha256_prefix":"e5947aba1d10885f","entry":"get_1d_sincos_pos_embed_from_grid","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/modeling_utils.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/modeling_utils.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e5947aba1d10885f"}},{"code_sha256_prefix":"58f584dfd7b8fc3f","entry":"get_2d_sincos_pos_embed","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/modeling_utils.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/modeling_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"58f584dfd7b8fc3f"}},{"code_sha256_prefix":"c083e60f5001bd38","entry":"get_pairs","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/qwen2/tokenization_qwen2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/qwen2/tokenization_qwen2.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c083e60f5001bd38"}},{"code_sha256_prefix":"26da3ed73c66b411","entry":"pad_sequence","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/qwen2_navit.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/qwen2_navit.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"26da3ed73c66b411"}},{"code_sha256_prefix":"b99eea6376d1e212","entry":"rotate_half","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/qwen2/modeling_qwen2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/qwen2/modeling_qwen2.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b99eea6376d1e212"}},{"code_sha256_prefix":"cec833a99feb528c","entry":"rotate_half","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/siglip_navit.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/siglip_navit.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cec833a99feb528c"}},{"code_sha256_prefix":"5fb036462ae82f9f","entry":"swish","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/autoencoder.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/autoencoder.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5fb036462ae82f9f"}},{"code_sha256_prefix":"64ca84fb8d30a0d6","entry":"apply_scale","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"inference_unicot_v0.2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/inference_unicot_v0.2.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":"64ca84fb8d30a0d6"}},{"code_sha256_prefix":"665d8a4e8f673a4c","entry":"get_2d_sincos_pos_embed_from_grid","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/bagel/modeling_utils.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/bagel/modeling_utils.py","link_basis":"harvester_set","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":"665d8a4e8f673a4c"}},{"code_sha256_prefix":"e284f6c6dd968489","entry":"load_ae","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"modeling/autoencoder.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/modeling/autoencoder.py","link_basis":"plan_row","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":"e284f6c6dd968489"}},{"code_sha256_prefix":"057d5a522cdcd39b","entry":"move_generation_input_to_device","repo":"Fr0zenCrane/UniCoT","repo_kind":"found_in_text","path":"inference_unicot_v0.2.py","file_url":"https://github.com/Fr0zenCrane/UniCoT/blob/HEAD/inference_unicot_v0.2.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":"057d5a522cdcd39b"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CV","source":"arxiv_api"},"syntology_extracted_results":null}