
On parle beaucoup ces derniers mois de l'intelligence artificielle (IA) et de son potentiel. Une technologie très prometteuse dans plusieurs domaines, puisqu'elle permet non seulement d'automatiser des tâches répétitives, mais aussi de les accomplir apparemment aussi bien, voire mieux, que nous, humains. Néanmoins, elle soulève certaines questions éthiques qui doivent être repensées, comme le remplacement de postes de travail existants et les biais dans les réponses.
Le développement logiciel n'échappe pas à ces transformations, et l'utilisation d'outils s'appuyant sur l'IA modifiera certainement la façon dont nous créons de nouveaux produits, et même la façon dont nous les utilisons. Dans les médias spécialisés et sur les réseaux sociaux, bien au-delà du cercle habituel des passionnés d'intelligence artificielle, beaucoup a été écrit sur les avancées des modèles de traitement du langage, notamment le désormais célèbre ChatGPT. C'est une technologie sans aucun doute disruptive. Quiconque y consacre 10 minutes de son temps comprend pourquoi : cet outil semble capable de répondre à n'importe quelle question, de maintenir un dialogue cohérent sans jamais perdre le contexte, et même de générer du code source.
Cette dernière caractéristique m'intéresse particulièrement, car parmi les différents tests que j'ai effectués, le code me paraît assez cohérent et structuré, même s'il ne compile pas toujours immédiatement ou n'exécute pas la demande exacte sans aucune erreur.
Cette caractéristique promet, sans aucun doute, de changer la façon dont les développeurs conçoivent, documentent et testent leur code. Si l'on considère les principales activités du développement logiciel, cet outil permet à un développeur de lui expliquer une fonctionnalité et de gérer également le code correspondant. Bien sûr, cela peut ne pas être 100% correct, mais cela peut constituer un excellent point de départ pour commencer à développer et créer des fonctionnalités.
Du point de vue de la documentation, il est également possible de fournir au modèle le code source et d'obtenir en retour la documentation du code, déjà formatée et prête à être utilisée, ce qui pourrait représenter un gain d'efficacité considérable pour cette tâche.
Enfin, et pour une tâche fondamentale du développement, ChatGPT et ses successeurs peuvent constituer un très bon outil pour tester et déboguer du code. Comme nous l'avons vu précédemment, ces outils sont capables d'interpréter du code, et peuvent donc, par exemple, aider à résoudre des bugs, à créer des batteries de tests unitaires pour des blocs de code spécifiques, ou même à créer des scénarios de tests exploratoires et d'acceptation pour des solutions plus complexes.
En matière de sécurité, ce type de modèle se montre également prometteur, puisqu'à mesure qu'ils sont intégrés dans les environnements de développement, ils sont capables de détecter du code non sécurisé ou de recommander des modifications permettant de mieux respecter certaines normes de sécurité, facilitant ainsi la création de code plus sûr de manière plus efficace.
C'est également lié à la question de la confidentialité que je vois l'un des plus grands défis actuels de l'outil : la confidentialité dans l'utilisation de ChatGPT. Actuellement, dans la version accessible au public et selon ses conditions d'utilisation, ChatGPT peut utiliser toutes vos conversations comme données d'entraînement pour améliorer le modèle. Cela signifie que tout ce qui est partagé avec le modèle, y compris les données privées et la propriété intellectuelle, sera utilisé pour entraîner de nouvelles versions de l'outil, pouvant ainsi, par exemple, générer du code basé sur de la propriété intellectuelle privée.
Cette question est de plus en plus soulevée concernant les outils s'appuyant sur l'IA, comme en témoigne la procédure judiciaire lancée par Getty Images contre Stability AI, un outil qui génère des images à partir d'un ensemble de données tirées d'internet. Dans cette procédure, l'entreprise allègue que le modèle a été entraîné en utilisant sa propriété intellectuelle sans son autorisation.
Parallèlement à cette question de confidentialité et de droits d'auteur se posent également des questions éthiques, qui dépassent le cadre de l'ingénierie logicielle : l'utilisation de ce type d'outils va-t-elle automatiser des emplois et conduire à la disparition de certains postes de travail ?
Au vu du passé, ma réponse serait oui, principalement pour les tâches répétitives nécessitant peu de jugement humain. Mais c'est justement dans cette notion de « jugement » que je crois que se trouvent les plus grands défis éthiques.
Ce modèle, même admis par son propre créateur, peut donner des réponses fausses, notamment parce qu'étant entraîné à partir d'un ensemble de données, il ne peut être fiable que dans la mesure où ces données d'entraînement le sont elles-mêmes, ce qui soulève également des questions de biais et de discrimination, puisqu'il pourrait inférer des concepts inacceptables. Cette possibilité de biais existant, tout outil intégrant ce type de modèles pour la prise de décision le fera selon les mêmes concepts.
L'IA présente un énorme potentiel dans plusieurs domaines d'application, mais aussi des défis éthiques qui doivent être pesés. L'Ingénierie Logicielle sera sans aucun doute affectée par ces nouveaux modèles, et plusieurs outils d'IA vont changer la façon dont nous créons et utilisons de nouveaux produits. Aujourd'hui, le plus grand exemple est ChatGPT, capable de maintenir des dialogues cohérents et de générer du code source. D'autres outils ne seront pas en reste, puisque Google a présenté au monde Bard, un concurrent de ChatGPT, et je pense que d'autres alternatives verront le jour. Ces outils permettront également de déboguer du code et de détecter et corriger en temps réel du code non sécurisé.
Cependant, la confidentialité et les biais restent les principaux défis actuels, puisque tout le contenu des conversations peut être utilisé pour l'entraînement même du modèle. L'IA promet, sans aucun doute, de révolutionner notre façon de travailler, et en particulier la façon dont les logiciels sont développés, mais nous devons tenir compte des aspects éthiques et de confidentialité que soulève l'utilisation de ces outils.