
{"id":6701,"date":"2023-02-03T10:54:03","date_gmt":"2023-02-03T10:54:03","guid":{"rendered":"https:\/\/novelis.io\/?post_type=scientific-pub&#038;p=6701"},"modified":"2023-02-07T11:01:57","modified_gmt":"2023-02-07T11:01:57","slug":"jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java","status":"publish","type":"scientific-pub","link":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/","title":{"rendered":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel"},"content":{"rendered":"\n<p>D\u00e9couvrez notre article JaCoText : A Pretrained Model for Java Code-Text Generation publi\u00e9 dans le journal \u00ab\u00a0<a href=\"https:\/\/publications.waset.org\/10012935\/jacotext-a-pretrained-model-for-java-code-text-generation\" target=\"_blank\" rel=\"noopener\">World Academy of Science, Engineering and Technology<\/a>\u00ab\u00a0. Notre \u00e9quipe de recherche a \u00e9galement pr\u00e9sent\u00e9 ses travaux lors de la <a href=\"https:\/\/waset.org\/code-generation-and-implementation-conference-in-october-2022-in-paris\" target=\"_blank\" rel=\"noopener\">Conf\u00e9rence internationale sur la g\u00e9n\u00e9ration et l&rsquo;impl\u00e9mentation de codes<\/a>\u00a0: <a href=\"https:\/\/novelis.io\/fr\/events\/conference-internationale-sur-la-generation-et-limplementation-de-codes\/\">regarder le replay<\/a>. Merci \u00e0 l&rsquo;<a href=\"https:\/\/novelis.io\/fr\/laboratoire-rd\/\">\u00e9quipe de recherche de Novelis<\/a> pour ses connaissances et son exp\u00e9rience.<\/p>\n\n\n\n<p><strong>Pour citer cet article, merci d&rsquo;utiliser :\u00a0Espejel, J. , Alassan, M. , Dahhane, W. , Ettifouri, E. (2023). &lsquo;JaCoText: A Pretrained Model for Java Code-Text Generation&rsquo;. World Academy of Science, Engineering and Technology, Open Science Index 194, International Journal of Computer and Systems Engineering, 17(2), 100 &#8211; 105.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Abstract<\/h2>\n\n\n\n<p>En traitement du langage naturel (NL), plusieurs mod\u00e8les pr\u00e9-entra\u00een\u00e9s tels que BERT, BART et T5 ont atteint de bonnes performances dans la g\u00e9n\u00e9ration des langages de programmation (PL) comme le Java et le Python. Dans cet article, nous pr\u00e9sentons Text2Java: un syst\u00e8me compos\u00e9 de trois mod\u00e8les pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel. Nos mod\u00e8les tirent parti de certains crit\u00e8res pour am\u00e9liorer les performances des mod\u00e8les propos\u00e9s par Raffel et al. (2020), Beltagy et al. (2019), et Lee et al. (2020). Nous explorons le pr\u00e9-apprentissage suppl\u00e9mentaire avec les deux architectures\u00a0: \u00a0et . D&rsquo;une part, lorsque nous utilisons l\u2019architecture , nous commen\u00e7ons l\u2019apprentissage \u00e0 partir des checkpoints CoTexT d\u00e9j\u00e0 entra\u00een\u00e9s sur les datasets C4 et CodeSearchNet. D&rsquo;une autre part, l\u2019apprentissage utilisant \u00a0est lanc\u00e9 directement \u00e0 partir du checkpoint pr\u00e9c\u00e9demment entra\u00een\u00e9 sur le dataset C4. Les exp\u00e9rimentations montrent que les mod\u00e8les Text2Java atteignent les r\u00e9sultats de l\u2019\u00e9tat de l\u2019art, d\u00e9montrant ainsi leur efficacit\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1 Introduction<\/h2>\n\n\n\n<p>Pour d\u00e9velopper des logiciels informatiques, les programmeurs combinent entre le langage naturel (natural language, NL) et le langage de programmation (programming language, PL). Le langage naturel est utilis\u00e9 dans la documentation des logiciels, comme les doc-strings pour d\u00e9crire les m\u00e9thodes et les classes. La documentation de certains projets dans une grande vari\u00e9t\u00e9 de langages de programmation est accessible \u00e0 travers des sites web comme Stack Overflow, GitHub, GeeksforGeeks, et W3Schools.<\/p>\n\n\n\n<p>R\u00e9cemment, la communaut\u00e9 scientifique a d\u00e9velopp\u00e9 plusieurs syst\u00e8mes qui ont pour but de g\u00e9n\u00e9rer automatiquement du code source dans diff\u00e9rents langages de programmation. Ces mod\u00e8les sont inspir\u00e9s des mod\u00e8les de langage (Language Models, LMs) pr\u00e9-entra\u00een\u00e9s, con\u00e7us \u00e0 l&rsquo;origine pour aborder \u00a0diff\u00e9rentes t\u00e2ches telles que la synth\u00e8se de texte (<a href=\"#Gusfield1997\">Zhang et al., 2019<\/a>), la r\u00e9ponse aux questions (<a href=\"#Gusfield1997\">Khashabi et al., 2018;<\/a> Clark et al., 2019), et l&rsquo;analyse des sentiments (<a href=\"#Gusfield1997\">Mohanty et al., 2021<\/a>).<\/p>\n\n\n\n<p>Selon les \u00e9tudes les plus r\u00e9centes de l\u2019\u00e9tat de l\u2019art, le succ\u00e8s des LMs d\u00e9pend de certains crit\u00e8res, tels que l&rsquo;utilisation de gros volumes de donn\u00e9es pour le pr\u00e9-apprentissage, les fonctions de co\u00fbt utilis\u00e9es lors de l\u2019entra\u00eenement telles que la mod\u00e9lisation du langage masqu\u00e9 (MLM) utilis\u00e9e dans BERT (<a href=\"#Gusfield1997\">Devlin et al., 20<\/a>18), l\u2019erreur de m\u00e9lange (<a href=\"#Gusfield1997\">Liu et al., 201<\/a>9a), la mod\u00e9lisation du langage causal (CLM) (<a href=\"#Gusfield1997\">Radford et Narasimhan, 201<\/a>8), la substitution al\u00e9atoire de tokens (RTS) et le mod\u00e8le de langage \u00e9chang\u00e9 (SLM) propos\u00e9 par Liello et al. (2021). De plus, certains mod\u00e8les tels que SciBERT (<a href=\"#Gusfield1997\">Beltagy et al., 201<\/a>9) et BioBERT (<a href=\"#Gusfield1997\">Lee et al., 202<\/a>0) ont montr\u00e9 les avantages du pr\u00e9-apprentissage du mod\u00e8le en utilisant des donn\u00e9es li\u00e9es \u00e0 une t\u00e2che sp\u00e9cifique.<\/p>\n\n\n\n<p>En s\u2019inspirant des \u00e9tudes pr\u00e9c\u00e9dentes, nous introduisons le mod\u00e8le TexT2Java, un mod\u00e8le pr\u00e9-entra\u00een\u00e9 bas\u00e9 sur les Transformeurs (<a href=\"#Gusfield1997\">Vaswani et al., 20<\/a>17), et inspir\u00e9 par (<a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0) et CoTexT (<a href=\"#Gusfield1997\">Phan et al., 20<\/a>21) . TexT2Java utilise certains crit\u00e8res pour am\u00e9liorer les performances du mod\u00e8le propos\u00e9 par <a href=\"#Gusfield1997\">Raffel et al., 20<\/a>20, <a href=\"#Gusfield1997\">Beltagy et al., 201<\/a>9, et <a href=\"#Gusfield1997\">Lee et al., 202<\/a>0. Par exemple, en se basant sur le succ\u00e8s de CodeGPT-adapt\u00e9, nous commen\u00e7ons l\u2019apprentissage \u00e0 partir des checkpoints CoTexT-1CC et CoTexT-2CC, au lieu de faire un apprentissage \u00e0 partir du z\u00e9ro. \u00c9tant donn\u00e9 que le but de notre mod\u00e8le est de g\u00e9n\u00e9rer du code java, nous avons effectu\u00e9 un pr\u00e9-apprentissage suppl\u00e9mentaire en utilisant des donn\u00e9es appartenant \u00e0 un langage de programmation sp\u00e9cifique (java). La Figure 1 d\u00e9crit le pr\u00e9-apprentissage suppl\u00e9mentaire sur chaque checkpoint. De m\u00eame, nous augmentons la longueur d&rsquo;entr\u00e9e et de sortie dans la phase de fine-tuning.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-1.png\" alt=\"\" class=\"wp-image-6705\" width=\"310\" height=\"269\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-1.png 620w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-1-600x520.png 600w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-1-250x217.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-1-30x26.png 30w\" sizes=\"(max-width: 310px) 100vw, 310px\" \/><figcaption class=\"wp-element-caption\">Figure 1. Mod\u00e8le TexT2Java<\/figcaption><\/figure><\/div>\n\n\n<p>Contrairement aux mod\u00e8les de g\u00e9n\u00e9ration de langage naturel tels que BERT (<a href=\"#Gusfield1997\">Devlin et al., 20<\/a>18) et PEGASUS (<a href=\"#Gusfield1997\">Zhang et al., 20<\/a>19), notre mod\u00e8le de g\u00e9n\u00e9ration du code java doit apprendre les r\u00e8gles de grammaire (<a href=\"#Gusfield1997\">Rabinovich et al., 20<\/a>17) et de syntaxe (<a href=\"#Gusfield1997\">Yin and Neubig, 20<\/a>17). La Figure 2 montre un exemple d\u2019une s\u00e9quence donn\u00e9e en entr\u00e9e du r\u00e9seau de neurones, le code de r\u00e9f\u00e9rence (gold standard) que le mod\u00e8le est cens\u00e9 g\u00e9n\u00e9rer et la pr\u00e9diction du r\u00e9seau.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-2.png\" alt=\"\" class=\"wp-image-6707\" width=\"388\" height=\"219\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-2.png 604w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-2-600x339.png 600w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-2-250x141.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-2-30x17.png 30w\" sizes=\"(max-width: 388px) 100vw, 388px\" \/><figcaption class=\"wp-element-caption\">Figure 2. Exemple d\u2019une g\u00e9n\u00e9ration de code faite par notre mod\u00e8le et le code gold standard (r\u00e9f\u00e9rence) correspondant<\/figcaption><\/figure><\/div>\n\n\n<p>Nos contributions sont comme suit&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nous montrons que les mod\u00e8les Text2Java apprennent mieux la syntaxe java lorsque nous faisons un apprentissage suppl\u00e9mentaire<\/li>\n\n\n\n<li>Nous pr\u00e9sentons des exp\u00e9riences combinant les donn\u00e9es unimodales et bimodales pendant l\u2019apprentissage<\/li>\n\n\n\n<li>Nous montrons diff\u00e9rents ensembles d&rsquo;exp\u00e9riences pour comprendre le comportement des mod\u00e8les T5 dans la t\u00e2che de g\u00e9n\u00e9ration du Java<\/li>\n\n\n\n<li>Nous surpassons les scores obtenus par les mod\u00e8les PLBART, CodeGPT, CodeGPT-adapt\u00e9 et CoTexT<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2 Text2Java<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Fine-tuning<\/h3>\n\n\n\n<p>Nous affinons nos mod\u00e8les en fonction de deux crit\u00e8res :<\/p>\n\n\n\n<p><strong>Longueur des s\u00e9quences. <\/strong>Selon notre analyse des sorties g\u00e9n\u00e9r\u00e9s par les m\u00e9thodes de l\u2019\u00e9tat de l\u2019art, nous avons observ\u00e9 que certaines s\u00e9quences de code produites par les mod\u00e8les \u00e9taient incompl\u00e8tes par rapport \u00e0 nos cibles. Par cons\u00e9quent, nous avons tokenis\u00e9 l&rsquo;ensemble d&rsquo;apprentissage et de validation avec le mod\u00e8le Sentence Piece (<a href=\"#Gusfield1997\">Kudo and Richardson, 20<\/a>18). \u00c0 partir de ce dataset, nous avons obtenu la plus grande longueur de s\u00e9quence et nous l\u2019avons utilis\u00e9e comme valeur pour les entr\u00e9es et les cibles.<\/p>\n\n\n\n<p><strong>Nombre de pas. <\/strong>Puisque nous avons augment\u00e9 la longueur des s\u00e9quences dans notre mod\u00e8le, nous avons augment\u00e9 aussi le nombre de pas dans le fine-tuning.<\/p>\n\n\n\n<p>Tout d&rsquo;abord, nous appliquons les deux crit\u00e8res en commen\u00e7ant le fine-tuning \u00e0 partir des checkpoints de CoTexT 2CC et 1CC, respectivement. D&rsquo;une part, CoTexT-1CC est pr\u00e9-entra\u00een\u00e9 sur des donn\u00e9es unimodales (uniquement du code), et CoTexT-2CC est pr\u00e9-entra\u00een\u00e9 sur des donn\u00e9es bimodales (qui contiennent du code et du langage naturel). Les r\u00e9sultats de ces exp\u00e9riences sont pr\u00e9sent\u00e9s dans le Tableau 2.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Pr\u00e9-apprentissage suppl\u00e9mentaire<\/h3>\n\n\n\n<p><a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0 a fait quelques observations importantes dans lesquelles nous \u00e9tayons notre travail\u00a0: 1) pour certaines t\u00e2ches sp\u00e9cifiques, la fa\u00e7on d&rsquo;am\u00e9liorer les performances du mod\u00e8le est de le pr\u00e9-entra\u00eener avec des corpus qui appartiennent \u00e0 ce domaine sp\u00e9cifique, 2) un pr\u00e9-apprentissage suppl\u00e9mentaire peut am\u00e9liorer les performances des r\u00e9seaux de neurones, 3) un faible nombre d\u2019\u00e9poques dans le mod\u00e8le de pr\u00e9-apprentissage donne des scores plus \u00e9lev\u00e9s dans les t\u00e2ches de g\u00e9n\u00e9ration. De plus, CodeGPT entra\u00een\u00e9 \u00e0 partir de z\u00e9ro a atteint des scores inf\u00e9rieurs \u00e0 ceux de CodeGPT-adapt\u00e9 qui est entra\u00een\u00e9 \u00e0 partir du checkpoint de GPT-2.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; Sur la base des points mis en \u00e9vidence pr\u00e9c\u00e9demment, nous avons initialis\u00e9 les mod\u00e8les Text2Java-B-1CC-PL et Text2Java-B-2CC-PL \u00e0 partir des poids de CoTexT-1CC et CoTexT-2CC (<a href=\"#Gusfield1997\">Phan et al., 20<\/a>21), respectivement. Nous utilisons notre jeu de donn\u00e9es Java pour faire un apprentissage auto-supervis\u00e9 avec les s\u00e9quences de code seulement. De m\u00eame, nous avons initialis\u00e9 le mod\u00e8le Text2Java-L-1CC-PL \u00e0 partir des poids de &nbsp;d\u00e9j\u00e0 entra\u00een\u00e9s sur le jeu de donn\u00e9es C4. Contrairement aux mod\u00e8les Text2Java-B, dans le Text2Java-L-1CC-PL, nous avons d\u2019abord entra\u00eener notre mod\u00e8le sur CodeSearchNet, puis sur notre jeu de donn\u00e9es Java.<\/p>\n\n\n\n<p><strong>Architecture<\/strong> Text2Java utilise la m\u00eame architecture que T5 (<a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0), bas\u00e9e sur les Transformeurs (<a href=\"#Gusfield1997\">Vaswani et al., 20<\/a>17). D&rsquo;une part, &nbsp;se compose de 12 couches dans l&rsquo;encodeur et de 12 couches dans le d\u00e9codeur, avec une dimension de mod\u00e8le de 768 et 12 t\u00eates (environ 220 millions de param\u00e8tres). D&rsquo;autre part, &nbsp;a 24 couches dans l&rsquo;encodeur et le d\u00e9codeur chacun, avec une dimension de mod\u00e8le de 1024 et 16 t\u00eates (environ 770 millions de param\u00e8tres).<\/p>\n\n\n\n<p><strong>Entr\u00e9e\/Sortie<\/strong> L&rsquo;entr\u00e9e de l&rsquo;encodeur est un code Java bruyant. L&rsquo;entr\u00e9e du d\u00e9codeur est le code java d&rsquo;origine avec un d\u00e9calage de position.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Exp\u00e9rimentation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Dataset de g\u00e9n\u00e9ration de code<\/h3>\n\n\n\n<p>Pour la t\u00e2che de g\u00e9n\u00e9ration de code Java, nous avons utilis\u00e9 CONCODE (<a href=\"#Gusfield1997\">Iyer et al., 20<\/a>18), qui est un dataset contenant le contexte d&rsquo;un environnement de programmation Java r\u00e9el. L&rsquo;objectif de CONCODE est de g\u00e9n\u00e9rer des fonctions membres Java qui ont des variables de membre de classe \u00e0 partir de la documentation. Le Tableau 1 d\u00e9crit le dataset CONCODE.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1.jpg\" alt=\"\" class=\"wp-image-6709\" width=\"557\" height=\"91\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1.jpg 946w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1-600x98.jpg 600w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1-250x41.jpg 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1-768x126.jpg 768w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-1-30x5.jpg 30w\" sizes=\"(max-width: 557px) 100vw, 557px\" \/><figcaption class=\"wp-element-caption\">Tableau 1. Statistiques du dataset CONCODE<\/figcaption><\/figure><\/div>\n\n\n<h3 class=\"wp-block-heading\">3.2 Dataset de pr\u00e9-apprentissage suppl\u00e9mentaire<\/h3>\n\n\n\n<p>Pour le pr\u00e9-apprentissage suppl\u00e9mentaire, nous avons utilis\u00e9 notre jeu de donn\u00e9es Java. \u00c0 l&rsquo;origine, il se compose de 812\u00a0008, 40\u00a0468, et 51\u00a0210\u00a0donn\u00e9es d\u2019apprentissage, de validation et\u00a0 de test, respectivement. Nous avons supprim\u00e9 les donn\u00e9es contenant des erreurs syntaxique dans les trois ensembles\u00a0: 2\u00a0974 dans l&rsquo;ensemble d\u2019apprentissage, 235\u00a0dans l&rsquo;ensemble de validation et 161 dans l&rsquo;ensemble de test. Nous avons utilis\u00e9 le reste des donn\u00e9es pour l\u2019apprentissage. Cela signifie qu&rsquo;au total, nous avons utilis\u00e9 900\u00a0316 donn\u00e9es pour pr\u00e9-entra\u00eener notre mod\u00e8le.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.3 M\u00e9triques d\u2019\u00e9valuation<\/h3>\n\n\n\n<p>Pour \u00e9valuer nos r\u00e9sultats, nous utilisons les trois mesures d\u00e9crites ci-dessous.<\/p>\n\n\n\n<p><strong>BLEU <\/strong>(<a href=\"#Gusfield1997\">Papineni et al., 20<\/a>02) est une m\u00e9trique bas\u00e9e sur une pr\u00e9cision de n-gramme calcul\u00e9e entre le candidat et la\/les r\u00e9f\u00e9rences. La pr\u00e9cision N-gramme applique une p\u00e9nalisation si des mots apparaissent dans un candidat et dans aucune des r\u00e9f\u00e9rences, si un mot appara\u00eet plus de fois dans le candidat que dans le nombre maximal de r\u00e9f\u00e9rences. Par ailleurs, la m\u00e9trique \u00e9choue si le candidat n&rsquo;a pas la longueur appropri\u00e9e. Tout comme <a href=\"#Gusfield1997\">Ahmad et al., (20<\/a>21) et <a href=\"#Gusfield1997\">Phan et al., (20<\/a>21), nous utilisons le score BLEU au niveau du corpus dans la t\u00e2che de g\u00e9n\u00e9ration de code.<\/p>\n\n\n\n<p><strong>CodeBLEU <\/strong>(<a href=\"#Gusfield1997\">Ren et al., 20<\/a>20) fonctionne via une correspondance n-gram, et il prend en compte \u00e0 la fois la correspondance syntaxique et s\u00e9mantique. La correspondance syntaxique est obtenue par la correspondance entre le candidat de code et les sous-arbres de r\u00e9f\u00e9rence de code de l&rsquo;arbre de syntaxe abstraite (AST). La correspondance s\u00e9mantique tient compte de la structure du flux de donn\u00e9es.<\/p>\n\n\n\n<p><strong>Exact Match (EM) <\/strong>est le rapport du nombre de pr\u00e9dictions qui correspondent exactement \u00e0 l&rsquo;une des r\u00e9f\u00e9rences de code.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.4 Lignes de base <\/h3>\n\n\n\n<p>Nous comparons notre mod\u00e8le avec des mod\u00e8les de pointe bas\u00e9s sur les Transformeurs.<\/p>\n\n\n\n<p><strong>CodeGPT ou CodeGPT-adapt\u00e9 <\/strong>sont bas\u00e9s sur le mod\u00e8le GPT-2 (<a href=\"#Gusfield1997\">Budzianowqki and Vulic,20<\/a>19). La diff\u00e9rence entre les deux mod\u00e8les est que CodeGPT est entra\u00een\u00e9 \u00e0 partir de z\u00e9ro sur le dataset CodeSearchNet (<a href=\"#Gusfield1997\">Husain et al., 20<\/a>19) et que CodeGPT-adapt\u00e9 est initialis\u00e9 \u00e0 partir du checkpoint de GPT-2.<\/p>\n\n\n\n<p><strong>PLBART <\/strong>(<a href=\"#Gusfield1997\">Ahmad et al., 20<\/a>21) utilise la m\u00eame architecture que (<a href=\"#Gusfield1997\">Lewis et al., 20<\/a>20). De plus, PLBART utilise trois strat\u00e9gies de bruit: le masquage de jeton, la suppression de jeton et le remplissage de jeton.<\/p>\n\n\n\n<p><strong>CoTexT <\/strong>(<a href=\"#Gusfield1997\">Phan et al., 20<\/a>21) utilise la m\u00eame architecture que . Il est entra\u00een\u00e9 \u00e0 la fois sur des donn\u00e9es unimodales et bimodales \u00e0 l&rsquo;aide de CodeSearchNet Corpus (<a href=\"#Gusfield1997\">Husain et al., 20<\/a>19) et des r\u00e9f\u00e9rentiels GitHub.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4 Travail connexe<\/h2>\n\n\n\n<p>Il y a eu des approches int\u00e9ressantes pour mapper \u00a0le NL au code source, telles que les expressions r\u00e9guli\u00e8res (<a href=\"#Gusfield1997\">Locascio et al., 20<\/a>16), les requ\u00eates de base de donn\u00e9es (<a href=\"#Gusfield1997\">Xu et al., 20<\/a>17\u00a0; Zhong et al., 2017), et plus r\u00e9cemment les r\u00e9seaux de neurones ont prouv\u00e9 leur efficacit\u00e9 pour g\u00e9n\u00e9rer automatiquement du code source \u00e0 partir de diff\u00e9rents langages de programmation \u00e0 usage g\u00e9n\u00e9ral comme le Python (<a href=\"#Gusfield1997\">Yin and Neubig, 20<\/a>17) et le Java (<a href=\"#Gusfield1997\">Phan et al., 20<\/a>21). Simultan\u00e9ment, les bases de donn\u00e9es ont bondi avec eux, par exemple, CONCODE (<a href=\"#Gusfield1997\">Iyer et al., 20<\/a>18), CONALA (<a href=\"#Gusfield1997\">Yin et al., 20<\/a>18), et CodeSearchNet (<a href=\"#Gusfield1997\">Husain et al., 20<\/a>19).<a href=\"#Gusfield1997\">Yin and Neubig (20<\/a>17) ont utilis\u00e9 un encodeur BiLSTM et un d\u00e9codeur RNN pour g\u00e9n\u00e9rer des arbres d&rsquo;analyse syntaxiquement valides. Inspir\u00e9 par le d\u00e9codeur sensible \u00e0 la grammaire, <a href=\"#Gusfield1997\">Lyer et al., 20<\/a>18 ont utilis\u00e9 l&rsquo;encodeur Bi-LSTMs pour calculer les repr\u00e9sentations contextuelles du NL, et un d\u00e9codeur RNN bas\u00e9 sur LSTM avec un m\u00e9canisme d&rsquo;attention en deux \u00e9tapes suivi d&rsquo;un m\u00e9canisme de copie pour mapper NL avec le code source.<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp; R\u00e9cemment, les mod\u00e8les bas\u00e9s sur les r\u00e9seaux de neurones Transformeurs (<a href=\"#Gusfield1997\">Vaswani et al., 20<\/a>17) et initialement destin\u00e9s \u00e0 la g\u00e9n\u00e9ration de langage naturel ont \u00e9t\u00e9 d&rsquo;un grand int\u00e9r\u00eat pour la g\u00e9n\u00e9ration automatique de code. PLBART utilise la m\u00eame architecture de mod\u00e8le que &nbsp;(<a href=\"#Gusfield1997\">Lewis et al., 202<\/a>0). Contrairement \u00e0 , PLBART stabilise l\u2019apprentissage en ajoutant une couche de normalisation en haut de l&rsquo;encodeur et du d\u00e9codeur suivant <a href=\"#Gusfield1997\">Liu et al.(20<\/a>20). Semblable \u00e0 PLBART, CoTexT (<a href=\"#Gusfield1997\">Phan et al., 20<\/a>21) est un mod\u00e8le d&rsquo;encodeur-d\u00e9codeur qui est bas\u00e9 sur l&rsquo;architecture (<a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0).<\/p>\n\n\n\n<p>\u00a0\u00a0\u00a0 De plus, les mod\u00e8les bas\u00e9s uniquement sur l\u2019encodeur tels que RoBERTa (code) (Lu et al., 2021) inspir\u00e9 de RoBerTa (<a href=\"#Gusfield1997\">Liu et al., 20<\/a>19b), et les mod\u00e8les uniquement d\u00e9codeurs tels que CodeGPT et CodeGPT-adapt\u00e9 ont obtenu des r\u00e9sultats comp\u00e9titifs \u00e0 la pointe de la technologie. Semblable \u00e0 CodeGPT et CodeGPT-adapt\u00e9, RoBERTa (code) est pr\u00e9-entra\u00een\u00e9 sur le dataset CodeSearchNet. Contrairement \u00e0 RoBERTa (code), CodeGPT est pr\u00e9-entra\u00een\u00e9 sur CodeSearchNet \u00e0 partir de z\u00e9ro, et CodeGPT-adapt\u00e9 est pr\u00e9-entra\u00een\u00e9 \u00e0 partir des checkpoints de GPT-2 (<a href=\"#Gusfield1997\">Budzianowqki and Vulic,20<\/a>19). CodeGPT et CodeGPT-adapt\u00e9 suivent la m\u00eame architecture et le m\u00eame objectif d\u2019apprentissage que GPT-2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5 R\u00e9sultats et discussion<\/h2>\n\n\n\n<p>Le Tableau 2 montre les r\u00e9sultats que nous avons obtenus apr\u00e8s le fine-tuning du mod\u00e8le sur le dataset CONCODE gr\u00e2ce \u00e0 la variation du nombre de pas et la longueur de l&rsquo;entr\u00e9e et de la sortie des checkpoints de CoTexT-2CC et CoTexT-1CC, respectivement. Les r\u00e9sultats montrent qu\u2019utiliser 60 000 pas donne de meilleurs r\u00e9sultats que d\u2019utiliser 45 000 pas dans le fine-tuning. De plus, en utilisant la plus grande longueur de s\u00e9quence de code, nous surpassons les scores BLEU et EM obtenus par <a href=\"#Gusfield1997\">Phan et al., 20<\/a>21 (surlign\u00e9s en italique). Les r\u00e9sultats varient l\u00e9g\u00e8rement, avec des diff\u00e9rences presque ind\u00e9tectables. Cependant, CoTexT-1CC a obtenu un score plus \u00e9lev\u00e9 sur BLEU et CodeBLEU, tandis que CoTexT-2CC a obtenu un score plus \u00e9lev\u00e9 sur la m\u00e9trique EM.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-2.png\" alt=\"\" class=\"wp-image-6711\" width=\"391\" height=\"172\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-2.png 539w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-2-250x110.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-2-30x13.png 30w\" sizes=\"(max-width: 391px) 100vw, 391px\" \/><figcaption class=\"wp-element-caption\">Tableau 2 : R\u00e9sultats variant le nombre de pas et la longueur d&rsquo;entr\u00e9e et de sortie dans le fine-tuning dans CoTexT-2CC et CoTexT-1CC.<\/figcaption><\/figure><\/div>\n\n\n<p>Varier le nombre de pas et augmenter la longueur de l&rsquo;entr\u00e9e et de la cible dans le fine-tuning est le premier coup pour am\u00e9liorer les r\u00e9sultats dans la t\u00e2che de g\u00e9n\u00e9ration de code Java. Le deuxi\u00e8me coup est le pr\u00e9-apprentissage suppl\u00e9mentaire \u00e0 partir des checkpoints de CoTexT suivant le principe du CodeGPT-Adapt\u00e9. Apr\u00e8s un pr\u00e9-apprentissage suppl\u00e9mentaire, nous affinons le mod\u00e8le en utilisant les meilleurs param\u00e8tres de valeur que nous avons mis en \u00e9vidence dans le Tableau 2.<\/p>\n\n\n\n<p>\u00a0\u00a0\u00a0 Le Tableau 3 montre les r\u00e9sultats de fine-tuning apr\u00e8s le pr\u00e9-apprentissage suppl\u00e9mentaire \u00e0 l&rsquo;aide de notre jeu de donn\u00e9es Java. Les mod\u00e8les commencent par Java-B sont entra\u00een\u00e9s \u00e0 partir de l&rsquo;architecture , et le mod\u00e8le Text2Java-L-1CC-PL est entra\u00een\u00e9s \u00e0 partir de . Comme nous l&rsquo;avons mentionn\u00e9 pr\u00e9c\u00e9demment, l\u2019apprentissage suppl\u00e9mentaire utilisant notre jeu de donn\u00e9es Java a commenc\u00e9 \u00e0 partir des checkpoints de CoTexT. Cependant, l\u2019apprentissage du mod\u00e8le Text2Java-L-1CC-PL a commenc\u00e9 \u00e0 partir du checkpoint de \u00a0d\u00e9j\u00e0 entra\u00een\u00e9 sur le jeu de donn\u00e9es C4 (<a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0). Nous avons entra\u00een\u00e9 \u00a0sur le dataset CodeSearchNet, puis sur notre dataset Java pendant 200\u00a0000\u00a0pas chacun et en utilisant des donn\u00e9es unimodales (uniquement du code). Enfin, nous affinons le mod\u00e8le sur le jeu de donn\u00e9es CONCODE pendant 45\u00a0000 pas.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-3.png\" alt=\"\" class=\"wp-image-6713\" width=\"351\" height=\"230\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-3.png 519w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-3-250x164.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/figure-3-30x20.png 30w\" sizes=\"(max-width: 351px) 100vw, 351px\" \/><figcaption class=\"wp-element-caption\">Figure 3. Am\u00e9lioration de notre mod\u00e8le gr\u00e2ce \u00e0 l\u2019apprentissage suppl\u00e9mentaire<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-3.png\" alt=\"\" class=\"wp-image-6715\" width=\"271\" height=\"185\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-3.png 373w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-3-250x170.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-3-30x20.png 30w\" sizes=\"(max-width: 271px) 100vw, 271px\" \/><figcaption class=\"wp-element-caption\">Tableau 3. R\u00e9sultats avec un pr\u00e9-apprentissage suppl\u00e9mentaire \u00e0 l&rsquo;aide de notre jeu de donn\u00e9es Java<\/figcaption><\/figure><\/div>\n\n\n<p>&nbsp;&nbsp;&nbsp; D&rsquo;apr\u00e8s les r\u00e9sultats, nous montrons que trois de nos mod\u00e8les parviennent \u00e0 d\u00e9passer les r\u00e9sultats de l\u2019\u00e9tat de l\u2019art. Sans surprise, Text2Java-L-1CC-PL obtient les scores les plus \u00e9lev\u00e9s dans les trois m\u00e9triques. Malgr\u00e9 le m\u00eame protocole d\u2019apprentissage, nous nous attendions \u00e0 ce que Text2Java-L-1CC-PL obtienne de meilleurs r\u00e9sultats que les deux autres mod\u00e8les, car &nbsp;a une architecture plus complexe. De plus, les scores obtenus par Java-1CC-PL et Java-2CC-PL n&rsquo;ont pas de diff\u00e9rence abyssale.<\/p>\n\n\n\n<p>Enfin, la Figure 3 montre les am\u00e9liorations de notre mod\u00e8le Text2Java-B-2CC-PL avec un apprentissage suppl\u00e9mentaire utilisant notre jeu de donn\u00e9es java. Les trois mod\u00e8les que nous comparons dans le tableau sont affin\u00e9s par pas de 60&nbsp;000&nbsp; et sont bas\u00e9s sur l&rsquo;architecture .<\/p>\n\n\n\n<p><strong>Exp\u00e9rience suppl\u00e9mentaire.<\/strong> Nous \u00e9tudions les performances du mod\u00e8le T5 sur la t\u00e2che de g\u00e9n\u00e9ration du code java. Nous affinons le dataset CONCODE directement sur trois types de mod\u00e8les T5\u00a0: , \u00a0et . Nous affinons les mod\u00e8les T5 en utilisant les meilleurs param\u00e8tres que nous avons pr\u00e9sent\u00e9s dans le Tableau 2.<\/p>\n\n\n\n<p>Le Tableau 4 montre les scores de chaque type de mod\u00e8le T5 directement apr\u00e8s le fine-tuning \u00e0 l&rsquo;aide du dataset CONCODE. Dans tous les cas, le score s&rsquo;am\u00e9liore \u00e0 mesure que le nombre de pas augmente. Sans surprise, le mod\u00e8le T5 le plus sophistiqu\u00e9 obtient les meilleurs r\u00e9sultats\u00a0: , suivi de\u00a0 , et enfin de . De plus, \u00a0met plus de temps \u00e0 converger.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-4.png\" alt=\"\" class=\"wp-image-6717\" width=\"256\" height=\"228\" srcset=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-4.png 339w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-4-250x223.png 250w, https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/tableau-4-30x27.png 30w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><figcaption class=\"wp-element-caption\">Tableau 4. Fine-tuning directement \u00e0 partir des mod\u00e8les T5<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">6 Conclusion<\/h2>\n\n\n\n<p>Nous avons pr\u00e9sent\u00e9 Text2Java, un ensemble de mod\u00e8les pr\u00e9-entra\u00een\u00e9s ad\u00e9quats pour g\u00e9n\u00e9rer du code java \u00e0 partir du langage naturel. Text2Java est bas\u00e9 sur les mod\u00e8les T5 (<a href=\"#Gusfield1997\">Raffel et al., 202<\/a>0).<\/p>\n\n\n\n<p>Nous explorons les performances de deux architectures\u00a0: \u00a0et \u00a0pour g\u00e9n\u00e9rer du code Java. Nous testons quelques points forts propos\u00e9s par <a href=\"#Gusfield1997\">Raffel et al.(202<\/a>0) pour am\u00e9liorer les performances du framework T5 dans les t\u00e2ches de g\u00e9n\u00e9ration de langage, sur la g\u00e9n\u00e9ration de code java. Certains de ces conseils pour pr\u00e9-entra\u00eener le mod\u00e8le \u00e0 l&rsquo;aide de corpus concernent la t\u00e2che sp\u00e9cifique que le mod\u00e8le va ex\u00e9cuter, et un pr\u00e9-apprentissage suppl\u00e9mentaire peut am\u00e9liorer les performances du mod\u00e8le. En outre, cela sugg\u00e8re d&rsquo;utiliser un faible nombre d\u2019\u00e9poques dans le pr\u00e9-apprentissage, car cela compte dans la performance finale. Nos mod\u00e8les obtiennent des r\u00e9sultats de pointe sur la t\u00e2che de g\u00e9n\u00e9ration de code Java. Dans le futur, des travaux pourraient \u00eatre int\u00e9ressants pour explorer les performances d&rsquo;autres mod\u00e8les de r\u00e9seaux de neurones, et am\u00e9liorer la syntaxe du Nos mod\u00e8les obtiennent des r\u00e9sultats de pointe sur la t\u00e2che de g\u00e9n\u00e9ration de code Java. Dans le futur, des travaux pourraient \u00eatre int\u00e9ressants pour explorer les performances d&rsquo;autres mod\u00e8les de r\u00e9seaux de neurones, et am\u00e9liorer la syntaxe du langage de programmation gr\u00e2ce \u00e0 l&rsquo;algorithme de d\u00e9codage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9f\u00e9rences<\/h2>\n\n\n\n<p><em>Wasi Ahmad, Saikat Chakraborty, Baishakhi Ray, and Kai-Wei Chang. 2021. Unified pre-training for program understanding and generation. In Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pages 2655\u20132668, Online. Association for Computational Linguistics<\/em><\/p>\n\n\n\n<p><em>Iz Beltagy, Kyle Lo, and Arman Cohan. 2019. SciB-ERT: A pretrained language model for scientific text. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), pages 3615\u20133620, Hong Kong, China. Association for Computational Linguistics<\/em><\/p>\n\n\n\n<p><em>Pawe\u0142 Budzianowski and Ivan Vulic. 2019. Hello, it\u2019s gpt-2 &#8211; how can i help you? towards the use of pretrained language models for task-oriented dialogue systems. In EMNLP.<\/em><\/p>\n\n\n\n<p><em>Christopher Clark, Kenton Lee, Ming-Wei Chang, Tom Kwiatkowski, Michael Collins, and Kristina Toutanova. 2019. BoolQ: Exploring the surprising difficulty of natural yes\/no questions. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pages 2924\u20132936, Minneapolis, Min- nesota. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. Bert: Pre-training of deep bidirectional transformers for language understanding. Cite arxiv:1810.04805Comment: 13 pages.<\/em><\/p>\n\n\n\n<p><em>Daya Guo, Duyu Tang, Nan Duan, Ming Zhou, and Jian Yin. 2019. Coupling retrieval and meta-learning for context-dependent semantic parsing. In Proceedings of the 57th Conference of the Association for Compu- tational Linguistics, ACL 2019, Florence, Italy, July 28- August 2, 2019, Volume 1: Long Papers, pages 855\u2013866. Association for Computational Linguistics<\/em><\/p>\n\n\n\n<p><em>Hamel Husain, Ho-Hsiang Wu, Tiferet Gazit, Miltiadis Allamanis, and Marc Brockschmidt. 2019. Code- searchnet challenge: Evaluating the state of semantic code search. CoRR, abs\/1909.09436.<\/em><\/p>\n\n\n\n<p><em>Srini Iyer, Ioannis Konstas, Alvin Cheung, and Luke Zettlemoyer. 2018. Mapping language to code in programmatic context. In EMNLP.<\/em><\/p>\n\n\n\n<p><em>Daniel Khashabi, Snigdha Chaturvedi, Michael Roth, Shyam Upadhyay, and Dan Roth. 2018. Looking beyond the surface:a challenge set for reading comprehension over multiple sentences. In NAACL.<\/em><\/p>\n\n\n\n<p><em>Taku Kudo and John Richardson. 2018. Sentencepiece: A simple and language independent subword tokenizer and detokenizer for neural text processing. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, EMNLP 2018: System Demonstrations, Brussels, Belgium, October 31 &#8211; November 4, 2018, pages 66\u201371. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Jinhyuk Lee, Wonjin Yoon, Sungdong Kim, Donghyeon Kim, Sunkyu Kim, Chan Ho So, and Jaewoo Kang. 2020. Biobert: a pre-trained biomedical language representation model for biomedical text mining. Bioinformatics, 36:1234 \u2013 1240.<\/em><\/p>\n\n\n\n<p><em>Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy,<br>Veselin Stoyanov, and Luke Zettlemoyer. 2020. BART: Denoising sequence-to-sequence pre-training for natural language generation, translation, and comprehension. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 7871\u20137880, Online. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Luca Di Liello, Matteo Gabburo, and Alessandro Moschitti. 2021. Efficient pre-training objectives for transformers. ArXiv, abs\/2104.09694.<\/em><\/p>\n\n\n\n<p><em>Peter J. Liu, Yu-An Chung, and Jie Ren. 2019a. Summae: Zero-shot abstractive text summarization using length-agnostic auto-encoders. ArXiv abs\/1910.00998.<\/em><\/p>\n\n\n\n<p><em>Yinhan Liu, Jiatao Gu, Naman Goyal, Xian Li, Sergey Edunov, Marjan Ghazvininejad, Mike Lewis, and Luke Zettlemoyer. 2020. Multilingual denoising pre- training for neural machine translation. Transac- tions of the Association for Computational Linguistics, 8:726\u2013742.<\/em><\/p>\n\n\n\n<p><em>Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, and Veselin Stoyanov. 2019b. Roberta: A robustly optimized bert pretraining approach. arXiv preprint arXiv:1907.11692.<\/em><\/p>\n\n\n\n<p><em>Nicholas Locascio, Karthik Narasimhan, Eduardo DeLeon, Nate Kushman, and Regina Barzilay. 2016. Neural generation of regular expressions from natural language with minimal domain knowledge. In Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, pages 1918 1923, Austin, Texas. Association for Computational Linguistics.<br>Shuai Lu, Daya Guo, Shuo Ren, Junjie Huang, Alexey Svyatkovskiy, Ambrosio Blanco, Colin B. Clement, Dawn Drain, Daxin Jiang, Duyu Tang, Ge Li, Lidong Zhou, Linjun Shou, Long Zhou, Michele Tufano, Ming Gong, Ming Zhou, Nan Duan, Neel Sundaresan, Shao Kun Deng, Shengyu Fu, and Shujie Liu. 2021. Codexglue: A machine learning benchmark dataset for code understanding and generation. CoRR, abs\/2102.04664.<\/em><\/p>\n\n\n\n<p><em>Ipsita Mohanty, Ankit Goyal, and Alex Dotterweich. 2021. Emotions are subtle: Learning sentiment based text representations using contrastive learning.<\/em><\/p>\n\n\n\n<p><em>Kishore Papineni, Salim Roukos, Todd Ward, and WeiJing Zhu. 2002. Bleu: a method for automatic evaluation of machine translation. In Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics, pages 311\u2013318, Philadelphia, Pennsylvania, USA. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Long Phan, Hieu Tran, Daniel Le, Hieu Nguyen, James Annibal, Alec Peltekian, and Yanfang Ye. 2021. CoTexT: Multi-task learning with code-text transformer. In Proceedings of the 1st Workshop on Natural Language Processing for Programming (NLP4Prog 2021), pages 40\u201347, Online. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Maxim Rabinovich, Mitchell Stern, and Dan Klein. 2017. Abstract syntax networks for code generation and semantic parsing. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 1139\u20131149, Vancouver, Canada. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Alec Radford and Karthik Narasimhan. 2018. Improving language understanding by generative pretraining.<\/em><\/p>\n\n\n\n<p><em>Colin Raffel, Noam Shazeer, Adam Roberts, Katherine Lee, Sharan Narang, Michael Matena, YanqiZhou, Wei Li, and Peter J. Liu. 2020. Exploring the limits of transfer learning with a unified text-to-text transformer. Journal of Machine Learning Research, 21(140):1\u201367.<\/em><\/p>\n\n\n\n<p><em>Shuo Ren, Daya Guo, Shuai Lu, Long Zhou, Shujie Liu, Duyu Tang, M. Zhou, Ambrosio Blanco, and Shuai Ma. 2020. Codebleu: a method for automatic evaluation of code synthesis. ArXiv, abs\/2009.10297.<\/em><\/p>\n\n\n\n<p><em>Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, \u0141 ukasz Kaiser, and Illia Polosukhin. 2017. Attention is allyou need. In Advances in Neural Information Processing Systems, volume 30. Curran Associates, Inc.<\/em><\/p>\n\n\n\n<p><em>Xiaojun Xu, Chang Liu, and Dawn Song. 2017. Sqlnet: Generating structured queries from natural language without reinforcement learning.<\/em><\/p>\n\n\n\n<p><em>Pengcheng Yin, Bowen Deng, Edgar Chen, Bogdan Vasilescu, and Graham Neubig. 2018. Learning to mine aligned code and natural language pairs from stack overflow. MSR \u201918, page 476\u2013486, New York, NY, USA. Association for Computing Machinery.<\/em><\/p>\n\n\n\n<p><em>Pengcheng Yin and Graham Neubig. 2017. A syntactic neural model for general-purpose code generation. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics, ACL 2017, Vancouver, Canada, July 30 &#8211; August 4, Volume 1: Long Papers, pages 440\u2013450. Association for Computational Linguistics.<\/em><\/p>\n\n\n\n<p><em>Jingqing Zhang, Yao Zhao, Mohammad Saleh, and Peter J. Liu. 2019. Pegasus: Pre-training with extracted gap-sentences for abstractive summarization. Victor Zhong, Caiming Xiong, and Richard Socher. 2017. Seq2sql: Generating structured queries from natural language using reinforcement learning. ArXiv, abs\/1709.00103.<\/em><\/p>\n\n\n\n<p><strong>Les auteurs :<\/strong><a href=\"https:\/\/publications.waset.org\/search?q=Jessica%20L%C3%B2pez%20Espejel\" target=\"_blank\" rel=\"noopener\">\u00a0Jessica L\u00f2pez Espejel<\/a>,\u00a0<a href=\"https:\/\/publications.waset.org\/search?q=Mahaman%20Sanoussi%20Yahaya%20Alassan\" target=\"_blank\" rel=\"noopener\">Mahaman Sanoussi Yahaya Alassan<\/a>,\u00a0<a href=\"https:\/\/publications.waset.org\/search?q=Walid%20Dahhane\" target=\"_blank\" rel=\"noopener\">Walid Dahhane<\/a>,\u00a0<a href=\"https:\/\/publications.waset.org\/search?q=El%20Hassane%20Ettifouri\" target=\"_blank\" rel=\"noopener\">El Hassane Ettifouri<\/a><\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"featured_media":6696,"template":"","categories":[24],"custom_tag":[80,81],"class_list":["post-6701","scientific-pub","type-scientific-pub","status-publish","has-post-thumbnail","hentry","category-publication-scientifique","custom_tag-code-fr","custom_tag-java-fr"],"acf":{"externel_link":"","summary":"","filter_opacity":"70","subtitle":"","reading_time":"","authors":"","document_to_download":{"upload_a_file":true,"download_without_form":true,"file":{"ID":6694,"id":6694,"title":"jacotext-a-pretrained-model-for-java-code-text-generation","filename":"jacotext-a-pretrained-model-for-java-code-text-generation.pdf","filesize":168056,"url":"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/jacotext-a-pretrained-model-for-java-code-text-generation.pdf","link":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/jacotext-a-pretrained-model-for-java-code-text-generation-2\/","alt":"","author":"4","description":"","caption":"","name":"jacotext-a-pretrained-model-for-java-code-text-generation-2","status":"inherit","uploaded_to":6701,"date":"2023-02-03 10:45:42","modified":"2023-02-03 13:10:44","menu_order":0,"mime_type":"application\/pdf","type":"application","subtype":"pdf","icon":"https:\/\/novelis.io\/wp-includes\/images\/media\/document.png"},"url":""}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java<\/title>\n<meta name=\"description\" content=\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l&#039;\u00e9quipe de recherche de Novelis.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java\" \/>\n<meta property=\"og:description\" content=\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l&#039;\u00e9quipe de recherche de Novelis.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Novelis innovation\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/novelis.io\" \/>\n<meta property=\"article:modified_time\" content=\"2023-02-07T11:01:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@novelis_io\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"22 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/\",\"url\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/\",\"name\":\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java\",\"isPartOf\":{\"@id\":\"https:\/\/novelis.io\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg\",\"datePublished\":\"2023-02-03T10:54:03+00:00\",\"dateModified\":\"2023-02-07T11:01:57+00:00\",\"description\":\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l'\u00e9quipe de recherche de Novelis.\",\"breadcrumb\":{\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage\",\"url\":\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg\",\"contentUrl\":\"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg\",\"width\":1200,\"height\":628,\"caption\":\"JaCoText\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/novelis.io\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/novelis.io\/fr\/#website\",\"url\":\"https:\/\/novelis.io\/fr\/\",\"name\":\"Novelis innovation\",\"description\":\"Novelis innovation\",\"publisher\":{\"@id\":\"https:\/\/novelis.io\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/novelis.io\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/novelis.io\/fr\/#organization\",\"name\":\"Novelis innovation\",\"url\":\"https:\/\/novelis.io\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/novelis.io\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/novelis.io\/wp-content\/uploads\/2021\/12\/logo-1.png\",\"contentUrl\":\"https:\/\/novelis.io\/wp-content\/uploads\/2021\/12\/logo-1.png\",\"width\":479,\"height\":98,\"caption\":\"Novelis innovation\"},\"image\":{\"@id\":\"https:\/\/novelis.io\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/novelis.io\",\"https:\/\/x.com\/novelis_io\",\"https:\/\/www.linkedin.com\/company\/novelis-consulting\/\",\"https:\/\/www.youtube.com\/channel\/UCJ5eJR22n2GtfKaTWueWRPQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java","description":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l'\u00e9quipe de recherche de Novelis.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/","og_locale":"fr_FR","og_type":"article","og_title":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java","og_description":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l'\u00e9quipe de recherche de Novelis.","og_url":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/","og_site_name":"Novelis innovation","article_publisher":"https:\/\/www.facebook.com\/novelis.io","article_modified_time":"2023-02-07T11:01:57+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@novelis_io","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"22 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/","url":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/","name":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java","isPartOf":{"@id":"https:\/\/novelis.io\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage"},"image":{"@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage"},"thumbnailUrl":"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg","datePublished":"2023-02-03T10:54:03+00:00","dateModified":"2023-02-07T11:01:57+00:00","description":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel, article r\u00e9dig\u00e9 par l'\u00e9quipe de recherche de Novelis.","breadcrumb":{"@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#primaryimage","url":"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg","contentUrl":"https:\/\/novelis.io\/wp-content\/uploads\/2023\/02\/New-desing-1200-\u00d7-628-px-4.jpg","width":1200,"height":628,"caption":"JaCoText"},{"@type":"BreadcrumbList","@id":"https:\/\/novelis.io\/fr\/scientific-pub\/jacotext-un-modele-pre-entraine-pour-la-generation-de-code-texte-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/novelis.io\/fr\/"},{"@type":"ListItem","position":2,"name":"Text2Java : Un mod\u00e8le pr\u00e9-entra\u00een\u00e9 pour g\u00e9n\u00e9rer du code Java \u00e0 partir du langage naturel"}]},{"@type":"WebSite","@id":"https:\/\/novelis.io\/fr\/#website","url":"https:\/\/novelis.io\/fr\/","name":"Novelis innovation","description":"Novelis innovation","publisher":{"@id":"https:\/\/novelis.io\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/novelis.io\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/novelis.io\/fr\/#organization","name":"Novelis innovation","url":"https:\/\/novelis.io\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/novelis.io\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/novelis.io\/wp-content\/uploads\/2021\/12\/logo-1.png","contentUrl":"https:\/\/novelis.io\/wp-content\/uploads\/2021\/12\/logo-1.png","width":479,"height":98,"caption":"Novelis innovation"},"image":{"@id":"https:\/\/novelis.io\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/novelis.io","https:\/\/x.com\/novelis_io","https:\/\/www.linkedin.com\/company\/novelis-consulting\/","https:\/\/www.youtube.com\/channel\/UCJ5eJR22n2GtfKaTWueWRPQ"]}]}},"_links":{"self":[{"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/scientific-pub\/6701"}],"collection":[{"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/scientific-pub"}],"about":[{"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/types\/scientific-pub"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/media\/6696"}],"wp:attachment":[{"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/media?parent=6701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/categories?post=6701"},{"taxonomy":"custom_tag","embeddable":true,"href":"https:\/\/novelis.io\/fr\/wp-json\/wp\/v2\/custom_tag?post=6701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}