{"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/codet5-open-code-large-language-models-for","title":"CodeT5+: Open Code Large Language Models for Code Understanding and Generation","arxiv_id":"2305.07922","date":"2023-05-13","proceeding":null,"authors":["Yue Wang","Hung Le","Akhilesh Deepak Gotmare","Nghi D. Q. Bui","Junnan Li","Steven C. H. Hoi"],"abstract":"Large language models (LLMs) pretrained on vast source code have achieved prominent progress in code intelligence. However, existing code LLMs have two main limitations in terms of architecture and pretraining tasks. First, they often adopt a specific architecture (encoder-only or decoder-only) or rely on a unified encoder-decoder network for different downstream tasks. The former paradigm is limited by inflexibility in applications while in the latter, the model is treated as a single system for all tasks, leading to suboptimal performance on a subset of tasks. Secondly, they often employ a limited set of pretraining objectives which might not be relevant to some downstream tasks and hence result in substantial performance degrade. To address these limitations, we propose ``CodeT5+'', a family of encoder-decoder LLMs for code in which component modules can be flexibly combined to suit a wide range of downstream code tasks. Such flexibility is enabled by our proposed mixture of pretraining objectives to mitigate the pretrain-finetune discrepancy. These objectives cover span denoising, contrastive learning, text-code matching, and causal LM pretraining tasks, on both unimodal and bimodal multilingual code corpora. Furthermore, we propose to initialize CodeT5+ with frozen off-the-shelf LLMs without training from scratch to efficiently scale up our models, and explore instruction-tuning to align with natural language instructions. We extensively evaluate CodeT5+ on over 20 code-related benchmarks in different settings, including zero-shot, finetuning, and instruction-tuning. We observe state-of-the-art (SoTA) model performance on various code-related tasks, such as code generation and completion, math programming, and text-to-code retrieval tasks. Particularly, our instruction-tuned CodeT5+ 16B achieves new SoTA results on HumanEval code generation task against other open code LLMs.","url_abs":"https://arxiv.org/abs/2305.07922v2","url_pdf":"https://arxiv.org/pdf/2305.07922v2.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":"codet5-open-code-large-language-models-for","repo_url":"https://github.com/salesforce/codet5","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"codet5-open-code-large-language-models-for","repo_url":"https://github.com/leiluk1/codesearcher","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"arithmetic-reasoning","task_name":"Arithmetic Reasoning"},{"task_slug":"code-completion","task_name":"Code Completion"},{"task_slug":"code-generation","task_name":"Code Generation"},{"task_slug":"code-search","task_name":"Code Search"},{"task_slug":"code-summarization-1","task_name":"Code Summarization"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"humaneval","task_name":"HumanEval"},{"task_slug":"math","task_name":"Math"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/arithmetic-reasoning-on-gsm8k","task":"Arithmetic Reasoning","dataset":"GSM8K","model":"CodeT5+","rank_in_archive_order":93,"of":164,"metrics":{"Accuracy":"73.8","Parameters (Billion)":"0.77"},"uses_additional_data":false},{"leaderboard":"/sota/code-completion-on-codexglue-github-java","task":"Code Completion","dataset":"CodeXGLUE - Github Java Corpus","model":"CodeT5+ 770M","rank_in_archive_order":2,"of":3,"metrics":{"EM (line-level)":"37.90","Edit Sim (line-level)":"72.25"},"uses_additional_data":false},{"leaderboard":"/sota/code-completion-on-codexglue-github-java","task":"Code Completion","dataset":"CodeXGLUE - Github Java Corpus","model":"CodeT5+ 220M","rank_in_archive_order":3,"of":3,"metrics":{"EM (line-level)":"35.17","Edit Sim (line-level)":"69.48"},"uses_additional_data":false},{"leaderboard":"/sota/code-completion-on-codexglue-py150","task":"Code Completion","dataset":"CodeXGLUE - PY150","model":"CodeT5+ 770M","rank_in_archive_order":2,"of":3,"metrics":{"EM (line-level)":"44.86","Edit Sim (line-level)":"74.22"},"uses_additional_data":false},{"leaderboard":"/sota/code-completion-on-codexglue-py150","task":"Code Completion","dataset":"CodeXGLUE - PY150","model":"CodeT5+ 220M","rank_in_archive_order":3,"of":3,"metrics":{"EM (line-level)":"43.42","Edit Sim (line-level)":"73.69"},"uses_additional_data":false},{"leaderboard":"/sota/code-search-on-codesearchnet","task":"Code Search","dataset":"CodeSearchNet","model":"CodeT5+ 770M","rank_in_archive_order":3,"of":6,"metrics":{"Go":"92.7","JS":"71.3","Java":"76.2","Overall":"77.4","PHP":"70.1","Python":"75.8","Ruby":"78.0"},"uses_additional_data":false},{"leaderboard":"/sota/code-search-on-codesearchnet","task":"Code Search","dataset":"CodeSearchNet","model":"CodeT5+ 220M","rank_in_archive_order":5,"of":6,"metrics":{"Go":"92.4","JS":"70..8","Java":"76.1","Overall":"77.1","PHP":"69.8","Python":"75.6","Ruby":"77.7"},"uses_additional_data":false},{"leaderboard":"/sota/code-search-on-codexglue-advtest","task":"Code Search","dataset":"CodeXGLUE - AdvTest","model":"CodeT5+ 770M","rank_in_archive_order":1,"of":3,"metrics":{"MRR":"44.7"},"uses_additional_data":false},{"leaderboard":"/sota/code-search-on-codexglue-advtest","task":"Code Search","dataset":"CodeXGLUE - AdvTest","model":"CodeT5+ 220M","rank_in_archive_order":2,"of":3,"metrics":{"MRR":"43.3"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.07922","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.07922"}},"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/salesforce/codet5","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/leiluk1/codesearcher","reach":{"status":"ok"}}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"ran":3,"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":"634ef255c2b583be","entry":"create_loader","repo":"salesforce/codet5","repo_kind":"official","path":"CodeT5+/code_retrieval/data_utils.py","file_url":"https://github.com/salesforce/codet5/blob/HEAD/CodeT5%2B/code_retrieval/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"634ef255c2b583be"}},{"code_sha256_prefix":"8d7bf7ad0e60457f","entry":"create_sampler","repo":"salesforce/codet5","repo_kind":"official","path":"CodeT5+/code_retrieval/data_utils.py","file_url":"https://github.com/salesforce/codet5/blob/HEAD/CodeT5%2B/code_retrieval/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8d7bf7ad0e60457f"}},{"code_sha256_prefix":"7a733b18081436f3","entry":"extract_text","repo":"salesforce/codet5","repo_kind":"official","path":"CodeT5+/humaneval/generate_codet5p.py","file_url":"https://github.com/salesforce/codet5/blob/HEAD/CodeT5%2B/humaneval/generate_codet5p.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"7a733b18081436f3"}},{"code_sha256_prefix":"29a2c6f9ec2127fe","entry":"create_dataset","repo":"salesforce/codet5","repo_kind":"official","path":"CodeT5+/code_retrieval/data_utils.py","file_url":"https://github.com/salesforce/codet5/blob/HEAD/CodeT5%2B/code_retrieval/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"29a2c6f9ec2127fe"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}