4 pontos por finnchoi 2024-07-19 | Ainda não há comentários. | Compartilhar no WhatsApp

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.

Ainda não há comentários.