Controle de qualidade com LLM e RAG (Geração Aumentada de Recuperação)
Este projeto é um aplicativo de resposta a perguntas com Large Language Models (LLMs) e Amazon Aurora Postgresql usando pgvector. Um aplicativo que usa a abordagem RAG (Retrieval Augmented Generation) recupera as informações mais relevantes para a solicitação do usuário da base de conhecimento ou conteúdo da empresa, agrupa-as como contexto junto com a solicitação do usuário como um prompt e, em seguida, envia-as ao LLM para obter um Resposta GenAI.
Os LLMs têm limitações em relação à contagem máxima de palavras para o prompt de entrada, portanto, a escolha das passagens corretas entre milhares ou milhões de documentos na empresa tem um impacto direto na precisão do LLM.
Neste projeto, o Amazon Aurora Postgresql com pgvector é usado para base de conhecimento.
A arquitetura geral é assim:
Fluxo de trabalho geral
- Implante as pilhas cdk (para obter mais informações, veja aqui).
- Um SageMaker Studio em uma VPC privada.
- Um SageMaker Endpoint para geração de texto.
- Um SageMaker Endpoint para gerar embeddings.
- Um cluster Amazon Aurora Postgresql para armazenar embeddings.
- Credenciais de acesso do cluster Aurora Postgresql (nome de usuário e senha) armazenadas no AWS Secrets Mananger como um nome como
RAGPgVectorStackAuroraPostg-xxxxxxxxxxxx
.
- Abra o SageMaker Studio e, em seguida, abra um novo terminal do sistema .
- Execute os seguintes comandos no terminal para clonar o repositório de código deste projeto:
git clone --depth=1 https://github.com/ksmin23/rag-with-postgresql-pgvector-and-sagemaker.git
- Abra o notebook
data_ingestion_to_pgvector.ipynb
e execute-o. (Para mais informações, veja aqui) - Execute o aplicativo Streamlit. (Para mais informações, veja aqui)
Referências
- Aproveite o pgvector e o Amazon Aurora PostgreSQL para processamento de linguagem natural, chatbots e análise de sentimento (13/07/2023)
- Acelere a indexação e a pesquisa HNSW com pgvector na edição compatível com Amazon Aurora PostgreSQL e Amazon RDS for PostgreSQL (06/11/2023)
- Otimize aplicativos generativos de IA com indexação pgvector: um mergulho profundo nas técnicas IVFFlat e HNSW (15/03/2024)
- Melhore o desempenho de cargas de trabalho generativas de IA no Amazon Aurora com leituras otimizadas e pgvector (09/02/2024)
- Criação de pesquisa com tecnologia de IA no PostgreSQL usando Amazon SageMaker e pgvector (03/05/2023)
- Crie aplicativos Streamlit no Amazon SageMaker Studio (11/04/2023)
- Crie rapidamente aplicações de IA generativa de alta precisão em dados corporativos usando Amazon Kendra, LangChain e grandes modelos de linguagem (03/05/2023)
- (github) Amostras do Amazon Kendra Retriver
- Resposta a perguntas usando Retrieval Augmented Generation com modelos básicos no Amazon SageMaker JumpStart (02/05/2023)
- Use modelos básicos proprietários do Amazon SageMaker JumpStart no Amazon SageMaker Studio (27/06/2023)
- LangChain – Uma estrutura para desenvolvimento de aplicativos baseados em modelos de linguagem.
- Streamlit – Uma maneira mais rápida de criar e compartilhar aplicativos de dados
- rag-with-amazon-kendra-and-sagemaker - Aplicativo de resposta a perguntas com Large Language Models (LLMs) e Amazon Kendra
- rag-with-amazon-opensearch-and-sagemaker - Aplicativo de resposta a perguntas com Large Language Models (LLMs) e Amazon OpenSearch Service
- rag-with-amazon-opensearch-serverless – Aplicativo de resposta a perguntas com Large Language Models (LLMs) e Amazon OpenSearch Serverless Service
- Log de alterações do Pgvector
Dimensões máximas aumentadas para vetor de 1.024 para 16.000
Aumento das dimensões máximas do índice de 1.024 para 2.000