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

milvus-logo
LFAI
  • Home
  • Blog
  • Enthüllung der 10 wichtigsten Schlüsselwörter, die die Milvus-Gemeinschaft im Jahr 2023 dominieren

Enthüllung der 10 wichtigsten Schlüsselwörter, die die Milvus-Gemeinschaft im Jahr 2023 dominieren

  • Engineering
January 21, 2024
Jack Li, Fendy Feng

Zum Abschluss des Jahres 2023 wollen wir die bemerkenswerte Reise der Milvus-Community Revue passieren lassen: 25.000 GitHub-Sterne, die Einführung von Milvus 2.3.0 und mehr als 10 Millionen Downloads von Docker-Images. In diesem Beitrag wird das Herz der Community erforscht, indem Chatverläufe analysiert werden und die 10 wichtigsten Schlüsselwörter in Diskussionen aufgedeckt werden.

#1 Version - Der Aufstieg von AIGC treibt die schnelle Iteration von Milvus voran

Überraschenderweise war "Version" das meistdiskutierte Schlüsselwort im Jahr 2023. Diese Enthüllung ist auf die KI-Welle des Jahres zurückzuführen, bei der Vektordatenbanken als kritische Infrastruktur zur Bewältigung der Halluzinationsprobleme bei AIGC-Anwendungen dienen.

Der Enthusiasmus rund um Vektordatenbanken treibt Milvus in eine Phase der raschen Iteration. Allein im Jahr 2023 wurden zwanzig Versionen veröffentlicht, um den Anforderungen der AIGC-Entwickler gerecht zu werden, die die Community mit Anfragen zur Auswahl der optimalen Version von Milvus für verschiedene Anwendungen überfluteten. Für Benutzer, die sich mit diesen Aktualisierungen auseinandersetzen, empfehlen wir, die neueste Version zu verwenden, um die Funktionen und die Leistung zu verbessern.

Wenn Sie sich für die Release-Planung von Milvus interessieren, besuchen Sie die Milvus-Roadmap-Seite auf der offiziellen Website.

"Die Suche" steht an zweiter Stelle, was ihre grundlegende Rolle bei Datenbankoperationen widerspiegelt. Milvus unterstützt verschiedene Suchfunktionen, von der Top-K ANN-Suche über die skalare gefilterte Suche bis hin zur Bereichssuche. Die bevorstehende Veröffentlichung von Milvus 3.0 (Beta) verspricht eine Schlüsselwortsuche (Sparse Embeddings), auf die viele RAG-App-Entwickler sehnsüchtig warten.

Die Diskussionen in der Community über die Suche konzentrieren sich auf Leistung, Fähigkeiten und Prinzipien. Benutzer stellen häufig Fragen zur Attributfilterung, zur Festlegung von Indexschwellenwerten und zur Behandlung von Latenzproblemen. Ressourcen wie die Abfrage- und Suchdokumentation, Milvus Enhancement Proposals (MEPs) und Discord-Diskussionen sind zu den wichtigsten Referenzen geworden, um die Feinheiten der Suche in Milvus zu enträtseln.

#3 Speicher - Kompromisse zwischen Leistung und Genauigkeit für minimalen Speicher-Overhead

Das Thema "Speicher" stand im vergangenen Jahr ebenfalls im Mittelpunkt der Diskussionen in der Community. Als besonderer Datentyp haben Vektoren von Natur aus viele Dimensionen. Die Speicherung von Vektoren im Arbeitsspeicher ist eine gängige Praxis, um eine optimale Leistung zu erzielen, aber das steigende Datenvolumen begrenzt den verfügbaren Speicher. Milvus optimiert die Speichernutzung durch den Einsatz von Techniken wie MMap und DiskANN.

Die gleichzeitige Erzielung eines geringen Speicherverbrauchs, einer ausgezeichneten Leistung und einer hohen Genauigkeit in einem Datenbanksystem ist jedoch nach wie vor komplex und erfordert einen Kompromiss zwischen Leistung und Genauigkeit, um den Speicheraufwand zu minimieren.

Im Falle von durch künstliche Intelligenz generierten Inhalten (AIGC) geben die Entwickler in der Regel schnellen Antworten und der Genauigkeit der Ergebnisse Vorrang vor strengen Leistungsanforderungen. Die Hinzufügung von MMap und DiskANN durch Milvus minimiert die Speichernutzung bei gleichzeitiger Maximierung der Datenverarbeitung und der Ergebnisgenauigkeit und schafft damit ein Gleichgewicht, das den praktischen Anforderungen von AIGC-Anwendungen entspricht.

#4 Insert - reibungsloses Segeln durch Dateneinfügung

