O blog da AWS

As Bases de Conhecimento no Amazon Bedrock agora simplificam fazer perguntas em um único documento

Este post foi escrito por Suman Debnath, Principal Developer Advocate para Machine Learning e Sebastian Munera, Software Engineer no time do Amazon Bedrock Knowledge Bases

No AWS re:Invent 2023, anunciamos a disponibilidade geral das Bases de Conhecimento para o Amazon Bedrock (Knowledge Bases for Bedrock). Com as bases de conhecimento do Amazon Bedrock, você pode conectar com segurança os Modelos de Fundação (FMs) no Amazon Bedrock aos dados da sua empresa para obter uma geração aumentada de recuperação (RAG) totalmente gerenciada.

Em publicações anteriores, abordamos novos recursos, como suporte à pesquisa híbrida, filtragem de metadados para melhorar a precisão da recuperação e como as bases de conhecimento do Amazon Bedrock gerenciam o fluxo de trabalho completo do RAG.

Hoje, estamos apresentando o novo recurso de conversar com seu documento sem nenhuma configuração nas Bases de Conhecimento do Amazon Bedrock. Com esse novo recurso, você pode fazer perguntas com segurança em documentos únicos, sem a sobrecarga de configurar um banco de dados vetorial ou ingerir dados, facilitando o uso dos dados corporativos pelas empresas. Você só precisa fornecer um arquivo de dados relevante como entrada e escolher seu FM para começar.

Mas antes de entrarmos nos detalhes desse recurso, vamos começar com o básico e entender o que é o RAG, seus benefícios e como esse novo recurso permite a recuperação e a geração de conteúdo para necessidades temporais.

O que é geração aumentada de recuperação (RAG)?

Os assistentes de inteligência artificial (IA) alimentados por FM têm limitações, como fornecer informações desatualizadas ou ter dificuldades com o contexto fora dos dados de treinamento. O RAG aborda esses problemas permitindo que os FMs cruzem fontes de conhecimento confiáveis antes de gerar respostas.

Com o RAG, quando um usuário faz uma pergunta, o sistema recupera o contexto relevante de uma base de conhecimento selecionada, como a documentação da empresa. Ele fornece esse contexto para o FM, que o usa para gerar uma resposta mais informada e precisa. A RAG ajuda a superar as limitações de FM aumentando seus recursos com o conhecimento proprietário de uma organização, permitindo que chatbots e assistentes de IA forneçam informações atualizadas e específicas ao contexto, adaptadas às necessidades de negócios, sem retreinar todo o FM. Na AWS, reconhecemos o potencial do RAG e trabalhamos para simplificar sua adoção por meio de bases de conhecimento para o Amazon Bedrock, fornecendo uma experiência RAG totalmente gerenciada.

Necessidades de informações instantâneas e de curto prazo

Embora uma base de conhecimento faça todo o trabalho pesado e sirva como um grande repositório persistente de conhecimento corporativo, você pode precisar de acesso temporário aos dados para tarefas ou análises específicas em sessões isoladas de usuários. As abordagens RAG tradicionais não são otimizadas para esses cenários de acesso a dados baseados em sessões de curto prazo.

As empresas incorrem em cobranças pelo armazenamento e gerenciamento de dados. Isso pode tornar o RAG menos econômico para organizações com requisitos de informações altamente dinâmicos ou efêmeros, especialmente quando os dados são necessários apenas para tarefas ou análises específicas e isoladas.

Faça perguntas em um único documento sem nenhuma configuração

Esse novo recurso de conversar com seu documento nas Bases de Conhecimento do Amazon Bedrock aborda os desafios mencionados acima. Ele fornece um método sem configuração (zero-setup) para usar seu único documento para recuperação de conteúdo e tarefas relacionadas à geração, junto com os FMs fornecidos pelo Amazon Bedrock. Com esse novo recurso, você pode fazer perguntas sobre seus dados sem a sobrecarga de configurar um banco de dados vetorial ou ingerir dados, facilitando o uso dos dados corporativos.

Agora você pode interagir com seus documentos em tempo real sem ingestão prévia de dados ou configuração do banco de dados. Você não precisa realizar nenhuma outra etapa de preparação de dados antes de consultar os dados.

