La génération augmentée de récupération (RAG) fait partie des dernières avancées en matière de traitement du langage naturel (TLN). Elle désigne une technique qui associe les avantages de la récupération d'informations et la génération du langage naturel (GLN). La RAG permet de redéfinir la façon dont les logiciels sont pensés, conçus et mis en œuvre, conduisant à une nouvelle ère d'efficacité et de créativité basée sur les modèles génératifs.
Définition de la génération augmentée de récupération
La génération augmentée de récupération est un modèle de traitement du langage naturel qui combine deux composants clés : un module de génération et un module de récupération.
Module de génération : élément qui crée des contenus, tels que des phrases ou des paragraphes, généralement basés sur de grands modèles de langage (LLM).
Module de récupération : élément qui récupère les informations pertinentes à partir d'un ensemble prédéterminé de documents ou de données.
En clair, la RAG utilise le module de récupération pour trouver des informations utiles dans un vaste ensemble de textes, puis le module de génération utilise ces informations pour améliorer son entraînement basé sur les LLM afin de créer un texte cohérent. Cette approche permet de renforcer la qualité et la pertinence du contenu généré par l'intelligence artificielle (IA) grâce à l'exploitation de connaissances nouvelles et souvent plus spécifiques à un domaine, en dehors du vaste ensemble de données utilisé pour entraîner le LLM d'origine. Elle est couramment adoptée pour des tâches impliquant de répondre à des questions ou de résumer un texte.
La RAG intègre ces deux modules, ce qui permet aux équipes de développement d'utiliser une multitude de connaissances existantes pour enrichir les LLM, afin d'améliorer la génération de nouveaux contenus contextuellement pertinents.
Types de données utilisées
Les données sont le socle des LLM, des modèles d'IA générative et des applications d'IA. Elles sont aussi utilisées de différentes manières pour entraîner, confirmer et améliorer les performances de ces modèles dans différents domaines. Les modèles TLN et RAG utilisent des données d'entraînement appelées « données vectorielles » pour déterminer les relations entre les ensembles de données.
Définition des données vectorielles
Les données vectorielles sont souvent citées dans le contexte des systèmes d'information géographique (SIG) et la cartographie. Aujourd'hui, ces données sont utilisées dans de nombreux domaines, notamment la localisation, l'urbanisme, les sciences environnementales et les transports. Elles permettent la représentation, l'analyse et la visualisation précises des informations spatiales, ce qui aide les utilisateurs à comprendre et prendre des décisions sur la base de données géographiques. Les données vectorielles illustrent la relation ou l'espace qui existe entre des éléments, par exemple la distance qui sépare une ville d'une autre.
Utilisation des données vectorielles dans le TLN et la RAG
Les technologies de TLN et de RAG n'utilisent pas de données vectorielles au sens classique des systèmes SIG ou de l'analyse spatiale. Toutefois, les représentations vectorielles sont essentielles pour effectuer de nombreuses tâches au sein de ces systèmes. Dans ce contexte, les données vectorielles font généralement référence à des représentations numériques de mots, phrases ou documents dans un espace vectoriel en haute dimension.
Ces représentations numériques sont utilisées dans des modèles couramment appelés « représentations compactes ». Ces représentations permettent de saisir les relations sémantiques et syntaxiques entre les mots ou les segments de texte. Par exemple, les données vectorielles en haute dimension peuvent être injectées dans des modèles tels que watsonx.ai ou Hugging Face d'IBM, spécifiquement utilisés pour la conversion de données en représentations compactes, en convertissant des données complexes en formes numériques compréhensibles pour les ordinateurs.
Bien que le terme « données vectorielles » dans le contexte de la RAG ne se réfère pas nécessairement aux vecteurs géographiques, la conversion de texte en vecteurs est au cœur de nombreux aspects du TLN et de la RAG, notamment l'apprentissage, la récupération et la génération de représentations. Ces données d'entraînement permettent aux modèles de traiter et manipuler du texte de manière pertinente, ce qui facilite les tâches telles que la réponse à des questions, la synthèse et la génération de dialogues.
Utilisation de la RAG dans le développement logiciel
1. Récupération d'informations
La récupération d'informations joue un rôle crucial dans le développement logiciel. Les équipes de développement ont souvent besoin d'accéder à de nombreuses ressources, notamment la documentation, les référentiels de code, les forums et les articles de recherche. La RAG rationalise ce processus en automatisant la récupération d'informations pertinentes, ce qui permet à ces équipes de gagner du temps et d'accéder aux informations les plus récentes, précises et adaptées au contexte.
2. Génération du langage naturel
Une fois que les informations pertinentes sont extraites, le composant de génération du langage naturel de la RAG passe à l'action. Sa tâche consiste à créer du texte lisible par l'utilisateur à partir des données récupérées. Dans le domaine du développement logiciel, il peut prendre la forme d'extraits de code, de documentation, voire de guides interactifs. Le contenu généré n'est pas simplement un copier-coller d'informations existantes : il est adapté aux besoins spécifiques du développeur.
3. Peaufinage itératif
La RAG implique un processus de peaufinage itératif, ce qui le distingue des autres techniques. Les équipes de développement peuvent interagir avec le contenu généré en fournissant des commentaires et en ajustant la réponse. Cette interaction à double sens affine le résultat final afin qu'il soit plus précis et qu'il corresponde mieux à leur intention et à leur style de codage. Il s'agit d'une approche itérative qui permet de combler l'écart entre la vaste étendue d'informations et les exigences uniques d'un projet donné.
Cas d'utilisation de développement logiciel pour la RAG
Cas d'utilisation 1 : génération de code
La RAG peut changer la donne en matière de génération de code. Les équipes de développement peuvent fournir des exigences ou une logique de haut niveau, et le système peut récupérer des extraits de code pertinents, en les adaptant au contexte en question. Cette étape aide à accélérer le processus de codage et à favoriser les meilleures pratiques.
Cas d'utilisation 2 : documentation
Aspect essentiel du développement logiciel, la documentation est souvent négligée en raison de contraintes de temps. La RAG simplifie la création de la documentation en extrayant des informations de sources pertinentes et en générant automatiquement une documentation cohérente et facile à utiliser pour les équipes de développement.
Cas d'utilisation 3 : résolution de problèmes et débogage
Lorsqu'elles sont confrontées à un problème de codage, les équipes de développement peuvent utiliser le système RAG pour rechercher des solutions et bénéficier de suggestions contextuelles. Le processus de débogage est ainsi considérablement accéléré, et les temps d'arrêt réduits.
Exploitation de la RAG pour le cloud computing hybride
Les équipes DevOps (développement et exploitation) et MLOps (Machine Learning Operations) peuvent tirer parti de la RAG dans un environnement de cloud hybride pour améliorer l'efficacité de l'exploitation de l'apprentissage automatique (AA). Elles pourront par exemple améliorer la gestion des données, l'entraînement des modèles, la documentation, la surveillance et les processus d'allocation des ressources.
Données et documentation
La RAG permet de récupérer des données pertinentes à partir de sources de données sur site et dans le cloud. Cet aspect est particulièrement utile dans un environnement de cloud hybride où les données peuvent être réparties sur plusieurs sites. Grâce à une récupération et une analyse plus efficaces des données, l'approche MLOps permet aux modèles d'AA d'accéder à des ensembles de données complets et variés à des fins d'entraînement et de validation.
La RAG aide également à automatiser les processus de documentation et de partage des connaissances au sein des workflows MLOps. Les systèmes RAG peuvent générer automatiquement de la documentation, des rapports et des résumés d'expériences d'AA, d'évaluations de modèles et de procédures de déploiement en exploitant les capacités de la GLN. Ils aident ainsi à conserver des registres d'activité complets et à faciliter le transfert de connaissances entre les membres de l'équipe.
Allocation et optimisation des ressources
Les techniques RAG peuvent également être intégrées aux workflows afin d'améliorer l'allocation et la mise à l'échelle des ressources dans un environnement de cloud hybride. Par exemple, les équipes MLOps peuvent allouer des ressources de calcul de manière dynamique entre l'infrastructure sur site et les plateformes cloud afin d'optimiser l'entraînement des modèles, l'inférence et les processus de déploiement en générant des informations sur les performances des modèles et l'utilisation des ressources.
L'IA et son écosystème en pleine expansion
Il existe un écosystème grandissant de solutions de données et de modèles génératifs destinés aux équipes de développement qui cherchent à exploiter la RAG. OpenAI, l'entreprise créatrice de ChatGPT, en est un exemple significatif. L'assistant RAG d'OpenAI est actuellement disponible en version bêta et fait partie de la famille élargie de modèles développés par OpenAI.
Les entreprises et les équipes de développement ont également la possibilité de mettre en œuvre leurs versions de la RAG à l'aide d'un écosystème d'outils et de modèles de données, afin de créer un environnement à la posture de sécurité renforcée pour des cas d'utilisation spécifiques. En outre, les partenariats qui se développent au sein de cet écosystème aident les équipes MLOps à se lancer rapidement et à se concentrer sur l'obtention de résultats, plutôt que de consacrer du temps à résoudre des problèmes et à gérer un ensemble complexe de technologies autonomes.
Pour aller plus loin
Dell Technologies et Red Hat se sont associés dans le but de fournir une solution d'IA/AA pour toute la pile reposant sur Dell APEX Cloud Platform pour Red Hat OpenShift : Red Hat OpenShift AI. À partir d'un ensemble de données vectorielles, OpenShift AI sur Dell APEX Cloud Platform utilise un LLM avec la RAG pour créer un assistant numérique qui exploite des informations thématiques propres à une entreprise et fournit des réponses actualisées à ses utilisateurs.
Nous continuons de développer notre écosystème de fournisseurs de matériel et de logiciels partenaires afin de proposer des solutions complètes destinées à la création, au déploiement et à la gestion des modèles d'AA et des applications intelligentes basées sur l'IA.
Découvrez les solutions qu'offrent nos partenaires certifiés Red Hat OpenShift pour toutes vos charges de travail d'IA/AA dans le Red Hat Ecosystem Catalog.
À propos de l'auteur
Adam Wealand's experience includes marketing, social psychology, artificial intelligence, data visualization, and infusing the voice of the customer into products. Wealand joined Red Hat in July 2021 and previously worked at organizations ranging from small startups to large enterprises. He holds an MBA from Duke's Fuqua School of Business and enjoys mountain biking all around Northern California.
Contenu similaire
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- L'inclusion chez Red Hat
- Cool Stuff Store
- Red Hat Summit