3 pontos por GN⁺ 2024-05-30 | Ainda não há comentários. | Compartilhar no WhatsApp
  • A Cohere divulgou um conjunto de dados com toda a Wikipedia embutida em vetores
  • Com esse conjunto de dados, pessoas podem criar um índice vetorial baseado em significado de toda a Wikipedia

Desafios

  • O tamanho do conjunto de dados (180 GB apenas para o corpus em inglês) não é o problema
  • Os bancos de dados vetoriais existentes não conseguiam indexar conjuntos de dados maiores do que a memória
  • A biblioteca JVector permite indexar conjuntos de dados maiores do que a memória usando vetores comprimidos

Requisitos

  • É necessário Linux ou MacOS (Windows não pode ser usado devido a limitações do ChronicleMap)
  • São necessários 180 GB de espaço livre para o conjunto de dados e 90 GB para o índice
  • É necessário RAM suficiente para executar uma JVM com 36 GB de heap durante a construção do índice
  • É necessário desativar o swap antes de construir o índice

Construção do índice e busca

Como funciona

  • Gera o índice vetorial com JVector e armazena os dados dos artigos com Chronicle Map
  • Usa Locally-Adaptive Quantization (LVQ) para compressão vetorial
  • Processa os dados em paralelo usando streams paralelos

Conclusão

  • Graças à biblioteca JVector, indexar toda a Wikipedia em inglês em um notebook passa a ser algo viável
  • Quando usado com o serviço DataStax Astra, é possível aproveitar recursos avançados de indexação com suporte a inserções, atualizações e exclusões em tempo real

Opinião do GN⁺

  • Inovação do JVector: o JVector pode trazer uma grande inovação para as áreas de ciência de dados e mecanismos de busca ao permitir indexar grandes conjuntos de dados sem as limitações de memória.
  • Praticidade: ao tornar possível que uma pessoa indexe toda a Wikipedia em um notebook, pesquisadores e desenvolvedores passam a conseguir usar grandes conjuntos de dados com mais facilidade.
  • Considerações técnicas: para adotar essa tecnologia, são necessários espaço em disco suficiente, memória adequada e configurações de sistema como a desativação do swap.
  • Tecnologias alternativas: outros projetos open source com funcionalidade semelhante incluem FAISS (Facebook AI Similarity Search) e Annoy (Approximate Nearest Neighbors Oh Yeah).
  • Otimização de desempenho: é possível otimizar o desempenho com processamento paralelo e técnicas de compressão vetorial, mas é preciso atenção à gestão dos recursos do sistema.

Ainda não há comentários.

Ainda não há comentários.