Rejoignez les dirigeants du 26 au 28 juillet pour la semaine AI & Edge de Transform. Écoutez les meilleurs dirigeants discuter de sujets liés à la technologie AL/ML, à l’IA conversationnelle, à l’IVA, à la PNL, à Edge, etc. Réservez votre pass gratuit dès maintenant !
GitHub a annoncé la semaine dernière qu’il publierait Copilot, son outil de “programmeur de paires d’IA”, au public. Copilot utilise l’IA pour fournir une gamme de fonctions de support, y compris des instructions de saisie semi-automatique, la génération de fonctions entières et la transformation de docstrings et de descriptions en code source fonctionnel.
Copilot a été lancé en tant qu’aperçu technique en 2021. Désormais, tous les développeurs peuvent postuler pour Copilot, qui s’installe en tant qu’extension dans les environnements de développement intégrés (IDE) tels que Visual Studio, VS Code, Neovim et les IDE JetBrains.
Au moment de la sortie de Copilot, il y avait beaucoup d’enthousiasme autour de ses capacités de codage étonnantes. Mais il y avait aussi des inquiétudes quant à la fiabilité de ses capacités et à son impact réel sur la productivité des développeurs. Après un an et des milliards de lignes de code, Copilot est enfin prêt à être entre les mains de chaque développeur.
Voici ce que nous savons de l’effet de Copilot sur les tâches de programmation réelles, raconté par ses créateurs et développeurs qui l’ont utilisé dans leur travail quotidien.
Combien de code est écrit avec Copilot ?
Derrière Copilot se trouve l’architecture du transformateur, le type de modèle d’apprentissage en profondeur utilisé dans les grands modèles de langage tels que GPT-3 et LaMDA. Les transformateurs sont particulièrement efficaces pour traiter des données séquentielles telles que du texte, du code logiciel et des séquences de protéines. Étant donné une invite, un modèle de transformateur peut prédire les éléments suivants de la séquence, qu’il s’agisse de mots ou d’instructions informatiques. Copilot est construit sur le Codex d’OpenAI, un transformateur qui a été formé sur des dizaines de millions de référentiels de code. Une fois installé sur votre IDE, Copilot fournit des suggestions basées sur le code existant dans votre fichier ainsi que des indices, tels que les noms de vos fonctions et classes et les commentaires dans votre code.
Il convient de noter que Copilot ne pense pas et ne code pas comme un programmeur. Mais comme il a été exposé à d’énormes quantités de code source, il peut fournir de très bonnes suggestions de code, en particulier pour les tâches standard et répétitives qui se produisent fréquemment dans l’écriture de logiciels.
Selon GitHub, plus de 1,2 million de développeurs ont utilisé l’aperçu technique de Copilot au cours des 12 derniers mois. Dans les fichiers où Copilot est activé, il représente près de 40 % du code dans les langages de programmation populaires comme Python.
Ryan J. Salva, vice-président du produit chez GitHub, a déclaré à VentureBeat que s’il est difficile de dire dans quelle mesure le codage effectué avec Copilot est un véritable développement logiciel par opposition à l’exploration de l’outil, le ratio de 40 % semblait tenir lorsque les développeurs utilisaient Copilot. sur plusieurs jours.
Github Copilot réduit les distractions
“Les développeurs parlent souvent de la valeur de rester ‘dans le flux’ et de l’impact positif [Copilot] a sur leur productivité, leur créativité et leur bonheur général », a déclaré Salva.
Selon Salva, dans une enquête distribuée à 17 000 développeurs lors de l’aperçu technique de Copilot, plus de 75 % des développeurs ont déclaré qu’en utilisant Copilot, ils “consacraient moins d’efforts mentaux aux tâches de programmation répétitives”, “se concentraient sur un travail plus satisfaisant” et “restaient dans le flux.
“En minimisant les distractions et en créant du temps de concentration, nous ne nous contentons pas de faire le travail, nous créons des journées meilleures et moins stressantes”, a déclaré Salva. “Pour l’anecdote, nous avons entendu des histoires de développeurs utilisant Copilot pour apprendre de nouveaux langages de codage, générer rapidement du code passe-partout pour des tâches courantes, écrire des expressions régulières ou simplement rappeler la syntaxe d’une API sans avoir besoin de consulter la documentation.”
Les développeurs VentureBeat ont pris la parole pour confirmer certains de ces points. Abhishek Thakur, ingénieur en apprentissage automatique chez Hugging Face, utilise Copilot depuis juin 2021. Il l’a utilisé pour développer AutoTrain, un outil sans code pour la formation de modèles d’apprentissage automatique à la pointe de la technologie. Il l’utilise également pour des compétitions de machine learning sur Kaggle, en réalisant des tutoriels et en participant à des hackathons.
“Quand je code, je veux le moins de distractions. De cette façon, Copilot a été d’une grande aide. Cela a réduit le temps que je pouvais consacrer à la recherche de solutions sur le Web et les ai à la place à portée de main dans mon IDE préféré », a déclaré Thakur.
De nombreux développeurs recherchent des solutions à de petits problèmes sur les moteurs de recherche et StackOverflow, un forum Web où les développeurs partagent des extraits de code pour des tâches spécifiques.
“Après avoir utilisé Copilot, je visite rarement ces sites Web et je peux plutôt me concentrer sur le codage”, a déclaré Thakur.
“Si j’ai un doute, j’essaie d’écrire des commentaires et de laisser Copilot m’aider à terminer les morceaux de code”, a déclaré Thakur. «Ce n’est peut-être pas toujours parfait, mais cela donne une bonne idée de la façon dont le code peut être écrit. Le reste appartient au développeur de modifier et de réutiliser. Il en va de même pour StackOverflow : il n’a pas toujours la réponse, mais il a beaucoup de bonnes réponses qui pourraient convenir à votre cas d’utilisation, et vous pouvez modifier et réutiliser. »
Gérer les tâches répétitives avec Copilot
Louis Castricato, stagiaire de recherche chez Hugging Face et précédemment chez EleutherAI, a utilisé Copilot pour le calcul scientifique, où les fonctions sont souvent lourdes et difficiles à utiliser. L’une de ces fonctions est l’einsum de PyTorch, qui nécessite des paramètres peu maniables sur les dimensions des tenseurs que vous souhaitez calculer.
“Einsum est très peu intuitif pour les personnes qui ne l’ont jamais utilisé auparavant, et cela vous oblige à porter une attention particulière à la forme que vos tenseurs prennent à chaque instruction dans un appel à votre modèle”, a déclaré Castricato. “Copilot est particulièrement doué pour déduire la forme d’un tenseur et écrire automatiquement des opérations einsum, ainsi que pour écrire des commentaires expliquant les choix qu’il a faits en écrivant l’expression einsum.”
Snir Shechter, responsable de l’équipe R&D chez Aporia, utilise également Copilot depuis près d’un an. “Lors du développement de notre produit principal chez Aporia, Copilot m’aide à écrire le code facile”, a-t-il déclaré. “Avec de bonnes conventions de nommage, Copilot est capable de compléter l’ensemble de la fonction/le bloc de code suivant. Après cela, j’ai juste besoin de revoir pour voir que tout va bien (et éventuellement ajouter une logique plus spécifique). C’est vraiment bien avec du code générique/répétitif et il se débrouille en fonction du contexte.
Les performances de Copilot se distinguent particulièrement pour les tâches longues et répétitives. Un exemple est le lancement d’un serveur HTTP, qui nécessite généralement plusieurs lignes de code et des ajustements, selon le langage dans lequel il est écrit. Dans une étude, GitHub a demandé à la moitié des participants d’écrire manuellement le code du serveur HTTP et à l’autre moitié d’effectuer la tâche à l’aide de Copilot.
“Les données préliminaires suggèrent que les développeurs sont non seulement plus susceptibles de terminer leur tâche lorsqu’ils utilisent Copilot, mais ils le font également en environ la moitié du temps”, a déclaré Salva.
Pousser les développeurs à mieux documenter le code
Copilot fonctionne mieux lorsque les programmeurs lui fournissent des descriptions plus détaillées. Fait intéressant, son utilisation a poussé les développeurs à mieux documenter leur code.
“Au cours des premiers mois de l’aperçu technique, nous avons vu Copilot changer le comportement des gens lors de l’écriture de code, notamment en écrivant de meilleurs commentaires plus détaillés”, a déclaré Salva. “Ce n’est pas seulement pour que les suggestions de Copilot s’améliorent, mais cela les rend plus faciles à lire pour les autres.”
Copilot est également devenu un bon outil pour documenter le code logiciel, une tâche souvent négligée, en particulier lorsque les programmeurs sont à la recherche de délais.
Castricato utilise Copilot pour documenter son code, compléter automatiquement les docstrings et les suggestions de type en Python. Cela améliore la lisibilité du code et facilite la gestion ultérieure du code par lui-même et les autres développeurs.
“Copilot a augmenté la quantité de documentation que j’écris pour mon code d’au moins 2x ou 3x”, a-t-il déclaré.
Les limites de Copilot
“[Copilot] est souvent assez médiocre pour implémenter des algorithmes entiers », a déclaré Castricato. “Par exemple, lorsque j’ai eu Copilot pour la première fois, je voulais voir s’il pouvait mettre en œuvre des formes de base de programmation dynamique sans conseils significatifs. Cela a lamentablement échoué, et j’ai très vite réalisé que pour utiliser Copilot au maximum de ses capacités, vous devez expliquer (par le biais de commentaires) en détail les étapes que Copilot doit suivre pour implémenter un certain algorithme.
Au-delà des tâches de base, Copilot aura besoin de nombreux commentaires pour fonctionner correctement. Et dans certains cas, il aura besoin d’un fichier de code entièrement structuré pour fournir des suggestions utiles.
“À cet égard, Copilot est très loin de remplacer même les ingénieurs logiciels les plus rudimentaires”, a déclaré Castricato.
Salva a reconnu que Copilot est toujours un travail en cours et une nouvelle expérience de développeur. L’équipe produit continue de tirer des leçons de la façon dont les développeurs l’utilisent et ajuste le modèle d’IA qui l’alimente.
“Copilot essaie de comprendre votre intention et de générer le meilleur code possible, mais le code qu’il suggère peut ne pas toujours fonctionner ou même avoir un sens”, a déclaré Salva. “Pendant que nous travaillons dur et constatons des progrès dans Copilot générant un meilleur code, les suggestions doivent être soigneusement testées, examinées et approuvées, comme tout autre code. Nous collectons des données de télémétrie pour améliorer le modèle, que nous invitons les utilisateurs à utiliser dans l’interface utilisateur. »
Copilot vaut-il le prix ?
Pour le moment, Copilot sera proposé à 10 $ par mois, ou 100 $ par an, avec un essai gratuit de 60 jours, ce qui semble être une aubaine pour les développeurs de logiciels. De plus, l’outil sera gratuit pour les étudiants et les mainteneurs de projets open source populaires.
“Je pense que cela vaut pleinement le prix”, a déclaré Thakur. “En tant qu’ingénieur en apprentissage automatique, je sais que la création de produits comme ceux-ci est très importante, en particulier Copilot, qui fournit des suggestions avec une latence inférieure à la milliseconde. Construire une infrastructure qui sert gratuitement ce type de modèles n’est pas réalisable dans le monde réel pendant une période plus longue.
Thakur a également noté qu’à mesure que les coûts de l’infrastructure d’IA continuent de baisser, le prix de Copilot pourrait baisser à l’avenir.
“Mais à ce stade, à mon avis, cela en vaut vraiment la peine, surtout pour quelqu’un comme moi qui utilise Copilot presque tous les jours depuis la préversion”, a-t-il déclaré.
Castricato a déclaré que Copilot lui avait fait gagner plusieurs heures par semaine, et parfois même un jour ou deux de dépannage par semaine.
« Copilot me permet de tester rapidement de nombreuses expériences, souvent sans avoir à consacrer beaucoup de temps au débogage. Un ensemble d’expériences qui me prendraient traditionnellement des jours à mettre en œuvre me prend plutôt un jour », a-t-il déclaré. « En tant qu’outil professionnel, il est bien vaut son prix. Cela me fait certainement plus de 10 $ par mois. Je peux facilement voir n’importe quelle grande entreprise justifier une licence de copilote pour l’ensemble de son personnel technique. C’est presque une dépense insignifiante.
Salva pense que ce n’est que le début de la programmation augmentée par l’IA et considère Copilot comme la prochaine étape d’une longue gamme d’outils de développement.
“Comme nous l’avons vu avec le compilateur, les langages de programmation de niveau supérieur et l’open source lui-même, les progrès de l’outillage ont amplifié l’impact des développeurs dans notre monde”, a-t-il déclaré. “En même temps, ces mêmes outils ne remplacent pas l’expérience, les compétences et la créativité d’un développeur.”
Avec de meilleurs outils, a-t-il ajouté, la demande de développeurs de l’industrie n’a cessé d’augmenter. “Nous sommes optimistes que GitHub Copilot aura des effets similaires, complétant le travail des développeurs et leur permettant d’écrire du code plus facilement avec plus de concentration et de créativité”, a-t-il déclaré.
La mission de VentureBeat est d’être une place publique numérique permettant aux décideurs techniques d’acquérir des connaissances sur la technologie d’entreprise transformatrice et d’effectuer des transactions. En savoir plus sur l’adhésion.