Copilot, le binôme artificiel

Le 7 avril 2022

Par Lindsay CHEMET | Consultante

Copilot est un outil de programmation alimenté par l’intelligence artificielle qui facilite la recherche. L’intelligence artificielle (IA) est aujourd’hui présente dans de nombreux domaines, sous des formes variées. Elle se présente sous différentes manifestations, de la plus basique (algorithme) à la plus complexe (apprentissage profond, « deep learning »). Il s’agit d’une entité traitant l’information dans un environnement donné et exécutant des actions en vue d’atteindre un objectif défini en amont. Elle est capable d’apprendre sur la base d’instructions données par les humains et de réaliser des tâches spécifiques sans intervention extérieure.

 

Les formes les plus abouties d’intelligence artificielle sont réalisées sur la base de réseaux de neurones artificiels qui miment le fonctionnement, comme leur nom l’indique, de l’apprentissage dans le cerveau. En particulier, pour le traitement du langage naturel, on utilise les technologies les plus abouties dans le domaine et notamment les Transformers. Leur nom peut faire sourire, mais ces modèles n’ont rien à voir avec la franchise bien connue du même nom.

 

 

Les Transformers

 

Il existe de nombreux modèles permettant de développer des entités intelligentes, parmi lesquels les « Transformers ». Ces derniers ont été développés initialement pour le traitement automatique du langage naturel (Natural Language Processing, NLP). Ils sont fondés sur des mécanismes dits « d’attention ». Ces derniers vont, en effet, ajuster le traitement et l’interprétation d’une information en fonction d’un contexte particulier. Ainsi, les Transformers utilisent une représentation des mots en entrée, qu’ils adaptent ensuite en fonction du contexte à l’aide d’un modèle dynamique de langage appris. Ils apprennent donc

  • non seulement à représenter dynamiquement les mots et expressions en fonction de leur contexte d’usage,
  • mais également à identifier différents contextes à l’échelle d’une phrase ou d’un paragraphe.

 

Les modèles les plus reconnus

 

Parmi les modèles reconnus, on peut citer BERT (Bidirectional Encoder Representations from Transformers) développé par Google et publié en 2018, ainsi que GPT-3 (Generative Pre-trained Transformer), développé par OpenAI et publié plus récemment.

 

BERT

Il est intégré à certains services Google pour les entreprises (Cloud TPU, bibliothèque pour TensorFlow), et publié en 2019 en langue française sous le nom de CamemBERT et de FlauBERT. CamemBERT a été pré-entraîné sur un corpus de 138 Go de texte et FlauBERT sur un corpus de 71 Go de texte.

 

GPT-3

Il utilise un réseau neuronal avec 175 milliards de paramètres et ne nécessite pas d’apprentissage supplémentaire pour des tâches linguistiques distinctes. Toutefois, en raison de sa taille, GPT-3 ne peut pas être exécuté sur un ordinateur personnel. En effet, le stockage des paramètres à lui seul requiert au moins 175 Go de mémoire vive, ce qui représente des ressources de traitement considérables.

 

Un apprentissage semi-supervisé

 

Ils offrent tous deux des modes d’apprentissage dits « semi-supervisés ». La « supervision » ici évoquée concerne l’intervention humaine dans le processus d’apprentissage du modèle. Par exemple, les modèles d’apprentissage dits « non supervisés » absorbent, traitent et catégorisent les informations sans intervention humaine. Il en résulte ce que l’on appelle une « boîte noire », c’est-à-dire un ensemble opaque de règles construites par le modèle dans le cadre de son entraînement. Ce dernier désigne l’étape d’apprentissage qui permet de calibrer le modèle.

L’une des qualités des modèles Transformers en NLP est de pouvoir réaliser l’essentiel de leur apprentissage sur des textes « bruts » sans annotation sur leur contenu, c’est-à-dire de façon non supervisée.

GitHub Copilot

 

