Utiliser intelligemment l'IA en tant que développeur : nos conseils !

"ChatGPT, peux-tu écrire un article sur l'évolution de l'IA et comment utiliser les outils d'IA en tant que développeur ?" Rassurez-vous, cet article est bien rédigé par un humain, avec un cœur qui bat et une passion démesurée pour le développement ! Alors si en tant que développeur, vous avez parfois des doutes sur votre manière d'utiliser l'IA, cet article va vous intéresser ! Mais tout d'abord, reprenons les bases. Quelles sont les différentes catégories d'intelligence artificielle ?
quentin.jpg
Quentin VANDENBORE, Gourou MicrosoftMis à jour le 22 Mai 2024
Nos conseils pour utiliser intelligemment l'intelligence artificielle

Petit historique de l'IA

Il existe trois grandes catégories d'intelligence artificielle, qui correspondent plus ou moins aux grandes évolutions de son utilisation :

  • L'IA symbolique : la plus basique. Il s'agit d'un ensemble de conditions qui donne un résultat logique. Siri, l'assistant vocal d'Apple (en tout cas à ses débuts) en est un parfait exemple.
  • L'IA connexionniste. Il est ici question de réseaux de neurones, d'aide à la décision et d'algorithmes de recommandations. On retrouve ce type d'IA dans énormément d'applications que nous utilisons au quotidien, notamment les services de streaming musicaux ou vidéos.
  • L'IA générative, qui est celle qui fait le plus parler ces derniers temps. Comme son nom l'indique, elle génère quelque chose, la plupart du temps du texte (ChatGPT) mais aussi du code (GitHub Copilot), entre autres.

C'est avec l'arrivée de cette dernière catégorie que l'intelligence artificielle est devenue un sujet à la mode traité par les médias grand public.

Mais, quelles sont les raisons de l'explosion de la popularité de l'IA ces dernières années ?

Le gros boom de l'IA générative

La démocratisation de l'IA générative peut s'expliquer par différentes raisons.

La première raison réside dans son accessibilité. En effet, n'importe qui dans nos entourages peut trouver un cas d'usage, principalement avec ChatGPT, une plateforme facile d'utilisation pour le grand public. L'aspect ludique de l'outil a également beaucoup joué. Qui ne s'est jamais amusé à poser des questions à ChatGPT sans réellement avoir besoin de la réponse ?

On peut également expliquer la popularisation de l'IA par l'effet de mode que les différents outils, notamment ChatGPT, ont provoqué. Aujourd'hui, on retrouve le terme d'intelligence artificielle partout et à toutes les sauces. La conséquence directe de cette mode se matérialise par une "course à l'IA" : après une période de méfiance il y a quelques années, toutes les entreprises cherchent maintenant à l'intégrer dans leurs logiciels, à tort ou à raison. Nous avons tous eu au moins une fois une expérience utilisateur déceptive avec une IA superflue !

Un tel phénomène attire forcément la concurrence. Les modèles d'IA génératives se multiplient depuis quelques années. Plus il y a de modèles, plus il y a d'utilisateurs, et plus il y a d'utilisateurs, plus il y a de modèles !

ChatGPT et Github Copilot : deux outils puissants pour les développeurs !

Pour expliquer les bases de l'IA, nous allons nous pencher sur deux outils que nous utilisons chez AXOPEN : ChatGPT et Github Copilot. Bien que les deux se basent sur Open AI, Github Copilot utilise une partie Codex spécifiquement pour générer du code.

Le but de ChatGPT est de simuler des conversations naturelles, avec des questions, des réponses et un enchainement logique. Cependant, il faut bien comprendre que lorsqu'il commence une phrase, ChatGPT ne connait pas encore sa fin. Pour cela, il prédit le mot le plus cohérent dans le contexte. Nous vous invitons donc à toujours prendre du recul sur la réponse donnée.

De son côté, le but de Github Copilot est de générer du code à partir d'un texte. Contrairement à ChatGPT, il ne cherche pas à être cohérent avec la dernière suggestion.

L'IA peut-elle faire disparaître le métier de développeur ?

Pour la réponse courte : non ! Penser le contraire serait avoir une bien mauvaise image de notre métier. Cependant, si elle est bien utilisée, l'IA peut être un outil très utile pour le code. Justement, nous allons maintenant nous intéresser aux différentes utilisations de l'IA, que ce soit d'un point de vue client ou d'un point de vue développeur.

