Problema
- Para busca semântica/em linguagem natural e RAG, é necessário fazer embeddings vetoriais
- A maioria dos modelos de embedding tem limite de comprimento de entrada
- Ajustar um comprimento de entrada adequado está diretamente ligado à qualidade da busca
- Devido ao limite de comprimento de entrada, na maioria dos casos os parágrafos acabam sendo separados e armazenados
- Ao armazenar o texto original de forma segmentada, um único documento acaba sendo dividido em vários documentos
- A maioria dos documentos não é composta por apenas um único texto; normalmente inclui metadados e outros campos longos
- Para armazenar os dados segmentados, é preciso duplicar o texto original dividido e as informações adicionais, ou então separar em coleções (ou tabelas) diferentes
- A duplicação gera ineficiência por aumentar o espaço de armazenamento, e coleções separadas elevam a complexidade do processo de busca com joins, cálculo de pontuação, contagem de documentos etc.
- Esse é um problema recorrente ao usar a maioria dos bancos de dados vetoriais
Solução
- Buscamos outra forma de não segmentar o texto original
- Modificamos o banco de dados e as bibliotecas relacionadas para que o campo onde os dados de embedding são armazenados possa receber dados bidimensionais
- Isso permite armazenar dados vetoriais com comprimento variável por documento, mesmo quando ele é dividido em uma ou mais partes, sem que o texto original seja fragmentado
- Com esse método, o texto original e os dados vetoriais separados podem coexistir sem precisar dividir coleções, tornando o gerenciamento de dados e as consultas mais simples
Ainda não há comentários.