ChatGPT, Bard et d’autres grands modèles de langage (LLM) ont dominé nos fils d’actualité au cours de l’année écoulée. Et ce à juste titre. Ces technologies passionnantes nous donnent un aperçu de l’avenir, de la puissance et des possibilités de l’IA.
Si l’engouement du public s’est surtout concentré sur la création de textes, d’images et de vidéos, ces outils peuvent être utilisés dans de nombreuses autres disciplines, comme l’automatisation des logiciels.
Cet article se veut une plongée en profondeur dans la manière dont l’ingénierie prompte peut nous aider dans l’automatisation des logiciels. Cependant, nous devrions commencer par examiner l’ingénierie rapide elle-même.
Qu’est-ce que l’ingénierie rapide ?
Les grands modèles linguistiques comme ChatGPT produisent des résultats basés sur les invites ou les phrases que nous leur fournissons. Cependant, les résultats varient fortement en fonction des mots ou des instructions que nous utilisons. Lorsque nous donnons des instructions vagues et imprécises, le résultat risque de ne pas être à la hauteur.
L’ingénierie de la rapidité fait référence à la conception réfléchie d’entrées qui aident à obtenir un contenu plus précis, plus exact et, en fin de compte, plus utilisable de la part de ces systèmes d’IA passionnants.
Les systèmes LLM (Large Language Model) utilisent le traitement du langage naturel (NLP) pour interpréter les énoncés que nous leur donnons. Les machines transforment ces questions ou instructions (c’est-à-dire les messages-guides) en code et les exécutent dans leurs vastes référentiels de données pour produire un contenu dans le format que nous leur indiquons (texte, images, code).
ChatGPT a été entraîné sur plus de
570 Go de données
. Le matériel de formation se compose de livres, d’articles, de textes en ligne, etc. En d’autres termes, ces ensembles de données contiennent une quantité inimaginable de connaissances.
Bien que nous puissions comprendre le processus, une grande partie de ce qui se passe sous le capot de ces systèmes se déroule hors de notre vue. Certes, nous contrôlons les entrées et les sorties, et nous formons le système, mais la manière dont ces algorithmes fonctionnent et prennent les décisions reste un mystère. Pour reprendre les termes de Sam Bowman, professeur d’intelligence artificielle à l’université de New York, “Nous l’avons construit, nous l’avons formé, mais nous ne savons pas ce qu’il fait.
L’ingénierie rapide nous aide à gérer ce chaos en utilisant des produits qui produisent des résultats prévisibles et utilisables. Ils nous offrent une voie d’accès aux vastes quantités de connaissances contenues dans ces applications.
Cette discipline est en train d’émerger comme une nouvelle carrière
Les entreprises s’efforcent de trouver des moyens d’exploiter cette puissante technologie et des cours apparaissent un peu partout.
Comment l’ingénierie rapide peut-elle aider
avec l’automatisation des logiciels ?
L’automatisation des logiciels et les LLM ont de nombreux points communs. Ils offrent tous deux un aperçu d’un avenir où les machines augmenteront la créativité humaine pour créer des lieux de travail plus rapides et plus productifs.
Il existe plusieurs domaines passionnants dans lesquels ces deux technologies peuvent converger. Voici trois façons d’utiliser l’ingénierie rapide dans l’automatisation des logiciels.
#1. Générer du code
L’écriture de code est l’une des applications les plus prometteuses des grands modèles de langage. Les LLM sur l’IA n’en sont qu’à leurs balbutiements. Cette technologie devrait s’améliorer au cours des prochaines années grâce à l’augmentation des ressources consacrées à l’informatique et à la formation.
À long terme, ces progrès pourraient permettre à l’IA d’écrire des programmes entiers avec une intervention humaine limitée, voire inexistante. Cependant, pour l’instant, les LLM ont quelques limites. La qualité de la sortie du codage LLM dépend principalement de la qualité de l’entrée. Les déchets entrent, les déchets sortent, comme on dit.
Bien entendu, ce n’est pas seulement l’efficacité de l’ingénierie rapide qui constitue un obstacle. Comme suggéré dans ChatGPT et grands modèles linguistiques dans le monde universitaire : Opportunités et défis (Meyer, 2023), “Actuellement, ChatGPT est plus susceptible de réussir à écrire avec précision de petits blocs de code, alors que sa fiabilité dans l’écriture de programmes plus grands/plus complexes (par exemple, un progiciel) est discutable.”
En outre, dans un article récent paru dans la revue Nature, certains informaticiens ont indiqué que nous devrions aborder la génération de code avec des LLM avec une certaine prudence. Un autre document contemporain,
Grands modèles de langage et bogues simples et stupides
(Jesse, 2023), a démontré comment un LLM populaire, Codex, utilisé par le fournisseur Copilot, produit “des SStuBs connus et textuels deux fois plus probables qu’un code correct connu et textuel”.
Bien que ces problèmes ne puissent être ignorés, l’enthousiasme suscité par la façon dont ces programmes peuvent contribuer à démocratiser le développement de logiciels en soutenant les équipes techniques et non techniques est toujours très justifié.
La chose la plus impressionnante à considérer est peut-être que des outils comme ChatGPT peuvent produire du code fonctionnel très rapidement. Avec la bonne invite, les ingénieurs peuvent réduire le temps nécessaire à la programmation de certains types de code, ce qui permet d’accélérer le cycle de développement des logiciels.
À la fin de l’année 2022, la plateforme de programmation populaire
Stack Overflow a interdit les
sur son forum. Ils ont invoqué le taux d’erreur élevé et les imprécisions associées à l’application. Cependant, la technologie n’en est qu’à ses débuts ; en outre, l’insatisfaction suscitée par les résultats générés par l’IA est due autant à une mauvaise ingénierie rapide qu’à la technologie elle-même.
Malgré les réticences à l’égard de la technologie, un
récente de McKinsey
met en évidence l’impact que l’ingénierie rapide a déjà sur le monde de la programmation. L’étude de la société de conseil L’état de l’IA en 2023 : L’année de la percée de l’IA générative a partagé deux tendances intéressantes. Tout d’abord, 7 % des organisations qui ont investi dans l’IA recrutent des ingénieurs prompts à intervenir. Deuxièmement, les entreprises qui utilisent l’IA ont réduit les postes d’ingénieurs logiciels liés à l’IA de 38 % à 28 %.
L’une des façons d’interpréter ces tendances est que les entreprises sont à l’aise avec cette configuration et prêtes à confier l’automatisation des logiciels à leurs machines. Bien que ces chiffres puissent surprendre les ingénieurs actuels, l’étude McKinsey suggère que “seuls 8 % d’entre eux affirment que la taille de leurs effectifs diminuera de plus d’un cinquième”. Dans l’ensemble, les ingénieurs devront probablement se recycler pour tirer parti de la tendance à l’automatisation des logiciels générée par l’IA.
L’une des applications évidentes de l’automatisation logicielle générée par l’IA est la création de robots d’automatisation. Cependant, bien que l’ingénierie rapide soit une interface manifestement conviviale grâce à l’accent mis sur la conversation, il reste à voir si elle peut supplanter les solutions existantes.
À bien des égards, un logiciel comme ZAPTEST a déjà démocratisé le marché de l’automatisation des logiciels. Il existe désormais des outils “sans code” qui permettent aux équipes non techniques de créer des robots RPA de haute qualité. Si des logiciels comme ChatGPT permettent de créer des bots, leur mise en œuvre et leur maintenance peuvent s’avérer délicates pour les personnes qui ne sont pas ingénieurs en informatique, et même pour celles qui le sont.
L’enregistrement des interactions homme-machine à partir de votre interface graphique et la conversion de ces mouvements en code sont beaucoup plus conviviaux que l’utilisation d’invites. Si l’on ajoute à cela le potentiel du LLM à produire un code instable et truffé d’erreurs, on peut dire que les logiciels de RPA n’iront nulle part dans un avenir prévisible.
#2. Conversion de données non structurées
Les données non structurées ne sont pas le point fort de l’automatisation des processus robotiques. La technologie n’a pas été conçue pour gérer des éléments tels que les courriers électroniques, les images, les fichiers audio, etc. Les outils de RPA ont besoin de modèles de données prédéfinis avec des structures organisées.
Une grande partie des données non structurées sont des textes en langage naturel. De grands modèles de langage sont construits pour “comprendre” ces informations et en extraire le sens sémantique. Cela crée donc une opportunité considérable pour les équipes qui veulent interpréter ces textes et les convertir dans un format acceptable pour les outils de RPA.
De nombreuses équipes utilisent depuis des années le traitement du langage naturel (NLP) pour les aider à analyser les sentiments. Ce processus, également connu sous le nom d’exploration d’opinion, aide les organisations à se tenir au courant des sentiments et des attitudes des consommateurs à l’égard des marques. Dans la plupart des cas, ces outils sont utilisés pour détecter les sentiments positifs, négatifs et neutres dans un texte. Cependant, la technologie est également capable de détecter les émotions de manière beaucoup plus granulaire.
Bien qu’il existe plusieurs outils sur le marché qui offrent cette fonctionnalité, LLM offre une voie vers une utilisation plus polyvalente, au-delà de la compréhension de l’opinion des gens sur un produit ou un service. Par exemple, l’analyse des données a connu un essor fulgurant ces dernières années. Le Big Data donne un avantage aux entreprises en leur permettant d’obtenir des informations et des connaissances qui les aident à prendre des décisions fondées sur des données.
Les outils d’automatisation des processus robotiques peuvent contribuer à la collecte de données. Cependant, comme nous l’avons mentionné plus haut, ils éprouvent des difficultés avec certains types d’informations. Cependant, lorsqu’elle est associée à des outils d’IA qui utilisent de grands modèles de langage, la RPA peut collecter de grandes quantités de données et les utiliser pour générer les informations nécessaires aux outils de Business Intelligence (BI).
L’un des aspects les plus intéressants de l’IA générative est sa capacité à donner un sens aux données saisies. Avec la bonne ingénierie d’invite, les équipes peuvent transformer ces données dans un format qui fonctionne pour leurs outils RPA.
La RPA peut contribuer à rendre les flux de travail du Big Data plus efficaces. Tout d’abord, vous pouvez l’utiliser pour faciliter la saisie et l’extraction des données. Cependant, les cas d’utilisation les plus intéressants et les plus intrigants concernent l’utilisation d’outils RPA pour la transformation, le nettoyage et le chargement des données ou pour garantir que la migration des données s’effectue de manière rapide, efficace et précise.
Un autre point important à noter est la gouvernance des données. L’automatisation des demandes de données aide les organisations à rester en conformité et à garder les données hors de la vue des travailleurs manuels.
#3. Automatisation des tests
L’automatisation des tests a pris son essor dans les cercles de développement de logiciels parce qu’elle offre un moyen plus rapide de vérifier les logiciels. Les tests et l’assurance qualité sont traditionnellement des processus coûteux et chronophages ; l’automatisation des tests apporte une solution à ces deux défis.
L’une des premières choses que l’ingénierie rapide peut faire est d’améliorer la qualité des cas de test. Avec les invites appropriées, ces machines peuvent analyser les cas de test et identifier les problèmes et les remèdes. Ce processus peut améliorer la portée des cas de test et conduire à des tests plus complets.
Par exemple, vous pouvez alimenter le code d’un grand modèle linguistique de la même manière que vous le feriez avec un réviseur humain. Ces machines peuvent rapidement parcourir le code et repérer les erreurs, les bogues et même identifier les problèmes de performance. Plus intéressant encore, les LLM offrent également la possibilité de compléter le code des cas de test à partir de simples bribes, ce qui accélère la création des cas de test.
L’ingénierie rapide vise à résoudre bon nombre des problèmes qui ont conduit à l’émergence de l’approche Agile/DevOps pour le développement de logiciels. Les ingénieurs veulent des tests efficaces et facilement reproductibles qui permettent de détecter les problèmes avant que les applications ne soient déployées. L’idée est qu’en libérant du temps, les développeurs de logiciels peuvent se concentrer sur des tâches plus créatives et à plus forte valeur ajoutée.
Comme indiqué dans un document classique,
La dette technique dans l’automatisation des tests
(K. Wiklund, 2012), les équipes de développement de logiciels peuvent rencontrer des problèmes si elles consacrent trop de temps aux tests manuels et à la vérification de leurs logiciels. Les coûts initiaux des solutions d’automatisation des tests, le manque d’expérience en matière d’automatisation et même la préférence pour des méthodes plus anciennes peuvent contribuer à ces ralentissements.
L’un des aspects les plus intéressants du développement agile de logiciels est le suivant
le développement piloté par le comportement (BDD).
Le concept se réfère au développement de logiciels avec les comportements attendus de l’utilisateur. Si la mise en œuvre de cette approche peut clairement faire gagner du temps, de nombreuses équipes ont du mal à concrétiser cette automatisation. Cependant, les LLM peuvent apporter une solution.
Parmi les symptômes les plus courants de la dette technique, on peut citer une mauvaise documentation et un manque de tests rigoureux. Ce sont là des problèmes que les gestionnaires du droit d’auteur d’aujourd’hui peuvent contribuer à résoudre. Toutefois, d’autres symptômes notables, tels que le remaniement, sont trop complexes pour l’IA générative actuelle et peuvent ne pas se traduire par des gains de temps.
Dernières réflexions
Les applications d’IA générative ont un potentiel immense. Cependant, l’interface conviviale et conversationnelle peut être trompeuse. Nombreux sont ceux qui pensent qu’il est facile de produire des résultats de qualité à partir de ces machines. Cependant, une excellente ingénierie de la rapidité est plus compliquée qu’on ne le pense.
Pour être efficace, l’ingénierie d’assistance nécessite beaucoup d’essais et d’erreurs. L’ingénieur doit également faire preuve de beaucoup de prévoyance pour s’assurer que les réponses sont utiles. Enfin, il est important de vérifier et de revérifier le travail en raison du risque d’erreurs qui a fait l’objet d’une large publicité.
Si les emplois d’ingénierie rapide sont en hausse, tout le monde n’en est pas convaincu. Dans un article publié dans la Harvard Business Review, Oguz A. Acar avance un argument fascinant selon lequel “les futures générations de systèmes d’IA deviendront plus intuitives et plus aptes à comprendre le langage naturel, ce qui réduira la nécessité de recourir à des messages-guides méticuleusement conçus”.
Quel que soit l’avenir, l’IA générative sera de la partie. Bien que l’ingénierie rapide soit très prometteuse, il est difficile de dire avec certitude quel rôle précis elle jouera.
Il est intéressant de noter que les logiciels d’automatisation des tests sont déjà utilisés dans de nombreux cas et réussites qui démontrent qu’ils permettent d’accélérer le développement de logiciels sans compromettre la précision ou la vérification complète des applications.
Des outils comme ZAPTEST permettent déjà aux développeurs de résoudre des problèmes tels que le manque de temps et de ressources, la dette technique, la documentation, les tests complets et la RPA. De plus, ces outils sont plus conviviaux que l’ingénierie rapide, ce qui en fait des options beaucoup plus adaptées aux équipes non techniques. Comme toujours, le véritable potentiel se situe à l’intersection de ces technologies d’automatisation passionnantes.