Milvus ist eine Open-Source-Vektordatenbank, die für skalierbare Ähnlichkeitssuche und KI-Workloads entwickelt wurde. Sie speichert, indexiert und verwaltet hochdimensionale Vektor-Embeddings, die von Machine-Learning-Modellen erzeugt werden, und ermöglicht so eine schnelle Suche nach ungefähren nächsten Nachbarn (ANN) über Milliarden von Vektoren. Milvus wird häufig in Anwendungen wie Empfehlungssystemen, Bild- und Videoabruf, Verarbeitung natürlicher Sprache und Retrieval-Augmented-Generation-Pipelines (RAG) für große Sprachmodelle eingesetzt.
Das Projekt wurde von Zilliz initiiert, einem Unternehmen, das 2017 von Charles Xie gegründet wurde. Die erste stabile Version, Milvus 1.0, wurde im September 2019 veröffentlicht. Milvus 2.0, das 2021 auf den Markt kam, führte eine cloud-native Architektur mit einer Trennung von Speicher und Rechenleistung ein und unterstützt verteilte Bereitstellung und horizontale Skalierbarkeit. Bis 2024 hat sich Milvus zu einer der beliebtesten Open-Source-Vektordatenbanken entwickelt, mit einer starken Community und der Adoption durch über tausend Organisationen weltweit.
Architektur und Design
Milvus folgt einer Shared-Storage-Architektur, die Datenebene und Steuerungsebene entkoppelt. Das System umfasst mehrere Kernkomponenten: die Koordinator-Dienste (Root Coord, Data Coord, Query Coord, Index Coord), Worker-Knoten (Data Nodes, Query Nodes, Index Nodes) und einen Message Broker (Pulsar oder Kafka) für Write-Ahead-Logging. Dieses Design ermöglicht eine elastische Skalierung der Rechenressourcen unabhängig vom Speicher, der durch Objektspeicher wie AWS S3 oder MinIO unterstützt wird.
Die Datenbank unterstützt mehrere Indextypen für die ANN-Suche, darunter IVF (Inverted File), HNSW (Hierarchical Navigable Small World) und DiskANN, das eine effiziente Suche auch auf plattenresidenten Daten ermöglicht. Milvus unterstützt auch die Skalarfilterung in Kombination mit der Vektorsuche, was Hybridabfragen mit Metadaten-Prädikaten ermöglicht. Das System bietet SDKs in Python, Java, Go und Node.js sowie eine RESTful-API.
Funktionen und Fähigkeiten
Milvus bietet eine Vielzahl von Funktionen, die für Produktions-KI-Anwendungen zugeschnitten sind. Es unterstützt Echtzeit-Einfüge-, Upsert- und Löschoperationen mit Daten-Sichtbarkeit innerhalb von Millisekunden. Das System bietet hohe Verfügbarkeit durch Replikationsmechanismen und unterstützt Multi-Tenancy mit Namensraum-Isolation. Milvus enthält außerdem integriertes Monitoring und Metriken über Prometheus und Grafana und integriert sich in wichtige Orchestrierungsplattformen wie Kubernetes.
Eine bemerkenswerte Funktion ist die Unterstützung dynamischer Schemata, die es Benutzern ermöglicht, Felder ohne Ausfallzeiten hinzuzufügen. Milvus bietet auch eine Partitionierungsfunktion, um die Abfrageleistung zu verbessern, indem der Suchraum eingegrenzt wird. Für groß angelegte Bereitstellungen unterstützt das System Sharding und kann bis zu Milliarden von Vektoren mit Sub-Millisekunden-Latenz für Top-k-Abfragen verarbeiten. Das Projekt hat auch Milvus Lite eingeführt, eine leichtgewichtige Version für lokale Entwicklung und Tests.
Ökosystem und Integrationen
Milvus integriert sich in eine breite Palette von KI- und Datenwerkzeugen. Es ist ein Kernbestandteil des Large language model-Ökosystems und wird häufig in Retrieval-Augmented-Generation-Pipelines zusammen mit Frameworks wie LangChain und LlamaIndex verwendet. Milvus unterstützt Embedding-Modelle von Anbietern wie OpenAI und Anthropic und kann auf wichtigen Cloud-Plattformen einschließlich Amazon Web Services, Microsoft Azure und Google Cloud bereitgestellt werden.
Das Projekt bietet auch einen verwalteten Cloud-Dienst namens Zilliz Cloud, der eine vollständig verwaltete Milvus-Erfahrung mit zusätzlichen Funktionen wie Daten-Backup und Cross-Region-Replikation bietet. Milvus wurde von Unternehmen in verschiedenen Sektoren übernommen, darunter E-Commerce, Finanzen, Gesundheitswesen und autonomes Fahren. Es wird auch in Forschung und akademischen Umgebungen verwendet, oft in Verbindung mit Machine learning- und Deep learning-Frameworks wie PyTorch und TensorFlow.
Leistung und Skalierbarkeit
Milvus ist für hohe Leistung und Skalierbarkeit ausgelegt. In Benchmark-Tests hat es gezeigt, dass es über 1 Milliarde Vektoren mit einer durchschnittlichen Latenz von unter 10 Millisekunden auf einem Cluster handelsüblicher Hardware durchsuchen kann. Das System nutzt SIMD-Optimierungen (Single Instruction, Multiple Data) und GPU-Beschleunigung für den Indexaufbau und die Abfrageverarbeitung. Milvus unterstützt sowohl CPU- als auch GPU-basierte Indizierung, mit GPU-Unterstützung für NVIDIA CUDA.
Die Skalierbarkeit von Milvus wird durch seine verteilte Architektur erreicht, die eine horizontale Skalierung von Query- und Data-Nodes ermöglicht. Das System kann einen hohen Schreibdurchsatz verarbeiten, mit der Fähigkeit, in optimierten Konfigurationen Millionen von Vektoren pro Sekunde aufzunehmen. Milvus bietet auch eine Memory-Mapped-Dateifunktion, um den Speicherverbrauch zu reduzieren und größere Datensätze auf begrenztem RAM zu verarbeiten.
Community und Governance
Milvus ist ein Open-Source-Projekt unter der Apache-2.0-Lizenz, das auf GitHub gehostet wird. Das Projekt wird von einer Community von Mitwirkenden geleitet, wobei Zilliz eine Schlüsselrolle in seiner Entwicklung spielt. Milvus wurde 2023 ein Graduiertenprojekt der Linux Foundation AI & Data, was seine Reife und Governance unterstreicht. Die Community veranstaltet regelmäßig Meetups, Webinare und eine jährliche Nutzerkonferenz namens Unstructured Data Summit.
Bis 2024 hat das Milvus-GitHub-Repository über 25.000 Sterne und mehr als 500 Mitwirkende. Das Projekt unterhält eine umfassende Dokumentationsseite, einen Blog und eine Slack-Community für Nutzer und Entwickler. Milvus hat auch ein Zertifizierungsprogramm für Entwickler und Administratoren und ist in der CNCF Cloud Native Landscape enthalten.
Anwendungsfälle und Anwendungen
Milvus wird in einer Vielzahl realer Anwendungen eingesetzt. Im E-Commerce unterstützt es Produktempfehlungs- und visuelle Suchmaschinen. Im Finanzsektor wird es für Betrugserkennung und Risikoanalyse verwendet, indem Transaktionsmuster abgeglichen werden. Im Gesundheitswesen unterstützt Milvus die medizinische Bildanalyse und die Suche nach Patientenähnlichkeit. Für Generative AI-Anwendungen ist Milvus eine beliebte Wahl für den Aufbau von Wissensdatenbanken und semantischen Suchsystemen, die die Fähigkeiten von Transformer (architecture)-basierten Modellen erweitern.
Ein weiterer bedeutender Anwendungsfall ist das autonome Fahren, wo Milvus verwendet wird, um Sensor-Daten-Embeddings für das Szenenverständnis zu speichern und abzurufen. In der Medienbranche ermöglicht es inhaltsbasierten Video- und Audioabruf. Milvus wird auch in der Cybersicherheit zur Bedrohungserkennung und in der Bioinformatik für die Ähnlichkeitssuche von Gensequenzen eingesetzt. Die Vielseitigkeit von Milvus macht es zu einem grundlegenden Werkzeug für viele Artificial intelligence-Initiativen.
Zukünftige Richtungen
Die Entwicklung von Milvus entwickelt sich weiterhin mit den Bedürfnissen der KI-Community weiter. Zukünftige Pläne umfassen eine verbesserte Unterstützung für hybride Suche mit Volltext- und Vektorfähigkeiten, eine verbesserte Leistung auf ARM-Architekturen und eine bessere Integration mit Neural network-Frameworks. Das Projekt erforscht auch die Verwendung von Learned Indexes und Quantisierungstechniken, um den Speicherbedarf weiter zu reduzieren und die Suchgeschwindigkeit zu verbessern.
Da die Nachfrage nach Machine learning- und Deep learning-Anwendungen wächst, zielt Milvus darauf ab, an der Spitze der Vektordatenbank-Technologie zu bleiben und eine robuste und skalierbare Grundlage für den Aufbau intelligenter Anwendungen zu bieten. Die Community arbeitet aktiv an der Verbesserung der Entwicklererfahrung, mit intuitiveren APIs und besserem Tooling für Datenverwaltung und Beobachtbarkeit.