Lesen von Papier|HM-ANN Wenn ANNS auf heterogenen Speicher trifft
HM-ANN: Efficient Billion-Point Nearest Neighbor Search on Heterogenous Memory ist ein Forschungspapier, das auf der 2020 Conference on Neural Information Processing Systems(NeurIPS 2020) angenommen wurde. In diesem Papier wird ein neuartiger Algorithmus für graphbasierte Ähnlichkeitssuche, genannt HM-ANN, vorgeschlagen. Dieser Algorithmus berücksichtigt sowohl die Heterogenität des Speichers als auch die Heterogenität der Daten in einer modernen Hardwareumgebung. HM-ANN ermöglicht eine Ähnlichkeitssuche in Milliardenhöhe auf einer einzigen Maschine ohne Komprimierungstechnologien. Heterogener Speicher (HM) ist eine Kombination aus schnellem, aber kleinem dynamischen Direktzugriffsspeicher (DRAM) und langsamem, aber großem persistenten Speicher (PMem). HM-ANN erreicht eine niedrige Suchlatenz und eine hohe Suchgenauigkeit, insbesondere wenn der Datensatz nicht in den DRAM passt. Der Algorithmus hat einen deutlichen Vorteil gegenüber dem Stand der Technik bei der approximativen Suche nach dem nächsten Nachbarn (ANN).
Seit ihrer Einführung stellen ANN-Suchalgorithmen aufgrund der begrenzten DRAM-Kapazität einen grundlegenden Kompromiss zwischen Abfragegenauigkeit und Abfragelatenz dar. Um Indizes im DRAM für einen schnellen Abfragezugriff zu speichern, ist es notwendig, die Anzahl der Datenpunkte zu begrenzen oder komprimierte Vektoren zu speichern, was beides die Suchgenauigkeit beeinträchtigt. Graphenbasierte Indizes (z. B. Hierarchical Navigable Small World, HNSW) haben eine bessere Abfrage-Laufzeitleistung und Abfragegenauigkeit. Allerdings können diese Indizes auch 1-TiB-DRAM verbrauchen, wenn sie mit Datensätzen im Milliardenbereich arbeiten.
Es gibt andere Lösungen, um zu vermeiden, dass DRAM Datensätze in Milliardengröße im Rohformat speichert. Wenn ein Datensatz zu groß ist, um auf einer einzelnen Maschine in den Speicher zu passen, werden komprimierte Verfahren wie die Produktquantisierung der Punkte des Datensatzes verwendet. Allerdings ist die Wiederauffindbarkeit dieser Indizes mit dem komprimierten Datensatz aufgrund des Präzisionsverlusts bei der Quantisierung normalerweise gering. Subramanya et al. [1] erforschen die Nutzung von Solid-State-Laufwerken (SSD), um eine ANN-Suche in Milliardenhöhe mit einer einzigen Maschine zu erreichen, mit einem Ansatz namens Disk-ANN, bei dem der Rohdatensatz auf SSD und die komprimierte Darstellung auf DRAM gespeichert wird.
1.png
Heterogener Speicher (HM) ist die Kombination aus schnellem, aber kleinem DRAM und langsamem, aber großem PMem. DRAM ist normale Hardware, die in jedem modernen Server zu finden ist, und sein Zugriff ist relativ schnell. Neue PMem-Technologien wie die Intel® Optane™ DC Persistent Memory Modules schließen die Lücke zwischen NAND-basiertem Flash (SSD) und DRAM und beseitigen den E/A-Engpass. PMem ist langlebig wie SSD und wie Speicher direkt von der CPU adressierbar. Renen et al. [2] haben herausgefunden, dass die PMem-Lesebandbreite 2,6-mal niedriger und die Schreibbandbreite 7,5-mal niedriger ist als die von DRAM in der konfigurierten Versuchsumgebung.
HM-ANN ist ein genauer und schneller ANN-Suchalgorithmus in Milliardenhöhe, der auf einer einzigen Maschine ohne Komprimierung läuft. Das Design von HM-ANN verallgemeinert die Idee von HNSW, dessen hierarchische Struktur natürlich in HM passt. HNSW besteht aus mehreren Schichten - nur Schicht 0 enthält den gesamten Datensatz, und jede verbleibende Schicht enthält eine Teilmenge von Elementen aus der direkt darunter liegenden Schicht.
2.png
- Die Elemente in den oberen Schichten, die nur Teilmengen des Datensatzes enthalten, verbrauchen nur einen kleinen Teil des gesamten Speichers. Diese Beobachtung macht sie zu geeigneten Kandidaten für die Unterbringung im DRAM. Auf diese Weise wird erwartet, dass die meisten Suchvorgänge bei HM-ANN in den oberen Schichten stattfinden, wodurch die schnelle Zugriffscharakteristik von DRAM maximal ausgenutzt werden kann. Bei HNSW hingegen finden die meisten Suchvorgänge in der untersten Schicht statt.
- Da der Zugriff auf die Schicht 0 langsamer ist, ist es vorzuziehen, dass bei jeder Abfrage nur auf einen kleinen Teil zugegriffen wird und die Zugriffshäufigkeit reduziert wird.
Algorithmus zur Erstellung von Graphen
3.png
Der Kerngedanke der HM-ANN-Konstruktion besteht darin, qualitativ hochwertige obere Schichten zu schaffen, um eine bessere Navigation für die Suche auf Schicht 0 zu ermöglichen. So erfolgt der meiste Speicherzugriff im DRAM, und der Zugriff im PMem wird reduziert. Um dies zu ermöglichen, hat der Konstruktionsalgorithmus von HM-ANN eine Top-Down-Einfügephase und eine Bottom-Up-Promotion-Phase.
In der Top-Down-Einfügephase wird ein navigierbarer Small-World-Graph erstellt, wenn die unterste Schicht auf dem PMem platziert wird.
In der Bottom-up-Promotion-Phase werden Pivot-Punkte aus der untersten Schicht in die oberen Schichten eingefügt, die ohne größere Genauigkeitsverluste auf dem DRAM platziert werden. Wenn eine qualitativ hochwertige Projektion von Elementen aus Schicht 0 in Schicht 1 erstellt wird, findet die Suche in Schicht 0 die genauen nächsten Nachbarn der Anfrage mit nur wenigen Sprüngen.
- Anstelle der zufälligen Auswahl von HNSW für die Beförderung verwendet HM-ANN eine Beförderungsstrategie mit hohem Grad, um Elemente mit dem höchsten Grad in Schicht 0 in Schicht 1 zu befördern. Für höhere Schichten befördert HM-ANN Knoten mit hohem Grad in die obere Schicht, basierend auf einer Beförderungsrate.
- HM-ANN befördert mehr Knoten von Schicht 0 nach Schicht 1 und legt für jedes Element in Schicht 1 eine größere maximale Anzahl von Nachbarn fest. Die Anzahl der Knoten in den oberen Schichten wird durch den verfügbaren DRAM-Speicherplatz bestimmt. Da die Schicht 0 nicht im DRAM gespeichert wird, erhöht sich die Suchqualität, wenn jede Schicht im DRAM dichter gespeichert wird.
Graph Seach Algorithmus
4.png
Der Suchalgorithmus besteht aus zwei Phasen: schnelle Speichersuche und parallele Schicht-0-Suche mit Prefetching.
Schnelle Speichersuche
Wie bei HNSW beginnt die Suche in DRAM am Einstiegspunkt in der obersten Schicht und führt dann eine 1-Greedy-Suche von oben bis zur Schicht 2 durch. Um den Suchraum in Schicht 0 einzugrenzen, führt HM-ANN die Suche in Schicht 1 mit einem Suchbudget von efSearchL1
durch, wodurch die Größe der Kandidatenliste in Schicht 1 begrenzt wird. Diese Kandidaten der Liste werden als mehrere Einstiegspunkte für die Suche in Schicht 0 verwendet, um die Suchqualität in Schicht 0 zu verbessern. Während HNSW nur einen Einstiegspunkt verwendet, wird die Lücke zwischen Schicht 0 und Schicht 1 in HM-ANN spezieller behandelt als Lücken zwischen zwei anderen Schichten.
Parallele Schicht-0-Suche mit Prefetching
In der unteren Schicht teilt HM-ANN die oben genannten Kandidaten aus der Suche in Schicht 1 gleichmäßig auf und betrachtet sie als Einstiegspunkte für eine parallele Multi-Start-1-Greedy-Suche mit Threads. Die Spitzenkandidaten aus jeder Suche werden gesammelt, um die besten Kandidaten zu finden. Die parallele Suche verbirgt die Latenz von PMem und nutzt die Speicherbandbreite optimal aus, um die Suchqualität zu verbessern, ohne die Suchzeit zu erhöhen.
HM-ANN implementiert einen softwareverwalteten Puffer im DRAM, um Daten vor dem Speicherzugriff aus PMem zu holen. Bei der Suche in Schicht 1 kopiert HM-ANN asynchron die Nachbarelemente der Kandidaten in efSearchL1
und die Verbindungen der Nachbarelemente in Schicht 1 aus PMem in den Puffer. Bei der Suche in Schicht 0 wird ein Teil der Daten, auf die zugegriffen werden soll, bereits im DRAM vorgeholt, was die Latenzzeit für den Zugriff auf PMem verbirgt und zu einer kürzeren Abfragezeit führt. Dies entspricht dem Designziel von HM-ANN, bei dem die meisten Speicherzugriffe im DRAM stattfinden und die Speicherzugriffe im PMem reduziert werden.
In diesem Papier wird eine umfassende Bewertung durchgeführt. Alle Experimente werden auf einem Rechner mit Intel Xeon Gold 6252 CPU@2.3GHz durchgeführt. Er verwendet DDR4 (96GB) als schnellen Speicher und Optane DC PMM (1,5TB) als langsamen Speicher. Es werden fünf Datensätze ausgewertet: BIGANN, DEEP1B, SIFT1M, DEEP1M und GIST1M. Für die Tests im Milliarden-Maßstab werden die folgenden Verfahren herangezogen: Quantisierungsbasierte Verfahren im Milliarden-Maßstab (IMI+OPQ und L&C), die nicht kompressionsbasierten Verfahren (HNSW und NSG).
Vergleich der Algorithmen im Milliardenmaßstab
5.png
In Tabelle 1 werden die Erstellungszeit und der Speicherplatz der verschiedenen graphbasierten Indizes verglichen. HNSW benötigt die kürzeste Erstellungszeit und HM-ANN benötigt 8 % mehr Zeit als HNSW. In Bezug auf die gesamte Speichernutzung sind HM-ANN-Indizes 5-13 % größer als HSNW, da mehr Knoten von Schicht 0 nach Schicht 1 verschoben werden.
6.png
In Abbildung 1 wird die Abfrageleistung der verschiedenen Indizes analysiert. Abbildung 1 (a) und (b) zeigen, dass HM-ANN den Top-1 Recall von > 95% innerhalb von 1ms erreicht. Die Abbildungen 1 © und (d) zeigen, dass HM-ANN einen Top-100-Recall von > 90% innerhalb von 4 ms erreicht. HM-ANN bietet im Vergleich zu allen anderen Ansätzen die beste Leistung in Bezug auf die Latenzzeit und den Abruf.
Vergleich der Algorithmen im Millionenmaßstab
7.png
In Abbildung 2 wird die Abfrageleistung der verschiedenen Indizes in einer reinen DRAM-Umgebung analysiert. HNSW, NSG und HM-ANN werden mit den drei Millionen-Datensätzen bewertet, die in DRAM passen. HM-ANN erreicht immer noch eine bessere Abfrageleistung als HNSW. Der Grund dafür ist, dass die Gesamtzahl der Abstandsberechnungen von HM-ANN geringer ist (durchschnittlich 850/Abfrage) als die von HNSW (durchschnittlich 900/Abfrage), um das Ziel von 99 % Recall zu erreichen.
8.png
Effektivität der Beförderung mit hohen Graden
In Abbildung 3 werden die Strategien Random Promotion und High-Degree Promotion in derselben Konfiguration verglichen. Die High-Degree-Promotion übertrifft die Baseline. Die High-Degree-Promotion ist 1,8-mal, 4,3-mal und 3,9-mal schneller als die Random-Promotion, um die Ziele von 95 %, 99 % bzw. 99,5 % Recall zu erreichen.
10.png
Leistungsvorteil von Speicherverwaltungstechniken
Abbildung 5 enthält eine Reihe von Schritten zwischen HNSW und HM-ANN, um zu zeigen, wie jede Optimierung von HM-ANN zu den Verbesserungen beiträgt. BP steht für die Bottom-up-Promotion beim Aufbau des Index. PL0 steht für die parallele Layer-0-Suche, während DP für das Prefetching von Daten vom PMem zum DRAM steht. Schritt für Schritt wird die Suchleistung von HM-ANN weiter gesteigert.
Ein neuer graphbasierter Indizierungs- und Suchalgorithmus, genannt HM-ANN, bildet das hierarchische Design der graphbasierten ANNs mit der Speicherheterogenität in HM ab. Auswertungen zeigen, dass HM-ANN zu den neuen State-of-the-Art-Indizes in Milliarden-Punkte-Datensätzen gehört.
Wir stellen einen Trend in der akademischen Welt und in der Industrie fest, bei dem der Aufbau von Indizes auf persistenten Speichergeräten im Mittelpunkt steht. Um DRAM zu entlasten, wurde mit Disk-ANN [1] ein Index auf SSD gebaut, dessen Durchsatz deutlich geringer ist als der von PMem. Die Erstellung von HM-ANN dauert jedoch immer noch einige Tage, wobei keine großen Unterschiede im Vergleich zu Disk-ANN festgestellt wurden. Wir glauben, dass es möglich ist, die Erstellungszeit von HM-ANN zu optimieren, wenn wir die Eigenschaften von PMem sorgfältiger nutzen, z. B. die Granularität von PMem (256 Bytes) berücksichtigen und Streaming-Befehle zur Umgehung von Cachelines verwenden. Wir glauben auch, dass in Zukunft weitere Ansätze mit langlebigen Speichergeräten vorgeschlagen werden.
[1]: Suhas Jayaram Subramanya und Devvrit und Rohan Kadekodi und Ravishankar Krishaswamy und Ravishankar Krishaswamy: DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node, NIPS, 2019
DiskANN: Schnelle, genaue Milliarden-Punkt-Nächste-Nachbarn-Suche auf einem einzigen Knoten
[2]: Alexander van Renen und Lukas Vogel und Viktor Leis und Thomas Neumann und Alfons Kemper: Persistent Memory I/O Primitives, CoRR & DaMoN, 2019
- Algorithmus zur Erstellung von Graphen
- Graph Seach Algorithmus
- Vergleich der Algorithmen im Milliardenmaßstab
- Vergleich der Algorithmen im Millionenmaßstab
- Effektivität der Beförderung mit hohen Graden
- Leistungsvorteil von Speicherverwaltungstechniken
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word