L'IA est-elle toujours utile dans les applications ?

Aujourd'hui, l'utilisation de l'IA est relativement peu coûteuse. Mais, ce n'est pas une raison pour en mettre partout ! Notre avis sur la question : il ne faut pas faire de l'IA pour faire de l'IA.

Il est essentiel à nos yeux que les fonctionnalités développées au sein d'une application répondent à une problématique, et soient vraiment utiles. Dès lors qu'on fait le choix de développer une fonctionnalité pour répondre à un besoin, on peut effectivement se poser la question d'utiliser ou non l'IA. Dans certains cas, ce peut effectivement être pertinent (exemple : moteur de recherche pour faire matcher des données et une requête), dans d'autres, cela n'apporte rien. Aussi, il revient à chacun de se poser la question de la pertinence de l'utilisation de l'IA dans son métier.

Au-delà de la pertinence en elle-même d'ajouter des fonctionnalités d'IA dans son logiciel, il faut parler du coût ! Pour l'instant, il est relativement peu élevé, mais nous ne sommes pas à l'abri d'une augmentation significative des prix dans un futur proche. Aussi, sur un petit nombre de tokens, l'impact sera très faible, mais dès lors que vous commencez à faire des applications avec un nombre d'utilisateurs conséquent, les coûts pourront rapidement exploser !

Ne vous faites pas avoir donc, et utilisez l'IA là où elle a une vraie valeur.

Quelles utilisations de l'IA pour les développeurs ?

Recherche d'informations

Dans le cadre de la recherche d'information, l'utilisation de l'IA peut s'avérer être à double tranchant. En effet, il est souvent difficile de vérifier la véracité des informations obtenues. C'est pourquoi, dans ce cadre d'utilisation précis, on ne peut que vous conseiller d'utiliser le Bing Copilot de Microsoft qui permet de consulter les liens sur lesquels il s'est basé pour fournir la réponse. De notre expérience, il est parfois étonnant de constater la différence entre la réponse et le contenu des liens !

Génération de données

On le sait, à partir d'un exemple, l'IA peut facilement générer des données. Très pratique pour créer du contenu dans le cadre de tests d'applications avec des données "réelles" par exemple !

Génération de code

On ne vous surprendra pas avec cette info, mais en tant que développeur, l'IA peut être utile pour générer des morceaux de code. En tant que développeurs, on trouve qu'il est notamment bien utile pour nous aider à créer :

  • Des schémas de base de données
  • Des tests unitaires ou d'intégrations
  • Des entités ou BO (Business Object)

Refactoring

Si vous cherchez à séparer votre code en plusieurs fonctions, ou totalement changer l'approche de votre algorithme, l'IA pourra vous être utile !

Si vous voulez d'ailleurs avoir des exemples plus poussés sur ce sujet, on parle plus longuement de nos retours d'expérience dans notre podcast dédié à l'IA.

Nos deux grands conseils pour bien utiliser l'IA en tant que développeur !

Comprendre ce que génère l'IA

L'utilisation de l'IA est très simple. En tant que développeur, votre plus-value ne réside donc pas dans votre connaissance de l'outil en lui-même, mais bien dans votre capacité à comprendre, analyser et prendre de recul sur les morceaux de code générés ainsi qu'à les intégrer parfaitement.

Intégrer du code généré par IA dans vos projets d'applications sans le comprendre, même par petite touche, posera forcément un problème à un moment donné. Alors pas la peine de faire la politique de l'autruche en vous disant que tout va bien (pour le moment) !

Le point positif, c'est que l'IA ne vous reprochera jamais de trop la solliciter ou de lui faire répéter plusieurs fois la même chose. Alors, profitez-en pour prendre le temps de bien comprendre les réponses générées.

Challenger les réponses de l'IA

L'IA est, le plus souvent, incapable de vous dire qu'elle ne sait pas faire. C'est pourquoi il est primordial de la remettre en question ! Il ne faut jamais intégrer dans votre projet du code que vous êtes incapable de challenger. Et si vous n'avez pas d'avis sur le code, ne l'utilisez pas !

Vous avez maintenant toutes les cartes en main pour faire de l'IA un allié de taille dans votre travail de développeur. Un allié à surveiller de près, vous l'aurez compris ! Pour allons plus loin, vous pouvez écouter l'épisode de notre podcast qui traite également le sujet.