Essa abordagem de sem configuração facilita o uso de seus ativos de informações corporativas com IA generativa usando o Amazon Bedrock.

Casos de uso e benefícios

Considere uma empresa de recrutamento que precise analisar currículos e encontrar candidatos com oportunidades de emprego adequadas com base em suas experiências e habilidades. Anteriormente, era necessário configurar uma base de conhecimento, invocando um fluxo de trabalho de ingestão de dados para garantir que somente recrutadores autorizados pudessem acessar os dados. Além disso, você precisaria gerenciar a limpeza quando os dados não fossem mais necessários para uma sessão ou candidato. No final, você pagaria mais pelo armazenamento e gerenciamento do banco de dados vetoriais do que pelo uso real de FM. Esse novo recurso nas Bases de Conhecimento do Amazon Bedrock permite que os recrutadores analisem currículos de forma rápida e efêmera e encontrem candidatos com oportunidades de emprego adequadas com base na experiência e no conjunto de habilidades do candidato.

Outro exemplo, considere um gerente de produto em uma empresa de tecnologia que precisa analisar rapidamente o feedback dos clientes e os tíquetes de suporte para identificar problemas comuns e áreas de melhoria. Com esse novo recurso, você pode simplesmente fazer o upload de um documento para extrair insights em pouco tempo. Por exemplo, você pode perguntar “Quais são os requisitos para o aplicativo móvel?” ou “Quais são os pontos problemáticos comuns mencionados pelos clientes em relação ao nosso processo de integração?” Esse recurso permite que você sintetize rapidamente essas informações sem o incômodo da preparação de dados ou qualquer sobrecarga de gerenciamento. Você também pode solicitar resumos ou conclusões importantes, como “Quais são os destaques deste documento de requisitos?”

Os benefícios desse recurso vão além da economia de custos e da eficiência operacional. Ao eliminar a necessidade de bancos de dados vetoriais e ingestão de dados, esse novo recurso nas Bases de Conhecimento do Amazon Bedrock ajuda a proteger seus dados proprietários, tornando-os acessíveis somente no contexto de sessões isoladas de usuários.

Agora que abordamos os benefícios do recurso e os casos de uso que ele possibilita, vamos nos aprofundar em como você pode começar a usar esse novo recurso das Bases de Conhecimento do Amazon Bedrock.

Converse com seu documento nas Bases de Conhecimento do Amazon Bedrock

Você tem várias opções para começar a usar esse recurso:
• O console Amazon Bedrock
• A API de RetrieveAndGenerate Amazon Bedrock

Vamos ver como podemos começar a usar o console Amazon Bedrock:
1. No console Amazon Bedrock, em Orchestration no painel de navegação, escolha Knowledge Bases.
2. Escolha Chat with your document.

3. Em Model, escolha Select model.

4. Escolha seu modelo. Neste exemplo, usamos o modelo Claude 3 Sonnet (só oferecemos suporte ao Sonnet no momento do lançamento).


5. Escolha Apply.

6. Em Data, você pode fazer o upload do documento com o qual deseja conversar ou apontar para o local do bucket do Amazon Simple Storage Service (Amazon S3) que contém seu arquivo. Para esta postagem, carregamos um documento do nosso computador.

Os formatos de arquivo suportados são PDF, MD (Markdown), TXT, DOCX, HTML, CSV, XLS e XLSX. Certifique-se de que o tamanho do arquivo não exceda 10 MB e contenha no máximo 20.000 tokens. Um token é considerado uma unidade de texto, como uma palavra, subpalavra, número ou símbolo, que é processada como uma única entidade. Devido ao limite predefinido do token de ingestão, é recomendável usar um arquivo com menos de 10 MB. No entanto, um arquivo com muito texto, muito menor que 10 MB, pode potencialmente violar o limite do tokens.

Agora você está pronto para conversar com seu documento.

Conforme mostrado na captura de tela a seguir, você pode conversar com seu documento em tempo real.

Para personalizar sua solicitação, insira sua solicitação em System prompt.

Da mesma forma, você pode usar o AWS SDK por meio da API retrieve_and_generate nas principais linguagens de codificação. No exemplo a seguir, usamos o AWS SDK para Python (Boto3):

