Zvec est une base de donnees vectorielle embarquee open source d’Alibaba, construite sur leur moteur Proxima. Le positionnement est simple: une recherche vectorielle qui s’execute en cours de processus, sans serveur, avec la meme facilite d’installation que SQLite.
Le vide qu’il comble est reel. Faiss donne des index mais pas de CRUD ni de recuperation apres crash. DuckDB-VSS a des fonctionnalites vectorielles limitees. Milvus necessite son propre processus et un saut reseau. Zvec vise a etre l’option qui fonctionne simplement quand on construit un pipeline RAG local, un outil en ligne de commande, ou n’importe quoi en local ou on a besoin de recherche semantique sans infrastructure.
Fonctionnalites cles: index HNSW et IVF, recherche hybride (similarite vectorielle plus filtres scalaires integres a l’index), quantification pour les environnements a memoire limitee, et controles de ressources integres pour la concurrence des fils et les limites memoire. Ils revendiquent plus de 8 000 requetes par seconde sur des benchmarks standards.
import zvec
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
collection.insert([zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]})])
results = collection.query(zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]), topk=10)
Pas encore essaye, mais l’analogie avec SQLite est bien choisie.