Pour gérer vos consentements :
Categories: DéveloppeursProjets

CodeT5 : la réponse de Salesforce à GitHub Copilot

Comment appliquer le traitement du langage naturel au code source ? Ce champ d’étude s’est nettement élargi ces derniers mois, avec des initiatives telles que CuBERT (Google) et CodeBERT (Microsoft). L’une et l’autre reposent sur un modèle de type encodeur. Certains projets – fondés notamment sur GPT, comme CodeGPT-2 – utilisent au contraire un décodeur. D’autres ont combiné les deux approches, à l’image de PLBART. Salesforce a fait de même avec CodeT5.

Ce modèle, fraîchement publié, reprend l’architecture du framework T5. Il est néanmoins entraîné, à tour de rôle, sur des tâches supplémentaires :

  • Reconstitution de fragments masqués
  • Repérage des identificateurs
  • Reconstitution d’identificateurs masqués

L’entraînement se fait à la fois sur du code et sur la documentation associée. Essentiellement à partir du jeu de données CodeSearchNet. Il implique aussi la réalisation de tâches en parallèle.

L’évaluation s’est faite sur la base du benchmark CodeXGLUE. Avec, comme principales tâches :

  • Résumé (explication, en langue anglaise, de fragments de code)
  • Génération de code à partir de descriptions
  • Traduction entre Java et CSharp
  • Débogage de fonctions Java
  • Recherches de vulnérabilités dans du code C
  • Détection de clones (fragments de code ayant les mêmes fonctionnalités)

En parallélisant les tâches, on ouvre la voie à la réutilisation des poids ; et donc à l’optimisation des coûts d’exploitation. La taille du modèle est aussi un avantage : 220 millions d’hyperparamètres, contre 12 milliards pour Codex, socle de GitHub Copilot.

Les exercices réalisés à l’entraînement n’ont pas toujours des effets positifs. Par exemple sur l’écriture de code. L’approche bimodale (code vers documentation et vice versa) améliore en particulier l’aptitude au résumé, mais peut réduire les performances en traduction. Probablement à cause de l’émergence d’un biais, suppose Salesforce.

Dans le même ordre d’idée, retirer un exercice permet parfois de gagner en performance. S’il n’apprend pas à reconstituer des fragments masqués, CodeT5 détecte mieux les vulnérabilités.

CodeT5-small est une version « allégée » du modèle, à 60 millions de paramètres.

Illustration principale © maciek905 – Adobe Stock

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

4 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

7 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

9 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

9 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

10 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

1 jour ago