Published January 1, 2021 | Version v1
Publication Open

CoTexT: Multi-task Learning with Code-Text Transformer

  • 1. Case Western Reserve University
  • 2. Vietnam National University Ho Chi Minh City
  • 3. Ho Chi Minh City University of Science

Description

We present CoTexT, a pre-trained, transformer-based encoder-decoder model that learns the representative context between natural language (NL) and programming language (PL). Using self-supervision, CoTexT is pre-trained on large programming language corpora to learn a general understanding of language and code. CoTexT supports downstream NL-PL tasks such as code summarizing/documentation, code generation, defect detection, and code debugging. We train CoTexT on different combinations of available PL corpus including both "bimodal" and "unimodal" data. Here, bimodal data is the combination of text and corresponding code snippets, whereas unimodal data is merely code snippets. We first evaluate CoTexT with multi-task learning: we perform Code Summarization on 6 different programming languages and Code Refinement on both small and medium size featured in the CodeXGLUE dataset. We further conduct extensive experiments to investigate CoTexT on other tasks within the CodeXGlue dataset, including Code Generation and Defect Detection. We consistently achieve SOTA results in these tasks, demonstrating the versatility of our models.

⚠️ This is an automatic machine translation with an accuracy of 90-95%

Translated Description (Arabic)

نقدم CoTexT، وهو نموذج لفك التشفير مدرّب مسبقًا وقائم على المحولات يتعلم السياق التمثيلي بين اللغة الطبيعية (NL) ولغة البرمجة (PL). باستخدام الإشراف الذاتي، يتم تدريب CoTexT مسبقًا على مجموعات لغة البرمجة الكبيرة لتعلم فهم عام للغة والرمز. يدعم CoTexT مهام NL - PL النهائية مثل تلخيص/توثيق التعليمات البرمجية وإنشاء التعليمات البرمجية واكتشاف العيوب وتصحيح التعليمات البرمجية. نقوم بتدريب CoTexT على مجموعات مختلفة من مجموعة PL المتاحة بما في ذلك البيانات "ثنائية النمط" و "أحادية النمط". هنا، البيانات ثنائية النمط هي مزيج من النص ومقتطفات التعليمات البرمجية المقابلة، في حين أن البيانات أحادية النمط هي مجرد مقتطفات التعليمات البرمجية. نقوم أولاً بتقييم CoTexT من خلال التعلم متعدد المهام: نقوم بتلخيص التعليمات البرمجية على 6 لغات برمجة مختلفة وتنقيح التعليمات البرمجية على كل من الحجم الصغير والمتوسط المميز في مجموعة بيانات CodeXGLUE. كما نجري تجارب مكثفة للتحقيق في CoTexT بشأن مهام أخرى داخل مجموعة بيانات CodeXGlue، بما في ذلك إنشاء التعليمات البرمجية واكتشاف العيوب. نحقق باستمرار نتائج SOTA في هذه المهام، مما يدل على تنوع نماذجنا.

Translated Description (French)

Nous présentons CoTexT, un modèle d'encodeur-décodeur pré-entraîné basé sur un transformateur qui apprend le contexte représentatif entre le langage naturel (NL) et le langage de programmation (PL). En utilisant l'autosupervision, CoTexT est pré-entraîné sur les grands corpus de langage de programmation pour apprendre une compréhension générale du langage et du code. CoTexT prend en charge les tâches NL-PL en aval telles que la synthèse/documentation de code, la génération de code, la détection de défauts et le débogage de code. Nous formons CoTexT sur différentes combinaisons de corpus PL disponibles, y compris les données « bimodales » et « unimodales ». Ici, les données bimodales sont la combinaison du texte et des extraits de code correspondants, tandis que les données unimodales sont simplement des extraits de code. Nous évaluons d'abord CoTexT avec un apprentissage multitâche : nous effectuons une synthèse de code sur 6 langages de programmation différents et un affinement de code sur les petites et moyennes tailles figurant dans l'ensemble de données CodeXGLUE. Nous menons en outre des expériences approfondies pour étudier CoTexT sur d'autres tâches dans l'ensemble de données CodeXGlue, y compris la génération de code et la détection de défauts. Nous obtenons constamment des résultats SOTA dans ces tâches, démontrant la polyvalence de nos modèles.

Translated Description (Spanish)

Presentamos CoTexT, un modelo de codificador-decodificador pre-entrenado y basado en transformador que aprende el contexto representativo entre el lenguaje natural (NL) y el lenguaje de programación (PL). Usando la auto-supervisión, CoTexT está pre-entrenado en grandes corpus de lenguajes de programación para aprender una comprensión general del lenguaje y el código. CoTexT admite tareas de NL-PL posteriores, como resumen/documentación de código, generación de código, detección de defectos y depuración de código. Capacitamos a CoTexT en diferentes combinaciones de corpus de PL disponibles, incluidos los datos "bimodales" y "unimodales". Aquí, los datos bimodales son la combinación de texto y fragmentos de código correspondientes, mientras que los datos unimodales son simplemente fragmentos de código. Primero evaluamos CoTexT con aprendizaje multitarea: realizamos el resumen de código en 6 lenguajes de programación diferentes y el refinamiento de código tanto en tamaños pequeños como medianos que aparecen en el conjunto de datos CodeXGLUE. Además, llevamos a cabo extensos experimentos para investigar CoTexT en otras tareas dentro del conjunto de datos de CodeXGlue, incluida la generación de código y la detección de defectos. Consistentemente logramos resultados SOTA en estas tareas, demostrando la versatilidad de nuestros modelos.

Files

2021.nlp4prog-1.5.pdf.pdf

Files (305.8 kB)

⚠️ Please wait a few minutes before your translated files are ready ⚠️ Note: Some files might be protected thus translations might not work.
Name Size Download all
md5:5085fc91a0ba08c16df6353c2b845ea2
305.8 kB
Preview Download

Additional details

Additional titles

Translated title (Arabic)
CoTexT: التعلم متعدد المهام باستخدام محول النص البرمجي
Translated title (French)
CoTexT : Apprentissage multitâche avec un transformateur code-texte
Translated title (Spanish)
CoTexT: Aprendizaje multitarea con Code-Text Transformer

Identifiers

Other
https://openalex.org/W3183962691
DOI
10.18653/v1/2021.nlp4prog-1.5

GreSIS Basics Section

Is Global South Knowledge
Yes
Country
Vietnam

References

  • https://openalex.org/W2016589492
  • https://openalex.org/W2101105183
  • https://openalex.org/W2896457183
  • https://openalex.org/W2911489562
  • https://openalex.org/W2922551710
  • https://openalex.org/W2962739339
  • https://openalex.org/W2962936887
  • https://openalex.org/W2963250244
  • https://openalex.org/W2970597249
  • https://openalex.org/W2972135640
  • https://openalex.org/W2988647680
  • https://openalex.org/W3034999214
  • https://openalex.org/W3035231859
  • https://openalex.org/W3086007799
  • https://openalex.org/W3089307846
  • https://openalex.org/W3098044990
  • https://openalex.org/W3098605233
  • https://openalex.org/W3170092793
  • https://openalex.org/W3192256856
  • https://openalex.org/W4288089799
  • https://openalex.org/W4292779060
  • https://openalex.org/W4385245566
  • https://openalex.org/W4394638297