Assurance qualité avec LLM et RAG (Retrieval Augmented Generation)
Ce projet est une application de réponse aux questions avec de grands modèles linguistiques (LLM) et Amazon Aurora Postgresql utilisant pgvector. Une application utilisant l'approche RAG (Retrieval Augmented Generation) récupère les informations les plus pertinentes par rapport à la demande de l'utilisateur à partir de la base de connaissances ou du contenu de l'entreprise, les regroupe sous forme de contexte avec la demande de l'utilisateur sous forme d'invite, puis les envoie au LLM pour obtenir un Réponse GenAI.
Les LLM ont des limites concernant le nombre maximum de mots pour l'invite de saisie. Par conséquent, le choix des bons passages parmi des milliers ou des millions de documents dans l'entreprise a un impact direct sur la précision du LLM.
Dans ce projet, Amazon Aurora Postgresql avec pgvector est utilisé pour la base de connaissances.
L'architecture globale est la suivante :
Flux de travail global
- Déployez les piles cdk (pour plus d'informations, voir ici).
- Un SageMaker Studio dans un VPC privé.
- Un point de terminaison SageMaker pour la génération de texte.
- Un point de terminaison SageMaker pour générer des intégrations.
- Un cluster Amazon Aurora Postgresql pour stocker les intégrations.
- Informations d'identification d'accès au cluster Aurora Postgresql (nom d'utilisateur et mot de passe) stockées dans AWS Secrets Mananger sous un nom tel que
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
.
- Ouvrez SageMaker Studio, puis ouvrez un nouveau terminal système .
- Exécutez les commandes suivantes sur le terminal pour cloner le référentiel de code de ce projet :
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
- Ouvrez le notebook
data_ingestion_to_pgvector.ipynb
et exécutez-le. (Pour plus d'informations, voir ici) - Exécutez l’application Streamlit. (Pour plus d'informations, voir ici)
Références
- Tirez parti de pgvector et d'Amazon Aurora PostgreSQL pour le traitement du langage naturel, les chatbots et l'analyse des sentiments (2023-07-13)
- Accélérez l'indexation et la recherche HNSW avec pgvector sur l'édition compatible Amazon Aurora PostgreSQL et Amazon RDS pour PostgreSQL (2023-11-06)
- Optimisez les applications d'IA générative avec l'indexation pgvector : une plongée approfondie dans les techniques IVFFlat et HNSW (2024-03-15)
- Améliorez les performances des charges de travail d'IA générative sur Amazon Aurora avec des lectures optimisées et pgvector (09/02/2024)
- Création d'une recherche basée sur l'IA dans PostgreSQL à l'aide d'Amazon SageMaker et de pgvector (03/05/2023)
- Créez des applications Streamlit dans Amazon SageMaker Studio (2023-04-11)
- Créez rapidement des applications d'IA générative de haute précision sur les données d'entreprise à l'aide d'Amazon Kendra, LangChain et de grands modèles linguistiques (2023-05-03)
- (github) Échantillons Amazon Kendra Retriver
- Réponse aux questions à l'aide de la génération augmentée de récupération avec des modèles de base dans Amazon SageMaker JumpStart (02/05/2023)
- Utiliser des modèles de base propriétaires d'Amazon SageMaker JumpStart dans Amazon SageMaker Studio (2023-06-27)
- LangChain - Un framework pour développer des applications alimentées par des modèles de langage.
- Streamlit - Un moyen plus rapide de créer et de partager des applications de données
- rag-with-amazon-kendra-and-sagemaker - Application de réponse aux questions avec de grands modèles linguistiques (LLM) et Amazon Kendra
- rag-with-amazon-opensearch-and-sagemaker - Application de réponse aux questions avec de grands modèles linguistiques (LLM) et Amazon OpenSearch Service
- rag-with-amazon-opensearch-serverless - Application de réponse aux questions avec de grands modèles linguistiques (LLM) et Amazon OpenSearch Serverless Service
- Journal des modifications de PgVector
Augmentation des dimensions maximales pour le vecteur de 1 024 à 16 000
Augmentation des dimensions maximales pour l'index de 1024 à 2000