Descrição
ITZMA é uma biblioteca de banco de dados vetorial baseada em Rust, projetada para busca eficiente de vetores diretamente em armazenamento de objetos. Ela fornece uma solução escalável, durável e nativa da nuvem para aplicações de IA que requerem que seus dados estejam prontamente acessíveis sem a sobrecarga de um servidor de banco de dados intermediário. Ao incorporar o ITZMA dentro do processo do seu aplicativo, você pode interagir diretamente com armazenamento de objetos como S3, GCS, Azure, disco local ou até mesmo armazenamentos em memória, tratando-o como a fonte durável de verdade para seus dados vetoriais.
Ler mais
A arquitetura central do ITZMA é projetada para ambientes de nuvem, permitindo que múltiplos processos leiam e escrevam no mesmo bucket de armazenamento de objetos simultaneamente, sem a necessidade de um coordenador, bloqueio ou líder. Isso é alcançado aproveitando as funcionalidades inerentes de `put-if-absent` e `atualização condicional` dos armazenamentos de objetos, garantindo a correção e consistência dos dados. Uma operação de gravação é confirmada no bucket antes que a chamada retorne, garantindo durabilidade.
O ITZMA suporta tanto busca de vetores densos quanto esparsos. Vetores densos podem ser indexados usando algoritmos HNSW ou SQ8, escolhidos por segmento, com candidatos reordenados em vetores exatos para garantir resultados precisos. Vetores esparsos, representados como pares (id do termo, peso), são armazenados ao lado dos densos, permitindo consultas esparsas exatas com um índice invertido opcional. Além disso, oferece capacidades de busca filtrada, permitindo que os usuários definam atributos tipados (Bool, Número, Texto, Conjunto de Texto, Conjunto de Números) ao criar um namespace e apliquem filtros de forma independente ou para restringir consultas vetoriais.
As principais características incluem gravações em lote atômicas, suporte para vários backends de armazenamento de objetos e uma estratégia de indexação flexível que pode se adaptar a diferentes padrões de acesso (por exemplo, HNSW para leituras em cache, SQ8 para leituras não cacheadas). A biblioteca também fornece bindings para Python sobre seu núcleo seguro em memória em Rust, tornando-a acessível a uma comunidade de desenvolvedores mais ampla. Tarefas de manutenção como compactação e indexação são explícitas, dando aos desenvolvedores controle total sobre a gestão de seus dados. O ITZMA é construído por Sergio Marcial, um engenheiro de software principal com ampla experiência em sistemas distribuídos, visando fornecer uma solução de busca vetorial precisa e durável.
- CategoriaBancos de dados vetoriais e recuperação
- Modelo de preçosCódigo aberto
- ImplantaçãoLibrary
- PlataformasWeb
Recursos principais de ITZMA
Busca vetorial em armazenamento de objetos
Biblioteca Rust com bindings para Python
Armazenamento de dados escalável e durável
Arquitetura nativa da nuvem sem servidor
Suporta busca de vetores densos (HNSW, SQ8)
Suporta busca de vetores esparsos com índice invertido
Busca filtrada em atributos tipados
Gravações concorrentes de múltiplos processos
Upserts e exclusões em lote atômicos
Compatível com S3, GCS, Azure, disco local, memória
Compactação e indexação explícitas
Cache de leitura em RAM e NVMe
Relatório de saúde somente leitura
Entrada NumPy e Arrow em Python
Como usar ITZMA?
Instalar ITZMA: Adicione o crate Rust do crates.io ou instale o pacote Python do PyPI.
Criar um namespace: Defina um namespace com dimensões fixas, métrica (L2, cosseno, produto escalar) e atributos tipados.
Escrever documentos: Envie upserts e exclusões em lote para o namespace, que são armazenados no bucket de objetos.
Consultar dados: Realize consultas vetoriais densas ou esparsas, com filtros opcionais, para recuperar os resultados mais próximos.
Gerenciar manutenção: Chame explicitamente compactação, coleta de lixo e indexação conforme necessário para desempenho ideal.
Casos de uso de ITZMA
- Construindo Aplicações de IA
- Armazenamento de Dados Nativo da Nuvem
- Recuperação em Tempo Real
- Busca de Vetores Densos e Esparsos
- Consultas Vetoriais Filtradas
- Gestão de Dados Distribuídos
- Desenvolvimento em Rust e Python



