- 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.