L'expérience de notre CTO dans l'utilisation de l'IA générative pour le codage

Evan Davis, notre directeur technique, a exploité les dernières technologies de l'IA pour résoudre des problèmes concrets. Il a récemment parlé de son expérience de l'utilisation de l IA générative pour son travail de codage avec l'équipe de Skim AI, en fournissant certaines de ses idées personnelles sur les applications pratiques et les pièges potentiels de la technologie. Avec cette conversation et le blog qui en découle, nous souhaitons offrir un regard de l'intérieur sur cet environnement en évolution rapide, et plus particulièrement sur les raisons pour lesquelles le codage ne sera plus jamais le même à l'ère de l'IA générative facile à utiliser.


Potentiel et limites de l'IA générative dans le codage

L'IA générative, un sous-ensemble de l'intelligence artificielle, se concentre sur la création de nouveaux contenus, des œuvres d'art au code, en apprenant à partir d'exemples existants. L'expérience récente d'Evan avec les meilleurs modèles d'IA générative tels que ChatGPT-3.5, GPT-4, Github CoPilot, Amazon CodeWhisperer, Barde et plus encore, la technologie s'est avérée être un allié précieux dans les tâches de codage. Il s'agit là d'une remarque importante avant de se pencher sur certaines des limitations. Dans son état actuel, l'IA générative a un impact important sur le codage, et elle continuera à évoluer et à s'améliorer avec le temps.


Pour ceux qui ont quelques connaissances en matière de codage, la technologie peut offrir une longueur d'avance significative, en prenant potentiellement en charge environ 80% de la tâche et en rendant le processus de débogage plus gérable. Ce constat rejoint celui des experts du secteur qui estiment que l'IA générative va révolutionner notre façon d'aborder le codage, en accélérant le processus et en réduisant les erreurs humaines.

Cependant, comme toute technologie émergente, l'IA générative n'est pas sans limites. Dans son expérience personnelle, Evan a noté que la technologie générait parfois un code qui manquait de logique, en particulier avec les bibliothèques les moins courantes. L'IA appelait des fonctions fantômes - des fonctions qui n'existaient pas dans la bibliothèque - ce qui entraînait une certaine confusion et un surcroît de temps pour déchiffrer les résultats. Il s'agit d'un défi connu dans le domaine, et les chercheurs continuent d'affiner les algorithmes d'IA pour résoudre ces problèmes.


Le rôle de GitHub Copilot et son impact potentiel

Evan a également partagé son expérience avec GitHub Copilot, un assistant de codage alimenté par l'IA qui suggère du code ligne par ligne. Il a trouvé qu'il était moins susceptible de dérailler, car il fonctionne dans les limites du code existant de l'utilisateur.

Développé par GitHub et OpenAI, Copilot suggère du code ligne par ligne en fonction du contexte fourni par l'utilisateur, ce qui réduit le risque de produire des résultats erronés.


La sortie prochaine de Copilot X, qui intègre GPT-4 dans Visual Studio Code et dispose d'une commande vocale, constitue une avancée majeure dans ce domaine. Cet outil agira comme un assistant de codage à commande vocale, marquant une étape importante vers l'intégration plus complète de l'IA dans nos flux de travail de codage, une tendance qui gagne du terrain dans l'ensemble de l'industrie technologique.

L'IA générative : la pierre de Rosette d'aujourd'hui

Au cours de la conversation de l'équipe sur l'IA générative, le PDG Greggory Elias a établi une analogie intéressante entre le code généré par l'IA et la pierre de Rosette, illustrant les capacités et les contraintes de la technologie. Tout comme la pierre de Rosette a servi de mécanisme de traduction pour les langues anciennes, l'IA générative peut être considérée comme un traducteur pour les langages de codage.

L'IA générative, dans le contexte du codage, fonctionne un peu comme un traducteur. Elle s'efforce de comprendre la syntaxe, les conventions et les idiomes d'un langage et de les recréer dans un autre. Elle va au-delà d'une simple traduction mot à mot, visant à capturer l'intention, la logique et la structure du code original.


Toutefois, la précision et l'efficacité de ce processus de traduction dépendent considérablement de la disponibilité et de la richesse du langage de codage spécifique ou de la bibliothèque dans les données de formation de l'IA. Par exemple, si l'IA a été largement formée à Python et à Java, mais qu'elle a très peu vu un langage moins courant comme Erlang, elle peut avoir du mal à générer ou à traduire avec précision le code Erlang.

