Solutions d'IA génératives pour les développeurs
L’IA générative, activée par de grands modèles de langage (LLMs), ouvre de nouvelles possibilités intéressantes pour les développeurs de logiciels et les organisations. Les services comme Azure OpenAI Service rendent le développement IA accessible avec des API faciles à utiliser. Les développeurs à tous les niveaux de compétence peuvent intégrer des fonctionnalités d’IA avancées dans leurs applications sans connaissances spécialisées ni investissement matériel.
En tant que développeur d’applications, vous souhaiterez peut-être comprendre le rôle que vous pouvez jouer et l’endroit où vous vous inscrivez. Par exemple, vous vous demandez peut-être à quel niveau de la « pile IA » sur lequel concentrer votre apprentissage. Ou vous pourriez vous demander ce que vous êtes capable de construire en utilisant les technologies existantes.
Pour répondre à ces questions, il est important que vous développiez d’abord un modèle mental qui mappe la façon dont la terminologie et les technologies s’intègrent déjà à ce que vous comprenez déjà. Le développement d’un modèle mental vous aide à concevoir et à créer des fonctionnalités d’IA génératives dans vos applications.
Dans une série d’articles, nous vous montrons comment votre expérience de développement logiciel actuelle s’applique à l’IA générative. Les articles définissent également une base de mots clés et de concepts à développer au fur et à mesure que vous commencez à développer vos premières solutions d’IA génératives.
Comment les entreprises bénéficient de l’utilisation de l’IA générative
Pour comprendre comment votre expérience de développement logiciel actuelle s’applique à l’IA générative, il est important de comprendre comment les entreprises ont l’intention d’utiliser l’IA générative.
Les entreprises considèrent l’IA générative comme un moyen d’améliorer l’engagement client, d’accroître l’efficacité opérationnelle et d’améliorer la résolution des problèmes et la créativité. L’intégration de l’IA générative dans des systèmes existants ouvre des opportunités pour les entreprises d’améliorer leurs écosystèmes logiciels. Il peut compléter les fonctionnalités logicielles traditionnelles avec des fonctionnalités d’IA avancées, telles que des recommandations personnalisées pour les utilisateurs ou un agent intelligent qui peut répondre à des questions spécifiques sur une organisation ou ses produits ou services.
Voici quelques scénarios courants où l’IA générative peut aider les entreprises :
Génération de contenu :
- Générez du texte, du code, des images et du son. Ce scénario peut être utile pour le marketing, les ventes, l’informatique, les communications internes, etc.
Traitement du langage naturel:
- Composez ou améliorez les communications professionnelles via des suggestions ou une génération complète de messages.
- Utilisez « discuter avec vos données ». Autrement dit, permettre à un utilisateur de poser des questions dans une expérience de conversation en utilisant des données stockées dans les bases de données ou documents de l’organisation comme base de réponses.
- Résumé, organisation et simplification des grands corps de contenu pour rendre le contenu plus accessible.
- Utilisez la recherche sémantique. Autrement dit, permettre aux utilisateurs de rechercher des documents et des données sans utiliser de correspondances exactes de mots clés.
- Traduire la langue pour augmenter la portée et l’accessibilité du contenu.
Analyse des données :
- Analysez les marchés et identifiez les tendances dans les données.
- Modélisez les scénarios « what if » pour aider les entreprises à planifier des changements ou des défis possibles dans chaque secteur de l’entreprise.
- Analysez le code pour suggérer des améliorations, corriger des bogues et générer de la documentation.
Un développeur de logiciels a l’occasion d’augmenter considérablement leur impact en intégrant des applications et des fonctionnalités d’IA génératives dans le logiciel sur lequel son organisation s’appuie.
Comment créer des applications IA génératives
Bien que le LLM effectue le gros travail, vous créez des systèmes qui intègrent, orchestrent et surveillent les résultats. Il y a beaucoup à apprendre, mais vous pouvez appliquer les compétences que vous avez déjà, notamment comment :
- Effectuer des appels aux API à l’aide de kits de développement logiciel (SDK) REST, JSON ou propres au langage
- Orchestrer les appels aux API et effectuer une logique métier
- Stocker dans des magasins de données et extraire des données de ces magasins
- Intégrer des entrées et des résultats dans l’expérience utilisateur
- Créer des API qui peuvent être appelées à partir des GML
Le développement de solutions d’IA génératives s’appuie sur vos compétences existantes.
Outils et services de développement
Microsoft investit dans le développement d’outils, de services, d’API, d’exemples et de ressources d’apprentissage pour vous aider à commencer votre parcours de développement d’IA générative. Chacun met en évidence une préoccupation ou une responsabilité majeure qui est nécessaire pour construire une solution d’IA générative. Pour utiliser efficacement un service, une API ou une ressource donné, le défi consiste à vous assurer que vous :
- Comprendre les fonctions, rôles et responsabilités classiques dans un type donné de fonctionnalité d’IA générative. Par exemple, comme nous l’avons abordé en détail dans les articles conceptuels qui décrivent les systèmes de conversation basés sur RAG (récupération augmentée), il existe de nombreuses responsabilités architecturales dans le système. Il est important de comprendre le domaine du problème et les contraintes intimement avant de concevoir un système qui résout le problème.
- Comprendre les API, les services et les outils qui existent pour une fonction, un rôle ou une responsabilité donnés. Maintenant que vous comprenez le domaine et les contraintes problématiques, vous pouvez choisir de créer cet aspect du système vous-même à l’aide de code personnalisé ou d’outils de faible code/sans code existants, ou vous pouvez appeler des API pour les services existants.
- Comprendre les options, notamment les solutions centrées sur le code et sans code / à faible codage. Vous pouvez tout construire vous-même, mais c’est une utilisation efficace de votre temps et de vos compétences ? Selon vos besoins, vous pouvez généralement combiner une combinaison de technologies et d’approches (code, sans code, faible code, outils).
Il n’existe aucun moyen approprié de créer des fonctionnalités d’IA génératives dans vos applications. Vous pouvez choisir parmi de nombreux outils et approches. Il est important d’évaluer les compromis de chacun d’entre eux.
Commencer par la couche Application
Vous n’avez pas besoin de comprendre tout ce qui concerne le fonctionnement de l’IA générative pour commencer et être productif. Comme indiqué précédemment, vous savez probablement déjà assez. Vous pouvez utiliser des API et appliquer des compétences existantes pour commencer.
Par exemple, vous n’avez pas besoin d’entraîner votre propre LLM à partir de zéro. La formation d’un LLM nécessite du temps et des ressources que la plupart des entreprises ne veulent pas investir. Au lieu de cela, appuyez-vous sur des modèles fondamentaux préentraînés existants tels que GPT-4 en effectuant des appels d'API vers des services hébergés existants comme l'API Azure OpenAI. L’ajout de fonctionnalités IA génératives à une application existante n’est pas différent de l’ajout d’autres fonctionnalités basées sur un appel d’API.
La recherche sur la façon dont les LLMs sont entraînés ou comment ils fonctionnent peut satisfaire votre curiosité intellectuelle, mais bien comprendre comment fonctionne un LLM nécessite une compréhension approfondie de la science des données et des bases mathématiques qui le sous-tendent. L’obtention de cette compréhension peut inclure des cours de niveau supérieur sur les statistiques, les probabilités et la théorie de l’information.
Si vous avez un arrière-plan informatique, vous pouvez apprécier que la plupart des développements d’applications se produisent à une couche supérieure dans « la pile » de la recherche et des technologies. Vous avez peut-être une certaine compréhension de chaque couche, mais vous êtes probablement spécialisé dans la couche de développement d’applications, avec un focus sur un langage de programmation et une plateforme spécifiques, comme les API disponibles, les outils et les modèles.
Il en va de même pour le domaine de l’IA. Vous pouvez comprendre et apprécier la théorie qui sous-tend la construction des GML, mais vous concentrerez probablement votre attention sur la couche d'application ou vous aiderez à mettre en œuvre des modèles ou des processus pour permettre un effort d'IA générative dans votre entreprise.
Voici une représentation sursimplifiée des couches de connaissances requises pour implémenter des fonctionnalités d’IA génératives dans une application nouvelle ou existante :
Au niveau le plus bas, les scientifiques des données effectuent des recherches en science des données pour résoudre ou améliorer l’IA en fonction d’une compréhension mathématique approfondie des statistiques, de la théorie de probabilité, etc.
Une couche plus haut, sur la base de la couche fondamentale la plus basse, les scientifiques des données mettent en œuvre des concepts théoriques dans les GML, en construisant les réseaux neuronaux et en formant les poids et les biais pour fournir un logiciel pratique qui peut accepter des entrées (invites) et générer des résultats (achèvements). Le processus informatique consistant à composer des compléments basés sur des invites est appelé inférence. Les scientifiques des données déterminent comment les neurones du réseau neuronal prédisent le mot ou le pixel suivant à générer.
Compte tenu de la puissance de traitement requise pour entraîner des modèles et générer des résultats en fonction d’une entrée, les modèles sont souvent formés et hébergés dans de grands centres de données. Il est possible d’entraîner ou d’héberger un modèle sur un ordinateur local, mais les résultats sont souvent lents. La vitesse et l’efficacité sont fournies avec des cartes vidéo GPU dédiées qui permettent de gérer le calcul requis pour générer des résultats.
Lorsqu’ils sont hébergés dans de grands centres de données, l’accès programmatique à ces modèles est fourni via des API REST. Les API sont parfois « encapsulées » par les kits SDK et sont disponibles pour les développeurs d’applications pour faciliter l’utilisation. D’autres outils peuvent aider à améliorer l’expérience du développeur, en fournissant une observabilité ou d’autres utilitaires.
Les développeurs d’applications peuvent effectuer des appels à ces API pour implémenter des fonctionnalités métier.
Au-delà de la stimulation programmatique des modèles, des schémas et des processus émergent pour aider les organisations à créer des fonctionnalités métier vraiment fiables basées sur l’IA générative. Par exemple, les modèles émergent qui aident les entreprises à s’assurer que le texte, le code, les images et le son générés sont conformes aux normes éthiques et de sécurité et aux engagements en matière de confidentialité des données client.
Dans cette pile de préoccupations ou de couches, si vous êtes un développeur d’applications qui est responsable de la création de fonctionnalités métier, il est possible de pousser au-delà de la couche application pour développer et former votre propre LLM. Mais ce niveau de compréhension nécessite un nouvel ensemble de compétences qui sont souvent développées uniquement par le biais de l’éducation avancée.
Si vous ne pouvez pas vous engager à développer des compétences en science des données académiquement pour vous aider à créer la couche suivante dans la pile, vous pouvez vous concentrer sur le développement de vos connaissances sur les rubriques de couche application :
- API et kits SDK : ce qui est disponible et ce que les différents points de terminaison produisent.
- Outils et services associés pour vous aider à créer toutes les fonctionnalités requises pour une solution d’INTELLIGENCE artificielle prête pour la production.
- Ingénierie rapide : Comment obtenir les meilleurs résultats en posant ou en réhrasant des questions.
- Où les goulots d’étranglement se manifestent et comment optimiser une solution. Cette zone comprend la compréhension de ce qui est impliqué dans la journalisation ou l’obtention de données de télémétrie sans violer les préoccupations relatives à la confidentialité des clients.
- Les caractéristiques des différents GML : Leurs points forts, les cas d'utilisation, les points de référence et ce qu'ils mesurent, ainsi que les principales différences entre les fournisseurs et les modèles produits par chacun d'entre eux. Ces informations vous aident à choisir le modèle approprié pour les besoins de votre organisation.
- Les derniers modèles, flux de travail et processus que vous pouvez utiliser pour créer des fonctionnalités d’IA générative efficaces et résilientes dans vos applications.
Outils et services de Microsoft
Vous pouvez utiliser des outils et des services d’INTELLIGENCE artificielle non codés et sans code de Microsoft pour vous aider à créer une partie ou l’ensemble de votre solution. Différents services Azure peuvent jouer des rôles essentiels. Chacun contribue à l’efficacité, à la scalabilité et à la robustesse de la solution.
API et kits sdk pour une approche centrée sur le code
Au cœur de chaque solution d’IA générative est un modèle LLM. Azure OpenAI fournit un accès à toutes les fonctionnalités disponibles dans les modèles tels que GPT-4.
Produit | Description |
---|---|
Azure OpenAI | Service hébergé qui fournit l’accès à des modèles de langage puissants comme GPT-4. Vous pouvez utiliser plusieurs API pour effectuer toutes les fonctions classiques d’un LLM, notamment la création d’incorporations et la création d’une expérience de conversation. Vous avez un accès complet aux paramètres et aux personnalisations pour obtenir les résultats souhaités. |
Environnements d’exécution
Étant donné que vous créez une logique métier, une logique de présentation ou des API pour intégrer l’IA générative aux applications de votre organisation, vous avez besoin d’un service pour héberger et exécuter cette logique.
Produit | Description |
---|---|
Azure App Service (ou l’un de plusieurs services cloud basés sur des conteneurs) | Cette plateforme peut héberger les interfaces web ou les API via lesquelles les utilisateurs interagissent avec le système de conversation RAG. Il prend en charge le développement, le déploiement et la mise à l’échelle rapides des applications web. Il est donc plus facile de gérer les composants frontaux du système. |
Azure Functions | Utilisez le calcul serverless pour gérer les tâches pilotées par les événements dans le système de conversation RAG. Par exemple, utilisez-le pour déclencher des processus de récupération de données, traiter des requêtes utilisateur ou gérer des tâches en arrière-plan telles que la synchronisation et le nettoyage des données. Il permet une approche plus modulaire et évolutive de la création du back-end du système. |
Solutions à faible code et sans code
Une partie de la logique dont vous avez besoin pour implémenter votre vision d’IA générative peut être générée rapidement et être hébergée de manière fiable à l’aide d’une solution à faible code ou sans code.
Produit | Description |
---|---|
Fonderie d'IA Azure | Vous pouvez utiliser Azure AI Foundry pour entraîner, tester et déployer des modèles Machine Learning personnalisés pour améliorer un système de conversation RAG. Par exemple, utilisez Azure AI Foundry pour personnaliser la génération de réponse ou améliorer la pertinence des informations récupérées. |
Base de données vectorielles
Certaines solutions d’IA génératives peuvent nécessiter un stockage et une récupération des données utilisées pour augmenter la génération. Par exemple, un système de conversation basé sur RAG permet aux utilisateurs de discuter avec les données de votre organisation. Dans ce cas d’usage, vous avez besoin d’un magasin de données vectorielles.
Produit | Description |
---|---|
Azure AI Search | Vous pouvez utiliser ce service pour rechercher efficacement des jeux de données volumineux afin de trouver des informations pertinentes qui informent les réponses générées par le modèle de langage. Il est utile pour le composant de récupération d’un système RAG, de sorte que les réponses générées sont aussi informatives et contextuellement pertinentes que possible. |
Azure Cosmos DB | Ce service de base de données multimodèle distribué à l’échelle mondiale peut stocker les grandes quantités de données structurées et non structurées auxquelles le système de conversation RAG doit accéder. Ses fonctionnalités de lecture et d’écriture rapides permettent de servir des données en temps réel au modèle de langage et de stocker des interactions utilisateur pour une analyse plus poussée. |
Cache Azure pour Redis | Ce magasin de données en mémoire entièrement géré peut être utilisé pour mettre en cache des informations fréquemment consultées, réduire la latence et améliorer les performances du système de conversation RAG. Il est particulièrement utile pour stocker les données de session, les préférences utilisateur et les requêtes courantes. |
Azure Database pour PostgreSQL - Serveur flexible | Ce service de base de données managé peut stocker les données d’application, notamment les journaux, les profils utilisateur et les données de conversation historiques. Sa flexibilité et sa scalabilité prennent en charge les besoins dynamiques d’un système de conversation RAG afin que les données soient constamment disponibles et sécurisées. |
Chacun de ces services Azure contribue à la création d’une architecture complète, évolutive et efficace pour une solution d’IA générative. Ils aident les développeurs à accéder et à utiliser le meilleur des fonctionnalités cloud Azure et des technologies IA.
Développement d’IA générative centré sur le code à l’aide de l’API Azure OpenAI
Dans cette section, nous nous concentrons sur l’API Azure OpenAI. Comme indiqué précédemment, vous accédez par programmation aux fonctionnalités LLM via une API web RESTful. Vous pouvez utiliser littéralement n’importe quel langage de programmation moderne pour appeler ces API. Dans de nombreux cas, les kits SDK spécifiques au langage ou à la plateforme fonctionnent en tant que wrappers autour des appels d’API REST pour rendre l’expérience plus idiomatique.
Voici la liste des wrappers d’API REST Azure OpenAI :
- Bibliothèque de client Azure OpenAI pour .NET
- Bibliothèque de client Azure OpenAI pour Java
- Bibliothèque de client Azure OpenAI pour JavaScript
- Module client Azure OpenAI pour Go
- Utilisez le package OpenAI Python et modifiez plusieurs options. Python ne propose pas de bibliothèque cliente spécifique à Azure.
Si un langage ou un KIT de développement logiciel (SDK) de plateforme n’est pas disponible, le pire des scénarios est que vous devez effectuer des appels REST directement aux API web :
La plupart des développeurs connaissent bien comment appeler des API web.
Azure OpenAI offre une gamme d’API conçues pour faciliter différents types de tâches basées sur l’IA, afin que les développeurs puissent intégrer des fonctionnalités d’IA avancées dans leurs applications. Voici une vue d’ensemble des API clés disponibles à partir d’OpenAI :
- Chat Completions API : Cette API se concentre sur les scénarios de génération de texte, y compris les capacités de conversation pour soutenir la création de chatbots et d'assistants virtuels qui peuvent s'engager dans un dialogue naturel, semblable à celui des humains. Il est optimisé pour les cas d’usage interactifs, notamment le support client, les assistants personnels et les environnements d’apprentissage interactifs. Toutefois, il est utilisé pour tous les scénarios de génération de texte, notamment la synthèse, la saisie automatique, l’écriture de documents, l’analyse du texte et la traduction. Il s’agit du point d’entrée pour les fonctionnalités de vision actuellement en préversion (autrement dit, pour charger une image et poser des questions sur celle-ci).
- API modération: cette API est conçue pour aider les développeurs à identifier et à filtrer le contenu potentiellement dangereux dans le texte. Il s’agit d’un outil qui permet de garantir des interactions utilisateur plus sûres en détectant automatiquement des éléments offensants, dangereux ou inappropriés.
- API Embeddings: L’API Embeddings génère des représentations vectorielles des entrées de texte. Il convertit des mots, des phrases ou des paragraphes en vecteurs à haute dimension. Ces incorporations peuvent être utilisées pour la recherche sémantique, le clustering, l’analyse de similarité du contenu, etc. Il capture la signification sous-jacente et les relations sémantiques dans le texte.
- API de génération d'images: utilisez cette API pour générer des images et œuvres d'art originales de haute qualité à partir de descriptions textuelles. Elle est basée sur le DALL· d’OpenAI Modèle E, qui peut créer des images qui correspondent à un large éventail de styles et de sujets en fonction des invites qu’il reçoit.
- api audio: cette API fournit l’accès au modèle audio d’OpenAI et est conçue pour la reconnaissance vocale automatique. Il peut transcrire la langue parlée en texte ou en synthèse vocale, prenant en charge différentes langues et dialectes. Il est utile pour les applications qui nécessitent des commandes vocales, une transcription de contenu audio, etc.
Bien que vous puissiez utiliser l’IA générative pour travailler avec de nombreuses modalités multimédias différentes, dans le reste de cet article, nous nous concentrons sur les solutions d’IA générative basées sur du texte. Ces solutions incluent des scénarios tels que la conversation et la synthèse.
Commencez à développer avec l'IA générative
Les développeurs de logiciels nouveaux dans un langage, une API ou une technologie inconnus commencent généralement à l’apprendre en suivant des didacticiels ou des modules de formation qui montrent comment créer de petites applications. Certains développeurs de logiciels préfèrent adopter une approche auto-guidée et créer de petites applications expérimentales. Les deux approches sont valides et utiles.
À mesure que vous commencez, il est préférable de commencer petit, de promettre peu, d’itérer et de développer votre compréhension et votre compétence. Le développement d’applications à l’aide de l’IA générative présente des défis uniques. Par exemple, dans le développement logiciel traditionnel, vous pouvez vous appuyer sur une sortie déterministe. Autrement dit, pour n’importe quel ensemble d’entrées, vous pouvez vous attendre à la même sortie exactement chaque fois. Mais l’IA générative n’est pas déterministe. Vous n'obtenez jamais deux fois exactement la même réponse pour une invite donnée, ce qui est à l'origine de nombreux nouveaux défis.
À mesure que vous commencez, tenez compte de ces conseils.
Conseil 1 : Soyez clair sur ce que vous voulez obtenir
- Soyez spécifique au problème que vous essayez de résoudre : l’IA générative peut résoudre un large éventail de problèmes, mais la réussite provient de définir clairement le problème spécifique que vous souhaitez résoudre. Essayez-vous de générer du texte, des images, du code ou autre chose ? Plus vous êtes spécifique, mieux vous pouvez adapter l’IA pour répondre à vos besoins.
- Comprendre votre public : la connaissance de votre audience permet de personnaliser la sortie de l’IA pour répondre à leurs attentes, qu’il s’agisse d’utilisateurs occasionnels ou d’experts dans un domaine particulier.
Conseil 2 : Utiliser les forces des llMs
- Comprendre les limites et les préjugés des GML : Bien que les GML soient puissants, ils ont des limites et des biais inhérents. Connaître les limitations et les préjugés peuvent vous aider à concevoir autour d’eux ou à incorporer des atténuations.
- Comprendre où les LLMs excellent : Les LLMs excellent dans des tâches telles que la création de contenu, la synthèse et la traduction. Bien que leurs capacités de prise de décision et leurs fonctionnalités discriminatives soient plus fortes avec chaque nouvelle version, il peut y avoir d’autres types d’IA plus appropriés pour votre scénario ou votre cas d’usage. Choisissez l’outil approprié pour le travail.
Conseil n° 3 : pour obtenir de bons résultats, utilisez de bonnes invites
- Découvrez les meilleures pratiques en matière d’ingénierie rapide : l’élaboration d’invites efficaces est un art. Expérimentez avec différentes invites pour voir comment elles affectent la sortie. Soyez concis mais descriptif.
- Valider l’affinement itératif : souvent, la première invite peut ne pas générer le résultat souhaité. Il s’agit d’un processus d’essai et d’erreur. Utilisez des résultats pour affiner davantage vos instructions.
Créer votre première solution d’IA générative
Si vous souhaitez vous lancer immédiatement dans la création d'une solution d'IA générative, nous vous recommandons d'examiner pour commencer avec le chat en utilisant votre propre échantillon de données pour Python. Le didacticiel est également disponible pour .NET, javaet JavaScript.
Considérations finales relatives à la conception de l’application
Voici une courte liste des éléments à prendre en compte et d’autres points à prendre en compte dans cet article susceptibles d’affecter vos décisions de conception d’application :
- Définissez clairement l’espace de problème et l’audience pour aligner clairement les fonctionnalités de l’IA avec les attentes des utilisateurs. Optimisez l’efficacité de la solution pour le cas d’usage prévu.
- Utilisez des plateformes à faible code/sans code pour le prototypage et le développement rapides s’ils répondent aux exigences de votre projet. Évaluez le compromis entre la vitesse de développement et la personnalisation. Explorez les possibilités de solutions à faible code et sans code pour certaines parties de votre application afin d’accélérer le développement et de permettre aux membres d’équipe non techniques de contribuer au projet.