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:
- Tokenização: A frase "Inteligência Artificial" é dividida em tokens, geralmente palavras ou sub-palavras. Neste caso, temos "Inteligência" e "Artificial".
- 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]
E "Artificial" por outro vetor de 300 dimensões:
[-0.12, 0.29, -0.34, ..., 0.18]
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])
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]
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:
- 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 |
2º Passo: Acesso ao serviço do Bedrock e seleção do menu de Builder tools > 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:
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:
- 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”.
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”:
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)