Effizientes Einfügen von Daten ist ein wichtiges Anliegen für Entwickler, was zu häufigen Diskussionen über die Optimierung der Einfügegeschwindigkeit innerhalb der Milvus-Community führt. Milvus zeichnet sich durch die effiziente Einfügung von Streaming-Daten und den Aufbau von Indizes aus, dank der geschickten Trennung von Streaming- und Batch-Daten. Diese Fähigkeit zeichnet Milvus im Vergleich zu anderen Anbietern von Vektordatenbanken, wie z. B. Pinecone, als äußerst leistungsfähige Lösung aus.

Im Folgenden finden Sie einige wertvolle Einblicke und Empfehlungen zur Dateneinfügung:

  • Batch-Einfügung: Entscheiden Sie sich für die Batch-Einfügung und nicht für die Einzeleinfügung, um die Effizienz zu steigern. Vor allem das Einfügen aus Dateien übertrifft die Batch-Einfügung an Geschwindigkeit. Wenn Sie große Datensätze mit mehr als zehn Millionen Datensätzen verarbeiten, sollten Sie die Schnittstelle bulk_insert verwenden, um den Importprozess zu optimieren und zu beschleunigen.

  • Strategische Verwendung von flush(): Anstatt die Schnittstelle flush() nach jedem Stapel aufzurufen, sollten Sie einen einzigen Aufruf tätigen, nachdem Sie alle Daten eingefügt haben. Die übermäßige Verwendung der Schnittstelle flush() zwischen den Batches kann zur Erzeugung fragmentierter Segmentdateien führen, die das System mit einer erheblichen Verdichtungslast belasten.

  • Primärschlüssel-Deduplizierung: Milvus führt keine Primärschlüssel-Deduplizierung durch, wenn die Schnittstelle insert zum Einfügen von Daten verwendet wird. Wenn Sie eine Deduplizierung von Primärschlüsseln benötigen, empfehlen wir Ihnen, die Schnittstelle upsert einzusetzen. Allerdings ist die Einfügeleistung von upsertaufgrund einer zusätzlichen internen Abfrageoperation geringer als die von insert.

#5 Konfiguration - Entschlüsselung des Parameterlabyrinths

Milvus ist eine verteilte Vektordatenbank, die viele Komponenten von Drittanbietern wie Objektspeicher, Nachrichtenwarteschlangen und Etcd integriert. Die Benutzer haben sich mit der Anpassung von Parametern und dem Verständnis ihrer Auswirkungen auf die Leistung von Milvus auseinandergesetzt, so dass "Konfiguration" ein häufig diskutiertes Thema war.

Unter all den Fragen zu Konfigurationen ist die Frage, welche Parameter angepasst werden sollen, wohl der schwierigste Aspekt, da die Parameter in verschiedenen Situationen variieren. Die Optimierung der Parameter für die Suchleistung unterscheidet sich beispielsweise von der Optimierung der Parameter für die Einfügeleistung und hängt stark von der praktischen Erfahrung ab.

Sobald die Benutzer wissen, "welche Parameter angepasst werden müssen", wird die Frage nach dem "wie" überschaubarer. Spezifische Verfahren finden Sie in unserer Dokumentation Konfigurieren von Milvus. Die gute Nachricht ist, dass Milvus seit Version 2.3.0 dynamische Parameteranpassungen unterstützt, so dass keine Neustarts mehr erforderlich sind, damit die Änderungen wirksam werden. Spezifische Verfahren finden Sie in Configure Milvus on the Fly.

#6 Logs - der Kompass für die Fehlersuche

"Logs" dienen als Kompass für die Fehlersuche. Die Benutzer haben in der Community nach Ratschlägen zum Exportieren von Milvus-Protokollen, zum Anpassen der Protokollstufen und zur Integration mit Systemen wie Grafana Loki gesucht. Hier sind einige Vorschläge zu Milvus-Logs.

  • Wie man Milvus-Logs anzeigt und exportiert: Sie können Milvus-Protokolle ganz einfach mit dem Skript export-milvus-log.sh exportieren, das im GitHub-Repository verfügbar ist.

  • Log-Ebene: Milvus verfügt über mehrere Log-Levels, um verschiedenen Anwendungsfällen gerecht zu werden. Die Info-Ebene ist für die meisten Fälle ausreichend, und die Debug-Ebene ist für die Fehlersuche gedacht. Ein Übermaß an Milvus-Protokollen kann auf falsch konfigurierte Protokollebenen hinweisen.

  • Wir empfehlen, die Milvus-Protokolle in ein Protokollsammelsystem wie Lokizu integrieren, um die Abfrage von Protokollen bei der Fehlerbehebung zu vereinfachen.

#7 Cluster - Skalierung für Produktionsumgebungen

Da es sich bei Milvus um eine verteilte Vektordatenbank handelt, ist der Begriff "Cluster" ein häufiges Diskussionsthema in der Community. Die Gespräche drehen sich um die Skalierung von Daten in einem Cluster, Datenmigration sowie Datensicherung und -synchronisation.

