Como criar um sistema de pesquisa com a qualidade do Google usando a Vertex AI

1. Antes de começar

Confira algumas observações antes de continuar este codelab.

Pré-requisitos

  • Noções básicas sobre LLMs
  • Noções básicas dos sistemas RAG

O que você vai aprender

  • Como criar um mecanismo de pesquisa de qualidade do Google que responda às suas perguntas a partir dos dados que você envia
  • Como criar um repositório de dados da Vertex AI
  • Como criar agentes da Vertex AI
  • Como aproveitar o CloudRun para implantar o aplicativo

O que é necessário

  • Uma conta do Google Cloud
  • um projeto do Google Cloud;
  • Um ambiente de desenvolvimento integrado com

Introdução

A Pesquisa Google é uma ferramenta eficiente que usa um enorme índice de páginas da Web e outros conteúdos para fornecer resultados relevantes às consultas dos usuários. Isso é possível graças a uma técnica chamada Geração Aumentada de Recuperação (RAG, na sigla em inglês), que é fundamental para a IA moderna.

O RAG funciona primeiro recuperando trechos relevantes de um corpus de documentos. Isso é feito usando vários métodos, como correspondência de palavra-chave, similaridade semântica e aprendizado de máquina. Depois que os trechos relevantes são recuperados, eles são usados para gerar um resumo ou uma resposta à consulta do usuário.

O principal benefício da RAG é que ela permite que os modelos de linguagem evitem a alucinação. Alucinação é um termo usado para descrever a geração de texto que não é apoiada pelas evidências no corpus do documento. Isso acontece quando os modelos de linguagem não conseguem distinguir entre informações relevantes e irrelevantes.

A RAG ajuda a evitar a alucinação ao garantir que o texto gerado seja sempre baseado em evidências do corpus do documento. Isso faz dele uma fonte de informações mais confiável.

RAG é uma técnica poderosa que está sendo usada em diversos aplicativos, incluindo mecanismos de pesquisa, chatbots e sistemas de resposta a perguntas. É provável que ela tenha um papel cada vez mais importante na IA nos próximos anos.

Aqui estão alguns exemplos de como o RAG está sendo usado na prática:

  • Muitos sistemas de pesquisa usam RAG para gerar resultados de pesquisa que são relevantes para a consulta do usuário.
  • Os chatbots usam RAG para gerar respostas informativas e envolventes nas perguntas dos usuários.
  • Os sistemas de respostas a perguntas usam a RAG para gerar respostas precisas e abrangentes às perguntas dos usuários.

A RAG é uma técnica versátil que pode ser usada para gerar texto em vários domínios e aplicativos. É uma ferramenta poderosa que ajuda a tornar a IA mais inteligente e informativa.

Neste codelab, criaremos um sistema RAG que pode ajudar a responder suas perguntas com o corpus fornecido, conforme você enviou. A plataforma RAG pronta para uso chamada Vertex AI para Pesquisa/Agent Builder ajuda a acelerar a criação de sistemas RAG, evitando o esforço manual de coletar documentos, analisar, dividir, gerar embeddings, expandir consultas, recuperar candidatos e classificar. Embora o sistema RAG pronto para uso ajude você a começar rapidamente, o Google Cloud também fornece APIs discretas para cada processo de criação de sistemas RAG próprios, o que ajuda a ajustar seus sistemas RAG para atender às necessidades da sua empresa.

O que você vai criar

Ao final deste codelab, você terá um sistema RAG funcional implantado que pode ajudar a responder suas perguntas com informações factuais, fundamentadas e citadas com referências corretas.

Você também vai entender melhor como usar as APIs Vertex AI para Pesquisa para criar essa arquitetura RAG no Google Cloud. Além disso, você também vai aprender a implantar esse aplicativo de arquitetura RAG (com front-end e back-end) no CloudRun, que é uma plataforma sem servidor de implantação de aplicativos como contêineres no Google Cloud.

2d055ded874603a6.png

Como o aplicativo funciona

  • Fazer upload dos seus dados: os usuários podem fazer o upload do próprio corpus de dados, ou seja, de um arquivo PDF como entrada.
  • Fazer consultas na barra de pesquisa: os usuários podem fazer perguntas na barra de pesquisa com base no corpus de dados enviados.
  • Recuperar respostas: os usuários podem recuperar os resultados da pesquisa/candidatos e verificar a veracidade/fundamento da resposta recuperada com base na relevância da consulta.

2. Configuração do ambiente

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Verifique se o faturamento está ativado para seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Você vai usar o Cloud Shell, um ambiente de linha de comando em execução no Google Cloud. Para acessá-lo, clique em "Ativar o Cloud Shell" na parte superior do console do Google Cloud.

