Um dos padrões de aplicação mais úteis para cargas de trabalho generativas de IA é a Retrieval Augmented Generation (RAG). No padrão RAG, encontramos partes de conteúdo de referência relacionadas a um prompt de entrada realizando pesquisas de similaridade em embeddings. Os embeddings capturam o conteúdo da informação em corpos de texto, permitindo que modelos de processamento de linguagem natural (PNL) trabalhem com a linguagem em formato numérico. Os embeddings são apenas vetores de números de ponto flutuante, portanto podemos analisá-los para ajudar a responder três questões importantes: Nossos dados de referência estão mudando ao longo do tempo? As perguntas que os usuários fazem mudam com o tempo? E, finalmente, até que ponto os nossos dados de referência cobrem bem as questões colocadas?
Nesta postagem, você aprenderá sobre algumas das considerações para incorporar a análise vetorial e detectar sinais de desvio de incorporação. Como os embeddings são uma importante fonte de dados para modelos de PNL em geral e soluções generativas de IA em particular, precisamos de uma maneira de medir se nossos embeddings estão mudando ao longo do tempo (drifting). Nesta postagem, você verá um exemplo de execução de detecção de desvio na incorporação de vetores usando uma técnica de clustering com modelos de linguagem grandes (LLMS) implantados a partir de JumpStart do Amazon SageMaker. Você também poderá explorar esses conceitos por meio de dois exemplos fornecidos, incluindo um aplicativo de exemplo completo ou, opcionalmente, um subconjunto do aplicativo.
Visão geral do RAG
A Padrão RAG permite recuperar conhecimento de fontes externas, como documentos PDF, artigos wiki ou transcrições de chamadas e, em seguida, usar esse conhecimento para aumentar o prompt de instruções enviado ao LLM. Isto permite que o LLM faça referência a informações mais relevantes ao gerar uma resposta. Por exemplo, se você perguntar a um LLM como fazer biscoitos de chocolate, ele poderá incluir informações de sua própria biblioteca de receitas. Neste padrão, o texto da receita é convertido em vetores de incorporação usando um modelo de incorporação e armazenado em um banco de dados de vetores. As perguntas recebidas são convertidas em incorporações e, em seguida, o banco de dados vetorial executa uma pesquisa por similaridade para encontrar conteúdo relacionado. A pergunta e os dados de referência vão para o prompt do LLM.
Vamos dar uma olhada mais de perto nos vetores de incorporação criados e como realizar a análise de desvio nesses vetores.
Análise de vetores de incorporação
Os vetores incorporados são representações numéricas de nossos dados, portanto a análise desses vetores pode fornecer informações sobre nossos dados de referência que podem ser usados posteriormente para detectar possíveis sinais de desvio. Os vetores de incorporação representam um item no espaço n-dimensional, onde n geralmente é grande. Por exemplo, o modelo GPT-J 6B, usado nesta postagem, cria vetores de tamanho 4096. Para medir o desvio, suponha que nosso aplicativo capture vetores de incorporação para dados de referência e prompts recebidos.
Começamos realizando a redução de dimensão usando Análise de Componentes Principais (PCA). O PCA tenta reduzir o número de dimensões enquanto preserva a maior parte da variação nos dados. Neste caso, tentamos encontrar o número de dimensões que preserva 95% da variância, que deve capturar qualquer coisa dentro de dois desvios padrão.
Em seguida, usamos K-Means para identificar um conjunto de centros de cluster. K-Means tenta agrupar pontos em clusters de forma que cada cluster seja relativamente compacto e os clusters estejam o mais distantes possível uns dos outros.
Calculamos as seguintes informações com base na saída de cluster mostrada na figura a seguir:
- O número de dimensões no PCA que explicam 95% da variação
- A localização de cada centro do cluster, ou centróide
Além disso, observamos a proporção (maior ou menor) de amostras em cada cluster, conforme mostrado na figura a seguir.
Finalmente, usamos esta análise para calcular o seguinte:
- Inércia – A inércia é a soma das distâncias quadradas aos centróides do cluster, que mede quão bem os dados foram agrupados usando K-Means.
- Pontuação da silhueta – A pontuação da silhueta é uma medida para validação da consistência dentro dos clusters e varia de -1 a 1. Um valor próximo de 1 significa que os pontos de um cluster estão próximos dos outros pontos do mesmo cluster e distantes do pontos dos outros clusters. Uma representação visual da pontuação da silhueta pode ser vista na figura a seguir.
Podemos capturar periodicamente essas informações para instantâneos dos embeddings tanto para os dados de referência de origem quanto para os prompts. A captura desses dados nos permite analisar sinais potenciais de desvio de incorporação.
Detectando desvio de incorporação
Periodicamente, podemos comparar as informações de cluster por meio de instantâneos dos dados, que incluem os embeddings de dados de referência e os embeddings de prompt. Primeiro, podemos comparar o número de dimensões necessárias para explicar 95% da variação nos dados de incorporação, a inércia e a pontuação da silhueta do trabalho de agrupamento. Como você pode ver na tabela a seguir, em comparação com uma linha de base, o instantâneo mais recente de incorporações requer mais 39 dimensões para explicar a variação, indicando que nossos dados estão mais dispersos. A inércia aumentou, indicando que as amostras estão agregadas mais distantes dos centros do cluster. Além disso, a pontuação da silhueta diminuiu, indicando que os clusters não estão tão bem definidos. Para dados imediatos, isso pode indicar que os tipos de perguntas que chegam ao sistema cobrem mais tópicos.
A seguir, na figura a seguir, podemos ver como a proporção de amostras em cada cluster mudou ao longo do tempo. Isto pode mostrar-nos se os nossos dados de referência mais recentes são amplamente semelhantes ao conjunto anterior ou cobrem novas áreas.
Por fim, podemos ver se os centros dos clusters estão se movendo, o que mostraria desvio nas informações dos clusters, conforme mostrado na tabela a seguir.
Cobertura de dados de referência para perguntas recebidas
Também podemos avaliar até que ponto nossos dados de referência se alinham às perguntas recebidas. Para fazer isso, atribuímos cada incorporação de prompt a um cluster de dados de referência. Calculamos a distância de cada prompt ao seu centro correspondente e observamos a média, a mediana e o desvio padrão dessas distâncias. Podemos armazenar essas informações e ver como elas mudam com o tempo.
A figura a seguir mostra um exemplo de análise da distância entre a incorporação do prompt e os data centers de referência ao longo do tempo.
Como você pode ver, as estatísticas de distância média, mediana e desvio padrão entre incorporações de prompt e data centers de referência estão diminuindo entre a linha de base inicial e o instantâneo mais recente. Embora o valor absoluto da distância seja difícil de interpretar, podemos usar as tendências para determinar se a sobreposição semântica entre os dados de referência e as perguntas recebidas está melhorando ou piorando ao longo do tempo.
Exemplo de aplicação
Para reunir os resultados experimentais discutidos na seção anterior, construímos um aplicativo de exemplo que implementa o padrão RAG usando modelos de incorporação e geração implantados através do SageMaker JumpStart e hospedados no Amazon Sage Maker terminais em tempo real.
O aplicativo possui três componentes principais:
- Utilizamos um fluxo interativo, que inclui uma interface de usuário para captura de prompts, combinada com uma camada de orquestração RAG, utilizando LangChain.
- O fluxo de processamento de dados extrai dados de documentos PDF e cria incorporações que são armazenadas em Serviço Amazon OpenSearch. Também os usamos no componente final de análise de desvio de incorporação do aplicativo.
- As incorporações são capturadas em Serviço de armazenamento simples da Amazon (Amazon S3) através de Mangueira de incêndio de dados do Amazon Kinesis, e executamos uma combinação de Cola AWS extrair, transformar e carregar (ETL) e notebooks Jupyter para realizar a análise de incorporação.
O diagrama a seguir ilustra a arquitetura ponta a ponta.
O código de amostra completo está disponível em GitHub. O código fornecido está disponível em dois padrões diferentes:
- Exemplo de aplicativo full-stack com front-end Streamlit – Isso fornece um aplicativo ponta a ponta, incluindo uma interface de usuário usando Streamlit para capturar prompts, combinada com a camada de orquestração RAG, usando LangChain rodando em Serviço Amazon Elastic Container (Amazon ECS) com AWS Fargate
- Aplicativo de back-end – Para aqueles que não desejam implantar a pilha completa de aplicativos, você pode opcionalmente optar por implantar apenas o back-end Kit de desenvolvimento em nuvem da AWS (AWS CDK) e, em seguida, use o notebook Jupyter fornecido para realizar a orquestração RAG usando LangChain
Para criar os padrões fornecidos, há vários pré-requisitos detalhados nas seções a seguir, começando com a implantação dos modelos generativos e de incorporação de texto e depois passando para os pré-requisitos adicionais.
Implante modelos por meio do SageMaker JumpStart
Ambos os padrões assumem a implantação de um modelo incorporado e um modelo generativo. Para isso, você implantará dois modelos do SageMaker JumpStart. O primeiro modelo, GPT-J 6B, é usado como modelo de incorporação e o segundo modelo, Falcon-40b, é usado para geração de texto.
Você pode implantar cada um desses modelos por meio do SageMaker JumpStart na página Console de gerenciamento da AWS, Estúdio Amazon SageMakerou programaticamente. Para obter mais informações, consulte Como usar modelos de base JumpStart. Para simplificar a implantação, você pode usar o caderno fornecido derivado de notebooks criados automaticamente pelo SageMaker JumpStart. Este notebook extrai os modelos do hub SageMaker JumpStart ML e os implanta em dois endpoints em tempo real do SageMaker separados.
O notebook de exemplo também possui uma seção de limpeza. Não execute essa seção ainda, pois ela excluirá os endpoints que acabaram de ser implantados. Você concluirá a limpeza no final do passo a passo.
Depois de confirmar a implantação bem-sucedida dos endpoints, você estará pronto para implantar o aplicativo de amostra completo. No entanto, se estiver mais interessado em explorar apenas o backend e os blocos de notas de análise, pode opcionalmente implementar apenas isso, o que é abordado na próxima secção.
Opção 1: implantar apenas o aplicativo back-end
Esse padrão permite implantar apenas a solução de back-end e interagir com a solução usando um notebook Jupyter. Use esse padrão se não quiser construir a interface frontend completa.
Pré-requisitos
Você deve ter os seguintes pré-requisitos:
- Um endpoint do modelo SageMaker JumpStart implantado – Implante os modelos em endpoints em tempo real do SageMaker usando o SageMaker JumpStart, conforme descrito anteriormente
- Parâmetros de implantação – Registre o seguinte:
- Nome do endpoint do modelo de texto – O nome do endpoint do modelo de geração de texto implantado com SageMaker JumpStart
- Nome do endpoint do modelo de incorporações – O nome do endpoint do modelo de incorporação implantado com SageMaker JumpStart
Implante os recursos usando o AWS CDK
Use os parâmetros de implantação observados na seção anterior para implantar a pilha do AWS CDK. Para obter mais informações sobre a instalação do AWS CDK, consulte Introdução ao AWS CDK.
Certifique-se de que o Docker esteja instalado e em execução na estação de trabalho que será usada para implantação do AWS CDK. Referir-se Obter Docker para orientação adicional.
Alternativamente, você pode inserir os valores de contexto em um arquivo chamado cdk.context.json
no pattern1-rag/cdk
diretório e execute cdk deploy BackendStack --exclusively
.
A implantação imprimirá resultados, alguns dos quais serão necessários para executar o notebook. Antes de começar a perguntar e responder, incorpore os documentos de referência, conforme mostrado na próxima seção.
Incorporar documentos de referência
Para esta abordagem RAG, os documentos de referência são primeiro incorporados a um modelo de incorporação de texto e armazenados em um banco de dados vetorial. Nesta solução, foi construído um pipeline de ingestão que recebe documentos PDF.
An Amazon Elastic Compute Nuvem (Amazon EC2) foi criada para a ingestão de documentos PDF e um Sistema de arquivos elástico da Amazon (Amazon EFS) é montado na instância EC2 para salvar os documentos PDF. Um AWSDataSync A tarefa é executada a cada hora para buscar documentos PDF encontrados no caminho do sistema de arquivos EFS e carregá-los em um bucket S3 para iniciar o processo de incorporação de texto. Este processo incorpora os documentos de referência e salva os embeddings no OpenSearch Service. Ele também salva um arquivo incorporado em um bucket S3 por meio do Kinesis Data Firehose para análise posterior.
Para assimilar os documentos de referência, conclua as etapas a seguir:
- Recupere o ID da instância do EC2 de amostra que foi criado (consulte a saída do AWS CDK
JumpHostId
) e conecte-se usando Session Manager, uma capacidade de Gerente de Sistemas AWS. Para obter instruções, consulte Conecte-se à sua instância Linux com o AWS Systems Manager Session Manager. - Vá para o diretório
/mnt/efs/fs1
, que é onde o sistema de arquivos EFS é montado, e crie uma pasta chamadaingest
: - Adicione seus documentos PDF de referência ao
ingest
diretório.
A tarefa DataSync está configurada para fazer upload de todos os arquivos encontrados neste diretório para o Amazon S3 para iniciar o processo de incorporação.
A tarefa do DataSync é executada de hora em hora; opcionalmente, você pode iniciar a tarefa manualmente para iniciar imediatamente o processo de incorporação dos documentos PDF adicionados.
- Para iniciar a tarefa, localize o ID da tarefa na saída do AWS CDK
DataSyncTaskID
e iniciar a tarefa com padrões.
Após a criação dos embeddings, você pode iniciar a pergunta RAG e responder por meio de um notebook Jupyter, conforme mostrado na próxima seção.
Perguntas e respostas usando um notebook Jupyter
Conclua as seguintes etapas:
- Recuperar o nome da instância do notebook SageMaker da saída do AWS CDK
NotebookInstanceName
e conecte-se ao JupyterLab no console do SageMaker. - Vá para o diretório
fmops/full-stack/pattern1-rag/notebooks/
. - Abra e execute o notebook
query-llm.ipynb
na instância do notebook para realizar perguntas e respostas usando RAG.
Certifique-se de usar o conda_python3
kernel para o notebook.
Esse padrão é útil para explorar a solução de back-end sem a necessidade de provisionar pré-requisitos adicionais necessários para o aplicativo full stack. A próxima seção aborda a implementação de um aplicativo full-stack, incluindo os componentes front-end e back-end, para fornecer uma interface de usuário para interagir com seu aplicativo generativo de IA.
Opção 2: implantar o aplicativo de amostra full stack com um front-end Streamlit
Esse padrão permite implantar a solução com uma interface de front-end do usuário para perguntas e respostas.
Pré-requisitos
Para implementar o aplicativo de amostra, você deve ter os seguintes pré-requisitos:
- Endpoint do modelo SageMaker JumpStart implantado – Implante os modelos em seus endpoints em tempo real do SageMaker usando o SageMaker JumpStart, conforme descrito na seção anterior, usando os notebooks fornecidos.
- Zona hospedada do Amazon Route 53 - Criar um Amazon Route 53 zona hospedada pública usar para esta solução. Você também pode usar uma zona hospedada pública existente do Route 53, como
example.com
. - Certificado do AWS Certificate Manager – Provisionar um Gerenciador de certificados da AWS (ACM) Certificado TLS para o nome de domínio da zona hospedada do Route 53 e seus subdomínios aplicáveis, como
example.com
e*.example.com
para todos os subdomínios. Para obter instruções, consulte Solicitando um certificado público. Este certificado é usado para configurar HTTPS em Amazon CloudFront e o balanceador de carga de origem. - Parâmetros de implantação – Registre o seguinte:
- Nome de domínio personalizado do aplicativo front-end – Um nome de domínio personalizado usado para acessar o aplicativo de amostra frontend. O nome de domínio fornecido é usado para criar um registro DNS do Route 53 apontando para a distribuição front-end do CloudFront; por exemplo,
app.example.com
. - Nome de domínio personalizado de origem do balanceador de carga – Um nome de domínio personalizado usado para a origem do balanceador de carga de distribuição do CloudFront. O nome de domínio fornecido é usado para criar um registro DNS do Route 53 apontando para o balanceador de carga de origem; por exemplo,
app-lb.example.com
. - ID da zona hospedada do Route 53 – O ID da zona hospedada do Route 53 para hospedar os nomes de domínio personalizados fornecidos; por exemplo,
ZXXXXXXXXYYYYYYYYY
. - Nome da zona hospedada do Route 53 – O nome da zona hospedada do Route 53 para hospedar os nomes de domínio personalizados fornecidos; por exemplo,
example.com
. - Certificado ACM ARN – O ARN do certificado ACM a ser usado com o domínio personalizado fornecido.
- Nome do endpoint do modelo de texto – O nome do endpoint do modelo de geração de texto implantado com SageMaker JumpStart.
- Nome do endpoint do modelo de incorporações – O nome do endpoint do modelo de incorporação implantado com o SageMaker JumpStart.
- Nome de domínio personalizado do aplicativo front-end – Um nome de domínio personalizado usado para acessar o aplicativo de amostra frontend. O nome de domínio fornecido é usado para criar um registro DNS do Route 53 apontando para a distribuição front-end do CloudFront; por exemplo,
Implante os recursos usando o AWS CDK
Use os parâmetros de implantação anotados nos pré-requisitos para implantar a pilha do AWS CDK. Para obter mais informações, consulte Introdução ao AWS CDK.
Certifique-se de que o Docker esteja instalado e em execução na estação de trabalho que será usada para a implantação do AWS CDK.
No código anterior, -c representa um valor de contexto, na forma dos pré-requisitos necessários, fornecidos na entrada. Alternativamente, você pode inserir os valores de contexto em um arquivo chamado cdk.context.json
no pattern1-rag/cdk
diretório e execute cdk deploy --all
.
Observe que especificamos a região no arquivo bin/cdk.ts
. A configuração de logs de acesso do ALB requer uma região especificada. Você pode alterar esta região antes da implantação.
A implantação imprimirá a URL para acessar o aplicativo Streamlit. Antes de começar a perguntar e responder, você precisa incorporar os documentos de referência, conforme mostrado na próxima seção.
Incorpore os documentos de referência
Para uma abordagem RAG, os documentos de referência são primeiro incorporados a um modelo de incorporação de texto e armazenados em um banco de dados vetorial. Nesta solução, foi construído um pipeline de ingestão que recebe documentos PDF.
Conforme discutimos na primeira opção de implantação, um exemplo de instância do EC2 foi criado para a ingestão de documentos PDF e um sistema de arquivos EFS é montado na instância do EC2 para salvar os documentos PDF. Uma tarefa do DataSync é executada a cada hora para buscar documentos PDF encontrados no caminho do sistema de arquivos EFS e carregá-los em um bucket do S3 para iniciar o processo de incorporação de texto. Este processo incorpora os documentos de referência e salva os embeddings no OpenSearch Service. Ele também salva um arquivo incorporado em um bucket S3 por meio do Kinesis Data Firehose para análise posterior.
Para assimilar os documentos de referência, conclua as etapas a seguir:
- Recupere o ID da instância do EC2 de amostra que foi criado (consulte a saída do AWS CDK
JumpHostId
) e conecte-se usando o Session Manager. - Vá para o diretório
/mnt/efs/fs1
, que é onde o sistema de arquivos EFS é montado, e crie uma pasta chamadaingest
: - Adicione seus documentos PDF de referência ao
ingest
diretório.
A tarefa DataSync está configurada para fazer upload de todos os arquivos encontrados neste diretório para o Amazon S3 para iniciar o processo de incorporação.
A tarefa do DataSync é executada de hora em hora. Opcionalmente, você pode iniciar a tarefa manualmente para iniciar imediatamente o processo de incorporação dos documentos PDF adicionados.
- Para iniciar a tarefa, localize o ID da tarefa na saída do AWS CDK
DataSyncTaskID
e iniciar a tarefa com padrões.
Pergunta e resposta
Após a incorporação dos documentos de referência, você pode iniciar a pergunta e resposta do RAG visitando a URL para acessar o aplicativo Streamlit. Um Amazon Cognito A camada de autenticação é usada, portanto, é necessária a criação de uma conta de usuário no grupo de usuários do Amazon Cognito implantado por meio do AWS CDK (consulte a saída do AWS CDK para obter o nome do grupo de usuários) para o primeiro acesso ao aplicativo. Para obter instruções sobre como criar um usuário do Amazon Cognito, consulte Criando um novo usuário no Console de gerenciamento da AWS.
Incorporar análise de desvio
Nesta seção, mostramos como realizar a análise de desvio criando primeiro uma linha de base dos embeddings de dados de referência e de prompt e, em seguida, criando um instantâneo dos embeddings ao longo do tempo. Isso permite comparar os embeddings de linha de base com os embeddings de snapshot.
Crie uma linha de base de incorporação para os dados de referência e solicite
Para criar uma linha de base incorporada dos dados de referência, abra o console do AWS Glue e selecione o trabalho de ETL embedding-drift-analysis
. Defina os parâmetros para o trabalho ETL da seguinte forma e execute o trabalho:
- Conjunto
--job_type
paraBASELINE
. - Conjunto
--out_table
ao Amazon DynamoDB tabela para dados de incorporação de referência. (Veja a saída do AWS CDKDriftTableReference
para o nome da tabela.) - Conjunto
--centroid_table
à tabela do DynamoDB para obter dados de centróide de referência. (Veja a saída do AWS CDKCentroidTableReference
para o nome da tabela.) - Conjunto
--data_path
para o bucket S3 com o prefixo; por exemplo,s3://
/embeddingarchive/
. (Veja a saída do AWS CDKBucketName
para o nome do intervalo.)
Da mesma forma, usando o trabalho ETL embedding-drift-analysis
, crie uma linha de base incorporada dos prompts. Defina os parâmetros para o trabalho ETL da seguinte forma e execute o trabalho:
- Conjunto
--job_type
paraBASELINE
- Conjunto
--out_table
à tabela do DynamoDB para incorporação imediata de dados. (Veja a saída do AWS CDKDriftTablePromptsName
para o nome da tabela.) - Conjunto
--centroid_table
à tabela do DynamoDB para obter dados do centróide imediato. (Veja a saída do AWS CDKCentroidTablePrompts
para o nome da tabela.) - Conjunto
--data_path
para o bucket S3 com o prefixo; por exemplo,s3://
/promptarchive/
. (Veja a saída do AWS CDKBucketName
para o nome do intervalo.)
Crie um instantâneo de incorporação para os dados de referência e solicite
Depois de ingerir informações adicionais no OpenSearch Service, execute o trabalho ETL embedding-drift-analysis
novamente para capturar instantâneos dos embeddings de dados de referência. Os parâmetros serão os mesmos do trabalho ETL que você executou para criar a linha de base de incorporação dos dados de referência, conforme mostrado na seção anterior, com exceção da configuração do parâmetro --job_type
parâmetro para SNAPSHOT
.
Da mesma forma, para capturar instantâneos dos embeddings de prompt, execute o trabalho ETL embedding-drift-analysis
de novo. Os parâmetros serão os mesmos do trabalho ETL que você executou para criar a linha de base de incorporação para os prompts, conforme mostrado na seção anterior, com exceção da configuração do parâmetro --job_type
parâmetro para SNAPSHOT
.
Compare a linha de base com o instantâneo
Para comparar a linha de base de incorporação e o instantâneo para obter dados de referência e prompts, use o bloco de anotações fornecido pattern1-rag/notebooks/drift-analysis.ipynb
.
Para analisar a comparação de incorporação de dados de referência ou prompts, altere as variáveis de nome da tabela do DynamoDB (tbl
e c_tbl
) no notebook para a tabela apropriada do DynamoDB para cada execução do notebook.
A variável do notebook tbl
deve ser alterado para o nome apropriado da tabela de desvios. A seguir está um exemplo de onde configurar a variável no notebook.
Os nomes das tabelas podem ser recuperados da seguinte forma:
- Para os dados de incorporação de referência, recupere o nome da tabela de desvios da saída do AWS CDK
DriftTableReference
- Para os dados de incorporação de prompt, recupere o nome da tabela de desvios da saída do AWS CDK
DriftTablePromptsName
Além disso, a variável notebook c_tbl
deve ser alterado para o nome apropriado da tabela centróide. A seguir está um exemplo de onde configurar a variável no notebook.
Os nomes das tabelas podem ser recuperados da seguinte forma:
- Para os dados de incorporação de referência, recupere o nome da tabela centróide da saída do AWS CDK
CentroidTableReference
- Para os dados de incorporação de prompt, recupere o nome da tabela centróide da saída do AWS CDK
CentroidTablePrompts
Analise a distância imediata dos dados de referência
Primeiro, execute o trabalho do AWS Glue embedding-distance-analysis
. Este trabalho descobrirá a qual cluster, a partir da avaliação K-Means dos embeddings de dados de referência, cada prompt pertence. Em seguida, calcula a média, a mediana e o desvio padrão da distância de cada prompt ao centro do cluster correspondente.
Você pode executar o notebook pattern1-rag/notebooks/distance-analysis.ipynb
para ver as tendências nas métricas de distância ao longo do tempo. Isso lhe dará uma noção da tendência geral na distribuição das distâncias de incorporação imediata.
O caderno pattern1-rag/notebooks/prompt-distance-outliers.ipynb
é um notebook do AWS Glue que procura valores discrepantes, o que pode ajudar a identificar se você está recebendo mais prompts não relacionados aos dados de referência.
Monitore pontuações de similaridade
Todas as pontuações de similaridade do OpenSearch Service estão registradas Amazon CloudWatch sob a rag
espaço para nome. O painel RAG_Scores
mostra a pontuação média e o número total de pontuações ingeridas.
limpar
Para evitar incorrer em cobranças futuras, exclua todos os recursos que você criou.
Exclua os modelos SageMaker implantados
Consulte a seção de limpeza do fornecido exemplo de caderno para excluir os modelos SageMaker JumpStart implantados ou você pode exclua os modelos no console do SageMaker.
Exclua os recursos do AWS CDK
Se você inseriu seus parâmetros em um cdk.context.json
arquivo, limpe da seguinte forma:
Se você inseriu seus parâmetros na linha de comando e implantou apenas o aplicativo de back-end (a pilha de back-end do AWS CDK), limpe da seguinte maneira:
Se você inseriu seus parâmetros na linha de comando e implantou a solução completa (as pilhas AWS CDK de front-end e back-end), limpe da seguinte maneira:
Conclusão
Nesta postagem, fornecemos um exemplo prático de um aplicativo que captura vetores de incorporação para dados de referência e prompts no padrão RAG para IA generativa. Mostramos como realizar análise de agrupamento para determinar se os dados de referência ou de prompt estão oscilando ao longo do tempo e até que ponto os dados de referência cobrem bem os tipos de perguntas que os usuários estão fazendo. Se você detectar desvios, isso poderá fornecer um sinal de que o ambiente mudou e seu modelo está recebendo novas entradas que podem não estar otimizadas para lidar. Isto permite uma avaliação proativa do modelo atual em relação a alterações nas entradas.
Sobre os autores
Abdullahi Olaoye é arquiteto de soluções sênior na Amazon Web Services (AWS). Abdullahi possui um MSC em Redes de Computadores pela Wichita State University e é um autor publicado que ocupou cargos em vários domínios de tecnologia, como DevOps, modernização de infraestrutura e IA. Atualmente, ele está focado em IA Generativa e desempenha um papel fundamental no auxílio às empresas na arquitetura e construção de soluções de ponta alimentadas por IA Generativa. Além do domínio da tecnologia, ele encontra alegria na arte da exploração. Quando não está criando soluções de IA, ele gosta de viajar com a família para explorar novos lugares.
Randy De Fauw é Arquiteto Principal de Soluções Sênior da AWS. Ele possui um MSEE da Universidade de Michigan, onde trabalhou em visão computacional para veículos autônomos. Ele também possui MBA pela Colorado State University. Randy ocupou vários cargos na área de tecnologia, desde engenharia de software até gerenciamento de produtos. In entrou no espaço de Big Data em 2013 e continua a explorar essa área. Ele está trabalhando ativamente em projetos no espaço ML e se apresentou em várias conferências, incluindo Strata e GlueCon.
Shelbee Eigenbrode é arquiteto principal de soluções de inteligência artificial e machine learning na Amazon Web Services (AWS). Ela está na área de tecnologia há 24 anos, abrangendo vários setores, tecnologias e funções. Atualmente, ela está se concentrando em combinar seu histórico de DevOps e ML no domínio de MLOps para ajudar os clientes a fornecer e gerenciar cargas de trabalho de ML em escala. Com mais de 35 patentes concedidas em vários domínios de tecnologia, ela tem paixão pela inovação contínua e pelo uso de dados para gerar resultados de negócios. Shelbee é co-criadora e instrutora da especialização Practical Data Science no Coursera. Ela também é co-diretora da Women In Big Data (WiBD), capítulo de Denver. Em seu tempo livre, ela gosta de passar tempo com sua família, amigos e cães hiperativos.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- PlatoHealth. Inteligência em Biotecnologia e Ensaios Clínicos. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/monitor-embedding-drift-for-llms-deployed-from-amazon-sagemaker-jumpstart/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 10
- 100
- 2013
- 24
- 35%
- 39
- 7
- 9
- 95%
- a
- Capaz
- Sobre
- absoluto
- Acesso
- Conta
- ACM
- em
- ativamente
- adicionado
- Adição
- Adicional
- Informação adicional
- Adicionalmente
- novamente
- contra
- agregar
- AI
- Alinha
- Todos os Produtos
- Permitindo
- permite
- tb
- Apesar
- Amazon
- Amazon Cognito
- Amazon EC2
- Amazon Sage Maker
- JumpStart do Amazon SageMaker
- Amazon Web Services
- Amazon Web Services (AWS)
- an
- análise
- analisar
- análise
- e
- responder
- responder
- nada
- relevante
- Aplicação
- abordagem
- apropriado
- arquitetura
- arquivo
- SOMOS
- ÁREA
- áreas
- Arte
- artigos
- AS
- perguntar
- pergunta
- ajudando
- assumir
- At
- aumentar
- aumentado
- Autenticação
- autor
- automaticamente
- Autônomo
- veículos autônomos
- disponível
- média
- evitar
- longe
- AWS
- Cola AWS
- Backend
- fundo
- balanceador
- baseado
- Linha de Base
- BE
- Porque
- sido
- antes
- ser
- pertence
- Melhor
- entre
- Pós
- Grande
- Big Data
- corpos
- ambos
- amplamente
- construir
- construído
- negócio
- by
- calcular
- calcula
- chamada
- chamado
- CAN
- capacidade
- capturar
- capturados
- capturas
- Capturar
- casas
- CD
- Centralização de
- Centros
- certificado
- alterar
- mudado
- Alterações
- mudança
- Capítulo
- acusações
- lasca
- chocolate
- Escolha
- limpar
- Fechar
- mais próximo
- Na nuvem
- Agrupar
- agrupamento
- código
- Colorado
- combinação
- combinado
- combinando
- vinda
- compacto
- comparar
- comparado
- comparação
- completar
- componente
- componentes
- Computar
- computador
- Visão de Computador
- conceitos
- conferências
- configurado
- configurando
- Contato
- Considerações
- cônsul
- Recipiente
- conteúdo
- contexto
- continua
- contínuo
- convertido
- bolinhos
- núcleo
- Correspondente
- cobertura
- coberto
- cobertura
- Covers
- crio
- criado
- cria
- Criar
- Atual
- Atualmente
- personalizadas
- Clientes
- ponta
- painel de instrumentos
- dados,
- centros de dados
- informática
- ciência de dados
- banco de dados
- defaults
- definido
- entregar
- Denver
- implantar
- implantado
- Implantação
- desenvolvimento
- implanta
- Derivado
- destruir
- detalhado
- descobrir
- Detecção
- Determinar
- Desenvolvimento
- desvio
- diagrama
- diferente
- difícil
- Dimensão
- dimensões
- discutido
- disperso
- distância
- distante
- distribuição
- dns
- do
- Estivador
- documento
- INSTITUCIONAIS
- domínio
- Nome de domínio
- NOMES DE DOMÍNIO
- domínios
- não
- down
- distância
- cada
- embutir
- incorporado
- embutindo
- final
- end-to-end
- Ponto final
- Engenharia
- Entrar
- entrou
- empresas
- Meio Ambiente
- avaliar
- avaliação
- Cada
- exemplo
- exemplos
- exceção
- existente
- experimental
- Explicação
- exploração
- explorar
- Explorando
- externo
- extrato
- Extractos
- família
- longe
- Figura
- Envie o
- Arquivos
- final
- Finalmente
- Encontre
- encontra
- Primeiro nome
- flutuante
- fluxo
- focado
- focando
- seguinte
- segue
- Escolha
- formulário
- encontrado
- Foundation
- amigos
- da
- Frontend
- cheio
- futuro
- reunir
- Geral
- gerando
- geração
- generativo
- IA generativa
- ter
- obtendo
- OFERTE
- Go
- ido
- concedido
- Grupo
- orientações
- manipular
- Ter
- he
- Herói
- ajudar
- sua experiência
- superior
- sua
- detém
- hospedeiro
- hospedado
- hora
- Como funciona o dobrador de carta de canal
- Como Negociar
- Contudo
- HTML
- http
- HTTPS
- Hub
- ID
- identificar
- if
- ilustra
- imediatamente
- implementação
- implementa
- importante
- in
- incluir
- inclui
- Incluindo
- Entrada
- indicam
- indústrias
- inércia
- INFORMAÇÕES
- Infraestrutura
- do estado inicial,
- Inovação
- entrada
- inputs
- introspecção
- instalação
- instalado
- instância
- instruções
- interagir
- interagindo
- interativo
- interessado
- Interface
- para dentro
- IT
- ESTÁ
- Trabalho
- Empregos
- alegria
- jpg
- apenas por
- Chave
- Mangueira de dados Kinesis
- Conhecimento
- língua
- grande
- mais tarde
- mais recente
- camada
- APRENDER
- aprendizagem
- Permite
- Biblioteca
- gostos
- Line
- linux
- LLM
- carregar
- localização
- registrado
- olhar
- OLHARES
- diminuir
- máquina
- aprendizado de máquina
- fazer
- gerencia
- de grupos
- Gerente
- manualmente
- Posso..
- significar
- significa
- a medida
- medidas
- Métrica
- Michigan
- poder
- ML
- MLOps
- modelo
- modelos
- Monitore
- mais
- a maioria
- em movimento
- múltiplo
- devo
- nome
- nomes
- natural
- Processamento de linguagem natural
- você merece...
- necessário
- necessitando
- networking
- Novo
- mais novo
- Próximo
- PNL
- caderno
- notado
- número
- números
- numeroso
- of
- frequentemente
- on
- só
- aberto
- otimizado
- Opção
- or
- orquestração
- ordem
- origem
- Outros
- A Nossa
- Fora
- resultados
- delineado
- saída
- outputs
- Acima de
- global
- sobreposição
- próprio
- parâmetro
- parâmetros
- particular
- paixão
- Patentes
- caminho
- padrão
- padrões
- Realizar
- realização
- peças
- oleoduto
- Locais
- platão
- Inteligência de Dados Platão
- PlatãoData
- desempenha
- ponto
- pontos
- piscina
- abertas
- possível
- Publique
- potencial
- alimentado
- Prática
- precedente
- pré-requisitos
- apresentado
- preservando
- anterior
- anteriormente
- Diretor
- Impressão
- Proactive
- processo
- em processamento
- Produto
- gestão de produtos
- projetos
- solicita
- proporção
- fornecer
- fornecido
- fornece
- provisão
- público
- publicado
- Pullover
- questão
- Frequentes
- trapo
- gamas
- variando
- pronto
- em tempo real
- reino
- receita
- registro
- reduzir
- redução
- referir
- referência
- região
- relacionado
- relativamente
- relevante
- representar
- representação
- representa
- requeridos
- exige
- Recursos
- resposta
- Resultados
- recuperação
- Tipo
- papéis
- Rota
- Execute
- corrida
- é executado
- sábio
- mesmo
- Salvar
- Escala
- cronograma
- Ciência
- Ponto
- Pesquisar
- pesquisas
- Segundo
- Seção
- seções
- Vejo
- visto
- selecionar
- semântico
- senior
- sentido
- enviei
- separado
- serviço
- Serviços
- Sessão
- conjunto
- contexto
- vários
- ela
- rede de apoio social
- mostrar
- mostrou
- mostrando
- Shows
- Signal
- sinais
- semelhante
- simples
- simplificar
- Tamanho
- Instantâneo
- So
- Software
- Engenharia de software
- solução
- Soluções
- alguns
- fonte
- Fontes
- Espaço
- abrangendo
- especialista
- especificada
- gastar
- Quadrada
- pilha
- Pilhas
- padrão
- começo
- começado
- Comece
- Estado
- estatística
- Passos
- armazenamento
- loja
- armazenadas
- bem sucedido
- tal
- certo
- .
- sistemas
- mesa
- Tire
- Tarefa
- técnica
- Tecnologias
- Tecnologia
- texto
- que
- A
- as informações
- A fonte
- deles
- Eles
- então
- Lá.
- Este
- isto
- aqueles
- três
- Através da
- tempo
- para
- juntos
- Temas
- Total
- Transformar
- Viagens
- Trend
- Tendências
- tentar
- dois
- tipos
- para
- universidade
- URL
- us
- usar
- usava
- útil
- Utilizador
- Interface de Usuário
- usuários
- utilização
- validação
- valor
- Valores
- variável
- variedade
- vário
- Veículos
- via
- visão
- visual
- Passo a passo
- queremos
- foi
- Caminho..
- we
- web
- serviços web
- BEM
- quando
- se
- qual
- enquanto
- precisarão
- de
- dentro
- sem
- Mulher
- Atividades:
- trabalhou
- trabalhar
- estação de trabalho
- pior
- seria
- anos
- ainda
- Vocês
- investimentos
- zefirnet
- zona