Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Amazon Web Services

Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Amazon Web Services

IA generativa Os modelos têm o potencial de revolucionar as operações empresariais, mas as empresas devem considerar cuidadosamente como aproveitar o seu poder e, ao mesmo tempo, superar desafios como a salvaguarda dos dados e a garantia da qualidade do conteúdo gerado pela IA.

A estrutura Retrieval-Augmented Generation (RAG) aumenta os prompts com dados externos de diversas fontes, como repositórios de documentos, bancos de dados ou APIs, para tornar os modelos básicos eficazes para tarefas específicas de domínio. Esta postagem apresenta os recursos do modelo RAG e destaca o potencial transformador do MongoDB Atlas com seu recurso Vector Search.

Atlas MongoDB é um conjunto integrado de serviços de dados que acelera e simplifica o desenvolvimento de aplicativos baseados em dados. Seu armazenamento de dados vetoriais integra-se perfeitamente ao armazenamento de dados operacionais, eliminando a necessidade de um banco de dados separado. Essa integração permite recursos poderosos de pesquisa semântica por meio de Pesquisa de vetores, uma maneira rápida de criar pesquisas semânticas e aplicativos baseados em IA.

Amazon Sage Maker permite que as empresas construam, treinem e implantem modelos de aprendizado de máquina (ML). JumpStart do Amazon SageMaker fornece modelos e dados pré-treinados para ajudar você a começar a usar o ML. Você pode acessar, personalizar e implantar modelos e dados pré-treinados por meio da página inicial do SageMaker JumpStart em Estúdio Amazon SageMaker com apenas alguns cliques.

Amazon-Lex é uma interface de conversação que ajuda as empresas a criar chatbots e bots de voz que se envolvem em interações naturais e realistas. Ao integrar o Amazon Lex à IA generativa, as empresas podem criar um ecossistema holístico onde a entrada do usuário transita perfeitamente para respostas coerentes e contextualmente relevantes.

Visão geral da solução

O diagrama a seguir ilustra a arquitetura da solução.

Visão geral da solução

Nas seções a seguir, percorremos as etapas para implementar esta solução e seus componentes.

Configure um cluster MongoDB

Para criar um cluster MongoDB Atlas de nível gratuito, siga as instruções em Crie um cluster. Configurar o banco de dados Acesso e rede Acesso.

Implantar o modelo de incorporação do SageMaker

Você pode escolher o modelo de incorporação (ALL MiniLM L6 v2) no Modelos SageMaker JumpStart, notebooks, soluções Disputas de Comerciais.

Modelos SageMaker JumpStart, notebooks, soluções

Escolha Implantação para implantar o modelo.

Verifique se o modelo foi implementado com êxito e se o endpoint foi criado.

modelo foi implantado com sucesso

Incorporação de vetores

Incorporação de vetores é um processo de conversão de um texto ou imagem em uma representação vetorial. Com o código a seguir, podemos gerar embeddings de vetores com o SageMaker JumpStart e atualizar a coleção com o vetor criado para cada documento:

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)

O código acima mostra como atualizar um único objeto em uma coleção. Para atualizar todos os objetos siga o instruções.

Armazenamento de dados vetoriais MongoDB

Pesquisa de vetor do Atlas MongoDB é um novo recurso que permite armazenar e pesquisar dados vetoriais no MongoDB. Dados vetoriais são um tipo de dado que representa um ponto em um espaço de alta dimensão. Esse tipo de dados é frequentemente usado em aplicações de ML e inteligência artificial. MongoDB Atlas Vector Search usa uma técnica chamada k-vizinhos mais próximos (k-NN) para procurar vetores semelhantes. k-NN funciona encontrando os k vetores mais semelhantes a um determinado vetor. Os vetores mais semelhantes são aqueles que estão mais próximos do vetor dado em termos da distância euclidiana.

Armazenar dados vetoriais próximos aos dados operacionais pode melhorar o desempenho, reduzindo a necessidade de mover dados entre diferentes sistemas de armazenamento. Isto é especialmente benéfico para aplicações que requerem acesso em tempo real a dados vetoriais.

Crie um índice de pesquisa vetorial

O próximo passo é criar um Índice de pesquisa de vetores MongoDB no campo vetorial que você criou na etapa anterior. MongoDB usa o knnVector digite para indexar incorporações de vetores. O campo vetorial deve ser representado como uma matriz de números (somente tipos de dados BSON int32, int64 ou double).