L’outil GitHub Copilot se base sur le modèle GPT-3. Il intègre les ressources de Github, qui regroupe plus de 73 millions d’utilisateurs et plus de 200 millions de projets. Ainsi, Copilot a profité d’une gigantesque base de données de plusieurs milliards de lignes de codes pour apprendre. En effet, sa particularité est d’être capable d’écrire du code automatiquement à partir d’un commentaire de code ou d’un nom de fonction écrit par l’utilisateur. Toutefois, il ne se réduit pas à de la complétion de code. Au contraire, il va analyser le code de l’utilisateur afin de lui proposer,

  • d’une part, une complétion qui réponde à son besoin,
  • et d’autre part, qui corresponde à ses us.

 

Par ailleurs, il est capable d’analyser une demande formulée en langage naturel et d’y répondre de façon pertinente. Par conséquent, il peut, entre autres choses, créer des tests unitaires (procédure de vérification du bon fonctionnement du code) sur la base d’un commentaire de l’utilisateur.

L’I.A. qui peut jouer à Minecraft

 

Diverses démonstrations ont pu être données depuis la communication initiale sur ce compagnon intelligent. L’une d’elle présentait sa capacité à comprendre les intentions de l’utilisateur dans le cadre d’un interfaçage avec le jeu Minecraft.

En effet, il était capable de déduire d’autres paramétrages lors de la création d’une fonction. Par exemple, si vous codez une fonction « déplacement » avec comme paramétrage exemple « gauche », il va coder également les paramétrages « droite », « avant », etc.

 

Il était également capable de comprendre les corrections apportées et ce qu’elles impliquaient. Par exemple, s’il génère un paramétrage non pertinent sur une fonction à cause d’un terme sémantiquement ambigu dans la fonction ou dans le paramétrage exemple. L’utilisateur peut alors le corriger. Et Copilot génère ensuite les paramétrages pertinents au regard de la correction.

 

Enfin, Copilot était capable de comprendre des indications en langage naturel. C’est-à-dire de lire des commentaires, et non du code informatique, et d’y répondre de façon pertinente. Par exemple, si l’utilisateur écrit « va à gauche » ou bien « saute », Copilot comprend qu’il doit utiliser la fonction permettant cette action ou en générer une le cas échéant.

Les perspectives de ce Copilot artificiel

 

Loin de les remplacer, Copilot permet aux développeurs d’envisager,

  • non seulement un gain de temps grâce à la complétion de parties répétitives de code (création d’utilitaires),
  • mais également un renforcement de leur valeur ajoutée sur un projet. Il se concentre alors sur les tâches plus complexes en les assistant dans leur exploration de certaines librairies, sans devoir aller vérifier sur internet.

 

Toutefois, il reste faillible et peut parfois suggérer des éléments non pertinents. Il s’agit donc d’un outil très prometteur, dont on peut attendre de nettes améliorations dans l’avenir, ainsi qu’une plus grande accessibilité.

 


Sources

 

BDM : Intelligence artificielle : les Transformers, une technologie très prometteuse

DataScientest : Bert, un outil de traitement du langage innovant

SiècleDigital : GitHub Copilot : l’IA capable de générer des lignes de code

ActuIA : Copilot, TabNine : le défi des outils d’autocomplétion basés sur l’IA pour aider les développeurs à écrire leurs codes

Protocol : You’re reading my mind’: GitHub’s AI coder amazes (and terrifies) developers

Siliconrepublic : GitHub’s new AI tool is like predictive text for programmers

Lectures sur le secteur

L’Internet des Objets au service de la domotique : la technologie révolutionne nos maisons pour les rendre plus écologiques et intelligentes.

Découvrez les solutions innovantes pour prendre en charge le vieillissement cognitif. Les sciences cognitives, en évolution constante, offrent des approches...

VATES : L’innovation open-source au cœur de la virtualisation

Dans notre interview exclusive avec Olivier Lambert, PDG de VATES, il partage les défis rencontrés, les solutions mises en place...

La R&D dans le secteur bancaire : une recherche dynamique et stratégique

Les acteurs du monde bancaire sont soumis à des pressions concurrentielles, systémiques et conjoncturelles croissantes. L’émergence de nouvelles menaces peut...