In Produktionsumgebungen sind robuste Skalierbarkeit und hohe Verfügbarkeit Standardanforderungen für verteilte Datenbanksysteme. Die Architektur von Milvus, die eine Trennung von Speicher und Berechnung vorsieht, ermöglicht eine nahtlose Skalierbarkeit der Daten durch die Erweiterung der Ressourcen für Berechnungs- und Speicherknoten, wodurch eine unbegrenzte Skalierung der Daten ermöglicht wird. Milvus bietet außerdem Hochverfügbarkeit mit einer Multi-Replica-Architektur und robusten Sicherungs- und Synchronisierungsfunktionen. Weitere Informationen finden Sie unter Coordinator HA.

#8 Dokumentation - das Tor zum Verständnis von Milvus

"Dokumentation" ist ein weiteres häufig genanntes Stichwort in Diskussionen in der Community, oft verbunden mit der Frage, ob es eine Dokumentationsseite für eine bestimmte Funktion gibt und wo sie zu finden ist.

Als Tor zum Verständnis von Milvus finden etwa 80% der Community-Anfragen Antworten in der offiziellen Dokumentation. Wir empfehlen Ihnen, unsere Dokumentation zu lesen, bevor Sie Milvus verwenden oder auf Probleme stoßen. Darüber hinaus können Sie Codebeispiele in verschiedenen SDK-Repositories erkunden, um einen Einblick in die Verwendung von Milvus zu erhalten.

#9 Deployment - Vereinfachung der Milvus-Reise

Ein einfaches Deployment bleibt das ständige Ziel des Milvus-Teams. Um dieses Ziel zu erreichen, haben wir Milvus Lite eingeführt, eine leichtgewichtige Alternative zu Milvus, die voll funktionsfähig ist, aber keine K8s oder Docker-Abhängigkeiten hat.

Wir haben die Bereitstellung weiter rationalisiert, indem wir die leichtere NATS-Messaging-Lösung eingeführt und die Knotenkomponenten konsolidiert haben. Als Reaktion auf das Feedback der Benutzer bereiten wir uns auf die Veröffentlichung einer eigenständigen Version ohne Abhängigkeiten vor und arbeiten kontinuierlich an der Verbesserung von Funktionen und der Vereinfachung von Bereitstellungsvorgängen. Die rasche Weiterentwicklung von Milvus zeigt das kontinuierliche Engagement der Community für die ständige Verbesserung des Bereitstellungsprozesses.

#10 Löschung - Enträtselung der Auswirkungen

Die vorherrschenden Diskussionen zum Thema "Löschen" drehen sich um die unveränderte Datenanzahl nach dem Löschen, die weitere Abrufbarkeit gelöschter Daten und das Scheitern der Wiederherstellung des Speicherplatzes nach dem Löschen.

Milvus 2.3 führt den Ausdruck count(*) ein, um verzögerte Aktualisierungen der Entitätszahlen zu berücksichtigen. Das Fortbestehen von gelöschten Daten in Abfragen ist wahrscheinlich auf die unangemessene Verwendung von Datenkonsistenzmodellen zurückzuführen. Probleme bei der Wiederherstellung des Festplattenplatzes haben dazu geführt, dass der Garbage-Collection-Mechanismus von Milvus, der eine Wartezeit vor der vollständigen Löschung von Daten vorsieht, neu gestaltet wurde. Dieser Ansatz ermöglicht ein Zeitfenster für eine mögliche Wiederherstellung.

Schlussfolgerung

Die 10 wichtigsten Schlüsselwörter geben einen Einblick in die lebhaften Diskussionen innerhalb der Milvus-Community. Während Milvus sich weiterentwickelt, bleibt die Community eine unschätzbare Ressource für Entwickler, die nach Lösungen suchen, Erfahrungen austauschen und dazu beitragen, Vektordatenbanken im Zeitalter der KI voranzubringen.

Nehmen Sie an dieser spannenden Reise teil, indem Sie 2024 unserem Discord-Kanal beitreten. Dort können Sie sich mit unseren brillanten Ingenieuren austauschen und sich mit gleichgesinnten Milvus-Enthusiasten verbinden. Besuchen Sie auch das Milvus Community Lunch and Learn jeden Dienstag von 12:00 bis 12:30 PM PST. Teilen Sie uns Ihre Gedanken, Fragen und Ihr Feedback mit, denn jeder Beitrag trägt dazu bei, Milvus gemeinsam voranzutreiben. Ihre aktive Teilnahme ist nicht nur willkommen, sondern wird auch geschätzt. Lassen Sie uns gemeinsam innovativ sein!

Like the article? Spread the word

Weiterlesen