Kevesebb memóriával gyorsabb vektorkeresést ígér a Neo4j új megoldása

A Neo4j 2026.09 verziója alapértelmezetté teszi az újonnan létrehozott vektorindexeknél az újraértékelt bináris kvantálást. A cég szerint a módszer jelentősen csökkenti a keresési struktúrák memóriaigényét, miközben a találati pontosság és a sebesség a skaláris kvantáláshoz hasonló marad.
- A Neo4j 2026.09-ben alapértelmezett lett a rescored binary vektorkeresés.
- A módszer binárisan tömörített vektorokkal keres, majd teljes pontosságú vektorokkal újraértékel.
- A Neo4j példája szerint 224 MB memória kell a bináris, és 896 MB a skaláris indexhez.
- A 3,0-s keresési bővítési tényező a Neo4j tesztjeiben a skalárishoz hasonló visszakeresést adott.
- A korábbi indexeket a teljesítményjavulás kihasználásához újra kell építeni.
Tömörített vektorokkal keres, teljes pontossággal ellenőriz
A Neo4j szeptember 23-án bemutatott megoldása először binárisan kvantált, vagyis 1 bites vektorokkal végez kibővített keresést. Ez állítja elő a lehetséges találatok listáját, amelyet a rendszer ezután a teljes pontosságú vektorokkal újraértékel.
A módszer célja, hogy a memóriában csak a kisebb HNSW, azaz Hierarchical Navigable Small World gráf és a tömörített vektorok maradjanak. Az újraértékeléshez szükséges teljes pontosságú vektorokat a rendszer lemezről olvassa be. A Neo4j ezt a technikát High Fidelity Quantized, röviden HFQ vektorkeresésnek nevezi, amelyet a cég szerint a Nanyang Technological University RaBitQ kutatása, majd a Lucene BBQ megvalósítása inspirált.
A Neo4j 2026.09 verzióban végzett mérései alapján az előző, 2026.08-as kiadáshoz képest körülbelül ötszörös javulás érhető el mind az áteresztőképességben, mind a lekérdezési késleltetésben. A módszertanról és az eredményekről a vállalat egy későbbi benchmark-bejegyzésben ígér részletesebb magyarázatot.
Négyszer több vektor férhet el ugyanakkora memóriában
A Neo4j példája szerint 768 dimenziós Float32-beágyazásoknál ugyanabba a memória-keretbe körülbelül négyszer annyi vektor férhet az index HNSW-gráfjával és kvantált értékeivel együtt, mint a korábbi, 8 bites skaláris kvantálás esetén.
A különbség egy egymillió, 768 dimenziós vektorból álló példán is látható. A binárisan kvantált vektorértékek körülbelül 96 MB-ot, a HNSW-gráf pedig 128 MB-ot igényel, így a teljes becsült memóriaigény 224 MB. Skaláris kvantálásnál ugyanez 768 MB vektorértéket és 128 MB-os gráfot, összesen 896 MB-ot jelent. A számítások nem tartalmaznak további metaadatot és többletterhelést.
A csökkenés azért nem nyolcszoros, mert a bináris kvantálás elsősorban a vektorértékek méretét mérsékli, a HNSW-gráfét nem. Emiatt a gráf a teljes memóriaigény nagyobb részét adja.
Az új indexeknél ez lett az alapértelmezés
A rescored binary mód a Neo4j 2026.09 Aura, Enterprise Edition és Community Edition kiadásaiban az újonnan létrehozott vektorindexek alapértelmezett beállítása. A vállalat a legtöbb munkaterheléshez ezt javasolja kiindulópontként.
Az alapértelmezett keresési bővítési tényező 3,0. Ha a lekérdezés 10 találatot kér, a rendszer kezdetben legfeljebb 30 jelöltet keres meg a binárisan kvantált vektorok alapján, majd ezekből választja ki a végső 10-et a teljes pontosságú újraértékelés után. A Neo4j tesztjeiben ez a beállítás a skaláris kvantáláshoz hasonló visszakeresési pontosságot, késleltetést és áteresztőképességet adott, kisebb memóriaigény mellett.
A skaláris kvantálás a cég szerint akár 30 százalékkal alacsonyabb késleltetést is kínálhat, ha a nagyobb keresési struktúrák elférnek a memóriában. A teljes pontosságú vagy skaláris keresés ezért továbbra is összehasonlítható olyan munkaterheléseknél, ahol a lehető legalacsonyabb késleltetés az elsődleges szempont.
A meglévő indexeket újra kell építeni
A rescored binary funkció előzetesként a Neo4j 2026.06 verziójában jelent meg, általánosan elérhetővé pedig a 2026.07 kiadásban vált. A Neo4j szerint a teljesítmény azóta jelentősen javult, ezért a 2026.09-re frissítő felhasználóknak érdemes újraépíteniük meglévő indexeiket.
A vállalat szerint az újraépítés megbízható módja annak, hogy az index teljes egészében részesüljön a fejlesztésekből. Az index az újraépítés ideje alatt nem használható vektorkeresésre, és csak akkor válik ismét elérhetővé, amikor az állapota ONLINE.
A Neo4j Aura vektorkeresési munkaterhelésekhez vektorokra optimalizált konfigurációt ajánl, amely az instance memóriájának nagyobb részét rendeli a vektorindexekhez. A cég a legnagyobb, 1:16 arányú elérhető lemezméret kiválasztását is javasolja, mivel a kisebb memóriaigény mellett a teljes pontosságú, újraértékeléshez szükséges vektorokat továbbra is lemezen kell tárolni.