import boto3

bedrock_client = boto3.client(service_name='bedrock-agent-runtime')
model_id = "your_model_id_here"    # Replace with your modelID
document_uri = "your_s3_uri_here"  # Replace with your S3 URI

def retrieveAndGenerate(input_text, sourceType, model_id, document_s3_uri=None, data=None):
    region = 'us-west-2'  
    model_arn = f'arn:aws:bedrock:{region}::foundation-model/{model_id}'

    if sourceType == "S3":
        return bedrock_client.retrieve_and_generate(
            input={'text': input_text},
            retrieveAndGenerateConfiguration={
                'type': 'EXTERNAL_SOURCES',
                'externalSourcesConfiguration': {
                    'modelArn': model_arn,
                    'sources': [
                        {
                            "sourceType": sourceType,
                            "s3Location": {
                                "uri": document_s3_uri  
                            }
                        }
                    ]
                }
            }
        )
        
    else:
        return bedrock_client.retrieve_and_generate(
            input={'text': input_text},
            retrieveAndGenerateConfiguration={
                'type': 'EXTERNAL_SOURCES',
                'externalSourcesConfiguration': {
                    'modelArn': model_arn,
                    'sources': [
                        {
                            "sourceType": sourceType,
                            "byteContent": {
                                "identifier": "testFile.txt",
                                "contentType": "text/plain",
                                "data": data  
                            }
                        }
                    ]
                }
            }
        )

response = retrieveAndGenerate(
                                input_text="What is the main topic of this document?",
                                sourceType="S3", 
                                model_id=model_id,
                                document_s3_uri=document_uri
                              )
                    
print(response['output']['text'])

Conclusão

Neste post, abordamos como as Bases de Conhecimento do Amazon Bedrock agora simplificam a realização de perguntas em um único documento. Exploramos os principais conceitos por trás do RAG, os desafios que esse novo recurso aborda e os vários casos de uso que ele possibilita em diferentes funções e setores. Também demonstramos como configurar e usar esse recurso por meio do console Amazon Bedrock e do AWS SDK, demonstrando a simplicidade e a flexibilidade desse recurso, que fornece uma solução de configuração zero-setup para coletar informações de um único documento, sem configurar um banco de dados vetorial.

Para explorar ainda mais as capacidades das Bases de Conhecimento do Amazon Bedrock, consulte os seguintes recursos:
Bases de conhecimento do Amazon Bedrock
Introdução ao Amazon Bedrock, RAG e banco de dados Vector em Python
Vector Embeddings e RAG desmistificados: aproveitando o Amazon Bedrock, o Aurora e o LangChain (parte 1 e parte 2)

Compartilhe e aprenda com nossa comunidade de IA generativa em community.aws.

Esse blog foi traduzido para o Português e o conteúdo original pode ser acessado aqui.

Sobre os autores

Suman Debnath é a Principal Developer Advocate for Machine Learningna Amazon Web Services. Ele frequentemente fala em conferências, eventos e encontros de AI/ML em todo o mundo. Ele é apaixonado por sistemas distribuídos em grande escala e é um ávido fã do Python.

Sebastian Munera é Software Engineer na equipe de Amazon Bedrock Knowledge Base na AWS, onde se concentra na criação de soluções para clientes que aproveitam aplicativos generativos de IA e RAG. Ele trabalhou anteriormente na criação de soluções generativas baseadas em IA para que os clientes simplificassem seus processos e aplicativos de Low Code/No Code. Em seu tempo livre, ele gosta de correr, levantar pesos e mexer com tecnologia.

Tradutor

Guilherme Ricci é Arquiteto de Soluções Sênior para startups na Amazon Web Services, ajudando startups a modernizar e otimizar os custos de suas aplicações. Com mais de 10 anos de experiência em empresas do setor financeiro, atualmente trabalha com uma equipe de especialistas em AI/ML.

Revisor


Daniel Abib é Arquiteto de Soluções Sênior na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e segurança. Ele trabalha apoiando clientes corporativos, ajudando-os em sua jornada para a nuvem.

https://www.linkedin.com/in/danielabib/