Libérez la magie de GenAI : comment personnaliser les modèles de base avec des données personnalisées

Vous êtes-vous déjà demandé si et comment vous seriez en mesure d'utiliser des modèles de fondation de pointe avec vos propres données personnalisées sans avoir à gérer aucun infrastructure?
Dans cet article, nous explorons les possibilités intéressantes de personnalisation des modèles de fondation pour créer des solutions sur mesure pour votre domaine et votre organisation spécifiques., et cas d'utilisation, en exploitant la puissance d'Amazon Bedrock et Mendix.
Amazon Bedrock et la chambre des données personnalisées
Dans un précédent article, nous avons expliqué à quel point il est facile de créer des applications intelligentes et intuitives avec Amazon Bedrock, un service entièrement géré qui met à disposition des modèles de fondation (FM) hautement performants provenant de startups d'IA de premier plan et d'Amazon.
Depuis mars 2024, Amazon Bedrock inclut les modèles de fondation suivants :
- Titan d'Amazonie
- Anthropique Claude
- Commande et intégration Cohere
- AI21 Labs Jurassique
- Méta Lama 2
- IA Mistral
- Stabilité AI Stable Diffusion XL
La liste est régulièrement mise à jour avec des modèles nouveaux et améliorés.
Outre les modèles de base, AWS a enrichi Amazon Bedrock avec des concepts supplémentaires dans le cadre de la « boîte à outils Bedrock »..». La dernière fonctionnalité permet l'utilisation de données personnalisées avec des modèles de fondation à l'aide de bases de connaissances et d'agents.
Bien sûr, Mendix veut garder notre Connecteur Amazon Bedrock Restez à jour avec toutes les dernières fonctionnalités et profitez des nouvelles fonctionnalités d'Amazon Bedrock. C'est pourquoi nous avons publié une version 2.3.0 du connecteur pour inclure plusieurs nouvelles opérations et exemples liés aux bases de connaissances et aux agents.
Le Mendix Connecteur Amazon Bedrock et ordre des nouvelles opérations
Dans les sections suivantes, nous démontrerons différentes approches pour personnaliser les FM avec des données personnalisées.
Tout d'abord, nous aborderons la génération augmentée de récupération (RAG), une technique qui récupère des données à partir de différentes sources de données et enrichit l'invite pour fournir des réponses plus pertinentes et plus précises en utilisant des bases de connaissances. Nous montrerons comment utiliser une telle base de connaissances Amazon Bedrock avec les FM, avec et sans l'utilisation d'agents Amazon Bedrock.
La prochaine étape est une introduction à l'ingénierie des invites. L'ingénierie des invites consiste à créer des invites de haute qualité qui guident la génération Modèles AI pour produire des réponses significatives et cohérentes. Vous verrez comment il peut être utilisé dans votre Mendix .
Comment configurer et utiliser une base de connaissances
Une base de connaissances est une question de données. Nous vous montrerons comment intégrer les nouvelles données dans une source de données, ainsi que comment utiliser un modèle d'intégration et une base de données vectorielle de destination.
Si vous souhaitez suivre le processus, assurez-vous d'avoir accès aux éléments suivants :
- La console Amazon
- Amazon Bedrock (à partir de mars 2024, les bases de connaissances et les agents sont disponibles dans les régions us-east-1 et us-west-2)
- Amazon S3
Assurez-vous d'ajouter également des fichiers de données à S3. Les formats suivants sont pris en charge :
- Texte brut (.txt)
- Démarquage (.md)
- Langage de balisage hypertexte (.html)
- Document Microsoft Word (.doc/.docx)
- Valeurs séparées par des virgules (.csv)
- Feuille de calcul Microsoft Excel (.xls/.xlsx)
- Format de document portable (.pdf)
- Connectez-vous à votre Console AWS et accédez à Amazon Bedrock.
2. Dans le menu latéral sous le Orchestration section, sélectionnez Base de connaissances, puis cliquez sur Créer une base de connaissances.
3. Nommez votre base de connaissances, comme indiqué dans la capture d'écran ci-dessus, puis cliquez sur Suivant. Vous pouvez laisser les autres champs par défaut.
4. Sélire le S3 seaux et a données, filet, comme indiqué ci-dessous.
5. Sélire le modèle d'intégration qui tu veux utiliser et lan créer une nouvelle base de données vectorielle, ou utilisez-en un existant.
6. Vérifiez et créez votre nouvelle base de données.
Pour démontrer comment utiliser la base de connaissances avec un Mendix application, nous allons utiliser deux exemples : un avec l'action Récupérer et un avec l'action Récupérer et Générer. Si vous voulez suivre, vous avez besoin d'un Mendix app et le Mendix Connecteur Amazon Bedrock.
Comme alternative, vous pouvez également consulter le Application Amazon Bedrock Showcase, qui vous montre comment utiliser Amazon Bedrock Connector pour expérimenter différents modèles de fondation et les personnaliser avec vos données à l'aide de Retrieval Augmented Generation (RAG). L'application montre également comment vous pouvez créer des agents qui exécutent des tâches à l'aide de vos propres sources de données.
Configurer une action de récupération
Pour configurer l’action Récupérer, vous avez besoin des entités suivantes.
La demande de récupération nécessite un ID de base de connaissances, un texte de requête et une association à l'objet de configuration.
L'objet Configuration ne doit contenir que le nombre de résultats.
L'opération renverra un objet de type RetrieveResponse, qui contient une liste d'objets RetrievalResult contenant les fragments de texte récupérés dans la base de connaissances. La liste comportera au maximum Nombre de résultats entrées où Nombre de résultats est le numéro que vous avez spécifié dans l'objet Configuration.
Test de la récupération et de la génération la vente au détail XNUMXh/XNUMX
À l'aide du connecteur Amazon Bedrock, vous pouvez également tester votre base de connaissances précédemment configurée avec l'opération Récupérer et Générer en configurant un microflux similaire à celui présenté ci-dessous :
L'objet RetrieveAndGenerateRequest et l'objet RetrieveAndGenerateConfiguration sont obligatoires. L'objet SessionConfiguration est un objet facultatif que vous pouvez ajouter à la requête si vous devez ajouter un KmsKeyArn pour décrire la clé de chiffrement de la session. Passons maintenant aux détails des objets obligatoires.
L'objet RetrieveAndGenerateRequest doit contenir le texte d'entrée que vous souhaitez interroger et éventuellement un ID de session si vous souhaitez poursuivre une session en cours. L'objet RetrieveAndGenerateConfiguration doit contenir votre ID de base de connaissances, le ModelARN du modèle que vous souhaitez utiliser et un paramètre appelé RetrieveAndGenerateType, qui ne peut actuellement avoir que la valeur d'énumération « KNOWLEDGE_BASE » définie lors de la création de l'objet. L'association entre ces objets doit également être définie dans l'objet RetrieveAndGenerateConfiguration.
L'objet RetrieveAndGenerateResponse renvoie un texte de sortie généré pour répondre à votre requête en utilisant les informations de votre base de connaissances. L'objet de réponse aura également une liste d'objets Citation qui lui sont associés, à partir desquels vous pouvez trouver des informations sur les références récupérées et les parties utilisées lors de la génération de la sortie.
Allons un peu plus loin
Pour tirer le meilleur parti des opérations « Récupérer et générer » et « Appeler le modèle », structurez vos requêtes de manière plus détaillée pour obtenir de meilleures réponses à vos questions. L’ingénierie des invites est l’art d’écrire des invites qui génèrent de meilleures réponses. Avec l’ingénierie des invites, vous pouvez restreindre, concentrer, et ajustez les réponses que vous pouvez attendre. Par exemple, vous pouvez ajouter des données supplémentaires à l'invite utilisateur à utiliser par le modèle. Cela vous permettra d'effectuer de meilleures requêtes dans la base de connaissances et dans votre LLM pour générer une réponse dans le style qui profitera à votre cas d'utilisation.
Récupérer et générer vs agents Amazon Bedrock
Vous vous demandez peut-être s'il faut utiliser « Récupérer et générer » ou « Appeler l'agent » dans votre application. Pour vous fournir un aperçu complet de ces deux opérations, examinons ce qui se passe dans ces deux opérations.
Lorsque vous ajoutez vos documents à une base de connaissances et les synchronisez, vos documents sont d'abord divisés en segments (si vous avez configuré une méthode de segmentation, bien sûr). Ensuite, ces segments sont convertis à l'aide d'un modèle d'incorporation et écrits dans un magasin de vecteurs. Au cours de ce processus, les index vectoriels donnés sont mappés à chaque segment, de sorte que le modèle puisse localiser les segments les plus pertinents lorsque cela est nécessaire.
Bien que ces représentations vectorielles soient une chaîne de nombres (embeddings) qui n'ont peut-être aucune signification pour nous, elles contiennent beaucoup de sens pour le modèle d'embeddings. Ne pensez donc pas qu'il s'agit simplement de charabia. La base de données vectorielles dans laquelle ces embeddings sont enregistrés est un composant crucial dans l'utilisation de toutes les opérations avec les bases de connaissances. Vous pouvez jeter un œil à l'image ci-dessous pour voir une illustration du prétraitement des données pour la base de données vectorielles que nous avons trouvée dans la base de données officielle Documentation sur le substrat rocheux d'Amazon.
L'illustration ci-dessous illustre les opérations Récupérer et Récupérer et Générer. Lorsqu'une requête utilisateur est effectuée à l'aide des opérations Récupérer ou Récupérer et Générer, cette requête est convertie en vecteur en utilisant le même modèle d'intégration que pour la création de la base de connaissances.
Ensuite, la représentation vectorielle qui a été attribuée à la requête de l'utilisateur est comparée aux vecteurs de la base de données vectorielle pour trouver les fragments qui présentent une similarité sémantique. Ensuite, les fragments trouvés similaires sont localisés et restitués à l'utilisateur. Cette partie est le processus qui se déroule jusqu'à la ligne rouge visible dans l'image ci-dessous et qui décrit l'opération de récupération.
Les textes convertis sont ensuite transmis à un modèle de texte avec la requête utilisateur pour générer une réponse pour l'utilisateur. L'ensemble de ceci explique l'opération de récupération et de génération.
Il se peut que tous les modèles de base ne soient pas une fonctionnalité de l'opération Récupérer et Générer dans Amazon Bedrock lorsque vous souhaitez utiliser l'opération. Cependant, je suis sûr qu'à un moment donné, la plupart d'entre nous ont dû trouver une solution de contournement à un problème lorsque le plan A n'a pas fonctionné aussi bien que nous le pensions. Ainsi, en tant que développeurs, nous avons également trouvé une solution de contournement pour pouvoir utiliser une fonctionnalité similaire avec n'importe quel modèle de base disponible dans Amazon Bedrock.
Comme expliqué ci-dessus, l'opération Récupérer et Générer récupère les informations pertinentes de votre base de connaissances. Ces informations sont ensuite transmises à un modèle de texte avec la requête utilisateur pour générer une réponse. Cette fonctionnalité peut être répliquée et complétée en deux étapes distinctes.
Tout d'abord, utilisez l'opération Récupérer pour recevoir des informations associées à partir de votre base de connaissances. Utilisez ensuite l'opération Appeler le modèle avec une requête de suivi qui inclut les informations pertinentes reçues ainsi que votre question initiale. L'utilisation de cette méthode signifie que vous devrez créer vous-même le corps de la requête JSON pour l'opération Appeler le modèle. Cependant, vous serez libre d'utiliser n'importe quel modèle de base fourni par Amazon Bedrock.
Voyons maintenant en quoi l'invocation d'un agent diffère en regardant l'illustration élaborée ci-dessous de la Documentation sur les agents Amazon Bedrock.
L'opération démarre avec une saisie utilisateur. Avant toute chose, les invites augmentées qui seront utilisées pendant les étapes de prétraitement, d'orchestration, de génération de réponses de la base de connaissances et de post-traitement sont extraites du magasin d'invites.
Si vous avez déjà utilisé l'opération invoke agent, vous vous demandez peut-être « Invite de stockage ? Je n'ai créé aucune invite, mais l'opération fonctionne d'une manière ou d'une autre ? ». Eh bien, vous auriez raison dans ce cas, car Amazon Bedrock dispose d'invites par défaut qui sont utilisées pour ces étapes configurées dès le départ. Cependant, ces invites sont entièrement configurables pour être en phase avec les besoins de votre application, ce qui est l'une des fonctionnalités qui illustrent la flexibilité des agents dans Amazon Bedrock. Ensuite, si vous souhaitez garder à l'esprit l'historique de la conversation pour la requête, l'historique est récupéré en fonction de la session avant que l'invite de prétraitement (remplie avec les informations récupérées et votre requête) ne soit envoyée au modèle de base. Si la requête est acceptée comme entrée valide, la boucle illustrée dans l'illustration commence.
L'opération se poursuivra dans la boucle et utilisera les informations précédentes pour remplir l'invite d'orchestration configurée et appeler le modèle de base. Selon la réponse analysée, la section Invoke Action de l'illustration est mise en mouvement. La nature de cette action dépend entièrement de l'organisation de l'utilisateur.
Contrairement à Retrieve et Generate, les agents peuvent effectuer différentes opérations à l'aide de plusieurs bases de connaissances et même orchestrer des tâches à l'aide de fonctions Lambda. Les possibilités sont infinies et ne se limitent pas à la simple réception de la sortie. L'opération peut être configurée pour continuer à tourner en boucle jusqu'à ce qu'un résultat escompté soit trouvé ou qu'une action escomptée se produise en utilisant les capacités des agents Amazon Bedrock. Quelles peuvent être exactement ces actions... Eh bien, je pense que nous laisserons cela pour un prochain blog !
Exploration de la personnalisation de l'IA avec Amazon Bedrock et Mendix
Dans cet article, nous avons exploré le domaine passionnant de la personnalisation des modèles de fondation avec des données personnalisées à l'aide d'Amazon Bedrock et Mendix. Avec la nouvelle fonctionnalité introduite par AWS, il est désormais plus facile que jamais d'intégrer des données personnalisées dans des modèles fondamentaux, d'enrichir les invites et de générer des réponses plus pertinentes. Grâce à des guides étape par étape, nous avons montré comment configurer une base de connaissances, ingérer des données et utiliser Mendix applications avec le connecteur Amazon Bedrock pour exploiter la puissance de ces techniques.
De plus, nous avons comparé les opérations Retrieve and Generate et Invoke Agent, mettant en lumière leurs différences et leurs capacités. Alors que Retrieve and Generate offre une approche simplifiée pour récupérer des informations et générer des réponses, Invoke Agent offre une plus grande flexibilité, permettant l'orchestration de tâches à l'aide de plusieurs bases de connaissances, de fonctions lambda, etc.
Jetez un coup d'œil au Application Amazon Bedrock Showcase, pour obtenir un aperçu de toutes les opérations actuellement possibles avec le connecteur Amazon Bedrock. Avec Amazon Bedrock et Mendix, les possibilités sont infinies. Nous ne faisons qu'effleurer la surface de ce qui peut être réalisé dans le domaine de la personnalisation et de l'intégration de l'IA.
Ce billet de blog a été co-écrit par Agapi Karafoulidou et Ayça Öner.