Hallo Sofia Muller,
Der Speicherzuordnungsfehler bei zehn Millionen Vektoren tritt auf, weil der HNSW-Graph vollständig im RAM aufgebaut wird und der Speicherbedarf durch zu hohe Werte für M und efConstruction exponentiell ansteigt. Der Parameter M bestimmt die maximale Anzahl bidirektionaler Verbindungen pro Vektor und beeinflusst den RAM-Bedarf am stärksten. Sie können den Wert für M auf 16 oder sogar 12 reduzieren und efConstruction auf etwa 64 bis 100 absenken, wodurch der Indexierungsaufwand drastisch sinkt und der Graph trotzdem eine hohe Genauigkeit behält.
Zusätzlich sollten Sie prüfen, ob die Vektordatenbank Scalar Quantization oder Product Quantization unterstützt, um die Vektordaten vor dem Indexaufbau von FP32 auf INT8 zu komprimieren. Bei Sammlungen dieser Größenordnung empfiehlt es sich zudem, den Datenbestand über mehrere Knoten oder Shards zu verteilen, um das physische RAM-Limit einzelner Maschinen nicht zu überschreiten.
Tracy Le.