{"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/longwriter-v-enabling-ultra-long-and-high","title":"LongWriter-V: Enabling Ultra-Long and High-Fidelity Generation in Vision-Language Models","arxiv_id":"2502.14834","date":"2025-02-20","proceeding":null,"authors":["Shangqing Tu","Yucheng Wang","Daniel Zhang-li","Yushi Bai","Jifan Yu","Yuhao Wu","Lei Hou","Huiqin Liu","Zhiyuan Liu","Bin Xu","Juanzi Li"],"abstract":"Existing Large Vision-Language Models (LVLMs) can process inputs with context lengths up to 128k visual and text tokens, yet they struggle to generate coherent outputs beyond 1,000 words. We find that the primary limitation is the absence of long output examples during supervised fine-tuning (SFT). To tackle this issue, we introduce LongWriter-V-22k, a SFT dataset comprising 22,158 examples, each with multiple input images, an instruction, and corresponding outputs ranging from 0 to 10,000 words. Moreover, to achieve long outputs that maintain high-fidelity to the input images, we employ Direct Preference Optimization (DPO) to the SFT model. Given the high cost of collecting human feedback for lengthy outputs (e.g., 3,000 words), we propose IterDPO, which breaks long outputs into segments and uses iterative corrections to form preference pairs with the original outputs. Additionally, we develop MMLongBench-Write, a benchmark featuring six tasks to evaluate the long-generation capabilities of VLMs. Our 7B parameter model, trained with LongWriter-V-22k and IterDPO, achieves impressive performance on this benchmark, outperforming larger proprietary models like GPT-4o. Code and data: https://github.com/THU-KEG/LongWriter-V","url_abs":"https://arxiv.org/abs/2502.14834v1","url_pdf":"https://arxiv.org/pdf/2502.14834v1.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":"longwriter-v-enabling-ultra-long-and-high","repo_url":"https://github.com/thu-keg/longwriter-v","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"sft","method_name":"SFT"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2502.14834","atlas_url":"https://app.syntology.ai/?focus=2502.14834","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.14834"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thu-keg/longwriter-v","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"unverified":1},"by_repo_kind":{"official":{"samples":5,"ran":4,"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":"818ad32b280ff604","entry":"cal_text_metrics","repo":"thu-keg/longwriter-v","repo_kind":"official","path":"utils.py","file_url":"https://github.com/thu-keg/longwriter-v/blob/HEAD/utils.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":"818ad32b280ff604"}},{"code_sha256_prefix":"9e76ef170e532e5f","entry":"encode_images_to_pil","repo":"thu-keg/longwriter-v","repo_kind":"official","path":"utils.py","file_url":"https://github.com/thu-keg/longwriter-v/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9e76ef170e532e5f"}},{"code_sha256_prefix":"8ecbec4cfc48c43a","entry":"get_image_path","repo":"thu-keg/longwriter-v","repo_kind":"official","path":"eval/utils.py","file_url":"https://github.com/thu-keg/longwriter-v/blob/HEAD/eval/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ecbec4cfc48c43a"}},{"code_sha256_prefix":"0e9b500deba36503","entry":"length_score","repo":"thu-keg/longwriter-v","repo_kind":"official","path":"eval/utils.py","file_url":"https://github.com/thu-keg/longwriter-v/blob/HEAD/eval/utils.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":"0e9b500deba36503"}},{"code_sha256_prefix":"f70f8b9781c3c519","entry":"init_db","repo":"thu-keg/longwriter-v","repo_kind":"official","path":"app/src/models.py","file_url":"https://github.com/thu-keg/longwriter-v/blob/HEAD/app/src/models.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":"f70f8b9781c3c519"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}