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

Arm-NVIDIA : de la Chine aux USA, les barrières se dressent

Aux États-Unis, un nouvel obstacle se dresse face au projet de fusion Arm-NVIDIA. Quelles autres…

2 jours ago

Géolocalisation en entreprise : un suivi proportionné ?

Utilisés dans le cadre professionnel, smartphones et véhicules peuvent être géolocalisés par l'employeur. Qu'en pensent…

2 jours ago

Salesforce : avec Bret Taylor, Marc Benioff prépare sa succession

Promu co-CEO, Bret Taylor pilote avec Marc Benioff le prochain chapitre de Salesforce. Leurs mots…

3 jours ago

Data et cybersécurité : les métiers les plus mouvants du SI ?

Les métiers de la data et de la cybersécurité concentrent une part importante des évolutions…

3 jours ago

Teams Essentials : une réponse à la Commission européenne ?

Microsoft dégaine une offre qui permet d'accéder à Teams indépendamment de sa suite bureautique cloud.…

3 jours ago

« Convergences numériques 2022 » : le Cigref, Numeum et d’autres interpellent les présidentiables

Cigref, Numeum, Cinov, Afnum... L'industrie numérique française sert les rangs pour peser sur les programmes…

3 jours ago