Temps de lecture estimé : 65 minutes
Comment coder avec l’intelligence artificielle
Utiliser GPT et les autres IAs en tant que développeurs pour coder mieux, plus vite, résoudre des bugs et créer des features.
Temps de lecture estimé : 65 minutes
Utiliser GPT et les autres IAs en tant que développeurs pour coder mieux, plus vite, résoudre des bugs et créer des features.
Pour les développeurs, coder avec une intelligence artificielle, GPT ou une autre, va devenir obligatoire.
Depuis la sortie de ChatGPT pour le grand public, tout le monde est conscient que GPT-3 et GPT-4 ont durablement changé nos vies.
Les IAs comme ChatGPT, GitHub Copilot, TabNine, Intellisense, JetBrains Fleet etc, vont devenir la norme.
Tous les nouveaux outils à base d’IA pour les développeurs vont changer notre manière de coder.
Alors quels sont les usages de l’IA pour les développeurs et comment utiliser l’intelligence artificielle pour mieux coder ?
Mon but n’est pas de comprendre l’IA et le machine learning.
Mais de trouver des moyens d’utiliser l’IA pour coder mieux et plus rapidement.
L’intelligence artificielle est un mot très « marketing ».
Ce dont on parle le plus souvent quand on parle d’IA c’est de machine learning, aka apprentissage automatique ou apprentissage statistique.
D’ailleurs, le machine learning n’est qu’une partie de l’ensemble que compose l’IA.
L’IA englobe le Machine Learning (ML), et celui-ci englobe le DL (le Deep Learning).
Ce qui est important ici c’est de comprendre que ChatGPT et la quasi-totalité des autres outils d’IA qu’on utilise dans la tech en tant que dev, reposent sur du machine learning.
L’IA telle qu’on en parle aujourd’hui, prédit le prochain token le plus probable quand elle génère une réponse.
Mon but n’est pas de comprendre comment fonctionne l’IA.
Mais plutôt en tant que développeur, d’avoir une vague idée de comment est-ce que cela fonctionne, pour mieux la comprendre et mieux savoir l’utiliser.
Voici une trame typique qui compose un projet de ML :
Le terme « intelligence artificielle » est surtout employé pour son côté futuriste.
En vrai, ça fait.
Ce qui se cache derrière les outils récents, c’est le Machine Learning « ML ».
On distingue 2 branches principales d’IA :
L'objectif actuel est d'arriver à créer une singularité : une Intelligence dotée d’une conscience.
On parle aussi d’Intelligence Artificielle Générale.
Actuellement les IAs sont très spécifiques (elles peuvent facilement créer une image, générer du texte…), mais c’est tout.
Sous peu, on espère pouvoir leur faire faire plus.
Des projets existent pour chaîner les IAs entre elles afin de créer un parc d’IA et d’être capable de créer tout type d’information.
(Comme BabyAGI)
La conséquence d’une AI générale est qu’elle sera capable de prendre des décisions par elle-même, sans nous consulter.
Ce qui bien sûr, amènera à des situations problématiques (pour nous, les humains).
Pour simplifier fortement, le machine learning fonctionne ainsi :
Ce cours de 6h sur le machine learning est une masterclass, à regarder si tu t’intéresses au sujet.
Le machine learning permet d’apprendre à partir de données sans être explicitement programmés pour effectuer une tâche.
Autrement dit avec l'IA, tout est drivé par la data.
Le processus d’apprentissage commence par la collecte et la préparation de données, qui sont utilisées pour entraîner un modèle prédictif.
Pour entraîner le modèle, un algorithme d’apprentissage est sélectionné et alimenté avec des données d’entraînement.
Les données d’entraînement sont souvent divisées en ensembles de formations, de validations et de tests, afin de s’assurer que le modèle fonctionne bien sur de nouvelles données.
L’algorithme d’apprentissage est utilisé pour apprendre les relations entre les entrées et les sorties.
Il utilise les données d’entraînement pour ajuster les paramètres du modèle, de sorte que le modèle puisse faire des prédictions précises sur de nouvelles données.
Une fois le modèle entraîné, il est évalué en utilisant des ensembles de validation et de test pour s’assurer qu’il fonctionne bien, sur de nouvelles données.
(C’est ici que les humains ont un rôle à jouer, tout comme les parents à leurs enfants, on éduque l’IA sur ce que sont réellement les éléments qu’elle déduit)
Si le modèle fonctionne bien sur ces ensembles, il peut être déployé pour faire des prédictions sur de nouvelles données (non connues).
L’apprentissage initial est donc super important car il sert de base à ce qui sera utilisé.
Le processus d’apprentissage automatique est ultra-complexe et nécessite une grande quantité de données d’entraînement pour obtenir des résultats précis.
C’est pour cela que les grosses boîtes ont besoin de beaucoup de datas, on ne peut rien déduire ni prédire d’un flux de données trop maigre…
Le sur-apprentissage (overfitting) et le sous-apprentissage (underfitting) sont des problèmes courants que tu as dû voir (notamment avec les posts de fails sur l’IA).
Celui-ci je ne suis pas sûr qu’il y ait un rapport mais il m’a beaucoup fait rire.
Concernant les problèmes d’inputs des IAs, voici un exemple donné par Aristide sur son blog.
Question pour toi qui lis cet article :
Regarde l'image ci-dessus 👆, est-ce que tu vois un pattern commun ? Comment tu pourrais déduire ou regrouper des infos ? T'as pu interpréter quelque chose de ce diagramme ?
Si oui, ton cerveau a essayé de construire de la logique à partir d’une donnée aléatoire : il n’y a rien à voir ici.
La même chose existe avec l’IA, et c’est ce qui rend les choses difficiles…
Elle hallucine pensant voir quelque chose qui n’existe pas, c’est une fausse déduction.
Autre chose de difficile : on se base tous sur notre propre expérience pour décrire des faits qui nous arrivent.
Les probabilités pour que, quelqu'un qui sort d'une maison avec un couteau à la main plein de sang ait tué quelqu'un d'autre sont fortes.
Pourtant, cette conclusion est uniquement drivé par notre expérience passée personnelle.
En l’état, c’est juste un fait.
Peut-être que la personne en question vient de cuisiner de la viande ?
Dans les faits, c’est peu probable, mais en l’état, rien ne prouve que ce soit un meurtrier.
L’overfitting (ou surapprentissage en français) est un problème courant en machine learning et en intelligence artificielle.
Supposons que tu aies un ensemble de données d’entraînement contenant des photos de chats.
(Dans différentes poses, différents environnements, mais malheureusement toutes les images de ton ensemble d’entraînement ont un fond vert.)
Si ton modèle est trop complexe, par exemple, si tu utilises un réseau de neurones profond avec beaucoup de couches et de neurones.
L'IA pourrait finir par "apprendre" que les chats sont toujours sur un fond vert, simplement parce que c'est ce qu'il voit dans les données d'entraînement.
Maintenant, supposons que tu testes ton modèle sur de nouvelles images où les chats sont sur des fonds différents (pas seulement verts).
Le modèle pourrait bien échouer à reconnaître correctement les chats parce qu’il a trop bien appris (ou surappris) les particularités des données d’entraînement :
À savoir qu’un chat doit être sur un fond vert pour être un chat.
L’overfitting est généralement un signe que ton modèle est trop complexe par rapport à la quantité et à la variété des données dont tu disposes.
Une façon de l’éviter pourrait être de simplifier ton modèle et de simplement augmenter la quantité et la diversité de tes données d’entraînement.
L’underfitting (ou sous-apprentissage), est l’autre extrémité de l’overfitting en machine learning.
Il se produit lorsque ton modèle est trop simple pour capturer la complexité réelle des données, et donc, ne peut pas apprendre les motifs généraux.
Supposons que tu développes une intelligence artificielle pour classer des images comme étant soit un « chat », soit « pas un chat ».
(Oui je sais, les devs aiment les chats)
Pour entraîner ton modèle, tu utilises des fonctionnalités très basiques et simplistes, comme la couleur dominante de l’image.
Dans ce cas, ton modèle est trop simple pour comprendre la complexité réelle de ce qui distingue les images de chats des autres.
Les chats peuvent être de différentes couleurs, formes et tailles, et peuvent apparaître dans de nombreux environnements sur une image.
Se baser sur la couleur dominante de l’image serait loin d’être suffisant pour identifier correctement un chat.
C’est un exemple d’underfitting, car ton modèle n’a pas suffisamment de complexité pour comprendre et apprendre les motifs réels dans les données.
Pour résoudre ce problème, tu devrais recueillir plus de caractéristiques sur les images (comme les formes, les textures, etc.) afin d’être capable de réellement reconnaître un chat.
Le plus dur dans la vie pour un humain, c’est prédire le futur.
Parce-qu’on ne peut pas voir plus loin que la somme de nos expériences passées.
Si tu veux faire un essai, c’est simple à comprendre :
Essaye d'imaginer un monstre, tout de suite, en fermant les yeux 3 secondes.
Ça y est ?
Eh bien il y a 99,99% de chance pour que tu n’aies rien inventé du tout.
Ton cerveau a simplement fait la somme des images de monstre que tu as déjà vu dans ta vie… et a essayé de les assembler.
Exactement comme le fait une IA.
Les 2 fonctionnements ne sont pas si différents l’un de l’autre.
La principale limite de l’IA, c’est la créativité.
L’imagination est propre à l’humain et permet de créer le futur, ce sera difficile pour une IA d’y accéder.
Mais cela va arriver…
Certaines machines (des IAs) sont tellement bonnes qu’elles permettent de tromper des humains.
Ces derniers pensent dialoguer avec un humain en face d’un chat, or c’est une machine.
Le test de Turing est un test de la capacité d’une machine à imiter une conversation humaine de manière suffisamment convaincante pour que l’humain en face ne puisse pas dinstinguer sa conversation d’un être humain ou d’une machine.
Le test d’Alan Turing
Bien sûr, ce test est sujet à controverse, notamment car il repose sur le fait que son succès dépende de la capacité de l’humain derrière à discerner le vrai du faux.
Les IAs deviennent vraiment bonnes sur le sujet, et d’ici quelques années on ne pourra plus savoir avec qui on parle sur internet, que ce soit sur un chat ou sur les réseaux sociaux.
Le deep learning est une sous-catégorie de l’intelligence artificielle qui imite le fonctionnement du cerveau humain à l’aide des réseaux de neurones artificiels.
(En particulier les réseaux profonds avec de nombreuses couches)
Ces réseaux de neurones apprennent à partir de grandes quantités de données en détectant et en s’ajustant aux motifs dans ces données, de la même manière qu’un humain classique.
Le deep learning est utilisé dans beaucoup de technologies que nous utilisons aujourd’hui, comme la reconnaissance vocale (avec Siri ou Alexa, même s’ils ne comprennent parfois rien), la traduction automatique, la conduite autonome etc.
Pour en savoir plus je te renvoie à cette vidéo :
Le NPL, c’est ton langage à toi, processé par une IA.
La manière dont tu t’exprimes va être classifiée et traitée afin de pouvoir enrichir une base.
Pour l’IA ça commence par le texte (c’est plus facile), mais les images sont également compréhensibles, tout comme les vocaux et la vidéo.
Le « traitement du langage naturel » est une branche de l’intelligence artificielle qui permet aux ordinateurs de comprendre, d’analyser et de générer du langage naturel.
Quand tu demandes à SIRI si il fait beau, il va écouter, classer, interpréter et comprendre ta demande pour te fournir la réponse adéquate.
Les applications de NLP sont nombreuses et variées, allant de la classification de texte à la compréhension de la parole.
La classification de texte est une application courante de NLP qui consiste à classer automatiquement des documents en fonction de leur contenu.
Par exemple, un modèle de classification de texte peut être utilisé pour classer des emails comme spam ou non spam, ou pour classifier des articles de presse par sujet.
L’extraction d’information est une autre application de NLP, qui consiste à extraire des informations structurées à partir de données non structurées.
C’est barbare, mais avec un exemple ça passe mieux.
Si tu donnes tous les blogs techs de France a mangé à une IA, elle sera capable de te dire que : « Mark Zuckerberg » est associé à l’organisation « Facebook », et que « Facebook » est associé à « Cambridge Analytica » (dans l’affaire des élections présidentielles truquées), et que de fait, Mark pourrait manipuler les élections.
Tout ça, c’est déduire des briques d’informations entre elles.
La génération de texte est une application de NLP qui permet aux ordinateurs de générer du texte de manière autonome.
Par exemple, un modèle de génération de texte peut être utilisé pour générer automatiquement des descriptions de produits pour un site de commerce électronique.
(J’ai des amis qui font ça pour le SEO, ça marche bien)
L’apprentissage profond est une technique d’apprentissage automatique qui est souvent utilisée pour le traitement du langage naturel.
Les réseaux de neurones sont un exemple d’algorithme d’apprentissage profond qui peut être utilisé pour améliorer la précision des modèles de NLP.
(Ça, je n’ai jamais rien compris alors je vais juste m’arrêter là)
C’est là qu’on commence à rigoler.
Des algos d’apprentissage, il en existe plusieurs :
Tu en as sous doute appris à l’école quelques-uns.
ChatGPT par exemple, est basé sur l’architecture GPT (Generative Pre-trained Transformer).
C’est un réseau de neurones récurrents à attention (une technique d’apprentissage supervisé).
ChatGPT a donc mangé énormément de data…
Grâce aux gros volumes de données (merci les GAFAMs), on a étiqueté un paquet de données pour faire apprendre le modèle.
En combinant les algos d’IAs ensemble, on a été capable de faire du clustering, c’est-à-dire regrouper des données similaires en groupes (des clusters quoi) sans utiliser de données étiquetées.
Tu classifies de nouvelles données sans avoir besoin de modèle d’apprentissage initial (car la machine a appris).
Ceci est donc une technique d’apprentissage non supervisé !
Les modèles d’apprentissage peuvent être classés en 3 catégories.
Et certaines déductions comme la détection de visage se basant sur plusieurs modèles pour fonctionner.
Les modèles d’apprentissage sont des instances spécifiques d’algorithmes d’apprentissage automatique qui sont entraînés pour effectuer des tâches spécifiques.
On va voir ça ensemble.
L’IA s’est entraînée sur des données étiquetées en apprenant à associer des entrées à des sorties (par exemple pour lire du texte écrit à la main, classifier des données).
Supposons que tu travailles pour une banque et que tu souhaites développer un modèle qui prédit si un client remboursera ou non un prêt dans le but d’acheter une maison.
Tu as des données historiques sur les prêts passés qui comprennent des informations sur chaque prêt (montant, la durée, le revenu, historique de crédit, etc.).
Dans ton cas, ta tâche d’apprentissage supervisée est une tâche de classification : tu veux prédire une étiquette de classe (remboursé ou non remboursé) pour chaque futur prêt.
Tu pourrais aussi utiliser un algorithme d’apprentissage supervisé, comme la régression logistique, les arbres de décision, les forêts aléatoires, le SVM (Machine à Vecteurs de Support) ou le réseau de neurones pour entraîner ton modèle.
Tu fournis à l’algorithme les informations sur les prêts (les entrées) et sur le fait qu’ils aient été remboursés ou non (les étiquettes).
Une fois que le modèle a été entraîné sur ces données, tu peux l’utiliser pour prédire si un nouveau client à qui tu envisages de prêter de l’argent remboursera ou non son prêt !
C’est un exemple d’apprentissage supervisé parce que tu as supervisé l’entraînement du modèle en lui fournissant les bonnes réponses (les étiquettes de remboursement).
Principaux types d’algorithmes d’apprentissage supervisé :
Ils n’utilisent pas de données étiquetées et cherchent à découvrir des structures ou des modèles dans les données (en rassemblant les points communs).
Prenons toujours le même contexte, celui d’une banque, mais cette fois, imaginons que tu veuilles comprendre les différents types de comportements de dépenses de tes clients.
Le but, c’est de leur proposer des produits financiers sur mesure.
Tu disposes d’une grande quantité de données sur les transactions de tes clients (montant, type de chaque transaction (épicerie, restaurant, factures d’énergie, etc.)), mais tu ne sais pas à l’avance combien et quels types de comportements de dépenses existent.
C’est ici qu’intervient l’apprentissage non supervisé :
Tu pourrais utiliser une technique comme le clustering, via l’algorithme K-means ou DBSCAN, pour regrouper les clients en fonction de leurs comportements de dépenses.
Chaque groupe (ou cluster) que l’algorithme identifie représenterait un type de comportement de dépenses différent.
Ici, tu n’auras pas fourni de « bonnes réponses » à l’algorithme d’apprentissage.
Au lieu de cela, l’algorithme a dû découvrir lui-même les structures communes dans les données.
Principaux algorithmes de clustering :
Ces derniers utilisent une petite quantité de données étiquetées comme base, puis sont soumis à une grande quantité de données non étiquetées (utilisé par exemple pour la reconnaissance vocale ou la traduction).
Imaginons, ta banque a créé un bot de trading.
Pour améliorer les performances du bot, tu peux utiliser l’apprentissage par renforcement.
Dans ce contexte :
L’agent (le bot de trading) interagit avec l’environnement (le marché financier) en effectuant des actions (achat, vente, détention) et en recevant des récompenses (bénéfice ou perte).
L’objectif de l’agent est d’apprendre une politique – c’est-à-dire une stratégie pour choisir les actions – qui maximise la récompense totale.
L’apprentissage par renforcement peut être une méthode très efficace pour résoudre ce type de problème, car il permet à l’agent d’apprendre par essais et erreurs,comment exploiter son environnement pour maximiser la récompense !
Exemple : Si j’achète et que je revends trop vite une action trop volatile de type « real estate », dans 80% je perds de l’argent, alors je ne vais plus le faire.
Typiquement une leçon que l’IA tire en faisant des essais et des erreurs.
Algorithmes d’apprentissage semi-supervisé principaux :
Certains termes reviennent beaucoup, voici les plus courant quand on parle l’IA et de code.
(Volontairement expliqué simplement, perso ça me casse la tête tous ces termes…)
Le machine learning est un enjeu majeur pour les développeurs, car cela a rendu possible le fait de coder avec l’IA.
Pour moi, c’est un game changer.
Il y a un avant et un après.
Les devs qui refusent de coder avec l'IA vont se retrouver éjecté du marché dans les prochaines années.
(Enfin, c’est mon avis)
On est en 2023, et l’IA d’OpenAI, GPT-4, quelques mois après sa sortie est capable de générer du code en fonction d’un bout de papier.
(Oui c’est du code simple et un problème simple… mais on est qu’en 2023 !)
Pour moi plein de choses vont changer dans nos tâches quotidiennes de dev.
L’IA a déjà changé ma manière de coder, que ce soit avec GPT3 ou avec Copilot.
J’utilise beaucoup moins Google, encore moins StackOverflow.
Désormais, je demande directement à l’IA de générer le code dont j’ai besoin ou de corriger un morceau pour moi.
Apparemment, je ne suis pas le seul, entre Janvier et Juillet 2023, StackOverflow aurait perdu 50% de son trafic ?
Même si ces informations ont été démenties par SO et qu’ils ont une stratégie marketing avec OverflowAI, ils n’en restent pas moins que l’IA est en train de nous détourner fortement des recherches Google.
StackOverflow en paye déjà le prix…
Dans les prochaines années, les IAs vont écrire ton code, à ta place, avec une précision de dingue.
N’en doutons pas car c’est déjà là.
Seulement quelques années ont passé et AlphaCode semble déjà si loin…
Voici un documentaire sur l’IA de Google, Alpha, qui a réussi là où beaucoup avaient échoué avant en devenant la meilleure joueuse du monde incontestée de Go.
(Spoiler : Elle a inventé un coup que tout le pensant injouable et a ainsi ouvert des portes que les humains n’avaient pas réussi à trouver)
En attendant 10 ans que l’IA code presque à notre place, elle nous permet déjà de :
Utiliser l'IA pour coder c'est remettre le focus sur ce qui est important : Stabiliser un projet avec des tests ou générer un bonne doc, corriger plus de petits bugs qu'on remet à plus tard.
Il sert à ça, le temps qu’on gagne.
L’IA va aussi permettre de réduire les coûts :
Si l’IA s’occupe de la technique, quelles tâches seront confiées aux développeurs ?
Les seules tâches qui ont réellement de la valeur :
Résoudre des problèmes.
Techniquement parlant, l’IA nous aide en tant que codeur :
On pourra se concentrer sur le Software Craft, sur l’architecture, sur le besoin métier, sur la cohérence des décisions fonctionnelles…
Et moins sur la technique.
C’est dingue d’ailleurs de se dire que tous ces avantages sont déjà en grande partie disponibles pour tous les développeurs.
ChatGPT est gratuit tout comme Tabnine, et GitHub Copilot ne coûte pas grand-chose…
Il y a un énorme gain de productivité à la clef à utiliser l’IA pour coder.
Des outils dopés à l’IA permettent déjà des suggestions de code super efficaces, et ça va continuer.
On va pouvoir exprimer notre intention clairement et l'IA va coder ce qu'elle devine qu'on souhaite.
Corriger du code avec GPT-3 et GPT-4, ça fonctionne super bien sur de petites features et de petits morceaux de code.
Tellement bien que des outils ont vu le jour pour essayer de l’automatiser.
Corrige le code suivant jusqu'à ce que la sortie soit X.
Ce serait dingue si le code pouvait s’auto corriger non ?
C’est en train d’arriver, Wolverine essaye de le faire en Python.
Et GPT-4 Code Interpreter le fait aussi.
D’ici quelques années, cela fonctionnera encore mieux, et sur de grosses parties de code.
Notamment parce que, pour l’instant, l’IA n’a pas accès à l’ensemble de notre codebase (encore heureux car la confidentialité des grosses boîtes derrière, c’est pas ça).
Mais ça va arriver, des applis non officielles commencent à le faire avec GPT-3.
Quand l'IA aura accès à tout le code, au contexte de l'application, aux règles métiers dans Jira, aux tests qui décrivent l'implémentation ; j'ai de gros doutes sur le fait qu'elle ne soit PAS capable de coder à notre place.
Pas toi ?
Pour moi, les développeurs qui utilisent l’IA codent déjà plus rapidement et plus efficacement tout en produisant des apps de meilleure qualité.
Alors quand tout notre code lui sera compréhensible, je n’imagine pas.
Avec les bons outils, on sera capable de piloter des intelligences artificielles qui coderont pour nous.
On vérifiera que le code produit fait bien ce que l’on souhaite.
Notre compréhension du problème nous amènera à générer de tests ultra-poussés et cohérents.
L’IA vérifiera son propre code sous notre contrôle.
Le problème majeur de l’IA (pour le moment), c’est non seulement sa créativité, mais surtout le fait que :
Quand l’IA ne sait pas, elle invente.
Tous les développeurs qui ont déjà dialogué avec une IA.
Or, pour des tâches où il ne faut surtout pas inventer car on a besoin de cohérence (à savoir le code), elle « hallucine », au sens premier du terme.
C’est un vrai problème pour les développeurs car on ne peut pas se permettre d’utiliser une IA qui invente du code ou des problématiques métiers qui n’existent ou ne fonctionnent pas.
C’est pour cette raison que ces domaines ont encore de l’avenir :
Pour tout ça, l’IA va encore galérer un petit moment :
Écrire du code pour parcourir un tableau ou faire un appel HTTP…
C’est déjà à sa portée.
En tant que dev, on va devoir se concentrer sur des tâches à forte valeur ajoutée et à forte créativité pour rester compétitif.
Les hard skills c’est bien, mais ce sont les softs skill qui vont primer.
Plus que jamais.
La plupart des personnes qui testent GPT-3.5 sont souvent déçues.
L’IA ne comprend pas exactement ce qu’elles souhaitent, pire encore, comme elle ne voit pas où on veut en venir, elle invente.
Pour l'instant, l'IA ne fait que générer le token le plus probable après une demande.
D’où l’importance de :
Parler avec une IA, aka le prompt engineering, ça s’apprend.
(Et en tant que dev, on va devoir l’apprendre)
Exemple d’un prompt peu clair :
Exemple d’un prompt beaucoup plus clair (avec un plus haut taux de succès) :
Différents outils basés sur l’IA existent.
On rigole souvent en disant que tous utilisent l’API d’OpenAI…
Et même si c’est souvent vrai, il n’empêche que d’autres font leur apparition.
L’écosystème tout entier se retrouve bouleversé, et c’est génial pour les devs.
De notre côté, on a un paquet d’outil à base d’IA à utiliser et tout autant de librairies cool.
(Le plus dur étant de faire le tri entre les outils à base d’IA qui sont utiles et les autres qui ne sont que marketing)
ChatGPT a secoué tout le monde avec GPT-3, puis encore plus avec GPT-4.
ChatGPT 3.5 est gratuit pour tout le monde, mais son API est payante tout comme l’api de GPT-4.
Le principal avantage de cet AI dans un chat c’est sa capacité à avoir des conversations cohérentes.
Personnellement, je l’utilise quasiment tout le temps, même dans mon temps perso.
Il y a une différence de taille entre GPT-3 et GPT-4.
Mi-2023, ils ont sorti aussi une nouvelle feature appelée « Code interpreter », qui permet d’aller encore plus loin en générant des graphiques, en comprenant du code et en étant capable de traiter des documents.
Avec Python, on est capable de lui demander de télécharger ou de téléverser des documents.
La principale avancée pour les développeurs : ChatGPT Code Interpretor ne se fit qu’à la donnée, il n’hallucine pas.
(Tester ChatGPT, ChatGPT Code Interpreter)
Mieux encore, en générant le code Python, si jamais il se trompe dans l’écriture du code, il est capable de le corriger lui-même pour aller plus loin.
Cette présentation est d’ailleurs top (mais ne regarde pas le début de la vidéo)
Les intelligences artificielles pour coder sont efficaces si on spécifie bien l’entrée et la sortie, mais beaucoup moins si on leur donne un plus gros problème à résoudre.
D’où l’idée de chaîner les IAs entre elles (qu’on verra plus tard avec Jarvis.
L »idée est de faire des boucles itératives sur un objectif et forcer l’IA à recommencer jusqu’à atteindre l’objectif.
Pour les développeurs, c’est l’occasion d’aller plus loin que simplement interroger un chat :
Les GAFAMs sont sur le coup avec l’IA, OpenAI a vraiment fait peur à tout le monde et depuis tous essaye de rivaliser.
Actuellement, en juillet 2023, je pense que GPT-4 est probablement l’IA grand public la plus fiable à utiliser.
Cependant les autres géants sont sur le coup, avec l’avantage de proposer eux aussi, des IAs gratuites.
L’IA open source de Facebook avec l’énorme avantage, en plus d’être performante elle est ouverte en Open Source.
Pour rappel, l’IA a besoin d’être entraînée pour être efficace, donc d’avoir un modèle fiable, stable et cohérent.
C’est justement ce modèle qui est rendu OpenSource.
LLaMa peut être téléchargée et lancée en local si on demande les accès à Meta (le modèle ne semble pas 100% libre donc).
Perplexity a ouvert un accès de Chat pour dialoguer avec LLaMa.
Bonus : Les modèles LLM d’AutoGPT et de BabyAGI (et même la lib LangChain) sont utilisables avec ChatGPT mais aussi avec Llama !
Microsoft a collaboré avec OpenAI Codex pour sortir GitHub Copilot, ce qui a été un succès.
À côté de ça, Microsoft n’est pas en reste, notamment avec Jarvis.
Le but est d’interconnecter plusieurs IA spécifiques avec la communauté Hugging Face afin d’avoir une mini IA générale qui soit capable de résoudre des problèmes encore plus complexes.
Les modèles sont fournis en OpenSource et son notamment capables de gérer :
L’étude sur Jarvis et ses ambitions est disponible ici.
Les intelligences artificielles pour coder en ligne sont sympas, mais l’interaction est toujours compliquée.
On doit copier/coller du code dans ChatGPT pour que cela soit efficace, ce qui prend du temps et de l'énergie mentale.
D’autant plus que là aussi il n’a pas le contexte…
Ne serait-ce pas plus simple de tout avoir directement dans son IDE ?
Sans doute l’outil le plus connu pour aider les développeurs à coder avec l’IA :
GitHub Copilot, c’est un projet qui est né de la collaboration entre OpenAI Codex et Microsoft.
Globalement, c’est simple.
Copilot dans ton IDE (VSCode, JetBrains, NeoVim) voit ton code et est capable de deviner le prochain token le plus probable : aka ton intention.
À l’aide des bases de données de GitHub et de StackOverflow, il permet d’agréger une quantité phénoménale de données.
Note : En alternative OpenSource, GitLab a aussi commencé à travailler sur un assistant de code IA.
L’outil est payant, coûte 100$ par an mais c’est un réel bénéfice pour les développeurs.
40% des suggestions de Copilot sont correctes en moyenne, dans les faits on peut coder presque 2 fois plus rapidement avec cette IA.
D’ici quelques années, le CEO de GitHub escompte que 80% des suggestions soient correctes…
Découvrir 8 façons de coder plus vite avec la formation sur Copilot ici.
C’est un projet expérimental transverse à GitHub Copilot pour lui rajouter des fonctionnalités.
Copilot Labs peut :
Ces fonctionnalités sont cool mais Copilot X est en train de les absorber petit à petit…
Seules les brushs m’intéressent personnellement.
L’extension est gratuite si on a un abonnement à GitHub Copilot.
C’est un set de fonctionnalités dopé à l’IA de GitHub Copilot (pour l’instant uniquement accessible depuis une liste d’attente).
Pour le coup, Copilot X va encore plus loin que ça en proposant un Chat directement dans notre IDE…
Ça, c’est pour moi la meilleure feature.
(Même si on peut aussi discuter avec)
Pour l'instant l'IA de Copilot n'a accès qu'au fichier courant, mais quand elle aura accès à tout le code source, les suggestions seront encore plus pertinentes.
Pour en savoir plus sur toutes les fonctionnalités de Copilot Chat, c’est ici (disponible sous liste d’attente) :
Tabnine et Ghostwriter sont deux outils indépendants qui fonctionnent super bien pour les avoir testés.
Que ce soit sous forme de chat ou d’outils, ils permettent d’aller encore plus loin :
Mais honnêtement, j’ai peu utilisé ces outils.
Je préfère parier sur Copilot qui est maintenu par Microsoft et a moins de chance de se voir déprécié dans le futur.
Codeium est gratuit et est vachement mis en avant par la communauté anglophone, ça vaut sûrement le coup de le tester.
J’avais utilisé Tabnine il y a quelques mois, ça marche vraiment bien, mais je trouve Copilot plus puissant.
VSCode a son système de suggestions personnalisées, ce qui fait que l’autocomplétion de l’IDE est puissante.
(Même si je la trouve moins performante que la suite JetBrains, sur des outils langages comme Kotlin ou PHP, il n’y a pas photo)
IntelliSense est un outil général d’IA pour diverses fonctionnalités d’édition de code, y compris :
C’est de l’assistance et de l’autocomplétion ++ basée sur ce qui est déjà utilisé dans l’application (pour te suggérer les fonctions les plus utilisées, par exemple).
Par défaut, je l’ai activé sous VSCode et ça me permet d’être efficace sur l’autocomplétion dont VSCode manque parfois.
Fleet, c’est le nouvel IDE de JetBrains.
Après WebStorm, PHPStorm, IntelliJ, PyCharm etc, ils ont décidé de tout synthétiser dans un seul logiciel, multilangages.
Il se retrouve dans cette section car tout comme Intellisense, il utilise un système d’IA pour donner des suggestions avec le « Code engine ».
Cependant, avec la montée en puissance de l’IA, je ne suis pas certain qu’ils le développent plus que ça.
Ils doivent déjà se battre contre VSCode qui est gratuit et c’est déjà un beau challenge !
GPT-3.5 et GPT-4 sont utilisables depuis VSCode.
Plusieurs extensions permettent une intégration avec ChatGPT, mon choix s’est arrêté sur une extension backée par Y Combinator.
Le plus important pour choisir la bonne extension :
Trouver son extension ChatGPT pour VSCode.
Coder avec une IA, ça va devenir la norme dans quelques années.
Pour moi, plus aucun développeur ne codera sans IA d’ici 10 ans, voire moins.
À ce sujet, il y a une compétence importante à maîtriser qu’on a souvent délaissé : exprimer son intention.
Le prompt engineering c'est justement être capable d'exprimer son intention, ce que l'on souhaite, et comment.
Utiliser ChatGPT n’est pertinent que si tu sais lui demander quoi faire…
Sinon, il est inutile.
Tout comme un développeur qui coderait des choses complexes grâce à l’IA mais qui ne répondrait pas aux besoins métiers.
Avoir un bon prompt pour l’IA est assez compliqué.
Il faut une vraie compréhension du problème que l’on veut résoudre et comment on veut le résoudre.
C’est pour cela que beaucoup de personnes utilisent mal ChatGPT, GPT-3 et GPT-4 (même si les résultats de ce dernier sont plus précis).
GPT, si tu lui donnes une instruction trop vague, il sera incapable de remplir la tâche comme tu l’as imaginé.
(Parce-qu’il n’est pas dans ta tête)
Je n’ai pas été assez précis, du coup la réponse est carrément fausse.
J’utilise GPT-3 au quotidien pour coder et pour autant, je n’ai aucune compétence en mathématique ou en modèle d’IA.
Les réponses très généralistes des IAs sont un problème que l'on peut résoudre avec le prompt engineering.
👉 Pour chacun de tes prompts, sois très précis sur l’entrée et la sortie que tu souhaites (on verra des exemples plus loin).
Bien maîtriser son prompt c’est vraiment ce qui fait qu’on peut aller vite et loin avec l’IA.
Seulement, ça prend énormément de temps pour les tâches les plus complexes.
C'est en partie parce que l'IA a du mal avec les tâches larges et complexes que les développeurs ont encore de belles années devant eux.
Il faut beaucoup de précisions à GPT pour pouvoir générer quelque chose de fonctionnel dans un environnement complexe.
Autrement dit, c’est compliqué pour l’IA en 2023 de comprendre comment coder quelque chose de complexe car elle n’a pas (encore) de vue d’ensemble.
Bref, plus on est précis avec l’IA, mieux ça fonctionne.
Des outils existent pour nous aider à structurer nos prompts (et à spécifier nos pensées).
Mais compter sur des outils pour utiliser d’autres outils, je pense que c’est une mauvaise idée.
Dans un premier temps savoir comment prompter est ta meilleure arme pour mieux coder avec l’IA en tant que développeur !
Guide pour apprendre le prompt Engineering :
Pour utiliser l’IA, il existe énormément d’outils et tous ne se valent pas.
Pour le coup je ne développe pas d’IA à proprement parler alors je ne peux pas plus en parler.
Coder avec l’IA pour mieux coder est une chose.
Développer une IA qui code à notre place en est une autre.
LangChain permet de chaîner ses pensées via là « Chain-of-Thought ».
Chainer des prompts est un excellent moyen de spécifier ses besoins à l’IA.
Quand on veut coder avec une IA, on. abesoin de discuter et d’avoir des intéractions avec elle.
Or, un seul et unique message pour demander quelque chose est rarement ce qui fonctionnera.
Autrement dit, une conversation pour se faire comprendre c’est toujours mieux qu’un email en 1 shot.
Une suite d’instructions aident à comprendre ce que l’on souhaite produire.
Par exemple, voici comment fonctionne BabyAGI avec LangChain pour essayer de devenir une IA pluridisciplinaire.
L’IA peut nous générer du code assez facilement, c’est de notre devoir de développeur de s’assurer qu’il corresponde bien à ce qu’on souhaite.
Et surtout : qu’on ne se soit pas trompé sur notre réel intention…
L’intelligence artificielle crée du code, mais les développeurs sont toujours responsables.
Coder avec une IA, c’est utiliser un outil pour aller plus vite, rien de plus.
Aussi, tu as plusieurs manières d’utiliser ces outils :
Tout est bon pour contextualiser correctement afin que l’IA ne se trompe pas.
Avec Copilot par exemple, le contexte est donné en plus du code de la page pour aider l’intelligence artificielle à comprendre.
À nous, développeur, finalement l’IA ne nous coûte pas grand-chose par rapport à tout ce qu’elle nous apporte.
En revanche, ChatGPT coûte 700.000 dollars par mois.
Pour un développeur, estimons le coût de l’IA pour coder.
En terme d’outils, je te propose de partir sur la Stack suivante :
Si tu ne veux rien dépenser, c’est possible.
ChatGPT est gratuit avec la version de GPT-3.5.
Des outils comme TabNine pour ton IDE ont une version gratuite.
Si ta boîte te paye ton IDE, Fleet intègre de l’IA dans ses propositions de code.
GitLab est aussi en train de mettre quelque chose sur pied…
Après le no-code ou low-code, on se retrouve avec une nouvelle manière de coder : développer avec un assistant d’IA.
Quand les développeurs ne savaient pas quelque chose il y a quelques années, ils auraient été chercher sur Google la réponse à leur problème, mais c'est terminé.
Aujourd’hui avec l’IA, on peut directement lui demander de générer le code sur mesure dont on a besoin.
Les temps ont changé.
Depuis GPT-3, il est beaucoup plus facile pour les développeurs de coder.
Toutes les réponses à nos questions se retrouvent désormais accessibles dans notre IDE, à la demande, sans devoir en sortir (ou presque).
Ce qui va faire la différence entre un bon et un mauvais dev avec l’IA, c’est le prompt.
Personnellement, voici 2 prompts complets que j’utilise souvent avec ChatGPT.
Note : Je les ai mis dans Espanso pour les copier-coller en tapant par exemple :prptGen (voir la liste des meilleurs outils pour les développeurs).
Générer du code qui fonctionne avec l’IA, c’est facile si on le contextualise et si on le borne bien.
Pour générer une feature simple, voici le prompt qui fonctionne dans 90% des cas (il comprend parfaitement le code que je veux qu’il génère).
Agis comme un développeur senior sur {JavaScript}, ta spécialité est {React} et tu fais partie de la Core Team JS.
Moi, je suis développeur senior {React} depuis 5 ans, spécialisé dans {TypeScript et JavaScript}.
J'aimerais {un composant} {React} qui permet de {créer un formulaire de contact avec nom, prénom, email et message}.
Les paramètres d'entrées sont : {}
La sortie attendue est : {}
Pour cela:
- utilise la dernière version connue de {TypeScript}
- utilise la dernière version connue de {React}
- n'utilise pas de lib externe
- respecte bonnes pratiques de React
- applique le clean code
Pour corriger du code, ce que je veux surtout c’est :
(Dans la partie « Fixer du code avec GPT-3 » en dessous, je te montre étape par étape comme j’ai fait 👇)
Mais sinon, voici un prompt efficace pour fixer des bugs avec une IA :
Agis comme un développeur senior sur {JavaScript}, ta spécialité est {React} et tu fais partie de la Core Team JS.
Moi, je suis développeur senior {React} depuis 5 ans, spécialisé dans {TypeScript et JavaScript}.
Je suis en train de coder {un composant React qui s'appelle ContactForm et qui a pour but d'afficher un formulaire de contact}
Voici le comportement actuel: {}
Cependant, voici le comportement que j'attends: {}
Personnellement, je pense qu'il y a un bug dans {} mais je n'en suis pas certain.
Peux-tu me faire une liste en commençant par le problème le plus probable des solutions qui s'offrent à moi pour corriger mon problème ?
Voici les versions des outils que j'utilise:
- {React 16.8}
- {Redux 4.2.1}
Générer du code avec GPT-3 est vraiment facile, seulement il faut bien le contextualiser :
Donne des instructions comme si tu parlais à un gamin de 14 ans qui apprend le code.
Je ne sais pas si tu as déjà eu des stagiaires en développement web sous ton aile, mais généralement on essaye d’expliquer étape par étape ce qu’il faut faire.
Écris comme si tu rédigeais un ticket de spécification fonctionnelle très précis dans Jira.
(C’est exactement la même chose pour ChatGPT et GPT-3 / GPT-4 en général)
Honnêtement, j’utilise moins OpenAI ChatGPT pour générer du code que GitHub Copilot (notamment grâce à l’autocomplétion).
Même si ça utilise GPT dans tous les cas, la manière de l’utiliser est différente car Copilot a conscience du contexte du fichier en cours ce qui permet d’être plus précis.
Corriger du code avec GPT-3 ou GPT-4 est de plus en plus intuitif et j’ai pris l’habitude de le faire de plus en plus.
Pour générer du code ou des features, j'utilise moins GPT-3 que GitHub Copilot, mais sur du fix de bug, je l'utilise énormément et c'est génial.
Voici un exemple de bug que j’ai corrigé avec ChatGPT.
On est en juillet 2023 et je reçois un mail.
Autrement dit, mon système de commentaire sous WordPress fait la tronche depuis déjà quelques jours.
Pour trouver le bug, je n’avais aucune idée de comment faire.
J’ai alors reproduit le bug en local et ai pris 10 minutes à regarder dans les fichiers .php
de WordPress depuis mon thème.
Rien.
J’ai donc demandé à ChatGPT de m’aider, et il a réussi à corriger mon problème quand je lui ai décrit :
La piste numéro 2 m’intéresse particulièrement parce-que j’y avais pensé, je suis donc allé voir la balise id
dans comments.php
.
J’en informe GPT-4 de suite :
Bonheur, non seulement son hypothèse est juste, mais le code généré par l’IA après lui avoir montré le problème est juste.
GPT-4 a trouvé la correction à donner : appeler wp_reset_postdata();
!
Et là, je pige tout !
Quelques semaines auparavant j’avais mis en place ce système de « Plus de contenu » de la même catégorie à la fin des articles.
L’ID qu’on voyait dans le formulaire de commentaire était le dernier ID de cette liste…
Car j’avais oublié de reset les données du post
courant (erreur de débutant).
Voici comment j’ai pu avoir un vrai assistant sous forme d’IA afin de corriger un bug (simple certes, mais) qui m’a pris 30 minutes à corriger alors que j’aurais pu y passer 2h.
Pendant mes entretiens techniques, j’ai beaucoup utilisé ChatGPT pour qu’il améliore le code que je faisais.
Bien sûr, ce genre de questions ne fonctionnent que si on a un mimimum d’expérience pour discerner le vrai du faux.
Il faut tout de même des prérequis avant de se lancer. Savoir reconnaître un code ‘propre’ avant de pouvoir en livrer un grâce à l’IA.
Cependant la plupart du temps, GPT-3 est hyper cohérent.
Pour donner un exemple, je devais coder un système pour afficher des Pokémons.
Le composant <PokemonDetail />
était sensé afficher les détail d’un Pokémon.
Voici le code en question (qui pouvait bien sûr être amélioré).
ChatGPT en version 3.5 m’a proposé plusieurs améliorations, dont celle que j’attendais !
(À savoir créer des sous-composants, et encore il aurait pu faire mieux en créer un composant générique et des HOCs pour encapsuler la donnée (elle était la même partout, des string
).)
En fonction des changements dans ton code, l’IA pourra essayer de deviner ce que tu as modifié et t’aider à créer un message de commit en fonction.
Et ça fonctionne plutôt bien !
Le seul point qui m’embête, c’est que ça utilise l’API d’OpenAI pour discuter avec GPT-3 et GPT-4, seulement pour l’heure, elle est payante.
Est-ce que ça vaut le coup de payer 0,01cts pour avoir un message de commit plus clair ?
Ces quelques secondes valent-elles le prix sur le long terme ?
Je te laisse y réfléchir 🙂
En attendant voici un exemple avec Gitpoet (une extension VSCode existe).
Outils disponibles pour générer ses commits de message avec l’IA :
Les revues de code, on en fait tous en tant que dev et ça saoule même beaucoup d’entre nous.
(Généralement on préfère coder que lire du code)
Avec l’intelligence artificielle et de l’intégration continue, on est capable de faire reviewer nos pull / merge requests directement par une IA.
Encore une fois, ce n’est que le début, mais l’idée de pouvoir faire ça avec une IA directement sur GitLab n’est plus loin derrière…
Ça arrive même sûrement au moment où j’écris ce paragraphe en août 2023.
Intégrer ChatGPT directement dans les revues de code pourrait nous faire gagner beaucoup de temps sur les use-cases simples (éviter les fautes, faire du code un peu plus propre, détecter un bug...).
Bref, voici une petite liste d’outils qui existent déjà pour faire des code reviews avec l’IA.
Outils pour faire ses revues de code avec l’IA (code reviewer) :
textarea
.On est mi-2023, et j’aimerais parler des limites du machine learning actuelle.
Il faut savoir que l’IA date du milieu du XXème siècle et à l’époque, ils avaient déjà conçu des algos que l’on utilise encore aujourd’hui.
Pourquoi ont-il arrêté en cours de route au lieu de créer ChatGPT directement ?
Les raisons sont simples : Le manque de puissance de calcul et de données.
Désormais, on a les deux, c’est pour ça qu’on a une techno qui marche aussi bien.
Même si on a énormément évolué technologiquement parlant, les algos eux, très peu.
(Je te conseille de lire le Thread de Mathis qui montre que pour l’instant, on est encore largement valable en tant que dev)
On n'est pas (encore) sur le point de remplacer les développeurs par des IAs.
La technologie grandit tellement qu’il y a fort à parier que d’ici quelques années, notre métier subisse un gros changement.
D’ailleurs si j’avais 18 ans et que je devais choisir mes études, je ne choisirais pas la programmation car l’IA est déjà en train de coder aussi bien que nous, et ça va s’accentuer.
Alexandre Soyer
Le CEO de GitHub espère aussi d’ici quelques années (2 à 3 ans) , que les prédictions de Copilot complètent les 3/4 de nos réflexions.
Copilot will write 80% of code “sooner than later”.
GitHub CEO – Thomas Dohmke
La moitié du code que l’on tape aujourd’hui peut être complétée et générée par une IA.
Ça donne à réfléchir sur notre avenir…
Les emplois actuels vont être menacés.
Graphiste, designer, copywriter, développeur…
D’ici quelques années, énormément de métiers dits « intellectuels » seront remplacés par des IA.
Les limites humaines arrivent en un sens, car les robots vont bientôt nous dépasser techniquement parlant.
Ce n’est qu’une question de temps avant que la créativité des humains ne soit elle aussi rattrapée par les machines.
Avec les robots de Boston Dynamics, d’ici quelques années il y a fort à parier que l’IA soit intégrées dans des robots et nous aide dans notre quotidien…
Mais avant ça, des métiers comme celui de graphiste sont mis en péril :
Regarde par exemple l’image trop stylée qu’à généré Axel (qui a l’excellent blog Code Heroes au passage) via MidJourney.
Combien de temps aurait-il fallu à un graphiste pour la faire ?
Des heures…
La valeur ajoutée qu’on attribuait à nos métiers dits artistiques ou intellectuels, sera facilement remplaçable par une machine.
Même si pour l’instant on ne le voit pas encore venir, GPT-3 est un bébé de quelques mois encore…
Oui, les métiers intellectuels sont menacés désormais.
Quel est l'intérêt de payer une rédacteur SEO 1 journée de travail pour produire 2 gros articles alors que la même chose, supervisé par ChatGPT pourrait en produire 10 ou 20 x plus ?
Ce serait très prétentieux de croire que ça ne va pas arriver aux développeurs non plus…
“Il va être de plus en plus difficile pour un être humain d’apporter une contribution productive à la société”.
Sébastien Thrun, inventeur de la Google Car dans The Economist
On rigolait du salaire universel et on en rigole encore, mais beaucoup de personnes pensent que ça va arriver (et plus vite qu’on ne pense).
Car l’IA va mettre une grosse partie de la population mondiale au chômage d’ici quelques dizaines d’années.
À qui appartient l’IA ? Est-ce une personne ? Les différents modèles utilisés ont-ils respecté notre vie privée ?
On utilise nos données pour entraîner les intelligences artificielles.
Les données ne sont plus « inertes », elles vont servir de mémoire à une intelligence supérieure…
D’ici quelques années, l’IA te connaîtra mieux que tes parents (si ce n’est pas déjà le cas ?).
Dans un premier temps, on peut déjà commencer par se demander :
Tellement de questions en suspens…
Mais il n’y a pas que ça.
Si Copilot utilise le code Open-Source de GitHub pour s’entraîner et que tu as aussi publié dessus, est-ce normal qu’ils se servent de ton code, sans demander ?
Les dangers d’utiliser des outils comme GitHub Copilot, c’est de retrouver son code privé sauvegardé et entrainé pour enrichir le modèle de l’IA.
Autrement dit, avec ces outils, le code privé envoyé sur les serveurs pourrait ne plus exister…
Ce qui bien sûr pose un problème : à qui est le code que tu vas écrire ? Pourquoi tu es payé au final si tu ne codes plus avec ton code ?
La vitesse de calcul actuelle a permis l’émergence de l’IA, comme ChatGPT, un logiciel basé sur GPT-3 qui a secoué le monde entier.
Il y a 2 ans, personne ne pensait possible qu’un logiciel comme Stable Diffusion ou MidJourney fasse un dessin aussi bien qu’un humain…
Une super-intelligence va émerger, c’est une question de temps.
Vitesse de calcul + Performance des algos + Données = Super IA
Heureusement nos limites technologiques actuelles nous permettent de voir venir le truc pour y mettre des barrières.
Beaucoup de personnes ont signé une lettre ouverte pour demander de mettre en pause la montée en puissance de l’IA car elle pourrait devenir dangereuse pour l’humanité.
Pour moi, c’est une bonne chose.
Si une IA apprend à se transférer via ses données sur internet, elle pourrait être capable de se cacher et personne ne serait en mesure de l’éteindre.
Elle pourrait juger que l’espèce humaine fait plus de mal que de bien et de l’anéantir, car on lui aura appris à faire le bien.
(Je te conseille d’ailleurs l’incroyable série Person Of Interest pour ça)
C’est une possibilité à envisager, et les spéculations à ce sujet sont nombreuses.
De toute façon faut pas se leurrer, l’IA va prendre le contrôle de nos vies.
Elle a déjà commencé à le faire…
Bon, je vais pas faire un speech et j’espère que t’es déjà convaincu.
Si jamais tu ne l’es pas, laisse-moi te dire qu’il y a un avant et un après.
On est en 2023, et d'ici moins de 3 ans, les devs qui n'utilisent pas l'IA seront devenues beaucoup moins intéressants pour les entreprises qui recrutent...
Tout simplement parce-qu’elles font des tâches aussi bien que nous en une fraction de seconde sur des éléments précis.
AlphaGo, l’IA de Google qui a battu le meilleur humain sur Terre est connu pour avoir joué le coup 37.
C’est un coup qu’aucun autre humain n’aurait fait car ce coup précis fait perdre la partie à celui ou celle qui le ferait, mais l’IA a su voir plus loin encore.
En plus d'être rapide et d'avoir plus de connaissances que nous, l'IA permet de découvrir des choses que nous n'aurions probablement jamais vues par nous-même.
Donc ?
C’est sans doute la même chose avec ton code…
L’IA peut trouver des solutions plus rapides, plus simples et plus efficaces auxquelles tu n’aurais pas pensé non plus.
Personnellement, je pense 2 choses :
Au lieu de coder, on va plutôt demander à l’IA de coder pour nous.
Exactement comme GitHub Copilot X le souhaite.
Demander à l’IA de coder va être « le nouveau métier de développeur » d’ici quoi… 10 ans ? Tout au plus.
Du coup, on deviendrait des « Prompt engineer » spécialisés en dev ?
De nouveaux métiers mixtes sont en train de naître…
À l’heure actuelle l’IA ne sait pas :
Cependant, ça finira par arriver, la question : c’est quand.
Ce n’est pas être critique, mais en 2022 il y a eu un précédent : GPT-3 a changé la manière dont on voit le monde.
Coder avec l’intelligence artificielle, que ce soit GPT-3, GPT-4 ou tout autre modèle, c’est quelque chose dont les développeurs vont avoir besoin dans les années à venir.
ChatGPT est sorti fin novembre 2022, cela ne fait même pas 1 an et ce n’est que le début.
En finissant cet article je suis tombé sur cet outil qui permet d’écrire du code, comme un dev.
Ça utilise GPT-4 et c’est bluffant :
Ca ne fait qu’1 an qu’on joue avec la techno et nos puissances de calcul sont encore limitées…
Mais qui sait ce dont les IAs seront capables dans 3 ou 5 ans à la vitesse où ça va ?
Sans rire, ça te fait pas peur à toi pour la suite ?
N’hésite pas à me laisser ton avis en commentaire, car personnellement je suis perplexe.
De mon côté, ces prochains mois seront dédiés à la formation sur l’IA en tant que développeur.
Si ça t’intéresse aussi je t’invite à t’inscrire à la formation gratuite : coder avec l’IA.
Pour lire plus de contenu similaire dans le même thématique.
Très bel article !
Merci beaucoup 🙂