Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Services Web Amazon

Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Services Web Amazon

IA générative Les modèles ont le potentiel de révolutionner les opérations des entreprises, mais celles-ci doivent soigneusement réfléchir à la manière d’exploiter leur puissance tout en surmontant des défis tels que la protection des données et la garantie de la qualité du contenu généré par l’IA.

Le framework RAG (Retrieval-Augmented Generation) augmente les invites avec des données externes provenant de plusieurs sources, telles que des référentiels de documents, des bases de données ou des API, pour rendre les modèles de base efficaces pour les tâches spécifiques à un domaine. Cet article présente les capacités du modèle RAG et met en évidence le potentiel de transformation de MongoDB Atlas avec sa fonctionnalité de recherche vectorielle.

Atlas MongoDB est une suite intégrée de services de données qui accélère et simplifie le développement d'applications basées sur les données. Son magasin de données vectorielles s'intègre parfaitement au stockage de données opérationnelles, éliminant ainsi le besoin d'une base de données distincte. Cette intégration permet de puissantes capacités de recherche sémantique grâce à Recherche de vecteur, un moyen rapide de créer des applications de recherche sémantique et basées sur l'IA.

Amazon Sage Maker permet aux entreprises de créer, former et déployer des modèles d'apprentissage automatique (ML). Amazon SageMaker JumpStart fournit des modèles et des données pré-entraînés pour vous aider à démarrer avec le ML. Vous pouvez accéder, personnaliser et déployer des modèles et des données pré-entraînés via la page d'accueil de SageMaker JumpStart dans Amazon SageMakerStudio en quelques clics.

Amazon Lex est une interface conversationnelle qui aide les entreprises à créer des chatbots et des robots vocaux qui s'engagent dans des interactions naturelles et réalistes. En intégrant Amazon Lex à l'IA générative, les entreprises peuvent créer un écosystème holistique dans lequel les entrées des utilisateurs se transforment de manière transparente en réponses cohérentes et contextuellement pertinentes.

Vue d'ensemble de la solution

Le diagramme suivant illustre l'architecture de la solution.

Vue d'ensemble de la solution

Dans les sections suivantes, nous passons en revue les étapes de mise en œuvre de cette solution et de ses composants.

Configurer un cluster MongoDB

Pour créer un cluster MongoDB Atlas de niveau gratuit, suivez les instructions dans Créer un cluster. Configurer la base de données accès et réseau accès.

Déployer le modèle d'intégration SageMaker

Vous pouvez choisir le modèle d'intégration (TOUS les MiniLM L6 v2) sur le Modèles SageMaker JumpStart, blocs-notes, solutions .

Modèles SageMaker JumpStart, blocs-notes, solutions

Selectionnez Déployer pour déployer le modèle.

Vérifiez que le modèle est déployé avec succès et que le point de terminaison est créé.

le modèle est déployé avec succès

Intégration vectorielle

Intégration vectorielle est un processus de conversion d'un texte ou d'une image en représentation vectorielle. Avec le code suivant, nous pouvons générer des intégrations vectorielles avec SageMaker JumpStart et mettre à jour la collection avec le vecteur créé pour chaque document :

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

Le code ci-dessus montre comment mettre à jour un seul objet dans une collection. Pour mettre à jour tous les objets, suivez les Des instructions.

Magasin de données vectorielles MongoDB

Recherche de vecteurs Atlas MongoDB est une nouvelle fonctionnalité qui vous permet de stocker et de rechercher des données vectorielles dans MongoDB. Les données vectorielles sont un type de données qui représentent un point dans un espace de grande dimension. Ce type de données est souvent utilisé dans les applications de ML et d'intelligence artificielle. MongoDB Atlas Vector Search utilise une technique appelée k-voisins les plus proches (k-NN) pour rechercher des vecteurs similaires. k-NN fonctionne en trouvant les k vecteurs les plus similaires à un vecteur donné. Les vecteurs les plus similaires sont ceux qui sont les plus proches du vecteur donné en termes de distance euclidienne.

Le stockage des données vectorielles à côté des données opérationnelles peut améliorer les performances en réduisant le besoin de déplacer les données entre différents systèmes de stockage. Ceci est particulièrement avantageux pour les applications qui nécessitent un accès en temps réel aux données vectorielles.

Créer un index de recherche de vecteurs

La prochaine étape consiste à créer un Index de recherche de vecteurs MongoDB sur le champ vectoriel que vous avez créé à l'étape précédente. MongoDB utilise le knnVector tapez pour indexer les plongements vectoriels. Le champ vectoriel doit être représenté sous la forme d'un tableau de nombres (types de données BSON int32, int64 ou double uniquement).

