{"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/codetrans-towards-cracking-the-language-of","title":"CodeTrans: Towards Cracking the Language of Silicon's Code Through Self-Supervised Deep Learning and High Performance Computing","arxiv_id":"2104.02443","date":"2021-04-06","proceeding":null,"authors":["Ahmed Elnaggar","Wei Ding","Llion Jones","Tom Gibbs","Tamas Feher","Christoph Angerer","Silvia Severini","Florian Matthes","Burkhard Rost"],"abstract":"Currently, a growing number of mature natural language processing applications make people's life more convenient. Such applications are built by source code - the language in software engineering. However, the applications for understanding source code language to ease the software engineering process are under-researched. Simultaneously, the transformer model, especially its combination with transfer learning, has been proven to be a powerful technique for natural language processing tasks. These breakthroughs point out a promising direction for process source code and crack software engineering tasks. This paper describes CodeTrans - an encoder-decoder transformer model for tasks in the software engineering domain, that explores the effectiveness of encoder-decoder transformer models for six software engineering tasks, including thirteen sub-tasks. Moreover, we have investigated the effect of different training strategies, including single-task learning, transfer learning, multi-task learning, and multi-task learning with fine-tuning. CodeTrans outperforms the state-of-the-art models on all the tasks. To expedite future works in the software engineering domain, we have published our pre-trained models of CodeTrans. https://github.com/agemagician/CodeTrans","url_abs":"https://arxiv.org/abs/2104.02443v2","url_pdf":"https://arxiv.org/pdf/2104.02443v2.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":"codetrans-towards-cracking-the-language-of","repo_url":"https://github.com/agemagician/CodeTrans","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"api-sequence-recommendation","task_name":"API Sequence Recommendation"},{"task_slug":"code-comment-generation","task_name":"Code Comment Generation"},{"task_slug":"code-documentation-generation","task_name":"Code Documentation Generation"},{"task_slug":"code-generation","task_name":"Code Generation"},{"task_slug":"contextual-embedding-for-source-code","task_name":"Contextual Embedding for Source Code"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"git-commit-message-generation","task_name":"Git Commit Message Generation"},{"task_slug":"multi-task-learning","task_name":"Multi-Task Learning"},{"task_slug":"program-synthesis","task_name":"Program Synthesis"},{"task_slug":"code-summarization","task_name":"Source Code Summarization"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"adafactor","method_name":"Adafactor"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"glu","method_name":"Gated Linear Unit"},{"method_slug":"inverse-square-root-schedule","method_name":"Inverse Square Root Schedule"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"sentencepiece","method_name":"SentencePiece"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"t5","method_name":"T5"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/api-sequence-recommendation-on-deepapi","task":"API Sequence Recommendation","dataset":"DeepAPI","model":"CodeTrans-MT-TF-Large","rank_in_archive_order":1,"of":1,"metrics":{"BLEU-4":"73.39"},"uses_additional_data":false},{"leaderboard":"/sota/code-comment-generation-on-deepcom","task":"Code Comment Generation","dataset":"DeepCom","model":"CodeTrans-TF-Large","rank_in_archive_order":1,"of":1,"metrics":{"Smoothed BLEU-4":"39.50"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on-2","task":"Code Documentation Generation","dataset":"CodeSearchNet - Go","model":"CodeTrans-TF-Large","rank_in_archive_order":7,"of":7,"metrics":{"Smoothed BLEU-4":"19.54"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on-1","task":"Code Documentation Generation","dataset":"CodeSearchNet - Java","model":"CodeTrans-MT-Large","rank_in_archive_order":1,"of":8,"metrics":{"Smoothed BLEU-4":"21.87"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on-5","task":"Code Documentation Generation","dataset":"CodeSearchNet - JavaScript","model":"CodeTrans-TF-Large","rank_in_archive_order":2,"of":8,"metrics":{"Smoothed BLEU-4":"18.98"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on-3","task":"Code Documentation Generation","dataset":"CodeSearchNet - Php","model":"CodeTrans-MT-Base","rank_in_archive_order":1,"of":8,"metrics":{"Smoothed BLEU-4":"26.23"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on","task":"Code Documentation Generation","dataset":"CodeSearchNet - Python","model":"CodeTrans-MT-Base","rank_in_archive_order":1,"of":7,"metrics":{"Smoothed BLEU-4":"20.39"},"uses_additional_data":false},{"leaderboard":"/sota/code-documentation-generation-on-4","task":"Code Documentation Generation","dataset":"CodeSearchNet - Ruby","model":"CodeTrans-MT-Base","rank_in_archive_order":1,"of":7,"metrics":{"Smoothed BLEU-4":"15.26"},"uses_additional_data":false},{"leaderboard":"/sota/git-commit-message-generation-on-commitgen","task":"Git Commit Message Generation","dataset":"CommitGen","model":"CodeTrans-TF-Large","rank_in_archive_order":1,"of":1,"metrics":{"BLEU-4":"44.41"},"uses_additional_data":false},{"leaderboard":"/sota/program-synthesis-on-algolisp","task":"Program Synthesis","dataset":"AlgoLisp","model":"CodeTrans-MT-TF-Small","rank_in_archive_order":1,"of":1,"metrics":{"Accuracy":"90.31"},"uses_additional_data":false},{"leaderboard":"/sota/source-code-summarization-on-summarizing-1","task":"Source Code Summarization","dataset":"Summarizing Source Code using a Neural Attention Model - C#","model":"CodeTrans-MT-Large","rank_in_archive_order":1,"of":1,"metrics":{"Smoothed BLEU-4":"23.57"},"uses_additional_data":false},{"leaderboard":"/sota/source-code-summarization-on-summarizing-2","task":"Source Code Summarization","dataset":"Summarizing Source Code using a Neural Attention Model - Python","model":"CodeTrans-MT-Base","rank_in_archive_order":1,"of":1,"metrics":{"Smoothed BLEU-4":"13.37"},"uses_additional_data":false},{"leaderboard":"/sota/source-code-summarization-on-summarizing-3","task":"Source Code Summarization","dataset":"Summarizing Source Code using a Neural Attention Model - SQL","model":"CodeTrans-MT-TF-Large","rank_in_archive_order":1,"of":1,"metrics":{"Smoothed BLEU-4":"19.98"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2104.02443","atlas_url":"https://app.syntology.ai/?focus=2104.02443","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}