Description
ITZMA est une bibliothèque de base de données vectorielle basée sur Rust, conçue pour une recherche vectorielle efficace directement sur le stockage d'objets. Elle fournit une solution évolutive, durable et native du cloud pour les applications d'IA qui nécessitent que leurs données soient facilement accessibles sans les frais généraux d'un serveur de base de données intermédiaire. En intégrant ITZMA dans votre processus d'application, vous pouvez interagir directement avec le stockage d'objets comme S3, GCS, Azure, disque local ou même des magasins en mémoire, le considérant comme la source de vérité durable pour vos données vectorielles.
Lire la suite
L'architecture centrale d'ITZMA est conçue pour les environnements cloud, permettant à plusieurs processus de lire et d'écrire dans le même compartiment de stockage d'objets simultanément sans nécessiter de coordinateur, de verrou ou de leader. Cela est réalisé en tirant parti des fonctionnalités inhérentes de `put-if-absent` et de `mise à jour conditionnelle` des magasins d'objets, garantissant l'exactitude et la cohérence des données. Une opération d'écriture est confirmée dans le compartiment avant que l'appel ne retourne, garantissant la durabilité.
ITZMA prend en charge à la fois la recherche de vecteurs denses et clairsemés. Les vecteurs denses peuvent être indexés à l'aide des algorithmes HNSW ou SQ8, choisis par segment, avec des candidats réévalués sur des vecteurs exacts pour garantir des résultats précis. Les vecteurs clairsemés, représentés sous forme de paires (id de terme, poids), sont stockés aux côtés des vecteurs denses, permettant des requêtes clairsemées exactes avec un index inversé optionnel. De plus, elle offre des capacités de recherche filtrée, permettant aux utilisateurs de définir des attributs typés (Bool, Nombre, Texte, Ensemble de textes, Ensemble de nombres) lors de la création d'un espace de noms et d'appliquer des filtres indépendamment ou pour affiner les requêtes vectorielles.
Les fonctionnalités clés incluent des écritures par lots atomiques, un support pour divers backends de stockage d'objets, et une stratégie d'indexation flexible qui peut s'adapter à différents modèles d'accès (par exemple, HNSW pour les lectures mises en cache, SQ8 pour les lectures non mises en cache). La bibliothèque fournit également des liaisons Python sur son noyau Rust sécurisé en mémoire, la rendant accessible à une communauté de développeurs plus large. Les tâches de maintenance comme la compaction et l'indexation sont explicites, donnant aux développeurs un contrôle total sur leur gestion des données. ITZMA est construit par Sergio Marcial, un ingénieur logiciel principal avec une vaste expérience dans les systèmes distribués, visant à fournir une solution de recherche vectorielle précise et durable.
- CatégorieBases de données vectorielles et récupération
- Modèle tarifaireOpen source
- DéploiementLibrary
- PlateformesWeb
Fonctionnalités principales de ITZMA
Recherche vectorielle sur le stockage d'objets
Bibliothèque Rust avec liaisons Python
Stockage de données évolutif et durable
Architecture native du cloud sans serveur
Prend en charge la recherche de vecteurs denses (HNSW, SQ8)
Prend en charge la recherche de vecteurs clairsemés avec index inversé
Recherche filtrée sur attributs typés
Écritures simultanées de plusieurs processus
Mises à jour et suppressions par lots atomiques
Compatible avec S3, GCS, Azure, disque local, mémoire
Compaction et indexation explicites
Cache de lecture RAM et NVMe
Rapport de santé en lecture seule
Entrée NumPy et Arrow en Python
Comment utiliser ITZMA ?
Installer ITZMA : Ajoutez le crate Rust depuis crates.io ou installez le package Python depuis PyPI.
Créer un espace de noms : Définissez un espace de noms avec des dimensions fixes, une métrique (L2, cosinus, produit scalaire) et des attributs typés.
Écrire des documents : Envoyez des mises à jour et suppressions par lots à l'espace de noms, qui sont stockées dans le compartiment d'objets.
Interroger des données : Effectuez des requêtes vectorielles denses ou clairsemées, avec des filtres optionnels, pour récupérer les résultats les plus proches.
Gérer la maintenance : Appelez explicitement la compaction, la collecte des ordures et l'indexation selon les besoins pour des performances optimales.
Cas d'utilisation de ITZMA
- Création d'applications d'IA
- Stockage de données natif du cloud
- Récupération en temps réel
- Recherche de vecteurs denses et clairsemés
- Requêtes vectorielles filtrées
- Gestion de données distribuées
- Développement Rust et Python



