Vektordatenbank-Visualisierung: Feder, ein leistungsstarkes Tool für die Ähnlichkeitssuche
Mithilfe von Machine-Learning-(ML-)Modellen können wir unstrukturierte Daten wie Fotos und Videos problemlos in Embeddings für die Vektorähnlichkeitssuche codieren. Um die Suche zu beschleunigen, werden verschiedene Indizes wie IVF_FLAT und HNSW eingesetzt. Um einen für die Anwendung am besten geeigneten Index auszuwählen, müssen Benutzer zwischen Suchgeschwindigkeit und Genauigkeit abwägen.
Um Benutzern diesen Aufwand zu ersparen, freuen wir uns, Feder anzukündigen, ein Tool zur Visualisierung von ANNS-Algorithmen. Mit Feder können Benutzer verschiedene Indextypen und deren Parameter auf eine beispiellos unkomplizierte Weise verstehen. Feder hilft außerdem bei der Visualisierung von Daten aus fortschrittlichen Vektordatenbanken wie Pinecone, wodurch die Verwaltung großer Datenmengen erleichtert wird.
Feder ermöglicht es Benutzern zu beobachten, wie verschiedene Indizes strukturiert sind, wie Daten mithilfe jedes Indextyps organisiert werden und wie unterschiedliche Parameterkonfigurationen die Indexierungsstruktur beeinflussen. Darüber hinaus hilft Feder auch dabei, den gesamten Prozess der Vektorähnlichkeitssuche zu visualisieren, und liefert eine detaillierte Aufzeichnung des Datenzugriffs während der Suche. Es ist besonders nützlich für die Analyse und Visualisierung komplexer Daten und hilft Benutzern, Trends und Muster zu erkennen, um fundierte Entscheidungen zu treffen.
Derzeit unterstützt Feder nur HNSW von hnswlib. Weitere Indizes werden bald unterstützt.
Einführung in Vektordatenbanken
Vektordatenbanken sind ein spezialisierter Datenbanktyp, der darauf ausgelegt ist, große Mengen an Vektordaten effizient zu speichern, zu verwalten und abzufragen. Vektordaten repräsentieren komplexe Informationen—wie Bilder, Text oder Audio—als numerische Vektoren in einem hochdimensionalen Vektorraum. Diese Datenbanken sind für die Ähnlichkeitssuche optimiert und ermöglichen es Benutzern, die ähnlichsten Vektoren zu einem gegebenen Abfragevektor zu finden. Diese Fähigkeit ist besonders wertvoll in Anwendungen wie Bilderkennung, Verarbeitung natürlicher Sprache und Empfehlungssystemen, bei denen das Verständnis der Nuancen von Daten entscheidend ist.
Feder in Vektordatenbanken verstehen
Feder wurde mit JavaScript entwickelt. Um Feder zur Visualisierung zu verwenden, müssen Sie zunächst einen Index erstellen und die Indexdatei aus Faiss oder Hnswlib speichern. Feder kann bei der Vorverarbeitung und Datenbereinigung vor der Visualisierung helfen. Anschließend analysiert Feder die hochgeladene Datei, um Indexinformationen zu erhalten, und bereitet die Visualisierung vor. Feder verwaltet und visualisiert außerdem die Qualität der in Vektordatenbanken gespeicherten Daten. Während einer Vektorähnlichkeitssuche müssen Sie einen Zielvektor und die Konfiguration der Suchparameter bereitstellen. Dann visualisiert Feder den gesamten Suchprozess für Sie, einschließlich der Transformation von Daten in numerische Vektoren mithilfe eines Embedding-Modells.
federjs besteht aus zwei Teilen:
- Feder-Core
- Analysiert Indexdateien, um detaillierte Informationen über Indizes zu erhalten.
- Unterstützt die Abfrage von Indizes und führt eine detaillierte Aufzeichnung der Vektoren, auf die während einer Indexabfrage zugegriffen wird.
- Feder-View
- Ermöglicht die Visualisierung der Gesamtstruktur verschiedener Indizes.
- Ermöglicht die Visualisierung des gesamten Ähnlichkeitssuchprozesses mit verschiedenen Indizes.
Zusätzlich zu federjs stellt Feder auch federpy bereit, ein Python-Tool. Mit federpy können Sie die Indexstruktur und den Suchprozess direkt unter IPython Notebook visualisieren. Alternativ können Sie die Visualisierung in eine HTML-Datei exportieren und dann einen Browser verwenden, um den Webdienst zu starten.
Erfahren Sie mehr darüber, wie Sie Feder verwenden, indem Sie das Feder-Benutzerhandbuch lesen.
In diesem Anwendungsfall verwenden wir VOC 2012, den klassischen ML-Bilddatensatz, der mehr als 17.000 Bilder enthält.
Zunächst verwenden wir Towhee, eine Open-Source-ML-Pipeline, um die Bilder im VOC-2012-Datensatz in Vektoren zu kodieren. Dann erstellen wir einen Index mit Hnswlib und speichern die Indexdatei. Schließlich verwenden wir Feder zur Visualisierung. Feder optimiert den Suchprozess, ohne den gesamten Datensatz durchsuchen zu müssen.
Der Link hier bietet Ihnen eine interaktive Benutzererfahrung, um die Visualisierung für HNSW anzusehen.
Ein HNSW-Index ist mehrschichtig, und jede Schicht ist ein miteinander verbundenes Netzwerk. Die unterste Schicht erfasst alle Datenobjekte in der Datenbank, und die Datenpunkte/Knoten werden spärlicher, je weiter man zur obersten Schicht gelangt. Ziehen wir einen Vergleich mit unserem modernen Verkehrssystem. Wenn Sie von San Francisco aus eine Boutique besuchen, die in der Upper East Side von New York City versteckt liegt, nehmen Sie wahrscheinlich zuerst einen Flug nach JFK oder LaGuardia, wo Sie die bequemste Metro finden, die Sie nach Manhattan bringt, und dann steigen Sie wahrscheinlich in einen Bus oder sogar auf ein Citi Bike um, um in dieses Viertel zu gelangen. Ähnlich verhält es sich, wenn wir schnell den nächstgelegenen Knoten zu Ihrem Ziel finden möchten: Wir beginnen zuerst mit der Suche in der obersten Schicht, weil die Suche dort schneller ist. Ein Nachteil ist jedoch, dass die oberen Schichten und Netzwerke uns häufig nicht zum gewünschten Ziel bringen oder uns helfen können, die erwarteten Ergebnisse zu finden. Daher wenden wir uns der darunterliegenden nächsten Schicht zu, um eine höhere Genauigkeit zu erreichen.
Beim Aufbau eines HNSW-Index wird ein Knoten in der obersten Schicht vom Algorithmus als Einstiegspunkt ausgewählt, um die Suche zu starten. Feder verwendet parallele Verarbeitung, um die Abfrageleistung zu verbessern.
Unten wird die Visualisierung von Schicht 4, 3 und 2 in einem fünfschichtigen HNSW-Index gezeigt, der auf dem VOC-2012-Datensatz aufgebaut wurde.
Feder bietet eine interaktive Benutzererfahrung. Daher können Sie einen beliebigen Knoten auswählen, um ihn genauer zu betrachten. Der gelb hervorgehobene Pfad stellt den kürzesten Pfad mit den wenigsten Transitknoten vom Eingang bis zu dem von Ihnen gewählten Knoten dar. Die weißen Pfade zeigen alle anderen Knoten, die Ihr gewählter Knoten erreichen kann. Durch Hineinzoomen können Sie mehr Details sehen, und Sie werden feststellen, dass die verbundenen Objekte umso ähnlicher sind, je mehr Schichten es gibt. Feder wandelt außerdem Rohdaten in visuelle Formate um.
Sie können relevante Statistiken im Übersichtsfenster oben links anzeigen. Der Parameter M bestimmt, wie viele der anderen Knoten der gewählte Knoten in jeder Schicht erreichen kann. Wie wir im Screenshot sehen können, ist m= 8. Das bedeutet, dass ausgehend von einem beliebigen zufälligen Knoten die maximale Anzahl von Knoten, die dieser zufällige Knoten erreichen kann, 8 beträgt.
Wir können den Wert der Parameter ändern, um zu beobachten, wie die Indexstruktur beeinflusst wird.
Mit zunehmendem Wert von M wird die HNSW-Struktur flacher. Das Ergebnis der Änderung des Werts von ef ist in der Visualisierung weniger offensichtlich. Tatsächlich beeinflusst der Parameter ef die generierten Verbindungen während des Indexaufbaus.
Nachdem Sie ein Zielbild für die Suche hochgeladen haben, zeigt Feder den gesamten Suchprozess mit einer Animation an.
Die Animation, die den gesamten Prozess der Vektorähnlichkeitssuche visualisiert.
Die Visualisierung zeigt eine Aufzeichnung der Daten, auf die bei einer Vektorähnlichkeitssuche zugegriffen wurde. Das heißt, Sie können alle Vektoren sehen, die hinsichtlich ihrer Distanz zum Zielvektor verglichen wurden, während diejenigen, die nicht an diesem Prozess beteiligt sind, in der Animation nicht angezeigt werden.
Wie wir in der Visualisierung sehen können, beginnt die Suche bei HNSW-Indizes auf der obersten Ebene, findet den dem Ziel nächstgelegenen Knoten auf dieser Ebene und geht dann zur nächsten Ebene hinunter, wenn alle auf dieser Ebene erreichbaren Knoten dem Ziel nicht nahe genug sind.
Es sollte beachtet werden, dass die Suche in der untersten Ebene über mehrere Pfade verläuft. Der Parameter ef entscheidet über die Wahl des Suchpfads. Für eine detaillierte Einführung in HNSW lesen Sie das Paper "Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs".
Durch die interaktive Visualisierung können wir sehen, dass die Knoten am Anfang des Suchpfads weniger relevant sind. Doch während die Suche nach dem nächsten Nachbarn fortschreitet, steigt die Suchgenauigkeit rapide an. Das Statistik-Panel auf der linken Seite zeigt, dass während der Suche tatsächlich nur etwa 1 % der Bilder (rund 170 Bilder) von insgesamt 17.000 Bildern im VOC 2012-Datensatz aufgerufen werden. Die enorme Beschleunigung der Suche wird dank des HNSW-Index ermöglicht.
Sie können auch unterschiedliche Werte für die Indexparameter festlegen und neue Indexdateien generieren, um die Struktur und Sucheffizienz zu vergleichen. Feder visualisiert die Verwendung von Vektoreinbettungen in Ähnlichkeitssuchen.
- Probieren Sie Attu aus, um Ihre Vektordatenbank mit One-Click-Einfachheit zu verwalten
Wichtige Funktionen von Feder
Feder ist ein leistungsstarkes Tool, das mehrere wichtige Funktionen bietet und es damit zu einer idealen Wahl für die Verwaltung und Abfrage großer Mengen von Vektordaten macht:
Erweiterte Vektorsuche: Feder unterstützt anspruchsvolle Vektorsuchalgorithmen, einschließlich Kosinus-Ähnlichkeit und euklidischer Distanz, sodass Benutzer die ähnlichsten Vektoren zu einem gegebenen Abfragevektor mit hoher Präzision finden können.
Skalierbarkeit: Feder ist für horizontale Skalierung konzipiert und kann mühelos riesige Datenmengen und hohe Abfragevolumina bewältigen, wodurch selbst bei wachsendem Datensatz eine robuste Leistung gewährleistet wird.
Datenverwaltung: Feder bietet ein umfassendes Datenverwaltungssystem, mit dem Benutzer ihre Vektordaten einfach verwalten, aktualisieren und pflegen können, wodurch Datenintegrität und Zugänglichkeit sichergestellt werden.
Semantische Suche: Mit Unterstützung für semantische Suche ermöglicht Feder Benutzern, nach Vektoren basierend auf deren Bedeutung und Kontext zu suchen, wodurch die Relevanz und Genauigkeit der Suchergebnisse verbessert wird.
Anwendungsfälle für Feder
Die Vielseitigkeit von Feder macht es für eine breite Palette von Anwendungen geeignet, darunter:
Bilderkennung: Feder kann verwendet werden, um Bilderkennungssysteme zu entwickeln, die Objekte, Personen und Szenen in Bildern identifizieren können, wodurch es für Anwendungen in Sicherheit, Einzelhandel und mehr von unschätzbarem Wert ist.
Verarbeitung natürlicher Sprache: Feder kann Systeme zur Verarbeitung natürlicher Sprache antreiben, die menschliche Sprache verstehen und erzeugen, und Anwendungen wie Chatbots, Übersetzungsdienste und Stimmungsanalysen ermöglichen.
Empfehlungssysteme: Feder kann eingesetzt werden, um Empfehlungssysteme zu erstellen, die Benutzern Produkte, Dienstleistungen oder Inhalte basierend auf ihren Präferenzen und ihrem Verhalten vorschlagen und so Benutzererfahrung und Engagement verbessern.
Integration von Feder mit Vektordatenbanken
Feder kann nahtlos mit anderen Vektordatenbanken integriert werden, um ein umfassenderes und robusteres Verwaltungssystem für Vektordaten zu schaffen. Integrationsmethoden umfassen:
Datenimport/-export: Feder kann Daten aus anderen Vektordatenbanken importieren und in diese exportieren, sodass Benutzer Daten einfach zwischen Systemen übertragen und Konsistenz über Plattformen hinweg gewährleisten können.
API-Integration: Feder bietet eine robuste API, die es Entwicklern ermöglicht, es mit anderen Vektordatenbanken und Anwendungen zu integrieren, wodurch reibungslose Interoperabilität und erweiterte Funktionalität ermöglicht werden.
Abfrageföderation: Feder kann Abfragen über mehrere Vektordatenbanken hinweg föderieren, sodass Benutzer nach Vektoren in verschiedenen Systemen suchen können, wodurch Umfang und Tiefe ihrer Datenanalyse verbessert werden.
Durch die Nutzung dieser Integrationsfunktionen können Benutzer ihre Datenverwaltung und Abfrageleistung verbessern und fundiertere, datengestützte Entscheidungen treffen.
Weiterlesen

Zilliz Cloud Just Landed in Claude Code
The Zilliz Cloud Plugin brings the full power of Zilliz Cloud directly into your Claude Code terminal as natural-language conversations.

Balancing Precision and Performance: How Zilliz Cloud's New Parameters Help You Optimize Vector Search
Optimize vector search with Zilliz Cloud’s level and recall features to tune accuracy, balance performance, and power AI applications.

Zilliz Cloud BYOC Upgrades: Bring Enterprise-Grade Security, Networking Isolation, and More
Discover how Zilliz Cloud BYOC brings enterprise-grade security, networking isolation, and infrastructure automation to vector database deployments in AWS



