A Weaviate 1.39 új, 4 bites tömörítést hoz a vektoros kereséshez

A Weaviate 1.39 új, 4 bites Rotational Quantization támogatást kapott, amely a vállalat mérései szerint hasonló visszahívási arányt kínál 45 százalékkal kisebb heaphasználat mellett. A frissítés az 8 bites változat sebességét, a kódolást és a memória-hozzáférést is javítja.
- A Weaviate 1.39 bevezeti a 4 bites Rotational Quantization támogatását.
- Az RQ4 a vállalat mérése szerint 45 százalékkal csökkenti a heaphasználatot.
- Az 8 bites RQ kódolása Intel Xeon 8581C-n 3,8-szor gyorsult.
- A középre igazított RQ4c több adathalmazon javította a recall@10 értéket.
- A tesztelt visszahívás 1 millió és 250 millió vektor között stabil maradt.
Gyorsabb kódolás és távolságszámítás
A Weaviate szeptember 17-én ismertetett fejlesztése szerint a Rotational Quantization, röviden RQ, korábban 8 bites és 1 bites méretben volt elérhető. A technika a vektoros keresés gyorsítását és a memóriahasználat csökkentését célozza, miközben a Weaviate szerint a skaláris és bináris kvantálásnál jobb visszahívást biztosíthat.
A 4 bites támogatás a Weaviate 1.39 része. A fejlesztők javították a forgatást, a távolságmérő kernelokat, a kódolást és a memóriafeldolgozási útvonalat. A Fast Walsh-Hadamard Transforms, vagyis FWHT műveleteihez SIMD-támogatást adtak. Intel Xeon 8581C processzoron az FWHT64 végrehajtása 81,3 nanomásodpercről 26,5 nanomásodpercre, az FWHT256-é pedig 515 nanomásodpercről 84,5 nanomásodpercre csökkent.
A teljes RQ-család kódolási teljesítménye is javult. Az 8 bites RQ Intel Xeon 8581C-n 3,8-szor, Apple M1-en 2,4-szer gyorsult a Weaviate mérésében. A 4 bites, nem középre igazított változat kódolása ugyanezeken a processzorokon 6,36, illetve 5,65 mikroszekundumot vett igénybe.
Kevesebb memória, hasonló visszahívás
A távolságszámításhoz a fejlesztők SIMD nibble, vagyis fél bájtos műveleteket vezettek be a 4 bites adatokhoz. Az 8 bites kvantálás is gyorsult: 768 dimenziós vektoroknál az Intel Xeon 8581C-n mért idő 34,3 nanomásodpercről 16,6 nanomásodpercre csökkent, 1024 dimenziónál pedig 42,8-ról 19,8 nanomásodpercre.
A Weaviate szerint a grafalapú közelítő legközelebbi szomszéd keresésnél, például HNSW-indexek esetében, gyakran a memória-sávszélesség a szűk keresztmetszet. Ezért az 1.39-ben előzetes adatbetöltést, úgynevezett prefetchinget vezettek be AMD64 és ARM64 architektúrákon. Egy 1 millió vektort tartalmazó, 1536 dimenziós indexen a prefetching 7 és 11 százalék közötti lekérdezési teljesítménynövekedést, valamint 12 százalékkal gyorsabb importálást eredményezett a vállalat A/B tesztjében.
A középre igazított 4 bites RQ, az RQ4c, több adathalmazon 0,1 és 6,1 százalékpont közötti recall@10 javulást hozott. A két legnagyobb abszolút értékű, elforgatott koordináta pontos tárolása további 0,2 és 1,7 százalékponttal javította a visszahívást. A 1536 dimenziós adathalmazon az RQ4 heapigénye 45 százalékkal volt kisebb, miközben a Weaviate szerint a keresési teljesítmény és a visszahívás görbéje meghaladta az 8 bites változatét.
A tesztek szerint nagyobb adathalmazokon is stabil marad
A Weaviate külön vizsgálta, hogyan alakul az RQ teljesítménye 1 millió és 250 millió vektor között. A Meta Sphere korpuszának DPR, 768 dimenziós, skaláris szorzatra épülő mintáján a tesztelt RQ8 recall@10 értéke 97,15-ről 96,90-re változott. Az RQ4c 94,00 és 93,53, az RQ4 pedig 84,58 és 85,02 közötti értékeket adott az említett méreteken.
A vállalat értelmezése szerint a visszahívás ebben az 1 millió és 250 millió vektor közötti tartományban lényegében stabil maradt. A teszt azt is megmutatta, hogy a legjobb 20 találat újrapontozása az eredeti, nem kvantált vektorokkal jelentősen javítja a visszahívást. A Weaviate ugyanakkor jelzi, hogy a közelítő indexek paraméterei nagyobb adathalmazoknál romló teljesítményt mutathatnak, ezért ilyen méretnél a megfelelő felosztás, vagyis a sharding továbbra is ajánlott.
Az importálási idő szintén csökkent. A Weaviate 1.38-hoz képest az 8 bites RQ importja 16 százalékkal lett gyorsabb, míg az RQ4 és az RQ4c az 1.38-as alapértékhez képest 37, illetve 32 százalékkal kevesebb idő alatt végzett.
Weaviate: 4-bit Rotational Quantization
