DEV Community

Cover image for Bedrock - Conhecendo o recurso de Knowledge Bases
Gustavo Mainchein
Gustavo Mainchein

Posted on

Bedrock - Conhecendo o recurso de Knowledge Bases

Sobre o Recurso

Com as bases de conhecimento (Knowledge Bases) do Amazon Bedrock, você pode fornecer informações contextualizadas aos Modelos Fundacionais (FMs) e aos atendentes, extraídas de fontes de dados privadas da empresa. Isso permite que a Recuperação e Geração de Respostas (RAG) entregue respostas mais relevantes, precisas e personalizadas.

Na prática, o recurso de Knowledge Bases funciona integrado com um banco de vetores, como o OpenSearch, que armazena informações em um formato que facilita a busca e a comparação de distância entre os vetores de entrada e os armazenados. Quando um agente precisa responder a uma pergunta do usuário, ele consulta esse banco de vetores para encontrar informações relevantes. Essa consulta é feita através de busca semântica, um conjunto de recursos do mecanismo de busca que inclui a compreensão de palavras a partir da intenção e do contexto de quem está fazendo a busca. Isso permite que o agente identifique a informação privada que melhor corresponde à necessidade específica do usuário. Assim, o agente pode fornecer respostas mais precisas e relevantes, utilizando dados contextualizados e específicos da empresa.

Banco de Vetores

As informações que as empresas precisam armazenar, possuem diversos formatos. Algumas são não estruturadas, como documentos de texto, mídia avançada e áudio, enquanto outras são estruturadas, como logs de aplicações, tabelas e gráficos. Inovações em inteligência artificial e machine learning (IA/ML) nos permitiram criar um tipo de modelo de ML chamado modelos de incorporação. Incorporações codificam todos os tipos de dados em vetores que capturam o significado e o contexto de um ativo. Isso nos permite encontrar ativos semelhantes pesquisando pontos de dados vizinhos. Métodos de pesquisa de vetores possibilitam experiências exclusivas, como tirar uma fotografia com seu smartphone e pesquisar por imagens semelhantes.

Os bancos de dados de vetores oferecem a capacidade de armazenar e recuperar vetores como pontos de alta dimensão. Eles adicionam recursos para uma pesquisa rápida e eficiente dos vizinhos mais próximos no espaço N-dimensional. Em geral, são alimentados por índices k-Nearest Neighbor (k-NN) e construídos com algoritmos como Hierarchical Navigable Small World (HNSW) e Inverted File Index (IVF). Além disso, os bancos de dados de vetores fornecem funcionalidades adicionais, como gerenciamento de dados, tolerância a falhas, autenticação, controle de acesso e um mecanismo de consulta.

Vetorização na Prática

Para exemplificar o processo de vetorização de uma palavra, vamos utilizar como exemplo o seguinte texto: Inteligência Artificial.

Para transformar a palavra "Inteligência Artificial" em um vetor, utilizamos técnicas de embeddings, que convertem palavras em representações numéricas multidimensionais. Aqui está um exemplo de como isso é feito:

  1. Tokenização: A frase "Inteligência Artificial" é dividida em tokens, geralmente palavras ou sub-palavras. Neste caso, temos "Inteligência" e "Artificial".
  2. Embedding: Cada token é então convertido em um vetor usando um modelo de embedding pré-treinado, como Word2Vec, GloVe, BERT, etc. Estes vetores são de alta dimensão e capturam o significado semântico das palavras.

Por exemplo, utilizando um modelo como Word2Vec, a palavra "Inteligência" pode ser representada por um vetor de 300 dimensões:

[0.15, -0.23, 0.45, ..., 0.33]
Enter fullscreen mode Exit fullscreen mode

E "Artificial" por outro vetor de 300 dimensões:

[-0.12, 0.29, -0.34, ..., 0.18]
Enter fullscreen mode Exit fullscreen mode

Combinação de Vetores: Se desejarmos representar a frase inteira "Inteligência Artificial" como um único vetor, podemos combinar os vetores das palavras individuais. Uma abordagem comum é calcular a média dos vetores:

"Inteligência Artificial" = media([0.15, -0.23, 0.45, ..., 0.33], [-0.12, 0.29, -0.34, ..., 0.18])
Enter fullscreen mode Exit fullscreen mode

Vetor Final: O vetor resultante da média ou combinação das palavras individuais representa a frase inteira no espaço vetorial:

[0.015, 0.03, 0.055, ..., 0.255]
Enter fullscreen mode Exit fullscreen mode

Esse vetor capturará a semântica da frase "Inteligência Artificial" e poderá ser utilizado em várias aplicações de IA/ML, como busca semântica, classificação de texto, etc.

Knowledge Bases na Prática

Pensando no contexto acima, vamos para a parte prática de criação e publicação de um exemplo do recurso de Knowledge Bases.

1º Passo: Criação do bucket S3 que será utilizado para armazenar os dados não estruturados:

Criação do Bucket

  • Observação: O Knowledge Bases possui formatos específicos que consegue vetorizar. Qualquer documento que não esteja dentro de seu formato aceito, será necessário criar uma camada de aplicação para realizar a conversão em um dos formatos aceitos. Os formatos de arquivos suportados pelo Knowledge Bases são:
Plain text .txt
Markdown .md
HyperText Markup Language .html
Microsoft Word document .doc/.docx
Comma-separated values .csv
Microsoft Excel spreadsheet .xls/.xlsx
Portable Document .pdf

2º Passo: Acesso ao serviço do Bedrock e seleção do menu de Builder tools > Knowledge Bases:

Acesso ao Recurso de Knowledge Bases

3º Passo: Preencha os campos padrões da primeira tela da forma como preferir e, na segunda tela, selecione o bucket criado no 1º passo:

Seleção do bucket do S3 no Knowledge Base

4º Passo: Selecione o modelo de sua preferência para fazer o processo de embeddings (explicado anteriormente) dos documentos inseridos no bucket e deixe a opção de “Quick create a new vector store - Recommended” selecionada para criação do OpenSearch como banco de vetores:

Seleção do modelo de embedding e o banco de vetores

  • 1ª Observação: Caso você já possua um banco de vetores, selecione a opção “Choose a vector store you have created” e preencha as informações do seu banco atual;
  • 2ª Observação: Para ambientes produtivos é recomendado que você ative as opções de redundância e criptografias abaixo da seleção do “Vector database”.

Seleção de opções adicionais aos bancos de vetores

5º Passo: Após executar os passos acima, seu recurso de Knowledge Bases estará criado e irá faltar apenas executar o “Sync” dos documentos presentes em seu “Data Source”:

Sincronização do Data Source

Conclusão

O recurso de Knowledge Bases do Amazon Bedrock proporciona uma maneira poderosa e eficiente de integrar informações contextuais em sistemas de atendimento e Modelos Fundacionais (FMs). Ao utilizar bancos de vetores, como o OpenSearch, para armazenar e recuperar dados em formatos estruturados e não estruturados, a busca semântica é potencializada, permitindo que agentes encontrem as informações mais relevantes de forma rápida e precisa. Através de técnicas de embeddings, esses dados são convertidos em vetores que capturam significado e contexto, facilitando a comparação e a recuperação de informações semelhantes. Essa abordagem inovadora não só melhora a precisão das respostas fornecidas aos usuários, mas também possibilita novas experiências de pesquisa e interação com dados. Com um processo claro de criação, configuração e sincronização de dados, as empresas podem aproveitar ao máximo as capacidades das Knowledge Bases para otimizar seus fluxos de trabalho e proporcionar um atendimento mais personalizado e eficiente.

Top comments (0)