L'un des modèles d'application les plus utiles pour les charges de travail d'IA générative est la génération augmentée de récupération (RAG). Dans le modèle RAG, nous trouvons des éléments de contenu de référence liés à une invite de saisie en effectuant des recherches de similarité sur les intégrations. Les intégrations capturent le contenu des informations dans les corps de texte, permettant aux modèles de traitement du langage naturel (NLP) de fonctionner avec le langage sous une forme numérique. Les intégrations ne sont que des vecteurs de nombres à virgule flottante. Nous pouvons donc les analyser pour répondre à trois questions importantes : nos données de référence évoluent-elles au fil du temps ? Les questions posées par les utilisateurs évoluent-elles avec le temps ? Et enfin, dans quelle mesure nos données de référence couvrent-elles les questions posées ?
Dans cet article, vous découvrirez certaines des considérations liées à l'intégration de l'analyse vectorielle et à la détection des signaux de dérive d'intégration. Étant donné que les intégrations sont une source de données importante pour les modèles PNL en général et les solutions d'IA générative en particulier, nous avons besoin d'un moyen de mesurer si nos intégrations changent au fil du temps (dérive). Dans cet article, vous verrez un exemple de détection de dérive sur des vecteurs d'intégration à l'aide d'une technique de clustering avec de grands modèles de langage (LLMS) déployés à partir de Amazon SageMaker JumpStart. Vous pourrez également explorer ces concepts à travers deux exemples fournis, notamment un exemple d'application de bout en bout ou, éventuellement, un sous-ensemble de l'application.
Présentation de RAG
La Modèle de chiffon vous permet de récupérer des connaissances à partir de sources externes, telles que des documents PDF, des articles wiki ou des transcriptions d'appels, puis d'utiliser ces connaissances pour augmenter l'invite d'instructions envoyée au LLM. Cela permet au LLM de référencer des informations plus pertinentes lors de la génération d'une réponse. Par exemple, si vous demandez à un LLM comment préparer des biscuits aux pépites de chocolat, il peut inclure des informations provenant de votre propre bibliothèque de recettes. Dans ce modèle, le texte de la recette est converti en vecteurs d'intégration à l'aide d'un modèle d'intégration et stocké dans une base de données de vecteurs. Les questions entrantes sont converties en intégrations, puis la base de données vectorielles exécute une recherche de similarité pour trouver le contenu associé. La question et les données de référence sont ensuite envoyées dans l'invite du LLM.
Examinons de plus près les vecteurs d'intégration créés et comment effectuer une analyse de dérive sur ces vecteurs.
Analyse sur les vecteurs d'intégration
Les vecteurs d'intégration sont des représentations numériques de nos données, de sorte que l'analyse de ces vecteurs peut fournir un aperçu de nos données de référence qui peuvent ensuite être utilisées pour détecter des signaux potentiels de dérive. Les vecteurs d'intégration représentent un élément dans un espace à n dimensions, où n est souvent grand. Par exemple, le modèle GPT-J 6B, utilisé dans cet article, crée des vecteurs de taille 4096 XNUMX. Pour mesurer la dérive, supposons que notre application capture des vecteurs d'intégration pour les données de référence et les invites entrantes.
Nous commençons par effectuer une réduction de dimension à l’aide de l’analyse en composantes principales (ACP). PCA tente de réduire le nombre de dimensions tout en préservant l'essentiel de la variance des données. Dans ce cas, nous essayons de trouver le nombre de dimensions qui préserve 95 % de la variance, ce qui devrait capturer tout ce qui se situe à deux écarts types.
Ensuite, nous utilisons K-Means pour identifier un ensemble de centres de cluster. K-Means essaie de regrouper les points en clusters de telle sorte que chaque cluster soit relativement compact et que les clusters soient aussi éloignés les uns des autres que possible.
Nous calculons les informations suivantes en fonction du résultat du clustering présenté dans la figure suivante :
- Le nombre de dimensions dans PCA qui expliquent 95 % de la variance
- L'emplacement de chaque centre de cluster, ou centroïde
De plus, nous examinons la proportion (supérieure ou inférieure) d'échantillons dans chaque grappe, comme le montre la figure suivante.
Enfin, nous utilisons cette analyse pour calculer les éléments suivants :
- Inertia – L'inertie est la somme des carrés des distances par rapport aux centres de gravité du cluster, qui mesure dans quelle mesure les données ont été regroupées à l'aide de K-Means.
- Score des silhouettes – Le score silhouette est une mesure de validation de la cohérence au sein des clusters, et varie de -1 à 1. Une valeur proche de 1 signifie que les points d'un cluster sont proches des autres points du même cluster et éloignés des points des autres clusters. Une représentation visuelle du score de silhouette peut être vue dans la figure suivante.
Nous pouvons périodiquement capturer ces informations pour obtenir des instantanés des intégrations pour les données de référence source et les invites. La capture de ces données nous permet d'analyser les signaux potentiels de dérive d'intégration.
Détection de la dérive d'intégration
Périodiquement, nous pouvons comparer les informations de clustering via des instantanés des données, qui incluent les intégrations de données de référence et les intégrations d'invites. Premièrement, nous pouvons comparer le nombre de dimensions nécessaires pour expliquer 95 % de la variation des données d'intégration, l'inertie et le score de silhouette issus du travail de clustering. Comme vous pouvez le voir dans le tableau suivant, par rapport à une référence, le dernier instantané des intégrations nécessite 39 dimensions supplémentaires pour expliquer la variance, ce qui indique que nos données sont plus dispersées. L’inertie a augmenté, ce qui indique que les échantillons sont globalement plus éloignés de leurs centres de grappes. De plus, le score de silhouette a diminué, ce qui indique que les clusters ne sont pas aussi bien définis. Pour les données rapides, cela peut indiquer que les types de questions entrant dans le système couvrent davantage de sujets.
Ensuite, dans la figure suivante, nous pouvons voir comment la proportion d’échantillons dans chaque grappe a changé au fil du temps. Cela peut nous montrer si nos nouvelles données de référence sont globalement similaires à l’ensemble précédent ou couvrent de nouveaux domaines.
Enfin, nous pouvons voir si les centres des clusters bougent, ce qui montrerait une dérive des informations dans les clusters, comme le montre le tableau suivant.
Couverture des données de référence pour les questions entrantes
Nous pouvons également évaluer dans quelle mesure nos données de référence s'alignent sur les questions entrantes. Pour ce faire, nous attribuons chaque intégration d’invite à un cluster de données de référence. Nous calculons la distance entre chaque invite et son centre correspondant et examinons la moyenne, la médiane et l'écart type de ces distances. Nous pouvons stocker ces informations et voir comment elles évoluent au fil du temps.
La figure suivante montre un exemple d'analyse de la distance entre l'intégration d'invite et les centres de données de référence au fil du temps.
Comme vous pouvez le constater, les statistiques de distance moyenne, médiane et d'écart type entre les intégrations d'invites et les centres de données de référence diminuent entre la ligne de base initiale et le dernier instantané. Bien que la valeur absolue de la distance soit difficile à interpréter, nous pouvons utiliser les tendances pour déterminer si le chevauchement sémantique entre les données de référence et les questions entrantes s'améliore ou s'aggrave au fil du temps.
Exemple d'application
Afin de rassembler les résultats expérimentaux discutés dans la section précédente, nous avons construit un exemple d'application qui implémente le modèle RAG à l'aide de modèles d'intégration et de génération déployés via SageMaker JumpStart et hébergés sur Amazon Sage Maker points de terminaison en temps réel.
L'application comporte trois composants principaux :
- Nous utilisons un flux interactif, qui comprend une interface utilisateur pour capturer les invites, combinée à une couche d'orchestration RAG, utilisant LangChain.
- Le flux de traitement des données extrait les données des documents PDF et crée des intégrations qui sont stockées dans Service Amazon OpenSearch. Nous les utilisons également dans le composant final d’analyse de dérive d’intégration de l’application.
- Les intégrations sont capturées dans Service de stockage simple Amazon (Amazon S3) via Firehose de données Amazon Kinesis, et nous exécutons une combinaison de Colle AWS des tâches d'extraction, de transformation et de chargement (ETL) et des notebooks Jupyter pour effectuer l'analyse d'intégration.
Le diagramme suivant illustre l'architecture de bout en bout.
L'exemple de code complet est disponible sur GitHub. Le code fourni est disponible dans deux modèles différents :
- Exemple d'application full-stack avec une interface Streamlit – Cela fournit une application de bout en bout, comprenant une interface utilisateur utilisant Streamlit pour capturer les invites, combinée à la couche d'orchestration RAG, utilisant LangChain exécuté sur Service de conteneur élastique Amazon (Amazon ECS) avec AWSFargate
- Application back-end – Pour ceux qui ne souhaitent pas déployer la pile applicative complète, vous pouvez éventuellement choisir de déployer uniquement le backend Kit de développement AWS Cloud (AWS CDK), puis utilisez le notebook Jupyter fourni pour effectuer l'orchestration RAG à l'aide de LangChain
Pour créer les modèles fournis, plusieurs conditions préalables sont détaillées dans les sections suivantes, en commençant par le déploiement des modèles génératifs et d'intégration de texte, puis en passant aux conditions préalables supplémentaires.
Déployer des modèles via SageMaker JumpStart
Les deux modèles supposent le déploiement d'un modèle d'intégration et d'un modèle génératif. Pour cela, vous allez déployer deux modèles à partir de SageMaker JumpStart. Le premier modèle, GPT-J 6B, est utilisé comme modèle d'intégration et le deuxième modèle, Falcon-40b, est utilisé pour la génération de texte.
Vous pouvez déployer chacun de ces modèles via SageMaker JumpStart à partir du Console de gestion AWS, Amazon SageMakerStudio, ou par programmation. Pour plus d'informations, reportez-vous à Comment utiliser les modèles de fondation JumpStart. Pour simplifier le déploiement, vous pouvez utiliser le cahier fourni dérivé de blocs-notes créés automatiquement par SageMaker JumpStart. Ce bloc-notes extrait les modèles du hub SageMaker JumpStart ML et les déploie sur deux points de terminaison en temps réel SageMaker distincts.
L’exemple de bloc-notes comporte également une section de nettoyage. N'exécutez pas encore cette section, car elle supprimera les points de terminaison que vous venez de déployer. Vous terminerez le nettoyage à la fin de la procédure pas à pas.
Après avoir confirmé le déploiement réussi des points de terminaison, vous êtes prêt à déployer l’exemple d’application complet. Toutefois, si vous souhaitez explorer uniquement les notebooks backend et d'analyse, vous pouvez éventuellement déployer uniquement ceux-ci, ce qui est abordé dans la section suivante.
Option 1 : Déployer l'application backend uniquement
Ce modèle vous permet de déployer uniquement la solution backend et d'interagir avec la solution à l'aide d'un notebook Jupyter. Utilisez ce modèle si vous ne souhaitez pas créer l'interface frontale complète.
Pré-requis
Vous devez avoir les prérequis suivants :
- Un point de terminaison du modèle SageMaker JumpStart déployé – Déployez les modèles sur les points de terminaison en temps réel SageMaker à l'aide de SageMaker JumpStart, comme indiqué précédemment
- Paramètres de déploiement – Enregistrez les éléments suivants :
- Nom du point de terminaison du modèle de texte – Le nom du point de terminaison du modèle de génération de texte déployé avec SageMaker JumpStart
- Nom du point de terminaison du modèle d'intégration – Le nom du point de terminaison du modèle d'intégration déployé avec SageMaker JumpStart
Déployer les ressources à l'aide du AWS CDK
Utilisez les paramètres de déploiement indiqués dans la section précédente pour déployer la pile AWS CDK. Pour plus d'informations sur l'installation d'AWS CDK, reportez-vous à Premiers pas avec AWS CDK.
Assurez-vous que Docker est installé et exécuté sur le poste de travail qui sera utilisé pour le déploiement d'AWS CDK. Faire référence à Obtenir Docker pour des conseils supplémentaires.
Vous pouvez également saisir les valeurs de contexte dans un fichier appelé cdk.context.json
dans le pattern1-rag/cdk
répertoire et exécuter cdk deploy BackendStack --exclusively
.
Le déploiement imprimera des résultats, dont certains seront nécessaires pour exécuter le notebook. Avant de pouvoir commencer les questions et réponses, intégrez les documents de référence, comme indiqué dans la section suivante.
Intégrer des documents de référence
Pour cette approche RAG, les documents de référence sont d'abord intégrés à un modèle d'incorporation de texte et stockés dans une base de données vectorielle. Dans cette solution, un pipeline d'ingestion a été construit pour recevoir les documents PDF.
An Cloud de calcul élastique Amazon (Amazon EC2) a été créée pour l'ingestion de documents PDF et une instance Système de fichiers Amazon Elastic Le système de fichiers (Amazon EFS) est monté sur l'instance EC2 pour enregistrer les documents PDF. Un Synchronisation de données AWS La tâche est exécutée toutes les heures pour récupérer les documents PDF trouvés dans le chemin du système de fichiers EFS et les télécharger dans un compartiment S3 pour démarrer le processus d'intégration de texte. Ce processus intègre les documents de référence et enregistre les intégrations dans OpenSearch Service. Il enregistre également une archive d'intégration dans un compartiment S3 via Kinesis Data Firehose pour une analyse ultérieure.
Pour ingérer les documents de référence, procédez comme suit :
- Récupérez l'exemple d'ID d'instance EC2 qui a été créé (voir la sortie AWS CDK
JumpHostId
) et connectez-vous en utilisant Session Manager, une capacité de Gestionnaire de systèmes AWS. Pour obtenir des instructions, reportez-vous à Connectez-vous à votre instance Linux avec AWS Systems Manager Session Manager. - Aller dans le répertoire
/mnt/efs/fs1
, où le système de fichiers EFS est monté, et créez un dossier appeléingest
: - Ajoutez vos documents PDF de référence au
ingest
répertoire.
La tâche DataSync est configurée pour télécharger tous les fichiers trouvés dans ce répertoire vers Amazon S3 afin de démarrer le processus d'intégration.
La tâche DataSync s'exécute selon une planification horaire ; vous pouvez éventuellement démarrer la tâche manuellement pour démarrer immédiatement le processus d'intégration des documents PDF que vous avez ajoutés.
- Pour démarrer la tâche, recherchez l'ID de la tâche dans la sortie AWS CDK
DataSyncTaskID
ainsi que le commencer la tâche avec des valeurs par défaut.
Une fois les intégrations créées, vous pouvez démarrer la question RAG et y répondre via un notebook Jupyter, comme indiqué dans la section suivante.
Questions et réponses à l'aide d'un notebook Jupyter
Effectuez les étapes suivantes:
- Récupérer le nom de l'instance du notebook SageMaker à partir de la sortie AWS CDK
NotebookInstanceName
et connectez-vous à JupyterLab depuis la console SageMaker. - Aller dans le répertoire
fmops/full-stack/pattern1-rag/notebooks/
. - Ouvrir et exécuter le notebook
query-llm.ipynb
dans l'instance de bloc-notes pour effectuer des questions et des réponses à l'aide de RAG.
Assurez-vous d'utiliser le conda_python3
noyau pour le portable.
Ce modèle est utile pour explorer la solution backend sans avoir besoin de fournir des prérequis supplémentaires requis pour l'application full-stack. La section suivante couvre la mise en œuvre d'une application full-stack, comprenant à la fois les composants frontend et backend, pour fournir une interface utilisateur permettant d'interagir avec votre application d'IA générative.
Option 2 : Déployer l'exemple d'application full-stack avec une interface Streamlit
Ce modèle vous permet de déployer la solution avec une interface utilisateur frontale pour les questions et réponses.
Pré-requis
Pour déployer l'exemple d'application, vous devez disposer des conditions préalables suivantes :
- Point de terminaison du modèle SageMaker JumpStart déployé – Déployez les modèles sur vos points de terminaison en temps réel SageMaker à l'aide de SageMaker JumpStart, comme indiqué dans la section précédente, à l'aide des blocs-notes fournis.
- Zone hébergée Amazon Route 53 - Créé un Amazon Route 53 zone hébergée publique à utiliser pour cette solution. Vous pouvez également utiliser une zone hébergée publique Route 53 existante, telle que
example.com
. - Certificat AWS Certificate Manager – Mettre à disposition un Gestionnaire de certificats AWS (ACM) Certificat TLS pour le nom de domaine de la zone hébergée Route 53 et ses sous-domaines applicables, tels que
example.com
ainsi que le*.example.com
pour tous les sous-domaines. Pour obtenir des instructions, reportez-vous à Demander un certificat public. Ce certificat est utilisé pour configurer HTTPS sur Amazon CloudFront et l'équilibreur de charge d'origine. - Paramètres de déploiement – Enregistrez les éléments suivants :
- Nom de domaine personnalisé de l'application frontale – Un nom de domaine personnalisé utilisé pour accéder à l'exemple d'application frontale. Le nom de domaine fourni est utilisé pour créer un enregistrement DNS Route 53 pointant vers la distribution CloudFront frontale ; Par exemple,
app.example.com
. - Nom de domaine personnalisé d'origine de l'équilibreur de charge – Un nom de domaine personnalisé utilisé pour l'origine de l'équilibreur de charge de distribution CloudFront. Le nom de domaine fourni est utilisé pour créer un enregistrement DNS Route 53 pointant vers l'équilibreur de charge d'origine ; Par exemple,
app-lb.example.com
. - ID de zone hébergée Route 53 – L'ID de zone hébergée Route 53 pour héberger les noms de domaine personnalisés fournis ; Par exemple,
ZXXXXXXXXYYYYYYYYY
. - Nom de la zone hébergée Route 53 – Le nom de la zone hébergée Route 53 pour héberger les noms de domaine personnalisés fournis ; Par exemple,
example.com
. - ARN du certificat ACM – L'ARN du certificat ACM à utiliser avec le domaine personnalisé fourni.
- Nom du point de terminaison du modèle de texte – Le nom du point de terminaison du modèle de génération de texte déployé avec SageMaker JumpStart.
- Nom du point de terminaison du modèle d'intégration – Le nom du point de terminaison du modèle d'intégration déployé avec SageMaker JumpStart.
- Nom de domaine personnalisé de l'application frontale – Un nom de domaine personnalisé utilisé pour accéder à l'exemple d'application frontale. Le nom de domaine fourni est utilisé pour créer un enregistrement DNS Route 53 pointant vers la distribution CloudFront frontale ; Par exemple,
Déployer les ressources à l'aide du AWS CDK
Utilisez les paramètres de déploiement que vous avez notés dans les conditions préalables pour déployer la pile AWS CDK. Pour plus d'informations, reportez-vous à Premiers pas avec AWS CDK.
Assurez-vous que Docker est installé et exécuté sur le poste de travail qui sera utilisé pour le déploiement AWS CDK.
Dans le code précédent, -c représente une valeur de contexte, sous la forme des prérequis requis, fournie en entrée. Vous pouvez également saisir les valeurs de contexte dans un fichier appelé cdk.context.json
dans le pattern1-rag/cdk
répertoire et exécuter cdk deploy --all
.
Notez que nous précisons la Région dans le fichier bin/cdk.ts
. La configuration des journaux d’accès ALB nécessite une région spécifiée. Vous pouvez modifier cette région avant le déploiement.
Le déploiement imprimera l'URL pour accéder à l'application Streamlit. Avant de pouvoir commencer les questions et réponses, vous devez intégrer les documents de référence, comme indiqué dans la section suivante.
Intégrer les documents de référence
Pour une approche RAG, les documents de référence sont d'abord intégrés à un modèle d'incorporation de texte et stockés dans une base de données vectorielle. Dans cette solution, un pipeline d'ingestion a été construit pour recevoir les documents PDF.
Comme nous l'avons expliqué dans la première option de déploiement, un exemple d'instance EC2 a été créé pour l'ingestion de documents PDF et un système de fichiers EFS est monté sur l'instance EC2 pour enregistrer les documents PDF. Une tâche DataSync est exécutée toutes les heures pour récupérer les documents PDF trouvés dans le chemin du système de fichiers EFS et les télécharger dans un compartiment S3 pour démarrer le processus d'intégration de texte. Ce processus intègre les documents de référence et enregistre les intégrations dans OpenSearch Service. Il enregistre également une archive d'intégration dans un compartiment S3 via Kinesis Data Firehose pour une analyse ultérieure.
Pour ingérer les documents de référence, procédez comme suit :
- Récupérez l'exemple d'ID d'instance EC2 qui a été créé (voir la sortie AWS CDK
JumpHostId
) et connectez-vous à l'aide de Session Manager. - Aller dans le répertoire
/mnt/efs/fs1
, où le système de fichiers EFS est monté, et créez un dossier appeléingest
: - Ajoutez vos documents PDF de référence au
ingest
répertoire.
La tâche DataSync est configurée pour télécharger tous les fichiers trouvés dans ce répertoire vers Amazon S3 afin de démarrer le processus d'intégration.
La tâche DataSync s'exécute selon une planification horaire. Vous pouvez éventuellement démarrer la tâche manuellement pour démarrer immédiatement le processus d'intégration des documents PDF que vous avez ajoutés.
- Pour démarrer la tâche, recherchez l'ID de la tâche dans la sortie AWS CDK
DataSyncTaskID
ainsi que le commencer la tâche avec des valeurs par défaut.
Question et réponse
Une fois les documents de référence intégrés, vous pouvez démarrer la question et la réponse RAG en visitant l'URL pour accéder à l'application Streamlit. Un Amazon Cognito La couche d'authentification est utilisée, elle nécessite donc la création d'un compte utilisateur dans le pool d'utilisateurs Amazon Cognito déployé via AWS CDK (voir la sortie AWS CDK pour le nom du pool d'utilisateurs) pour un premier accès à l'application. Pour obtenir des instructions sur la création d'un utilisateur Amazon Cognito, reportez-vous à Création d'un nouvel utilisateur dans AWS Management Console.
Intégrer l'analyse de dérive
Dans cette section, nous vous montrons comment effectuer une analyse de dérive en créant d'abord une référence des intégrations de données de référence et des intégrations d'invites, puis en créant un instantané des intégrations au fil du temps. Cela vous permet de comparer les intégrations de base aux intégrations d’instantanés.
Créer une référence d'intégration pour les données de référence et l'invite
Pour créer une référence d'intégration des données de référence, ouvrez la console AWS Glue et sélectionnez la tâche ETL. embedding-drift-analysis
. Définissez les paramètres du travail ETL comme suit et exécutez le travail :
- Ensemble
--job_type
àBASELINE
. - Ensemble
--out_table
à la Amazon DynamoDB table pour référence intégrant les données. (Voir la sortie AWS CDKDriftTableReference
pour le nom de la table.) - Ensemble
--centroid_table
à la table DynamoDB pour les données de centroïde de référence. (Voir la sortie AWS CDKCentroidTableReference
pour le nom de la table.) - Ensemble
--data_path
au compartiment S3 avec le préfixe ; Par exemple,s3://
/embeddingarchive/
. (Voir la sortie AWS CDKBucketName
pour le nom du bucket.)
De même, en utilisant le travail ETL embedding-drift-analysis
, créez une référence d'intégration des invites. Définissez les paramètres du travail ETL comme suit et exécutez le travail :
- Ensemble
--job_type
àBASELINE
- Ensemble
--out_table
à la table DynamoDB pour l'intégration rapide des données. (Voir la sortie AWS CDKDriftTablePromptsName
pour le nom de la table.) - Ensemble
--centroid_table
à la table DynamoDB pour les données de centroïde rapides. (Voir la sortie AWS CDKCentroidTablePrompts
pour le nom de la table.) - Ensemble
--data_path
au compartiment S3 avec le préfixe ; Par exemple,s3://
/promptarchive/
. (Voir la sortie AWS CDKBucketName
pour le nom du bucket.)
Créez un instantané d'intégration pour les données de référence et l'invite
Après avoir ingéré des informations supplémentaires dans OpenSearch Service, exécutez le travail ETL embedding-drift-analysis
à nouveau pour capturer les intégrations de données de référence. Les paramètres seront les mêmes que ceux de la tâche ETL que vous avez exécutée pour créer la référence d'intégration des données de référence, comme indiqué dans la section précédente, à l'exception de la définition du --job_type
paramètre SNAPSHOT
.
De même, pour capturer les intégrations d'invites, exécutez le travail ETL embedding-drift-analysis
encore. Les paramètres seront les mêmes que ceux de la tâche ETL que vous avez exécutée pour créer la ligne de base d'intégration pour les invites, comme indiqué dans la section précédente, à l'exception de la définition du --job_type
paramètre SNAPSHOT
.
Comparez la ligne de base à l'instantané
Pour comparer la référence d'intégration et l'instantané pour les données de référence et les invites, utilisez le bloc-notes fourni. pattern1-rag/notebooks/drift-analysis.ipynb
.
Pour examiner l'intégration de la comparaison pour les données de référence ou les invites, modifiez les variables de nom de table DynamoDB (tbl
ainsi que le c_tbl
) dans le notebook vers la table DynamoDB appropriée pour chaque exécution du notebook.
La variable du cahier tbl
doit être remplacé par le nom de table de dérive approprié. Voici un exemple de configuration de la variable dans le bloc-notes.
Les noms de tables peuvent être récupérés comme suit :
- Pour les données d'intégration de référence, récupérez le nom de la table de dérive à partir de la sortie AWS CDK
DriftTableReference
- Pour les données d'intégration d'invite, récupérez le nom de la table de dérive à partir de la sortie AWS CDK
DriftTablePromptsName
De plus, la variable notebook c_tbl
doit être remplacé par le nom de table centroïde approprié. Voici un exemple de configuration de la variable dans le bloc-notes.
Les noms de tables peuvent être récupérés comme suit :
- Pour les données d'intégration de référence, récupérez le nom de la table centroïde à partir de la sortie AWS CDK
CentroidTableReference
- Pour l'invite d'intégration des données, récupérez le nom de la table centroïde à partir de la sortie AWS CDK
CentroidTablePrompts
Analyser la distance rapide par rapport aux données de référence
Tout d'abord, exécutez la tâche AWS Glue embedding-distance-analysis
. Ce travail permettra de découvrir à quel cluster, à partir de l'évaluation K-Means des intégrations de données de référence, appartient chaque invite. Il calcule ensuite la moyenne, la médiane et l'écart type de la distance entre chaque invite et le centre du cluster correspondant.
Vous pouvez exécuter le notebook pattern1-rag/notebooks/distance-analysis.ipynb
pour voir les tendances des mesures de distance au fil du temps. Cela vous donnera une idée de la tendance générale dans la répartition des distances d'intégration rapides.
Le cahier pattern1-rag/notebooks/prompt-distance-outliers.ipynb
est un bloc-notes AWS Glue qui recherche les valeurs aberrantes, ce qui peut vous aider à identifier si vous recevez davantage d'invites qui ne sont pas liées aux données de référence.
Surveiller les scores de similarité
Tous les scores de similarité d'OpenSearch Service sont connectés Amazon Cloud Watch sous le rag
espace de noms. Le tableau de bord RAG_Scores
affiche le score moyen et le nombre total de scores ingérés.
Nettoyer
Pour éviter de devoir payer des frais futurs, supprimez toutes les ressources que vous avez créées.
Supprimer les modèles SageMaker déployés
Référez-vous à la section de nettoyage du exemple de cahier fourni pour supprimer les modèles SageMaker JumpStart déployés, ou vous pouvez supprimer les modèles sur la console SageMaker.
Supprimer les ressources AWS CDK
Si vous avez entré vos paramètres dans un cdk.context.json
fichier, nettoyez comme suit :
Si vous avez entré vos paramètres sur la ligne de commande et déployé uniquement l'application backend (la pile backend AWS CDK), nettoyez comme suit :
Si vous avez entré vos paramètres sur la ligne de commande et déployé la solution complète (les piles AWS CDK frontend et backend), nettoyez comme suit :
Conclusion
Dans cet article, nous avons fourni un exemple fonctionnel d'application qui capture des vecteurs d'intégration pour les données de référence et les invites dans le modèle RAG pour l'IA générative. Nous avons montré comment effectuer une analyse de clustering pour déterminer si les données de référence ou d'invite dérivent au fil du temps, et dans quelle mesure les données de référence couvrent les types de questions posées par les utilisateurs. Si vous détectez une dérive, cela peut fournir un signal indiquant que l'environnement a changé et que votre modèle reçoit de nouvelles entrées qu'il n'est peut-être pas optimisé pour gérer. Cela permet une évaluation proactive du modèle actuel par rapport aux entrées changeantes.
À propos des auteurs
Abdullahi Olaoye est architecte de solutions senior chez Amazon Web Services (AWS). Abdullahi est titulaire d'un MSC en réseaux informatiques de l'Université d'État de Wichita et est un auteur publié qui a occupé des postes dans divers domaines technologiques tels que DevOps, la modernisation des infrastructures et l'IA. Il se concentre actuellement sur l'IA générative et joue un rôle clé en aidant les entreprises à concevoir et à créer des solutions de pointe alimentées par l'IA générative. Au-delà du domaine de la technologie, il trouve sa joie dans l’art de l’exploration. Lorsqu'il ne crée pas de solutions d'IA, il aime voyager avec sa famille pour explorer de nouveaux endroits.
Randy DeFauw est architecte principal principal de solutions chez AWS. Il est titulaire d'un MSEE de l'Université du Michigan, où il a travaillé sur la vision par ordinateur pour les véhicules autonomes. Il est également titulaire d'un MBA de la Colorado State University. Randy a occupé divers postes dans le domaine technologique, allant de l'ingénierie logicielle à la gestion de produits. In est entré dans l'espace Big Data en 2013 et continue d'explorer ce domaine. Il travaille activement sur des projets dans l'espace ML et a présenté de nombreuses conférences, notamment Strata et GlueCon.
Shelbee Eigenbrode est architecte principal de solutions spécialisées en IA et en apprentissage automatique chez Amazon Web Services (AWS). Elle travaille dans la technologie depuis 24 ans et couvre plusieurs industries, technologies et rôles. Elle se concentre actuellement sur la combinaison de son expérience DevOps et ML dans le domaine des MLOps pour aider les clients à fournir et gérer des charges de travail ML à grande échelle. Avec plus de 35 brevets délivrés dans divers domaines technologiques, elle est passionnée par l'innovation continue et l'utilisation des données pour générer des résultats commerciaux. Shelbee est co-créatrice et formatrice de la spécialisation Practical Data Science sur Coursera. Elle est également codirectrice de Women In Big Data (WiBD), chapitre de Denver. Dans ses temps libres, elle aime passer du temps avec sa famille, ses amis et ses chiens hyperactifs.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- PlatoHealth. Veille biotechnologique et essais cliniques. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/monitor-embedding-drift-for-llms-deployed-from-amazon-sagemaker-jumpstart/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 10
- 100
- 2013
- 24
- 35%
- 39
- 7
- 9
- 95%
- a
- Capable
- A Propos
- Absolute
- accès
- Compte
- ACM
- à travers
- activement
- ajoutée
- ajout
- Supplémentaire
- renseignements supplémentaires
- En outre
- encore
- à opposer à
- agrégat
- AI
- Aligne
- Tous
- Permettre
- permet
- aussi
- Bien que
- Amazon
- Amazon Cognito
- Amazon EC2
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- selon une analyse de l’Université de Princeton
- il analyse
- l'analyse
- ainsi que le
- répondre
- répondre
- quoi que ce soit d'artificiel
- en vigueur
- Application
- une approche
- approprié
- architecture
- Archive
- SONT
- Réservé
- domaines
- Art
- sur notre blog
- AS
- demander
- demandant
- assistant
- assumer
- At
- augmenter
- augmentée
- Authentification
- auteur
- automatiquement
- autonome
- véhicules autonomes
- disponibles
- moyen
- éviter
- et
- AWS
- Colle AWS
- backend
- fond
- balancier
- basé
- Baseline
- BE
- car
- était
- before
- va
- appartient
- Améliorée
- jusqu'à XNUMX fois
- Au-delà
- Big
- Big Data
- corps
- tous les deux
- largement
- construire
- construit
- la performance des entreprises
- by
- calculer
- calcule
- Appelez-nous
- appelé
- CAN
- aptitude
- capturer
- capturé
- captures
- Capturer
- maisons
- CD
- Canaux centraux
- Centres
- certificat
- Change
- modifié
- Modifications
- en changeant
- Chapitre
- des charges
- puce
- le chocolat
- Selectionnez
- espace extérieur plus propre,
- Fermer
- plus
- le cloud
- Grappe
- regroupement
- code
- Colorado
- combinaison
- combiné
- combinant
- Venir
- compact
- comparer
- par rapport
- Comparaison
- complet
- composant
- composants électriques
- calcul
- ordinateur
- Vision par ordinateur
- concepts
- conférences
- configurée
- Configurer
- NOUS CONTACTER
- considérations
- Console
- Contenant
- contenu
- contexte
- continue
- continu
- converti
- biscuits
- Core
- Correspondant
- couverture
- couvert
- couvrant
- Housses
- engendrent
- créée
- crée des
- La création
- Courant
- Lecture
- Customiser
- Clients
- En investissant dans une technologie de pointe, les restaurants peuvent non seulement rester compétitifs dans un marché en constante évolution, mais aussi améliorer significativement l'expérience de leurs clients.
- tableau de bord
- données
- les centres de données
- informatique
- science des données
- Base de données
- par défaut
- défini
- livrer
- Denver
- déployer
- déployé
- déployer
- déploiement
- déploie
- Dérivé
- détruire
- détaillé
- détecter
- Détection
- Déterminer
- Développement
- déviation
- diagramme
- différent
- difficile
- Dimension
- dimensions
- discuté
- Dispersé
- distance
- lointain
- distribution
- dns
- do
- Docker
- document
- INSTITUTIONNELS
- domaine
- Services
- NOMS DE DOMAINE
- domaines
- Ne pas
- down
- motivation
- chacun
- enchâsser
- intégré
- enrobage
- fin
- end-to-end
- Endpoint
- ENGINEERING
- Entrer
- entré
- entreprises
- Environment
- évaluer
- évaluation
- Chaque
- exemple
- exemples
- exception
- existant
- expérimental
- Expliquer
- exploration
- explorez
- Explorer
- externe
- extrait
- Extraits
- famille
- loin
- Figure
- Déposez votre dernière attestation
- Fichiers
- finale
- finalement
- Trouvez
- trouve
- Prénom
- flottant
- flux
- concentré
- mettant l'accent
- Abonnement
- suit
- Pour
- formulaire
- trouvé
- Fondation
- amis
- De
- L'extrémité avant
- plein
- avenir
- recueillir
- Général
- générateur
- génération
- génératif
- IA générative
- obtenez
- obtention
- Donner
- Go
- disparu
- accordée
- Réservation de groupe
- l'orientation
- manipuler
- Vous avez
- he
- Tenue
- vous aider
- ici
- augmentation
- sa
- détient
- hôte
- organisé
- heure
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- Moyeu
- ID
- identifier
- if
- illustre
- immédiatement
- la mise en oeuvre
- met en oeuvre
- important
- in
- comprendre
- inclut
- Y compris
- Nouveau
- indiquer
- secteurs
- inertie
- d'information
- Infrastructure
- initiale
- Innovation
- contribution
- entrées
- perspicacité
- installation
- Installé
- instance
- Des instructions
- interagir
- interagissant
- Interactif
- intéressé
- Interfaces
- développement
- IT
- SES
- Emploi
- Emplois
- joie
- jpg
- juste
- ACTIVITES
- Firehose de données Kinesis
- spécialisées
- langue
- gros
- plus tard
- Nouveautés
- couche
- APPRENTISSAGE
- apprentissage
- Allons-y
- Bibliothèque
- aime
- Gamme
- linux
- LLM
- charge
- emplacement
- Connecté
- Style
- LOOKS
- baisser
- click
- machine learning
- a prendre une
- gérer
- gestion
- manager
- manuellement
- Mai..
- signifier
- veux dire
- mesurer
- les mesures
- Métrique
- Michigan
- pourrait
- ML
- MLOps
- modèle
- numériques jumeaux (digital twin models)
- Surveiller
- PLUS
- (en fait, presque toutes)
- en mouvement
- plusieurs
- must
- prénom
- noms
- Nature
- Traitement du langage naturel
- Besoin
- nécessaire
- besoin
- de mise en réseau
- Nouveauté
- Plus récent
- next
- nlp
- cahier
- noté
- nombre
- numéros
- nombreux
- of
- souvent
- on
- uniquement
- ouvert
- optimisé
- Option
- or
- orchestration
- de commander
- origine
- Autre
- nos
- ande
- les résultats
- décrit
- sortie
- sorties
- plus de
- global
- chevauchement
- propre
- paramètre
- paramètres
- particulier
- passion
- Brevets
- chemin
- Patron de Couture
- motifs
- Effectuer
- effectuer
- pièces
- pipeline
- Des endroits
- Platon
- Intelligence des données Platon
- PlatonDonnées
- joue
- Point
- des notes bonus
- pool
- positions
- possible
- Post
- défaillances
- alimenté
- Méthode
- précédant
- conditions préalables
- présenté
- conservation
- précédent
- précédemment
- Directeur
- Imprimé
- Cybersécurité
- processus
- traitement
- Produit
- gestion des produits
- projets
- instructions
- proportion
- fournir
- à condition de
- fournit
- disposition
- public
- publié
- RÉSERVES
- question
- fréquemment posées
- chiffon
- gammes
- allant
- solutions
- en temps réel
- royaume
- recette
- record
- réduire
- réduction
- reportez-vous
- référence
- région
- en relation
- relativement
- pertinent
- représentent
- représentation
- représente
- conditions
- a besoin
- Resources
- réponse
- Résultats
- récupération
- Rôle
- rôle
- Itinéraire
- Courir
- pour le running
- fonctionne
- sagemaker
- même
- Épargnez
- Escaliers intérieurs
- calendrier
- Sciences
- But
- Rechercher
- recherches
- Deuxièmement
- Section
- les sections
- sur le lien
- vu
- Sélectionner
- sémantique
- supérieur
- sens
- envoyé
- séparé
- service
- Services
- Session
- set
- mise
- plusieurs
- elle
- devrait
- montrer
- montré
- montré
- Spectacles
- Signal
- signaux
- similaires
- étapes
- simplifier
- Taille
- Instantané
- So
- Logiciels
- génie logiciel
- sur mesure
- Solutions
- quelques
- Identifier
- Sources
- Space
- enjambant
- spécialiste
- spécifié
- passer
- quadrillé
- empiler
- Combos
- Standard
- Commencer
- j'ai commencé
- Commencez
- Région
- statistiques
- Étapes
- storage
- Boutique
- stockée
- réussi
- tel
- sûr
- combustion propre
- Système
- table
- Prenez
- Tâche
- technique
- Les technologies
- Technologie
- texte
- qui
- La
- les informations
- La Source
- leur
- Les
- puis
- Là.
- Ces
- this
- ceux
- trois
- Avec
- fiable
- à
- ensemble
- Les sujets
- Total
- Transformer
- Voyages
- Trend
- Trends
- Essai
- deux
- types
- sous
- université
- URL
- us
- utilisé
- d'utiliser
- incontournable
- Utilisateur
- Interface utilisateur
- utilisateurs
- en utilisant
- validation
- Plus-value
- Valeurs
- variable
- variété
- divers
- Véhicules
- via
- vision
- visuel
- walkthrough
- souhaitez
- était
- Façon..
- we
- web
- services Web
- WELL
- quand
- que
- qui
- tout en
- sera
- comprenant
- dans les
- sans
- Femme
- activités principales
- travaillé
- de travail
- poste de travail
- pire
- pourra
- années
- encore
- Vous n'avez
- Votre
- zéphyrnet
- Zone