Binary Hypervector Engine in Rust | Dweve BitWeave
BitWeave is a binary hypervector engine in Rust. Apache-2.0 terms, self-hosted; the repository publishes in the fifth release round.
Groupes d'algorithmes par type de données
Pipeline de connaissances construit sur la couche de sens BitWeave.
Mathématiques correctement arrondies sous BitWeave.
BitWeave publie lors du cinquième cycle du programme de versions de la fondation. Construisez un état sémantique unique à partir de celui-ci et exécutez-le sur des processeurs standard.
Rendez le sens calculable, puis décidez quoi construire avec
Un format d'index sur disque unique pour les trois.
Côté navigateur, états plus petits compatibles, hors ligne.
Serveur TCP ou UDS, clients indépendants du langage.
Intégration directe dans un processus Rust, C ou Python.
BitWeave s'exécute comme bibliothèque en processus, comme serveur autonome TCP ou socket Unix, ou compilé en WASM pour une exécution côté navigateur sur un état plus petit compatible. Le format d'état .bwks est le même dans les trois modes ; construisez sur un serveur et déployez le même état dans un navigateur sans reconstruire.
Les reçus de benchmark sont publiés avec le dépôt, au cinquième cycle
Sur l'exécution publiée DBpedia 100K, la configuration exacte multi-requêtes de BitWeave a renvoyé 9 473 QPS avec un rappel de 1.000 dans 19 Mo sur un ordinateur de bureau i9-13900KF avec 24 cœurs, AVX2 et 48 Go. Le système de comparaison approximative à deux bits mesuré a renvoyé 3 580 QPS dans 38 Mo sur le même hôte et les mêmes données. À D4096 sur 10 000 documents, les exécutions Hybrid-MultiQ mesurées ont maintenu un rappel de 1.000 à 35 842 QPS sur des données aléatoires, 34 459 sur des données groupées et 27 828 sur des données dérivées de texte. À 250 000 documents, la force brute exacte multi-requêtes a mesuré 2 653 QPS avec un rappel de 1.000. Ce sont des reçus de benchmark, pas des promesses universelles ; réexécutez la suite sur votre propre corpus et matériel une fois le dépôt publié.
sur 10 000 docs. Processeur grand public
Exact à très grande échelle. La plupart des buckets.
Plus de buckets, ensembles de candidats plus restreints.
Bon rappel, rotation de candidats modérée.
Faible nombre de candidats, débit maximal.
Un balayage linéaire est rapide sur SIMD à petite échelle mais devient le goulot d'étranglement sur de très grands corpus. L'index LSH divise les hypervecteurs en bandes ; les candidats qui entrent en collision dans une bande sont scorés exactement. Hybrid-MultiQ traite quatre requêtes par registre SIMD pour maintenir un rappel exact au débit. L'index est construit une fois et interrogé de nombreuses fois.
Génération de candidats sous-linéaire à l'échelle
Décalage cyclique, encode l'ordre et la position.
Vote majoritaire, superpose un ensemble de concepts.
Un document, une requête, un passage, un symbole de code s'encodent tous comme un hypervecteur binaire de dimension fixe. La valeur par défaut est 4096 bits, car l'arithmétique de projection aléatoire y est bien conditionnée et un XOR et un popcount de 4096 bits tiennent proprement dans les registres AVX2, AVX-512 et NEON. L'encodeur est déterministe ; le même texte produit le même hypervecteur à chaque exécution.
Gouvernance des connaissances construite sur la couche de signification BitWeave.
Moteur de contraintes sur les faits récupérés.
Analyser et adresser par contenu avant l'indexation.
Implémentation inspectable, épinglage de version et aucune dépendance d'exécution propriétaire.
Contrat sémantique épinglé, même résultat ordonné sur chaque serveur.
Les index vivent sur une infrastructure que vous contrôlez. Aucun traitement par un fournisseur.
Les données restent dans la juridiction de votre choix. La chaîne de traçabilité est auditable. La conformité est traitée dans l'architecture plutôt qu'ajoutée via un tableau de bord.
Exact, maintenu sur les échelles mesurées.
9 473 QPS avec un rappel de 1,000 sur DBpedia 100K, sans GPU dans l'exécution.
Hybrid-MultiQ à 10K documents, rappel de 1,000.
9 473 requêtes par seconde avec un rappel de 1,000 sur DBpedia 100K, en 19 Mo sur un ordinateur de bureau i9-13900KF avec AVX2 et sans GPU dans l'exécution. Le moteur sémantique sous la pile Dweve.
Un résultat déterministe que vous pouvez expliquer plus tard.
Le corpus reste sur les machines que vous contrôlez.
La récupération sur le chemin de requête, pas un traitement par lots.
Gardez les fichiers et la carte de sens fixes, et l'ordre peut être reproduit.
Le même état sémantique alimente la recherche de similarité, la correspondance de passages multi-vecteurs, la recherche filtrée par métadonnées, la détection de doublons, le clustering, les prototypes à usage unique et le grounding RAG. La recherche est la requête visible. Le substrat réutilisable en dessous est la valeur.
Une crate Rust, une CLI, une ABI C stable, une build WASM et des liaisons Python via maturin. Le SDK est le chemin dans le processus, le serveur expose une frontière partagée avec authentification et observabilité, et les liaisons traversent les langages existants sans réimplémenter la représentation. WASM apporte des états plus petits compatibles dans l'exécution côté navigateur. Chaque surface porte le même état sémantique, les mêmes contrats d'index et les mêmes réponses ordonnées, vérifiés contre une seule ligne de base de conformité afin que le moteur n'acquière pas un nouveau sens par client.
Partitionnement à froid pour les très grands ensembles de données.
Rappel réglable, plusieurs familles de bandes.
Candidats LSH plus re-score exact. Par défaut pour la recherche exacte.
Analyse SIMD exacte, requêtes par lots. Rappel de 1,000.
BruteForce-MultiQ pour les corpus exacts et restreints, Hybrid-MultiQ pour un rappel exact à plus grande échelle, et les backends LSH et IVF réglables pour les très grands corpus. Chaque index est une famille d'opérations sur les mêmes hypervecteurs.
Le même contrat sémantique épinglé, sur des CPU standard que vous possédez déjà, renvoie le même résultat ordonné.
Regroupez le contexte. Liez la relation. Permutez l'ordre. Comparez le résultat.
Les hypervecteurs binaires portent une signification sémantique sous forme de bits compressés. Les sources flottantes externes franchissent une frontière de conversion unidirectionnelle déclarée ; la représentation native et toutes les comparaisons et notations internes restent binaires ou en virgule fixe.
HDC encode la signification à travers des milliers de dimensions binaires où le regroupement capture les ensembles, la liaison capture les paires et la permutation capture l'ordre. Le résultat est un hypervecteur unique à largeur fixe qui tient dans quelques lignes de cache. Les modes au niveau document et au niveau jeton coexistent, donc un document entier peut se regrouper en un seul vecteur ou conserver un ensemble de vecteurs de jetons pour une interaction tardive. La représentation reste similaire sous un bruit de bits modeste, donc la même construction survit à de petites perturbations sans élargir le vecteur ni ajouter un tenseur positionnel séparé.
La requête est aussi hachée, ne parcourt que les buckets correspondants.
Les familles LSH hachent les hypervecteurs dans des buckets.
Document en hypervecteur binaire via regroupement et liaison.
L'entrée devient un hypervecteur binaire. Regrouper, lier et permuter composent des ensembles, des rôles et un ordre avant qu'une requête ne soit exécutée. Les index, filtres et reclassements organisent les candidats sans redéfinir le type. L'état .bwks persiste le codebook, les vecteurs, les métadonnées et la provenance ensemble. La distribution SIMD l'exécute sur le matériel que vous possédez déjà, et la RAG ou une correspondance directe est une utilisation du résultat. La direction des dépendances est délibérée : le calcul n'importe jamais de préoccupations applicatives, les encodeurs peuvent changer sans toucher aux noyaux d'index, et le type traverse chaque couche. L'API de requête est la dernière couche, pas le produit.
Organiser. Persister. Exécuter. Utiliser
La migration est un projet d'un trimestre.
Même requête, réponse différente la semaine suivante.
Par requête plus par Go plus par document indexé.
Les index vivent là où le fournisseur le souhaite.
Le milieu sémantique de la pile IA est fourni par une chaîne de fournisseurs. L'un intègre le contenu, un autre stocke les vecteurs, un autre sélectionne les candidats, un autre les reclassifie, et un modèle transforme le résultat en prose. Chaque couche change son modèle, son index, son prix et sa région indépendamment, et personne ne peut nommer l'état sémantique complet.
BitWeave transforme le texte, les images, l'audio et les vecteurs existants en hypervecteurs binaires de largeur fixe : un type sémantique natif avec une algèbre que vous pouvez composer, comparer, indexer, filtrer, classer, stocker et exécuter n'importe où. La recherche est une opération. Le RAG est une application.
Les données restent dans la juridiction de votre choix. La chaîne de traçabilité est auditable. La conformité est traitée dans l'architecture plutôt qu'ajoutée via un tableau de bord, de sorte que chaque obligation soulevée par un examen a une réponse structurelle plutôt qu'une promesse.