Consulte Revise as limitações do tipo knnVector para obter mais informações sobre as limitações do knnVector tipo.

O código a seguir é um exemplo de definição de índice:

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

Observe que a dimensão deve corresponder à dimensão do modelo de incorporação.

Consultar o armazenamento de dados vetoriais

Você pode consultar o armazenamento de dados vetoriais usando o Pipeline de agregação de pesquisa vetorial. Ele usa o índice Vector Search e executa uma busca semântica no armazenamento de dados vetoriais.

O código a seguir é um exemplo de definição de pesquisa:

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

Implante o modelo de linguagem grande do SageMaker

Modelos de fundação SageMaker JumpStart são modelos de linguagem grande (LLMs) pré-treinados que são usados ​​para resolver uma variedade de tarefas de processamento de linguagem natural (PNL), como resumo de texto, resposta a perguntas e inferência de linguagem natural. Eles estão disponíveis em uma variedade de tamanhos e configurações. Nesta solução, usamos o Abraçando o rosto Modelo FLAN-T5-XL.

Procure o modelo FLAN-T5-XL no SageMaker JumpStart.

Procure o FLAN-T5-XL

Escolha Implantação para configurar o modelo FLAN-T5-XL.

Implantação

Verifique se o modelo foi implementado com sucesso e se o endpoint está ativo.

Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Criar um bot do Amazon Lex

Para criar um bot do Amazon Lex, execute as seguintes etapas:

  1. No console do Amazon Lex, escolha Criar bot.

Criar bot

  1. Escolha Nome do bot, Insira o nome.
  2. Escolha Função de tempo de execução, selecione Crie uma função com permissões básicas do Amazon Lex.
    Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.
  3. Especifique suas configurações de idioma e escolha Pronto .
    Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.
  4. Adicione um exemplo de expressão no NewIntent UI e escolha Salvar intenção.
    Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.
  5. Navegue até a FallbackIntent que foi criado para você por padrão e alterne Ativo no Cumprimento seção.
    alternar ativo
  6. Escolha Construa e depois que a construção for bem-sucedida, escolha Test.
    Construir e testar
  7. Antes de testar, escolha o ícone de engrenagem.
    Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.
  8. Especifique o AWS Lambda função que irá interagir com o MongoDB Atlas e o LLM para fornecer respostas. Para criar a função lambda siga estes passos.
    9. Especifique a função AWS Lambda
  9. Agora você pode interagir com o LLM.

limpar

Para limpar seus recursos, conclua as seguintes etapas:

  1. Exclua o bot do Amazon Lex.
  2. Exclua a função Lambda.
  3. Exclua o endpoint LLM SageMaker.
  4. Exclua o endpoint SageMaker do modelo de incorporação.
  5. Exclua o cluster MongoDB Atlas.

Conclusão

No post, mostramos como criar um bot simples que usa pesquisa semântica do MongoDB Atlas e se integra a um modelo do SageMaker JumpStart. Este bot permite que você crie rapidamente um protótipo da interação do usuário com diferentes LLMs no SageMaker Jumpstart enquanto os emparelha com o contexto originado no MongoDB Atlas.

Como sempre, a AWS agradece comentários. Por favor, deixe seus comentários e perguntas na seção de comentários.


Sobre os autores

Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.

Igor Alekseev é Arquiteto de Soluções de Parceiro Sênior na AWS no domínio de Dados e Análise. Em sua função, Igor está trabalhando com parceiros estratégicos, ajudando-os a criar arquiteturas complexas e otimizadas para AWS. Antes de ingressar na AWS, como Arquiteto de Dados/Soluções, ele implementou muitos projetos no domínio de Big Data, incluindo vários data lakes no ecossistema Hadoop. Como Engenheiro de Dados, ele esteve envolvido na aplicação de IA/ML para detecção de fraudes e automação de escritórios.


Geração aumentada de recuperação com LangChain, Amazon SageMaker JumpStart e pesquisa semântica do MongoDB Atlas | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Babu Srinivasan
é Arquiteto de Soluções de Parceiro Sênior no MongoDB. Em sua função atual, ele está trabalhando com a AWS para criar as integrações técnicas e arquiteturas de referência para as soluções AWS e MongoDB. Ele tem mais de duas décadas de experiência em tecnologias de banco de dados e nuvem. Ele é apaixonado por fornecer soluções técnicas para clientes que trabalham com vários integradores de sistemas globais (GSIs) em várias regiões geográficas.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS