🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI
  • Home
  • Blog
  • Dank Milvus kann jeder eine Vektordatenbank für mehr als 1 Milliarde Bilder aufbauen

Dank Milvus kann jeder eine Vektordatenbank für mehr als 1 Milliarde Bilder aufbauen

  • Scenarios
November 11, 2020
milvus

Die steigende Rechenleistung und die sinkenden Rechenkosten haben maschinelle Analysen und künstliche Intelligenz (KI) zugänglicher gemacht als je zuvor. In der Praxis bedeutet dies, dass es mit nur einem Server und 10 Zeilen Code möglich ist, eine umgekehrte Bildsuchmaschine zu erstellen, die mehr als 1 Milliarde Bilder in Echtzeit abfragen kann. In diesem Artikel wird erläutert, wie Milvus, eine Open-Source-Plattform für die Verwaltung von Vektordaten, verwendet werden kann, um leistungsstarke Systeme für die Verarbeitung und Analyse unstrukturierter Daten zu erstellen, und wie die zugrunde liegende Technologie all dies ermöglicht.

Springen Sie zu:

Wie ermöglicht KI die Analyse von unstrukturierten Daten?

Eine oft zitierte Statistik besagt, dass 80 % der weltweit anfallenden Daten unstrukturiert sind, aber nur 1 % jemals analysiert wird. Unstrukturierte Daten, darunter Bilder, Videos, Audiodaten und natürliche Sprache, folgen keinem vordefinierten Modell oder einer bestimmten Art der Organisation. Das macht die Verarbeitung und Analyse großer unstrukturierter Datensätze schwierig. Da die Verbreitung von Smartphones und anderen vernetzten Geräten die Produktion unstrukturierter Daten in neue Höhen treibt, wird Unternehmen zunehmend bewusst, wie wichtig die aus diesen nebulösen Informationen gewonnenen Erkenntnisse sein können.

Seit Jahrzehnten haben Informatiker Indizierungsalgorithmen entwickelt, die auf die Organisation, Suche und Analyse bestimmter Datentypen zugeschnitten sind. Für strukturierte Daten gibt es Bitmaps, Hash-Tabellen und B-Bäume, die häufig in relationalen Datenbanken verwendet werden, die von Tech-Giganten wie Oracle und IBM entwickelt wurden. Für halbstrukturierte Daten sind invertierte Indizierungsalgorithmen Standard, die in gängigen Suchmaschinen wie Solr und ElasticSearch zu finden sind. Indizierungsalgorithmen für unstrukturierte Daten beruhen jedoch auf rechenintensiver künstlicher Intelligenz, die erst in den letzten zehn Jahren allgemein zugänglich wurde.

Neuronale Netze konvertieren unstrukturierte Daten in computerfreundliche Merkmalsvektoren

Mithilfe neuronaler Netze (z. B. CNN, RNN und BERT) können unstrukturierte Daten in Merkmalsvektoren (auch Einbettungen genannt) umgewandelt werden, die aus einer Reihe von Ganzzahlen oder Fließkommazahlen bestehen. Dieses numerische Datenformat lässt sich viel leichter von Maschinen verarbeiten und analysieren. Durch die Einbettung unstrukturierter Daten in Merkmalsvektoren und die anschließende Berechnung der Ähnlichkeit zwischen den Vektoren anhand von Maßen wie dem euklidischen Abstand oder der Kosinusähnlichkeit lassen sich Anwendungen wie die umgekehrte Bildsuche, die Videosuche oder die Verarbeitung natürlicher Sprache (NLP) entwickeln.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg Blog_Dank KI kann jeder eine Suchmaschine für mehr als 1 Milliarde Bilder erstellen_2.jpeg

Die Berechnung der Vektorähnlichkeit ist ein relativ einfaches Verfahren, das sich auf bewährte Algorithmen stützt. Allerdings sind unstrukturierte Datensätze, selbst nach der Umwandlung in Merkmalsvektoren, in der Regel um mehrere Größenordnungen größer als herkömmliche strukturierte und halbstrukturierte Datensätze. Die vektorielle Ähnlichkeitssuche wird durch den schieren Speicherplatz und die Rechenleistung erschwert, die für eine effiziente und genaue Abfrage umfangreicher unstrukturierter Daten erforderlich sind. Wenn jedoch ein gewisses Maß an Genauigkeit geopfert werden kann, gibt es verschiedene Algorithmen für die approximative Suche nach dem nächsten Nachbarn (ANN), die die Abfrageeffizienz für umfangreiche Datensätze mit hoher Dimensionalität drastisch verbessern können. Diese ANN-Algorithmen verringern den Speicherbedarf und die Rechenlast, indem sie ähnliche Vektoren zu Clustern zusammenfassen, was zu einer schnelleren Vektorsuche führt. Zu den häufig verwendeten Algorithmen gehören baumbasierte, graphenbasierte und kombinierte ANNs.

Was sind Vektordatenverwaltungsplattformen?

Vektordatenverwaltungsplattformen sind speziell entwickelte Anwendungen für die Speicherung, Verarbeitung und Analyse großer Vektordatensätze. Diese Tools sind so konzipiert, dass sie problemlos mit großen Datenmengen umgehen können und Funktionen zur Rationalisierung der Vektordatenverwaltung enthalten. Leider gibt es nur wenige Systeme, die sowohl flexibel als auch leistungsstark genug sind, um moderne Big-Data-Herausforderungen zu lösen. Milvus, eine von Zilliz initiierte Vektordatenmanagement-Plattform, die 2019 unter einer Open-Source-Lizenz veröffentlicht wird, versucht, diese Lücke zu schließen.

Was sind die Grenzen bestehender Ansätze für das Vektordatenmanagement?

Eine gängige Methode zum Aufbau eines Analysesystems für unstrukturierte Daten besteht darin, Algorithmen wie ANN mit Open-Source-Implementierungsbibliotheken wie Facebook AI Similarity Search (Faiss) zu kombinieren. Aufgrund verschiedener Einschränkungen sind diese Algorithmus-Bibliotheks-Kombinationen nicht gleichwertig mit einem vollwertigen Vektordatenverwaltungssystem wie Milvus. Bestehende Technologien für die Verwaltung von Vektordaten weisen folgende Probleme auf:

  1. Flexibilität: Bestehende Systeme speichern in der Regel alle Daten im Hauptspeicher, was bedeutet, dass sie nicht auf mehreren Rechnern ausgeführt werden können und für die Verarbeitung großer Datenmengen schlecht geeignet sind.
  2. Dynamische Datenverarbeitung: Daten werden oft als statisch angenommen, sobald sie in bestehende Systeme eingespeist werden, was die Verarbeitung dynamischer Daten erschwert und eine Suche in nahezu Echtzeit unmöglich macht.
  3. Erweiterte Abfrageverarbeitung: Die meisten Tools unterstützen keine fortgeschrittene Abfrageverarbeitung (z. B. Attributfilterung und Multi-Vektor-Abfragen), die für den Aufbau nützlicher Ähnlichkeitssuchmaschinen unerlässlich ist.
  4. Optimierungen für heterogenes Rechnen: Nur wenige Plattformen bieten Optimierungen für heterogene Systemarchitekturen sowohl auf CPUs als auch auf GPUs (außer Faiss), was zu Effizienzverlusten führt.

Milvus versucht, all diese Einschränkungen zu überwinden. Das System erhöht die Flexibilität, indem es Unterstützung für eine Vielzahl von Anwendungsschnittstellen (einschließlich SDKs in Python, Java, Go, C++ und RESTful APIs), mehrere Vektorindexarten (z. B. quantisierungsbasierte Indizes und graphenbasierte Indizes) und eine erweiterte Abfrageverarbeitung bietet. Milvus verarbeitet dynamische Vektordaten mithilfe eines log-strukturierten Merge-Baums (LSM-Baum), wodurch das Einfügen und Löschen von Daten effizient bleibt und die Suche in Echtzeit abläuft. Milvus bietet auch Optimierungen für heterogene Rechnerarchitekturen auf modernen CPUs und GPUs, so dass Entwickler Systeme für bestimmte Szenarien, Datensätze und Anwendungsumgebungen anpassen können.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_3.png Blog_Dank KI kann jeder eine Suchmaschine für mehr als 1 Milliarde Bilder erstellen_3.png

Durch den Einsatz verschiedener ANN-Indizierungstechniken erreicht Milvus eine Top-5-Aufrufrate von 99 %. Das System ist außerdem in der Lage, mehr als 1 Million Dateneinträge pro Minute zu laden. Dies führt zu einer Abfragezeit von weniger als einer Sekunde, wenn eine umgekehrte Bildsuche über 1 Milliarde Bilder durchgeführt wird. Als Cloud-native Anwendung, die als verteiltes System über mehrere Knoten hinweg eingesetzt werden kann, kann Milvus problemlos und zuverlässig eine ähnliche Leistung bei Datensätzen mit 10 oder sogar 100 Milliarden Bildern erzielen. Darüber hinaus ist das System nicht auf Bilddaten beschränkt, sondern findet Anwendung in den Bereichen Computer Vision, KI im Dialog, Empfehlungssysteme, Entdeckung neuer Medikamente und mehr.

Wie oben beschrieben, ermöglicht eine leistungsfähige Vektordatenmanagement-Plattform wie Milvus in Verbindung mit approximativen Nearest-Neighbour-Algorithmen die Ähnlichkeitssuche in riesigen Mengen unstrukturierter Daten. Diese Technologie kann zur Entwicklung von Anwendungen genutzt werden, die eine Vielzahl von Bereichen abdecken. Im Folgenden werden einige gängige Anwendungsfälle für Vektordatenmanagement-Tools und die Ähnlichkeitssuche in Vektoren kurz erläutert.

Große Suchmaschinen wie Google bieten den Benutzern bereits die Möglichkeit, nach Bildern zu suchen. Auch E-Commerce-Plattformen haben die Vorteile dieser Funktion für Online-Käufer erkannt und Amazon hat die Bildsuche in seine Smartphone-Anwendungen integriert.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png Blog_Dank KI kann jeder eine Suchmaschine für mehr als 1 Milliarde Bilder erstellen_4.png

Open-Source-Software wie Milvus ermöglicht es jedem Unternehmen, ein eigenes System für die umgekehrte Bildersuche zu entwickeln, wodurch die Einstiegshürden für diese zunehmend gefragte Funktion gesenkt werden. Entwickler können ihre eigenen Bilddatensätze mithilfe von vorab trainierten KI-Modellen in Vektoren umwandeln und dann Milvus nutzen, um die Suche nach ähnlichen Produkten anhand von Bildern zu ermöglichen.

Video-Empfehlungssysteme

Große Online-Videoplattformen wie YouTube, die jede Minute 500 Stunden nutzergenerierte Inhalte empfangen, stellen besondere Anforderungen an die Empfehlung von Inhalten. Um relevante Echtzeit-Empfehlungen auszusprechen, die auch neue Uploads berücksichtigen, müssen Videoempfehlungssysteme blitzschnelle Abfragezeiten und eine effiziente dynamische Datenverarbeitung bieten. Durch die Umwandlung von Schlüsselbildern in Vektoren und die anschließende Einspeisung der Ergebnisse in Milvus können Milliarden von Videos nahezu in Echtzeit durchsucht und empfohlen werden.

Verarbeitung natürlicher Sprache (NLP)

Die Verarbeitung natürlicher Sprache ist ein Zweig der künstlichen Intelligenz, der darauf abzielt, Systeme zu entwickeln, die menschliche Sprachen interpretieren können. Nach der Umwandlung von Textdaten in Vektoren kann Milvus verwendet werden, um doppelten Text schnell zu identifizieren und zu entfernen, die semantische Suche zu unterstützen oder sogar einen intelligenten Schreibassistenten zu erstellen. Eine effektive Plattform für die Verwaltung von Vektordaten trägt dazu bei, den Nutzen eines jeden NLP-Systems zu maximieren.

Erfahren Sie mehr über Milvus

Wenn Sie mehr über Milvus erfahren möchten, besuchen Sie unsere Website. Darüber hinaus bietet unser Bootcamp mehrere Tutorials mit Anleitungen zum Einrichten von Milvus, Benchmark-Tests und zum Erstellen einer Vielzahl von verschiedenen Anwendungen. Wenn Sie sich für Vektordatenmanagement, künstliche Intelligenz und Big Data-Herausforderungen interessieren, werden Sie Mitglied unserer Open-Source-Community auf GitHub und chatten Sie mit uns auf Slack.

Möchten Sie mehr über die Entwicklung eines Bildsuchsystems erfahren? Sehen Sie sich diese Fallstudie an:

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Weiterlesen