La méthode la plus courante pour créer des applications basées sur l'IA générative nécessite des langages de programmation, des frameworks, de la science des données, et bien plus encore. Pourtant, personne ne sait vraiment qu'il est possible de tout faire avec le Low-Code.
Le Low-Code est une approche visuelle du développement logiciel qui permet aux développeurs de créer des applications en limitant le recours aux processus complexes et traditionnels de codage manuel. Le Low-Code s'appuie sur un environnement de développement convivial par glisser-déposer, ce qui rend le développement d'applications accessible aux débutants comme aux professionnels chevronnés. Cette section explore les outils et les compétences nécessaires pour créer des applications basées sur l'IA générative à l'aide de méthodes traditionnelles et montre comment y parvenir avec une plateforme Low-Code.
TL ;DR : créer des applications d'IA générative avec du code traditionnel est complexe et nécessite des compétences dans un large éventail de disciplines, notamment l'ingénierie IA/ML, la science des données, l'administration des bases de données et le comportement humain. Accédez à la section « Utiliser le Low-Code pour accélérer le développement d'applications d'IA générative » pour découvrir comment le Low-Code simplifie considérablement le développement basé sur l'IA générative.
Méthodes traditionnelles pour le développement d'applications avec l'IA générative intégrée
Les applications d'IA générative combinent la technologie cloud, les langages de développement logiciel, la science des données, l'analytique des données, le DevOps, le traitement et les modèles d'IA, ce qui comprend un type spécial d'apprentissage machine appelé grands modèles de langage (LLM). Les LLM peuvent résoudre de nombreux cas d'usage prêts à l'emploi, tandis que l'apprentissage machine traditionnel nécessite un entraînement approfondi des modèles. Les LLM permettent de tirer parti de l'intelligence artificielle sans avoir besoin de compétences spécialisées en matière d'IA pour créer des modèles et concevoir des fonctionnalités. LLM mis à part, les développeurs doivent aussi devenir des experts du « sans serveur », de l'infrastructure en tant que code, des concepts d'apprentissage machine, des algorithmes et d'autres techniques avancées. Cela inclut l'apprentissage supervisé et non supervisé, les frameworks d'IA générative, les architectures d'apprentissage profond et l'optimisation.
Une partie du processus de développement d'applications d'IA générative implique également de savoir quel(s) modèle(s) utiliser et de décider s'il convient de construire son propre modèle ou d'utiliser ceux qui sont publiquement disponibles. Il faut également se familiariser avec les frameworks de développement logiciel disponibles pour l'IA générative.
Se familiariser avec la terminologie de l'IA générative
Pour utiliser l'IA générative, il faut d'abord comprendre quelques nouveaux termes. Voici quelques concepts clés qui vous aideront à prendre une longueur d'avance :
- Modèles de fondation : les modèles utilisés par l'IA générative sont appelés modèles de fondation. Grands et polyvalents, ils sont entraînés à partir de nombreuses données qui peuvent être adaptées à des tâches telles que la rédaction de texte ou l'analyse d'images. Leur chiffre ne cesse d'augmenter au fur et à mesure que les experts en IA les expérimentent.
- Les grands modèles de langage (LLM) sont une sorte de modèle de fondation. Ils génèrent et complètent du contenu écrit à grande échelle. ChatGPT et Claude utilisent des LLM pour générer des paragraphes de texte complets, par exemple.
- La recherche vectorielle est un type de fonction de recherche dans laquelle les documents et les requêtes sont représentés sous forme de vecteurs afin de permettre des performances de recherche élevées dans les données textuelles. C'est la nouvelle norme pour extraire du contenu à partir de grandes bases de documents textuels, lequel est ensuite transmis aux LLM pour les cas d'usage de l'IA générative.
- La génération augmentée de récupération (RAG) est une technique d'IA qui associe les LLM à la récupération de contenu afin de rendre possibles des cas d'usage basés sur des sources de données propriétaires. La RAG consiste à récupérer du texte à partir d'une base de connaissances (par exemple, à l'aide de la recherche vectorielle), qui est ensuite transmis à un LLM avec un ensemble d'instructions pour générer une réponse. Par exemple, un chatbot qui récupère les données des connaissances du support client et transmet ce contenu à un LLM afin de générer une réponse éclairée à la question de l'utilisateur.
- Les modèles de diffusion sont utilisés pour la génération d'images et la synthèse de vidéos ou d'images. DALL-E 2 et MidJourney en sont des exemples populaires.
- Le few-shot prompting améliore les résultats des LLM en incluant des exemples dans l'invite et en indiquant au modèle exactement ce que vous recherchez en termes de structure, de ton et de style.
Les langages de développement traditionnels de l'IA générative
Les avis sur les langages de programmation les plus adaptés à la création d'applications d'IA générative sont nombreux, variés et contradictoires. Toutefois, selon les experts des équipes de développement d'OpenAI, d'Anthropic, de Meta, de Cohere et de Google, il en existe cinq qui sont les plus couramment utilisés pour créer des applications d'IA générative. Certains fournissent des back-ends et des services d'IA et s'appuient sur des langages de codage traditionnels pour créer des interfaces utilisateur.
Python
Python est probablement le langage le plus utilisé dans les domaines de l'intelligence artificielle et du développement de l'IA générative en raison de sa polyvalence, de sa simplicité, de sa lisibilité, de ses capacités de visualisation et d'analyse des données, ainsi que de son soutien communautaire étendu. Les développeurs peuvent l'utiliser pour le traitement du langage naturel (NLP), la modélisation prédictive, la reconnaissance d'images, la détection des visages, les chatbots, et bien plus encore. Cependant, si une application d'IA générative nécessite des tâches à forte intensité de calcul qui requièrent un examen attentif des exigences du projet, Python n'est peut-être pas le meilleur choix.
JavaScript
Comme Python, JavaScript est accessible et polyvalent. C'est donc un langage couramment utilisé pour l'IA générative. JavaScript s'exécute directement dans les navigateurs Web, ce qui signifie que les développeurs peuvent l'utiliser pour créer des applications d'IA générative interactives qui fonctionnent sur n'importe quel appareil connecté à Internet. De plus, l'adoption généralisée de JavaScript et sa vaste communauté donnent accès à de nombreuses bibliothèques et nombreux frameworks spécialement conçus pour les tâches d'IA.
R
Couramment utilisé pour le calcul statistique et l'analyse de données, R propose des packages pour la modélisation générative. Ces packages permettent de manipuler et de visualiser des données pour le développement de l'IA générative, en particulier pour l'art génératif. Vu qu'il s'agit d'un langage de science des données, la courbe d'apprentissage de R se révèle très abrupte pour les développeurs.
Prompt English
Prompt English n'est pas un langage de programmation en soi, mais il utilise le langage humain pour concevoir des invites efficaces que les applications d'IA générative peuvent utiliser pour « répondre » de manière appropriée. Les ingénieurs de Prompt créent des entrées qui interagissent de manière optimale avec les autres entrées d'un outil d'IA générative afin qu'un modèle puisse écrire des e-mails marketing, générer du code, interagir avec les clients, créer des œuvres d'art numérique, etc. La maîtrise de Prompt nécessite des compétences linguistiques et de résolution des problèmes, des connaissances en matière de framework d'IA et de NPL, une écriture créative, une conscience éthique, un engagement en faveur de tests itératifs et une compréhension de base de la cognition humaine, de la psychologie et de la sociologie.
Exemples de prompting : la chaîne de pensée et l'arbre de pensée
Le prompting par chaîne de pensée (CoT) est une technique qui permet d'améliorer la capacité des LLM à résoudre des problèmes complexes. Le processus consiste à structurer les invites en étapes plus petites et plus faciles à gérer, ainsi qu'à articuler ces étapes de manière explicite avant de parvenir à une conclusion. Voici un aperçu du processus CoT :
- Décomposition du problème : l'invite est structurée de manière à guider le modèle pour qu'il décompose le problème en une série d'étapes logiques
- Raisonnement pas-à-pas : le modèle traite ensuite chaque étape individuellement, en articulant le processus de raisonnement qui mène d'une étape à l'autre
- Conclusion : le modèle combine les insights de chaque étape pour arrive à une solution finale
L'arbre de pensée (ToT) s'appuie sur le concept de CoT. Il élabore une structure d'idées en forme d'arbre. Chaque idée de l'arbre représente une étape de la résolution du problème, et le LLM peut évaluer chaque étape pour décider si elle est viable. Cette approche s'inspire de la façon dont les humains résolvent les problèmes à travers les essais et erreurs. Cela permet au LLM de :
- Explorer différentes idées
- Réévaluer la situation si nécessaire
- Auto-évaluer les pensées intermédiaires
- Décider de poursuivre une voie ou d'en choisir une autre
- Corriger les erreurs automatiquement
- Accumuler les connaissances
Autres langages
Les communautés de développeurs et les forums révèlent que d'autres langages qui ne sont pas couramment associés à l'IA générative sont également utilisés. Par exemple, l'utilisation de Java pour les applications d'IA générative est de plus en plus courante au sein de la communauté des ingénieurs d'IBM.11 Plusieurs environnements d'IA générative populaires proposent des kits de développement logiciel Java. Ce langage est bien adapté à la création d'agents d'IA et à l'intégration d'analyses dans les logiciels d'entreprise, ainsi qu'à l'autonomisation des moteurs de recommandation.
Certains développeurs choisissent d'utiliser le langage C++ pour les tâches à forte intensité de calcul dans le cadre de l'IA générative.12 Ce langage offre également un contrôle de bas niveau sur les ressources matérielles, ce qui le rend efficace pour l'entraînement de modèles génératifs à grande échelle. Et pour ceux qui souhaitent appliquer leurs compétences en C# à l'IA générative, des tutoriels sont à disposition.13
Un seul langage ne suffit pas
Il faut savoir qu'un seul langage est rarement suffisant pour créer une application optimisée par l'IA générative ou pour intégrer cette dernière dans une application existante. Les développeurs doivent s'attendre à en utiliser au moins deux.
Compétences nécessaires pour développer des applications d'IA générative à l'aide de méthodes traditionnelles
Outre les langages d'IA générative traditionnels, les développeurs doivent être capables d'utiliser et de comprendre les frameworks d'IA, les bibliothèques, les techniques, etc.
Frameworks d'IA
Les frameworks d'IA fournissent des API et des outils de haut niveau pour créer et mettre en œuvre des modèles d'IA plus rapidement et plus facilement. LangChain, Haystack et LLamaIndex sont les frameworks les plus couramment utilisés pour le développement de l'IA générative.
LangChain
Créé spécialement pour l'IA générative, LangChain est un framework open-source disponible dans des bibliothèques basées sur Python et JavaScript qui aide les développeurs logiciels à créer des applications à l'aide de grands modèles de langage (LLM). Il fournit des outils et des API qui simplifient l'intégration des LLM dans les projets.
L'un des concepts fondamentaux de LangChain est la chaîne, une série d'actions automatisées qui relient la requête d'un utilisateur au résultat du modèle. Les chaînes permettent aux développeurs de combiner plusieurs composants pour créer une application cohérente, connecter plusieurs sources de données et générer un contenu unique. Elles peuvent également être utilisées pour fournir des réponses contextuelles en regroupant divers composants d'intelligence artificielle.
Haystack
Haystack est un framework Python open-source qui permet de créer des applications LLM prêtes à l'emploi, des pipelines de génération augmentée de récupération et des systèmes de recherche de pointe qui fonctionnent de manière intelligente sur de grands ensembles de documents. Selon les utilisateurs de Haystack, la solution est plus utile que Langchain pour développer des systèmes de recherche à grande échelle et une IA conversationnelle.14
LlamaIndex
LLamaIndex est un framework d'orchestration conçu pour renforcer les capacités des LLM telles que GPT-4. Il indexe les données privées ou spécifiques à un domaine dans des formats optimisés pour les LLM afin de prendre en charge la génération augmentée de récupération. Ainsi, lorsqu'une personne pose une question à l'IA générative, cette dernière peut trouver des informations pertinentes à partir d'une vaste collection de données et les utiliser pour fournir une réponse précise et détaillée. Cela permet d'obtenir des réponses plus pertinentes et de meilleure qualité, en particulier pour les sujets qui nécessitent des connaissances actualisées ou spécifiques.
Hugging Face
Bien qu'il ne s'agisse pas d'un framework d'orchestration d'IA classique, les développeurs ont également recours à Hugging Face pour créer des applications d'IA générative. Hugging Face propose un vaste répertoire de modèles pré-entraînés, ainsi qu'une approche communautaire en matière de partage et de développement de modèles. Les modèles Hugging Face peuvent être adaptés à des tâches spécifiques, ce qui permet aux développeurs de gagner un temps précieux et d'économiser des ressources IT. Un Model Hub sert de plateforme centrale pour partager, découvrir et collaborer sur des modèles de traitement automatique du langage naturel. La bibliothèque Hugging Face, baptisée Transformers, fournit des API faciles à utiliser pour travailler avec des modèles pré-entraînés, permettant ainsi aux développeurs d'intégrer de puissantes fonctionnalités linguistiques à leurs applications avec un minimum d'effort.
Frameworks d'apprentissage profond
De plus, certaines applications d'IA générative ont été développées à l'aide de frameworks d'apprentissage profond tels que Pytorch, TensorFlow et Keras. Par exemple, Pytorch alimente ChatGPT-4, et TensorFlow et Keras sont utilisés pour développer des réseaux antagonistes génératifs, qui sont des modèles de fondation utilisés pour la détection d'anomalies, l'augmentation des données, la synthèse d'images et la traduction texte-image et image-image. Cependant, ces frameworks ne sont pas axés sur l'IA générative et ne sont pas autant utilisés dans les projets d'IA générative actuels.
Techniques de traitement du langage naturel
Le traitement du langage naturel (NLP) apprend aux ordinateurs à comprendre, à interpréter et à générer du langage humain, comblant ainsi le fossé entre le langage humain et le langage automatique. La liste des techniques de NLP est longue (au moins 14 !). On retrouve notamment :
- La tokénisation : décomposer un texte en unités plus petites, telles que des mots ou des sous-mots (jetons)
- Étiquetage morpho-syntaxique : étiqueter chaque mot d'une phrase, comme les noms, les verbes, les adjectifs, etc., pour comprendre le rôle et le contexte des mots
- Reconnaissance d'entités nommées : identifier et classer les noms de personnes, d'organisations, les lieux, les dates, etc. dans un texte
- Analyse des sentiments : déterminer l'émotion exprimée dans un texte, qu'elle soit positive, négative ou neutre
- Modélisation de langage : créer des modèles statistiques qui prédisent la séquence de mots d'une langue donnée qui sera utilisée dans les tâches de NLP, y compris la génération de texte
Traitement, gestion et stockage des données à grande échelle
Une pile de données moderne pour l'IA générative est une combinaison d'outils et de technologies. Elle permet de collecter, de traiter, de stocker, d'analyser et d'utiliser des données pour l'entraînement et le déploiement de modèles génératifs. Voici un aperçu de certains des principaux composants.
| Plateformes de diffusion de données en temps réel | Data lakes ou entrepôts de données | Frameworks de traitement des données distribuées | Préparation des données et ingénierie des fonctionnalités |
|---|---|---|---|
|
Faciliter la collecte et l'ingestion de données provenant de différentes sources, y compris les interactions avec les utilisateurs, les capteurs ou toute autre source pertinente.
|
Fournir un référentiel centralisé pour les données structurées et non structurées.
|
Transformer et nettoyer les données et gérer le traitement par lots à grande échelle ou activer le traitement des flux en temps réel.
|
Nettoyer, préparer et concevoir des fonctionnalités à partir de données brutes. L'ingénierie des fonctionnalités est essentielle pour créer des modèles génératifs efficaces.
|
Plateformes de déploiement de modèles et d'applications d'IA générative
Kubernetes et Docker sont des outils essentiels pour mettre en production des modèles d'IA générative et garantir qu'ils peuvent fournir des prévisions à l'échelle. Docker permet de conteneuriser un modèle d'IA et son environnement afin qu'il puisse fonctionner de manière fiable dans différents environnements IT. Kubernetes gère ces conteneurs, en aidant à les déployer, à les faire évoluer et à les exploiter efficacement. Bien que ces plateformes rationalisent le processus de déploiement et de gestion des applications d'IA générative, leur apprentissage est compliqué.
La création d'applications d'IA générative à l'aide de méthodes traditionnelles est un défi de taille
La liste impressionnante de langages et de compétences requis pour créer des applications basées sur l'IA générative peut sembler insurmontable. Mais si vous êtes un développeur obstiné et déterminé, il est possible de les apprendre et de poursuivre une carrière florissante. Toutefois, il y a un meilleur moyen d'y parvenir que de s'entraîner pendant des mois, voire des années, et ce moyen, c'est le Low-Code.
Comment les développeurs acquièrent des compétences en IA générative
Voici quelques-unes des méthodes utilisées par les développeurs pour renforcer leurs compétences en IA générative :
- Formations officielles, telles que des cours universitaires et des programmes en ligne
- Expérience pratique acquise lors de projets et de contributions open-source
- Se tenir au courant des tendances en consultant des articles de recherche, en lisant des articles de blog, en échangeant avec d'autres développeurs expérimentés et en participant à des conférences
- Collaboration avec des experts en analytique prédictive, des spécialistes des sciences sociales, des ingénieurs et des éthiciens pour relever les défis liés aux données, à l'éthique et à la société
- Demander de l'aide et un accompagnement dans des communautés comme StackOverflow et GitHub ou sur des subreddits
Utiliser le Low-Code pour booster le développement d'applications d'IA générative (et l'enthousiasme)
Les plateformes Low-Code se sont révélées très efficaces par rapport au codage traditionnel pour créer rapidement et à moindre coût des applications d'entreprise. Les applications d'IA générative ne sont pas différentes des autres applications, et grâce au Low-Code, vous avez le choix. Vous pouvez investir massivement dans une équipe dédiée, une formation et des outils pour partir de zéro ou vous pouvez opter pour une plateforme Low-Code et démarrer presque immédiatement. Interfaces visuelles, connecteurs faciles à utiliser, composants prédéfinis et fonctionnalités de glisser-déposer : les plateformes Low-Code offrent un large éventail de fonctions aux développeurs qui souhaiteraient créer des applications d'IA générative ou qui ont été sommés de le faire.
Se concentrer sur la stratégie plutôt que sur l'exécution
Grâce au Low-Code, les développeurs peuvent se concentrer sur ce que leurs applications d'IA générative doivent faire, et non sur la manière de le faire. Ils peuvent se connecter aux modèles de fondation avec un minimum d'effort et un maximum de rapidité, de simplicité et de satisfaction. Et pour les scientifiques des données qui souhaitent créer des applications avec leurs modèles, le Low-Code est l'un des meilleurs moyens d'y parvenir.
Les plateformes Low-Code permettent d'intégrer facilement l'IA générative aux applications et aux processus. En quelques clics, les développeurs peuvent réunir le meilleur des LLM et de la RAG. Les plateformes Low-Code proposent également des connecteurs vers les fonctionnalités GPT, LLM et d'IA générative d'Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform. Grâce à ces connexions, fini les tracas liés à la création de modèles ou au choix de frameworks.
Le Low-Code permet également aux développeurs de créer leurs propres agents d'IA sans écrire une seule ligne en Java ou Python ni accéder à la bibliothèque Langchain. Une plateforme Low-Code suffit à fournir aux équipes de développement ce dont elles ont besoin pour créer des agents d'IA générative et les intégrer à des applications nouvelles ou existantes. Certaines plateformes accélèrent même le processus de création d'agents en proposant une bibliothèque d'applications d'IA générative à démarrage rapide, notamment une application de ticket d'assistance qui répond avec précision aux questions des clients et une application d'intelligence commerciale qui résume les appels d'assistance.
Création d'applications avec l'IA générative et le Low-Code
- Une entreprise de production a utilisé un connecteur OpenAI Low-Code pour intégrer ChatGPT à son application destinée aux collaborateurs
- Une société de logiciels utilise l'IA générative pour fournir une assistance client et clôturer les tickets plus rapidement, améliorant ainsi l'expérience client
- Dans une application de e-commerce, les clients peuvent demander de l'aide à un chatbot d'IA générative développé avec le Low-Code afin de passer des commandes et d'obtenir des recommandations personnalisées et des réponses aux questions fréquemment posées
- Un assistant virtuel optimisé par l'IA générative et créé avec une plateforme Low-Code permet aux collaborateurs d'accéder aux informations et d'effectuer leurs tâches de manière plus efficace
- Une application d'IA générative pour les ventes fournit un résumé des appels dans Slack, suggère la meilleure marche à suivre dans un e-mail et génère des informations exploitables dans Salesforce
- Une communauté de développeurs a créé une expérience utilisateur qui se connecte à plusieurs LLM et génère des traductions de ses forums
Toutefois, même si les développeurs qui n'ont pas de connaissances de base en matière d'IA et d'apprentissage machine peuvent utiliser une plateforme Low-Code pour créer une application d'IA générative, ce n'est généralement pas la meilleure idée. Oui, le Low-Code élimine une grande partie de la complexité, surtout par rapport au développement traditionnel, mais il y a encore des choses que les développeurs doivent savoir.
Ce que les développeurs doivent savoir pour créer des applications d'IA générative avec le Low-Code
Lorsque les développeurs utilisent le Low-Code pour créer des applications d'IA générative, les connaissances requises sont bien plus restreintes que celles requises pour le développement traditionnel. En effet, il s'agit davantage de comprendre des concepts plutôt que d'étudier en profondeur le codage et les frameworks. Voici quelques exemples :
- Comprendre les concepts d'IA et d'apprentissage machine. Cela inclut l'apprentissage supervisé et non supervisé, les réseaux de neurones et le traitement du langage naturel.
- Comprendre comment les données sont collectées, nettoyées et prétraitées afin d'entraîner et d'évaluer les modèles d'IA générative efficacement. Il convient également de comprendre comment fonctionnent l'intégration des données, l'évaluation de la qualité des données et l'ingénierie des fonctionnalités.
- Comprendre les principes de la conception de l'expérience utilisateur (UX) : la création d'interfaces conviviales et de processus intuitifs est essentielle à l'adoption et au succès des applications d'IA générative. Les développeurs doivent être capables de créer des applications visuellement attrayantes et faciles à utiliser.
Ce ne sont là que quelques-unes des raisons d'envisager le Low-Code pour créer des applications d'IA générative. Mais voici une autre raison encore plus convaincante : alors que le codage traditionnel pourrait un jour disparaître et être remplacé par l'IA générative, le Low-Code et l'IA générative peuvent fonctionner en tandem.
11Andre Tost, Making the case for Java in Generative AI, 2023 (plus commentaires). LinkedIn, 24 novembre.
12 C++ Generative AI Inference: Production Ready Speed and Control, 2024. ChemicalQDevice, 13 juin.
12 Chris Pietschmann, Build a Generative AI App in C# with Phi-3 SLM and ONNX, 2024. Build Five Nines, 18 mai.
14 Sarfraz Nawaz, Langchain vs Haystack: Which is Best for AI development?, 2024. LinkedIn, 1er avril.