1829c3759227c19b.png

  1. Depois de se conectar ao Cloud Shell, verifique se você já está autenticado e se o projeto está configurado com o ID do seu projeto usando o seguinte comando:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar que o comando gcloud conhece seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
  1. Verifique se as seguintes APIs estão ativadas:
  • Cloud Run
  • Vertex AI
  • Cloud Storage

A alternativa ao comando gcloud é passar pelo console usando este link. Consulte a documentação para saber mais sobre os comandos e o uso da gcloud.

3. Etapa 1: criar um bucket do GCP

  • Acesse o console e, na barra de pesquisa, digite "Cloud Storage".
  • Selecione o Cloud Storage nos resultados sugeridos. 21d2bc910e71f7ec.png
  • Clique em Criar bucket

adf5c0382f6c3540.png

  • Dê um nome globalmente exclusivo para o bucket
  • Clique em "Continuar"
  • Em "Tipo de local", selecione "Multirregional".
  • No menu suspenso, selecione a opção us (multiple regions in United States)

731aead7d8497725.png

  • Clique em Criar bucket

f7ac409ed9c4af21.png

4. Etapa 2: criar um repositório de dados da Vertex AI

  • Na barra de pesquisa da página do console, digite "Vertex AI Agent Builder".
  • Selecione o primeiro produto, "Agent Builder"

c4a67b92bb7900e3.png

  • Na página do Agent Builder, clique em "Data Stores" conforme mostrado na barra de navegação à esquerda.

f86f67d344d398fb.png

  • Clique em "Criar repositório de dados"

e64e771f33543f46.png

  • Selecione o Cloud Storage como seu repositório de dados
  • Clique em "Selecionar" abaixo do ícone do Cloud Storage

3a8d22888e7eedc2.png

  • Na guia abaixo da opção "Pasta", clique no botão "Procurar".
  • Selecione o bucket criado na Etapa 1
  • Nas opções abaixo, selecione "Documentos não estruturados vinculados (JSONL com metadados)".
  • Clique em Continuar

13876b5d12dbe1fb.png

  • Na página "Configuração", selecione "global" como o local do seu repositório de dados.
  • Forneça um nome identificável para seu repositório de dados
  • Clique em Criar

618b7a456fbffad4.png

Brownie:

  • Acima do botão "Criar", é exibida a opção de processamento do documento.
  • Você pode testar vários analisadores, como digital, OCR ou de layout
  • Também é possível ativar a divisão avançada e definir limites personalizados para o tamanho das partes.

38471c1d3411610d.png

5. Etapa 3: criar um agente

  • Depois que seu repositório de dados for criado, clique no aplicativo na barra de navegação à esquerda e escolha "Aplicativos"
  • Clique no botão "Create App" (Criar app).
  • Selecione o tipo de app como "Pesquisa". Também é possível criar agentes, bots de conversa, recomendações etc.

ae5294e33f63567c.png

  • Selecione "Genérico" em "Conteúdo". Também é possível selecionar "Mídias" ou "Recomendações" com base no repositório de dados e no tipo de dados e sistemas que você quer criar.
  • Certifique-se de ativar os recursos Enterprise Edition e LLM avançado
  • Forneça o nome do seu aplicativo
  • Informe o nome da sua empresa

f8a41c9751f7a8d3.png

  • Selecione a região como "global"
  • Clique em "Continuar" ed17b18e094ba59a.png.
  • Na próxima tela, selecione o repositório de dados que você criou na Etapa 2
  • Clique em "Criar".

bc77006e0025ae9e.png

6. Etapa 4: colocar o aplicativo no Docker

  • Abra o terminal no console do Google Cloud.
  • Clone o repositório <sample_repository_link> com o seguinte comando

git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo

  • Altere o diretório e navegue até o repositório clonado usando o seguinte comando

cd vertex-ai-search-agent-builder-demo

  • Estrutura da pasta
  • Back-end: terá uma implementação de API baseada em Python que ajudará a criar endpoints RESTful para a interação do front-end.
  • Front-end: vai conter um aplicativo baseado em reação e vai veicular a interface. Isso também vai conter as chamadas necessárias no nível do aplicativo para o back-end usando endpoints de descanso
  • Dockerfile: esse arquivo vai conter todos os comandos relevantes para criar um contêiner do Docker
  • Na raiz do diretório do repositório, execute o seguinte comando, que ajudará a criar uma imagem Docker. Observação: use a sinalização - - platform ao criar contêineres do Docker em Macbooks que usam chips do Apple Silicon, como M1, M2 etc. Essa sinalização não será necessária se você estiver criando usando uma máquina Windows ou se sua arquitetura de CPU for baseada em Intel.

docker build --platform linux/amd64 -t your-image-name .

  • Quando a criação do contêiner do Docker for bem-sucedida, execute o seguinte comando para marcar o contêiner com as tags corretas e garantir que você forneça uma versão da imagem. Lembre-se de que pode haver várias versões do aplicativo e, portanto, várias versões como tags nos contêineres do Docker. Garantir que a versão estável mais recente seja sempre usada é uma boa abordagem recomendada do ponto de vista de DevOps.

docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

  • Quando a inclusão de tag da imagem do contêiner do Docker for concluída, vamos enviar a imagem para o Google Artifact Registry (GAR). A GAR é uma plataforma totalmente gerenciada do Google para ajudar no gerenciamento e no controle de versões dos contêineres do Docker. Execute o comando a seguir que enviará o contêiner marcado acima para o GAR. Para mais informações, consulte o link a seguir: [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]

docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

7. Etapa 5: implantar o aplicativo no Cloud Run

  • Minimize o terminal. Na barra de pesquisa do console do Google Cloud, procure o Cloud Run.
  • Clique no produto do Cloud Run sugerido

592103eb61c16738.png

  • Clique em "Criar serviço"
  • Na próxima página, verifique se a opção "Implantar uma revisão de uma imagem de contêiner atual" está selecionada.
  • Abaixo, clique em "Selecionar"
  • Uma barra de navegação à direita será exibida.
  • Verifique se o Artifact Registry está selecionado como a guia
  • Verifique se o projeto foi selecionado corretamente
  • Clique na seta para expandir o acordeão no link da imagem do contêiner implantado
  • Selecione a tag de contêiner e expanda (sempre selecione as que foram implantadas recentemente, com as tags mais recentes corretas, ou seja, v1, v2 etc.)
  • Clique na imagem do contêiner mostrada abaixo do nome da tag de contêiner

aac35d55d7dd874e.png

  • Na área "Configurar"
  • Forneça um nome de serviço para seu aplicativo do Cloud Run. Isso vai fazer parte do URL quando você implantar o aplicativo no Cloud Run
  • Selecione a região apropriada (neste caso, us-central1 ou qualquer opção de sua escolha).
  • Na guia
  • Verifique se a opção "Permitir invocações não autenticadas" está selecionada
  • Em "Alocação de CPU e preços"
  • Selecione "A CPU é alocada somente durante o processamento da solicitação".
  • Modifique o escalonamento automático de serviços para 1 (para fins de produção, é recomendável ter um número mínimo de instâncias em execução para lidar com seu tráfego diário, ou seja, deixar 0, ou seja, zero)
  • Defina o "Controle de entrada" como "Todos" para permitir que o tráfego da Internet acesse seu aplicativo
  • Clique em "Criar".
  • Isso vai implantar uma instância do Cloud Run e o provisionamento da mesma vai levar alguns minutos

b8b147265b8d457b.png

  • Depois de implantado, você verá o URL disponível publicamente para acessar o aplicativo da Web

1dfdb007c52581a1.png

8. Como tudo isso funciona

  • Na página inicial do aplicativo, clique no botão "Upload Document"
  • Fazer upload do arquivo PDF
  • Assim que o upload for concluído
  • Clique na barra de pesquisa na parte superior da página da Web
  • Comece a pesquisar consultas relacionadas ao documento enviado
  • Depois de digitar sua consulta e clicar em "Pesquisar", todas as respostas relevantes do documento que você acabou de enviar serão exibidas.
  • Você pode testar o código de back-end e adicionar mais configurações, como esta:
  • Como adicionar snippets
  • Adicionar segmentos extrativos
  • Adicionando respostas
  • Ajustar os resultados Top-K para ajudar o LLM a resumir a resposta (algo como as informações gerais da IA na Pesquisa Google)
  • Também é possível adicionar tags de metadados ao fazer upload do documento. Isso ajudará a gerar atributos e categorias filtráveis

9. Limpar

Para evitar cobranças dos recursos usados neste codelab na conta do Google Cloud, siga estas etapas:

  1. No console do Google Cloud, acesse a página Gerenciar recursos.
  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.
  4. Outra opção é acessar o Cloud Run no console, selecionar o serviço que você acabou de implantar e excluir.

10. Parabéns

Parabéns! Você criou um sistema RAG rápido pronto para uso usando os modelos de última geração com tecnologia do Google e para fornecer resultados de qualidade do Google para suas consultas de pesquisa. Este codelab é apenas para fins de demonstração. É necessário configurar mais recursos de segurança e proteções para casos de uso de produção. O link para o repositório completo está aqui. Usando o Google Cloud e com apenas cinco etapas, podemos gerar um sistema RAG completo que pode fornecer resultados de qualidade do Google prontos para uso em poucos minutos. À medida que a IA generativa e os modelos de linguagem grandes evoluem, a criação desses sistemas RAG também nos ajuda a evitar as armadilhas da alucinação e da exibição de informações não citadas.

Embora este seja apenas um ponto de partida, podemos fazer maravilhas com as APIs DIY RAG totalmente personalizáveis, que oferecem ainda mais transparência, potência e eficiência para lidar com cada parte do processo de pipeline de forma eficaz.