La qualité des données de formation : Un facteur essentiel

Evan a également souligné l'importance de la qualité des données d'entraînement qui alimentent les modèles d'IA. L'internet regorge de codes de qualité variable, et s'assurer que le modèle d'IA est formé sur un code de haute qualité est un défi de taille. Il a été observé que des solutions sous-optimales peuvent être produites - elles fonctionnent, mais sont trop simplistes.

Prenons l'exemple d'un modèle d'IA générative formé pour aider les utilisateurs à générer des requêtes SQL. Dans le passé, l'élaboration de la bonne requête SQL nécessitait des années de connaissances spécialisées, mais aujourd'hui, avec l'aide de l'IA générative, des centaines de milliers d'utilisateurs peuvent y parvenir en quelques secondes seulement. Il s'agit d'une avancée monumentale dans la démocratisation des connaissances et des capacités. Ce principe peut s'étendre au-delà de SQL et s'appliquer à des outils plus quotidiens, tels que Microsoft Excel, ou même à des outils de veille stratégique. Les utilisateurs peuvent être aidés à créer des feuilles de calcul, des graphiques et des tableaux de bord complexes avec facilité et précision, ce qui nécessiterait normalement des connaissances et une expérience approfondies.


Toutefois, si une bibliothèque est mal documentée ou si les données d'apprentissage de l'IA ne comprennent pas d'exemples complets de cette bibliothèque, l'IA peut produire un code moins précis ou moins fonctionnel. Cette constatation rejoint des observations plus générales faites par les chercheurs en intelligence artificielle : les performances d'un modèle d'intelligence artificielle dépendent fortement de la richesse, de la diversité et de la qualité des données sur lesquelles il a été entraîné.


En substance, l'IA générative, à l'instar des codeurs humains, est plus apte à travailler avec des langages et des bibliothèques qui lui sont plus familiers. Cela souligne l'importance de disposer de données de formation complètes et de haute qualité dans le développement de modèles d'IA, ainsi que l'importance d'une formation et d'un perfectionnement continus de l'IA à mesure que de nouveaux langages apparaissent et que les langages existants évoluent. Dans l'ensemble, cela permet d'améliorer continuellement la capacité de l'IA à aider les utilisateurs dans diverses tâches, en renforçant leur efficacité et leur productivité.

L'avènement d'une nouvelle ère

Les expériences d'Evan avec l'IA générative donnent un aperçu fascinant de l'immense potentiel et des défis inhérents à cette technologie. Alors que le domaine de l'IA continue d'évoluer, ce sont des expériences comme celles-ci qui guideront son développement, en veillant à ce qu'elle devienne un outil encore plus efficace pour résoudre les problèmes du monde réel.

Les modèles d'IA générative, comme ChatGPT, ont commencé à réduire de manière significative le besoin de centaines de milliers d'heures de codage et d'années de spécialisation dans les bibliothèques, tant pour les programmeurs que pour les utilisateurs finaux. Cette transformation représente un bond en avant monumental dans l'accessibilité et la facilité d'utilisation des applications de programmation.


Un aperçu des résultats de notre article "ChatGPT et Bard : un danger pour les codeurs"souligne ce point. Les deux modèles d'IA ont démontré leur capacité à générer du code de manière efficace, éliminant potentiellement d'innombrables heures de travail de codage humain et produisant des résultats remarquables. Au fur et à mesure que ces technologies s'améliorent, nous pouvons nous attendre à un impact encore plus important sur la facilité et la rapidité des tâches de programmation.


L'émergence et le développement continu de l'IA générative pourraient ouvrir une nouvelle ère dans le monde de la programmation, caractérisée par une accélération de l'innovation et de l'inclusion. En réduisant les barrières à l'entrée et en simplifiant le processus de codage, ces modèles d'IA avancés promettent un avenir où l'expertise en codage n'est plus une condition préalable à l'élaboration de solutions numériques. Alors que nous naviguons dans cet avenir passionnant, nous devons rester à l'écoute de cette technologie en évolution rapide et continuer à tirer parti de son potentiel de transformation.

fr_FRFrançais