Die Vektorähnlichkeitssuche ist ein kritischer, aber ressourcenintensiver Bestandteil von Retrieval-Augmented Generation (RAG)-Pipelines, insbesondere auf Edge-Geräten. Wir adressieren diese Herausforderung mit einem hochoptimierten zweistufigen Flachscan-Primitiv unter Verwendung von Single Instruction, Multiple Data (SIMD)-Befehlen (AVX2 auf x86, NEON auf ARM). Der erste Schritt verwendet ein bandbreiteneffizientes binäres Sketch, um Kandidaten vorzuwählen, und der zweite Schritt wendet eine präzise, SIMD-beschleunigte Neubewertung an, um das endgültige Ranking zu verfeinern. Wir bewerten dieses Primitiv im Vergleich zu mehreren Quantisierungs- und Dimensionsreduzierungstechniken und analysieren Handelsmöglichkeiten hinsichtlich Latenz, Genauigkeit, Speicher und Energie. Auf einem PC mit einem 1,2 Millionen Vektor-Datensatz erreicht unsere Methode einen Geschwindigkeitszuwachs von mehr als 120 × gegenüber einer nicht-SIMD float32-Basislinie und hält dabei einen NDCG@100-Wert von 0,99. Auf einem Raspberry Pi 3 mit einem 60.000-Vektor-Subset reduziert dieselbe Methode die Abfrage-Latenz um 39 × bis 59 × und den Energieverbrauch um 41 × gegenüber der gleichen Basislinie, während ein NDCG@100 von 0,98 erreicht wird. Unsere Ergebnisse zeigen, dass eine effektive Optimierung des Flachscans erhebliche Leistungs- und Energieeffizienzgewinne liefern kann, trotz eingeschränkter Speicherdurchsatz und begrenzter Rechenressourcen.
Simon et al. (Donnerstag) haben diese Frage untersucht.