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.
Žinių vamzdynas, sukurtas ant BitWeave reikšmės sluoksnio.
Teisingai suapvalinta matematika po BitWeave.
BitWeave publikuojamas penktajame fondo leidimų programos rate. Sukurk iš jo vieną semantinę būseną ir paleisk ją standartiniuose procesoriuose.
Padaryk reikšmę apskaičiuojamą, tada nuspręsk, ką su ja kurti
Vienas diske esantis indekso formatas visose trijose.
Naršyklės pusėje, suderinamos mažesnės būsenos, neprisijungus.
TCP arba UDS serveris, nuo kalbos nepriklausomi klientai.
Įterpk tiesiogiai į Rust, C arba Python procesą.
BitWeave veikia kaip procese įterpta biblioteka, kaip atskiras TCP arba Unix lizdo serveris arba sukompiliuotas į WASM, kad veiktų naršyklės pusėje su suderinama mažesne būsena. .bwks būsenos formatas yra tas pats visais trimis režimais; kurkite serveryje ir diekite tą pačią būseną naršyklėje be perkūrimo.
Etalonų kvitai publikuojami su saugykla, penktame rate
Paskelbtame DBpedia 100K vykdyme, tiksli BitWeave kelių užklausų konfigūracija grąžino 9,473 QPS, kai atšaukimas 1.000, 19 MB, i9-13900KF staliniame kompiuteryje su 24 branduoliais, AVX2 ir 48 GB. Išmatuota dviejų bitų apytikslio palyginimo sistema grąžino 3,580 QPS 38 MB tame pačiame kompiuteryje ir su tais pačiais duomenimis. Esant D4096 per 10K dokumentų, išmatuoti Hybrid-MultiQ paleidimai išlaikė atšaukimą 1.000 esant 35,842 QPS atsitiktiniuose duomenyse, 34,459 sugrupuotuose duomenyse ir 27,828 iš teksto gautuose duomenyse. Esant 250K dokumentų, tiksli kelių užklausų brutali jėga išmatavo 2,653 QPS, kai atšaukimas 1.000. Tai etalonų kvitai, ne universalūs pažadai; paleiskite rinkinį iš naujo savo korpuse ir aparatinėje įrangoje, kai saugykla bus publikuota.
Tikslus labai dideliu mastu. Daugiausia kibirų.
Daugiau kibirų, griežtesni kandidatų rinkiniai.
Geras atšaukimas, vidutinė kandidatų kaita.
Mažas kandidatų skaičius, didžiausias pralaidumas.
Linijinis nuskaitymas yra greitas SIMD esant mažam mastui, bet tampa kliūtimi labai dideliuose tekstynuose. LSH indeksas padalija hipervektorius į juostas; kandidatai, kurie susiduria bet kurioje juostoje, yra tiksliai įvertinami. Hybrid-MultiQ paketais apdoroja keturias užklausas viename SIMD registre, kad išlaikytų tikslų atšaukimą esant pralaidumui. Indeksas sukuriamas vieną kartą ir užklausiamas daug kartų.
Subtiesinis kandidatų generavimas mastelyje
Ciklinis poslinkis, užkoduoja tvarką ir padėtį.
Savis inversinis, susieja raktą su reikšme.
Daugumos balsavimas, superpozicija aibės sąvokų.
Dokumentas, užklausa, pastraipa, kodo simbolis visi užkoduojami kaip dvejetainis fiksuoto matmens hipervektorius. Numatytasis yra 4096 bitai, nes atsitiktinės projekcijos aritmetika ten elgiasi gerai, o 4096 bitų XOR ir popcount puikiai telpa AVX2, AVX-512 ir NEON registruose. Kodavimo priemonė yra deterministinė; tas pats tekstas kiekvieną kartą sukuria tą patį hipervektorių.
Žinių valdymas, pagrįstas BitWeave reikšmių sluoksniu.
Apribojimų variklis, veikiantis su gautais faktais.
Analizuoti ir turinio adresuoti prieš indeksavimą.
Patikrinamas įgyvendinimas, versijos fiksavimas ir jokios nuosavybinės vykdymo laiko priklausomybės.
Nėra tiekėjo gedimo, kurį reikėtų ištverti.
Užfiksuota semantinė sutartis, ta pati užsakyta rezultatas kiekviename serveryje.
Indeksai gyvena infrastruktūroje, kurią valdote. Jokio tiekėjo apdorojimo.
Duomenys lieka jurisdikcijoje, kurią pasirenkate. Saugojimo grandinė yra audituojama. Atitiktis sprendžiama architektūroje, o ne pridedama per valdymo skydelį.
Tikslus, išlaikytas per išmatuotus mastelius.
9 473 QPS, kai atšaukimas 1,000 DBpedia 100K, be GPU vykdymo metu.
Hybrid-MultiQ su 10 tūkst. dokumentų, atšaukimas 1,000.
9 473 užklausos per sekundę, kai atšaukimas 1,000 DBpedia 100K, 19 MB, i9-13900KF stalinis kompiuteris su AVX2 ir be GPU vykdymo metu. Semantinis variklis po Dweve krūva.
Deterministinis rezultatas, kurį galėsite paaiškinti vėliau.
Korpusas lieka jūsų valdomuose įrenginiuose.
Paieška užklausos kelyje, ne paketinė užduotis.
Laikykite failus ir reikšmių atvaizdavimą fiksuotus, ir tvarką galima atkurti.
Ta pati semantinė būsena užtikrina panašumo paiešką, kelių vektorių ištraukų atitikimą, metaduomenimis filtruotą paiešką, dublikatų aptikimą, klasterizavimą, vieno kadro prototipus ir RAG pagrindimą. Paieška yra matoma užklausa. Daugkartinio naudojimo pagrindas po ja yra vertė.
HDC kodavimo įrenginys, LSH indeksas, SIMD atstumas
Rust kūrinys, CLI, stabili C ABI, WASM versija ir Python susiejimai per maturin. SDK yra proceso viduje esantis kelias, serveris atskleidžia bendrą ribą su autentifikavimu ir stebėjimu, o susiejimai pereina į esamas kalbas neperkurdami atvaizdavimo. WASM įneša suderinamas mažesnes būsenas į naršyklės vykdymą. Kiekvienas paviršius turi tą pačią semantinę būseną, tuos pačius indekso susitarimus ir tuos pačius užsakytus atsakymus, patikrintus pagal vieną atitikties bazę, kad variklis neįgytų naujos reikšmės kiekvienam klientui.
Viena semantinė būsena, kiekvienas paviršius
Šalto paleidimo skaidymas labai dideliems duomenų rinkiniams.
Reguliuojamas atšaukimas, kelios juostų šeimos.
LSH kandidatai ir tikslus perskaičiavimas. Numatytasis tiksliam paieškai.
Tikslus SIMD nuskaitymas, paketinės užklausos. Atšaukimas 1,000.
BruteForce-MultiQ tikslioms, kompaktiškoms korpusoms, Hybrid-MultiQ tiksliam atšaukimui didesniu mastu, o reguliuojami LSH ir IVF pagrindai patiems didžiausiems korpusams. Kiekvienas indeksas yra viena operacijų šeima per tuos pačius hipervektorius.
Ta pati fiksuota semantinė sutartis, veikianti standartiniuose CPU, kuriuos jau turite, grąžina tą patį išdėstytą rezultatą.
Sujunkite kontekstą. Susiekite ryšį. Pertvarkykite eilę. Palyginkite rezultatą.
Dvejetainiai hipervektoriai semantinę reikšmę neša kaip supakuoti bitai. Išoriniai slankiojo kablelio šaltiniai kerta deklaruotą vienakryptę konversijos ribą; vietinė reprezentacija ir visa vidinė palyginimo bei vertinimo logika lieka dvejetainė arba fiksuoto taško.
XOR kiekvienai porai, rakto/reikšmės kodavimas.
HDC užkoduoja reikšmę per tūkstančius dvejetainių dimensijų, kur grupavimas fiksuoja aibes, susiejimas fiksuoja poras, o permutacija fiksuoja tvarką. Rezultatas yra vienas fiksuoto pločio hipervektorius, telpantis į kelias talpyklos eilutes. Dokumento lygio ir žetono lygio režimai egzistuoja kartu, todėl visas dokumentas gali būti sugrupuotas į vieną vektorių arba išlaikyti žetonų vektorių rinkinį vėlesnei sąveikai. Atvaizdavimas išlieka panašus esant nedideliam bitų triukšmui, todėl ta pati konstrukcija išgyvena mažus trikdžius neplečiant vektoriaus ir nepridedant atskiro pozicinio tenzoriaus.
XNOR ir POPCNT atstumas, viršuje rodomi geriausi.
Užklausa taip pat maišoma, eina tik per atitinkančius segmentus.
LSH šeimos maišo hipervektorius į segmentus.
Dokumentas į dvejetainį hipervektorių per sujungimą ir susiejimą.
Nuo dokumento iki užklausos, mažiau nei ms
Įvestis tampa dvejetainiu hipervektoriumi. Sujungimas, susiejimas ir permutacija sudaro aibes, vaidmenis ir tvarką prieš paleidžiant bet kurią užklausą. Indeksai, filtrai ir pakartotinis reitingavimas organizuoja kandidatus nekeisdami tipo. .bwks būsena išsaugo kodų knygą, vektorius, metaduomenis ir kilmę kartu. SIMD išsiuntimas vykdo tai aparatinėje įrangoje, kurią jau turite, o RAG arba tiesioginis atitikimas yra vienas rezultato panaudojimo būdas. Priklausomybės kryptis yra apgalvota: skaičiavimas niekada neimportuoja programos rūpesčių, kodavimo priemonės gali keistis neliesdamos indekso branduolių, o tipas kerta kiekvieną sluoksnį. Užklausų API yra paskutinis sluoksnis, o ne produktas.
Organizuoti. Išsaugoti. Vykdyti. Naudoti
Migracija yra ketvirčio trukmės projektas.
Ta pati užklausa, kitoks atsakymas kitą savaitę.
Už užklausą plius už GB plius už indeksuotą dokumentą.
Indeksai gyvena ten, kur nori pardavėjas.
Semantinį AI krūvos vidurį tiekia tiekėjų grandinė. Vienas įterpia turinį, kitas saugo vektorius, trečias atrenka kandidatus, ketvirtas juos perreitinguoja, o modelis paverčia rezultatą proza. Kiekvienas sluoksnis keičia savo modelį, indeksą, kainą ir regioną nepriklausomai, ir niekas negali įvardyti visos semantinės būsenos.
Prisotina SIMD įprastoje techninėje įrangoje.
„BitWeave“ tekstą, vaizdus, garsą ir esamus vektorius paverčia fiksuoto pločio dvejetainiais hipervektoriais: natūraliu semantiniu tipu su algebra, kurią galite sudėti, palyginti, indeksuoti, filtruoti, reitinguoti, saugoti ir vykdyti bet kur. Paieška yra viena operacija. RAG yra viena programa.
Duomenys lieka jūsų pasirinktoje jurisdikcijoje. Veiksmų grandinė yra audituojama. Atitiktis sprendžiama architektūroje, o ne pridedama per valdymo skydelį, todėl kiekvienas peržiūros reikalavimas turi struktūrinį atsakymą, o ne pažadą.
Kai „BitWeave“ publikuojamas, nukreipkite jį į vieną aplanką ir sukurkite pirmąją semantinę būseną nesiremdami išorine paslauga.
Aplankas su jūsų failais. Jie lieka tiksliai ten, kur yra, jūsų pusėje sienos.
Standartiniai serveriai ar kompiuteriai, kuriuos jau naudojate. Be GPU, be specialios įrangos, kurią reikėtų pirkti.
Diegimas nereiškia migracijos programos. Tas pats variklis veikia trimis būdais: įrankio, kurį jūsų darbuotojai jau naudoja, viduje, kaip viena bendra vidinė paslauga visoms komandoms arba neprisijungus viename kompiuteryje jautriausiai medžiagai. Suderinama semantinė būsena juda tarp visų trijų, todėl pirmasis pasirinkimas niekada nėra vienkryptės durys.