Reportez-vous à Examiner les limitations du type knnVector pour plus d'informations sur les limites du knnVector type.

Le code suivant est un exemple de définition d'index :

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

Notez que la dimension doit correspondre à la dimension de votre modèle d'intégration.

Interroger le magasin de données vectorielles

Vous pouvez interroger le magasin de données vectorielles à l'aide de l'outil Pipeline d’agrégation de recherche vectorielle. Il utilise l'index de recherche vectorielle et effectue une recherche sémantique sur le magasin de données vectorielles.

Le code suivant est un exemple de définition de recherche :

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

Déployer le grand modèle de langage SageMaker

Modèles de fondation SageMaker JumpStart sont des modèles de langage étendus (LLM) pré-entraînés qui sont utilisés pour résoudre diverses tâches de traitement du langage naturel (NLP), telles que le résumé de texte, la réponse à des questions et l'inférence en langage naturel. Ils sont disponibles dans une variété de tailles et de configurations. Dans cette solution, nous utilisons le Étreindre le visage Modèle FLAN-T5-XL.

Recherchez le modèle FLAN-T5-XL dans SageMaker JumpStart.

Recherchez le FLAN-T5-XL

Selectionnez Déployer pour configurer le modèle FLAN-T5-XL.

Déployer

Vérifiez que le modèle est déployé avec succès et que le point de terminaison est actif.

Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créer un robot Amazon Lex

Pour créer un bot Amazon Lex, procédez comme suit :

  1. Sur la console Amazon Lex, choisissez Créer un bot.

Créer un bot

  1. Pour Nom du robot, entrez un nom.
  2. Pour Rôle d'exécution, sélectionnez Créer un rôle avec des autorisations Amazon Lex de base.
    Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  3. Spécifiez vos paramètres de langue, puis choisissez OK.
    Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  4. Ajoutez un exemple d'énoncé dans le NewIntent Interface utilisateur et choisissez Enregistrer l'intention.
    Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  5. Accédez à la FallbackIntent qui a été créé pour vous par défaut et basculez Actif dans le Épanouissement .
    basculer Actif
  6. Selectionnez Développer et une fois la construction réussie, choisissez Teste.
    Construire et tester
  7. Avant de tester, choisissez l'icône d'engrenage.
    Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.
  8. Spécifie le AWS Lambda fonction qui interagira avec MongoDB Atlas et le LLM pour fournir des réponses. Pour créer la fonction lambda, suivez ces étapes.
    9. Spécifiez la fonction AWS Lambda
  9. Vous pouvez désormais interagir avec le LLM.

Nettoyer

Pour nettoyer vos ressources, procédez comme suit:

  1. Supprimez le robot Amazon Lex.
  2. Supprimez la fonction Lambda.
  3. Supprimez le point de terminaison LLM SageMaker.
  4. Supprimez le point de terminaison SageMaker du modèle d’intégration.
  5. Supprimez le cluster MongoDB Atlas.

Conclusion

Dans l'article, nous avons montré comment créer un robot simple qui utilise la recherche sémantique MongoDB Atlas et s'intègre à un modèle de SageMaker JumpStart. Ce bot vous permet de prototyper rapidement l'interaction utilisateur avec différents LLM dans SageMaker Jumpstart tout en les associant au contexte provenant de MongoDB Atlas.

Comme toujours, AWS accueille favorablement vos commentaires. Veuillez laisser vos commentaires et questions dans la section commentaires.


À propos des auteurs

Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Igor Alekseev est Senior Partner Solution Architect chez AWS dans le domaine Data and Analytics. Dans son rôle, Igor travaille avec des partenaires stratégiques pour les aider à créer des architectures complexes optimisées pour AWS. Avant de rejoindre AWS, en tant qu'architecte de données/solutions, il a mis en œuvre de nombreux projets dans le domaine du Big Data, y compris plusieurs lacs de données dans l'écosystème Hadoop. En tant qu'ingénieur de données, il a été impliqué dans l'application de l'IA/ML à la détection des fraudes et à la bureautique.


Génération de récupération augmentée avec LangChain, Amazon SageMaker JumpStart et recherche sémantique MongoDB Atlas | Amazon Web Services PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Babu Srinivasan
est un architecte de solutions partenaire principal chez MongoDB. Dans son rôle actuel, il travaille avec AWS pour construire les intégrations techniques et les architectures de référence pour les solutions AWS et MongoDB. Il a plus de deux décennies d'expérience dans les technologies de bases de données et de cloud. Il est passionné par la fourniture de solutions techniques aux clients travaillant avec plusieurs intégrateurs de systèmes mondiaux (GSI) dans plusieurs zones géographiques.

Horodatage:

Plus de Apprentissage automatique AWS