Ein Überblick über die hybride Suche in Milvus
Milvus 2.4 erweiterte seine hybriden Suchfunktionen mit der Einführung von Multi-Vektor-Spalten innerhalb einer einzelnen Collection. Dieses Upgrade ermöglicht fortschrittlichere und flexiblere Datensuchen, indem es gleichzeitige Abfragen über mehrere Vektortypen und Felder hinweg erlaubt. Die Suchergebnisse aus jedem Feld werden anschließend integriert und mithilfe mehrerer Reranking-Algorithmen neu bewertet, um genauere Ergebnisse zu liefern.
Warum ist diese Fähigkeit wichtig, und welche Vorteile bietet sie? Welche Designstrategien stehen hinter dieser Funktion? In diesem Beitrag werden wir diese Fragen untersuchen. Außerdem liefern wir ein praktisches Beispiel, das die Ergebnisse von Einzelvektor- und hybriden Suchen vergleicht und zeigt, wie diese leistungsstarke neue Funktion genauere Ergebnisse liefern kann.
Was ist hybride Suche?
Beginnen wir mit den Grundlagen: Was ist hybride Suche in Milvus?
Milvus unterstützt die Erstellung von bis zu 10 Vektorfeldern für denselben Datensatz innerhalb einer einzelnen Collection. Auf Basis dieser Unterstützung ermöglicht hybride Suche Benutzern, gleichzeitig über mehrere Vektorspalten hinweg zu suchen. Diese Fähigkeit erlaubt die Kombination von multimodaler Suche, hybrider Sparse- und Dense-Suche sowie hybrider Dense- und Volltextsuche und bietet dadurch vielseitige und flexible Suchfunktionalität.
Diese Vektoren in verschiedenen Spalten repräsentieren unterschiedliche Facetten von Daten, die aus verschiedenen Embedding-Modellen stammen oder unterschiedliche Verarbeitungsmethoden durchlaufen. Die Ergebnisse hybrider Suchen werden mithilfe verschiedener Re-Ranking-Strategien integriert.
wie hybride Suche funktioniert
So funktioniert hybride Suche in Milvus
Diese Funktion ermöglicht es verschiedenen Spalten:
Mehrere Perspektiven von Informationen darzustellen. Beispielsweise umfassen Produktbilder im E-Commerce Vorder-, Seiten- und Draufsichten. Unterschiedliche Ansichten können mit verschiedenen Typen oder Dimensionen von Vektoren dargestellt werden.
Verschiedene Arten von Vektor-Embeddings zu nutzen. Dazu gehören Dense Embeddings aus Modellen wie BERT und Transformers sowie Sparse Embeddings aus Algorithmen wie BM25, BGE-M3, und SPLADE.
Die Fusion multimodaler Vektoren aus verschiedenen unstrukturierten Datentypen wie Bildern, Videos, Audio- und Textdateien zu unterstützen. Beispielsweise können Verdächtige in strafrechtlichen Ermittlungen durch biometrische Modalitäten wie Fingerabdrücke, Stimmabdrücke und Gesichtserkennung dargestellt werden, was bei der Identifizierung von Personen über verschiedene Modalitäten hinweg hilft.
Die Fusion von Vektorsuche und Volltextsuche zu unterstützen.
Warum wir die hybride Suche verbessert haben
Die jüngste Ankündigung von OpenAI zu seinem multimodalen Modell GPT-4o hat die Diskussionen über die Zukunft der KI neu entfacht. Der Umgang mit multimodalen Daten wird zunehmend notwendig, um Artificial General Intelligence (AGI) zu erreichen. Ihr Aufkommen unterstreicht außerdem die Vorstellung, dass „alles vektorisiert werden kann“. Vektoren, die Kodierungsmethode des KI-Zeitalters, sind das zentrale Bindeglied, das unterschiedliche Modalitäten verbindet. Die Informationen, die sie kapseln, werden vielfältiger und komplexer, wodurch höhere Anforderungen an Vektordatenbanken für das Speichern und Abrufen von Vektordaten entstehen.
Daher ist die Entwicklung hin zur hybriden Suche von entscheidender Bedeutung. Deshalb führt Milvus in seinen neuesten Versionen Unterstützung für hybride Suche ein, um diesen steigenden Anforderungen gerecht zu werden. Diese strategische Erweiterung ermöglicht es Milvus, komplexe und multimodale Datenrepräsentationen zu unterstützen, und treibt die Fähigkeiten von KI-Systemen beim Verstehen und Verarbeiten zunehmend komplexer Datensätze voran.
Mit dieser neuen Funktion ermöglicht Milvus Entwicklern, neue Möglichkeiten in KI-gestützten Anwendungen zu erkunden, und schließt die Lücke zwischen Datenkomplexität und umsetzbaren Erkenntnissen weiter.
Wie wir die hybride Suche in Milvus entwickelt haben
Die Unterstützung der Vektorsuche über mehrere Vektorspalten hinweg erforderte eine umfassende Umstrukturierung des Designs von Milvus. Beispielsweise haben wir die Speicher- und Schreibbeschränkungen aufgehoben, um Systemkompatibilität und Stabilität sicherzustellen, und fortschrittliche Suchmethoden für mehrere Vektorspalten eingeführt, um komplexe Abfragen zu verarbeiten.
Wie funktioniert die hybride Suche?
Zuvor erlaubte Milvus im Schreibpfad nur eine Vektorspalte pro Collection. Wir haben diese Einschränkung aufgehoben und einen Standard von vier Vektorspalten pro Collection eingeführt, der auf maximal zehn erweitert werden kann. Jede Vektorspalte innerhalb einer Collection kann unterschiedliche Metrik- und Indextypen unterstützen.
Wichtiger Hinweis: Aus Gründen der Systemkompatibilität können Sie eine Collection nur abfragen, wenn Indizes für alle Vektorspalten erstellt und in den Speicher geladen wurden.
Wir haben Multi-Route-Vektor-Retrieval und eine hybride Re-Ranking-Strategie implementiert, um Suchvorgänge über mehrere Vektorspalten hinweg für den Lesepfad durchzuführen. Der Prozess ist wie folgt:
Retrieval: Wir definieren interne Parameter, um die abgerufenen Ergebnisse für jede Vektorsuchroute (jede Spalte) zu steuern. Dieser Schritt unterstützt Zwischenparameter wie filter und limit, jedoch keine Ausgabeparameter wie
output_fieldundgroup_by_field.Reranking: Nach dem Erhalt der Ergebnisse aus jeder Retrieval-Route besteht der nächste Schritt darin, diese Ergebnisse in einem Reranking-Prozess zusammenzuführen. Milvus unterstützt zwei klassische Reranking-Strategien: Ranked Retrieval Fusion (RRF) und WeightedRanker. Darüber hinaus ermöglicht Milvus Benutzern auch, Reranking-Modelle auf der Client-Seite zu nutzen, um Ergebnisse neu zu ordnen.
was ist der hybride Suchprozess innerhalb von Milvus
Was ist der hybride Suchprozess innerhalb des Milvus-Systems?
Diese Architektur stellt sicher, dass Milvus die Komplexität der Speicherung und des Abrufs von Informationen in Umgebungen, in denen mehrere Vektorspalten unerlässlich sind, effektiv bewältigen kann.
Reranking-Strategien
Derzeit unterstützt Milvus die folgenden Reranking-Strategien:
Ranked Retrieval Fusion (RRF): Diese Strategie kombiniert Ergebnisse basierend auf ihren Rängen über verschiedene Vektorspalten hinweg.
WeightedRanker: Dieser Ansatz führt Ergebnisse zusammen, indem ein gewichteter Durchschnitt der Scores (oder Vektordistanzen) aus verschiedenen Vektorsuchen berechnet wird. Er weist Gewichtungen basierend auf der Bedeutung jedes Vektorfelds zu.
Die folgende Grafik veranschaulicht, wie der Reranking-Prozess in Milvus funktioniert.
wie Reranking funktioniert
Wie Reranking in Milvus funktioniert
Ranked Retrieval Fusion (RRF)
RRF ist ein Datenfusionsalgorithmus, der Retrieval-Ergebnisse basierend auf dem Kehrwert ihrer Ränge kombiniert. Er gleicht den Einfluss jedes Vektorfelds aus, insbesondere wenn keine klare Rangfolge der Wichtigkeit besteht. Diese Strategie wird verwendet, wenn Sie alle Vektorfelder gleichermaßen berücksichtigen möchten oder wenn die relative Bedeutung jedes Felds ungewiss ist.
Der grundlegende Prozess von RRF ist wie folgt:
Rankings während des Retrieval sammeln: Retriever über mehrere Vektorfelder hinweg rufen Ergebnisse ab und sortieren sie.
Rank Fusion: Der RRF-Algorithmus gewichtet und kombiniert die Ränge jedes Retrievers. Die Formel lautet wie folgt:
RRF-Formel
Hier repräsentiert 𝑁 die Anzahl der verschiedenen Abrufrouten, rank𝑖(𝑑) ist die Rangposition des abgerufenen Dokuments 𝑑 durch den 𝑖-ten Retriever, und 𝑘 ist ein Glättungsparameter, der typischerweise auf 60 gesetzt wird.
- Umfassendes Ranking: Sortieren Sie die abgerufenen Ergebnisse basierend auf den kombinierten Bewertungen neu, um die endgültigen Ergebnisse zu erzeugen.
WeightedRanker
Die WeightedRanker-Strategie weist Ergebnissen aus jeder Vektorabrufroute unterschiedliche Gewichte zu, basierend auf der Bedeutung jedes Vektorfelds. Diese Reranking-Strategie wird angewendet, wenn die Bedeutung jedes Vektorfelds variiert, sodass Sie bestimmte Vektorfelder gegenüber anderen hervorheben können, indem Sie ihnen höhere Gewichte zuweisen. Beispielsweise könnte bei einer multimodalen Suche die Textbeschreibung als wichtiger angesehen werden als die Farbverteilung in Bildern.
Der grundlegende Prozess von WeightedRanker ist wie folgt:
Scores während des Abrufs sammeln: Sammeln Sie Ergebnisse und deren Scores aus verschiedenen Vektorabrufrouten.
Score-Normalisierung: Normalisieren Sie die Scores aus jeder Route auf einen Bereich von [0,1], wobei Werte näher an 1 eine höhere Relevanz anzeigen. Diese Normalisierung ist entscheidend, da Score-Verteilungen je nach Metriktyp variieren. Beispielsweise reicht die Distanz für IP von [-∞,+∞], während die Distanz für L2 von [0,+∞] reicht. Milvus verwendet die arctan-Funktion und transformiert Werte in den Bereich [0,1], um eine standardisierte Grundlage für verschiedene Metriktypen bereitzustellen.
Gewichtszuteilung: Weisen Sie jeder Vektorabrufroute ein Gewicht
w𝑖zu. Benutzer geben die Gewichte an, die die Zuverlässigkeit, Genauigkeit oder andere relevante Metriken der Datenquelle widerspiegeln. Jedes Gewicht liegt im Bereich [0,1].Score-Fusion: Berechnen Sie einen gewichteten Durchschnitt der normalisierten Scores, um den endgültigen Score abzuleiten. Die Ergebnisse werden dann basierend auf diesen Scores von hoch nach niedrig geordnet, um die endgültig sortierten Ergebnisse zu generieren.
weightedranker fomula
Vergleich von Hybrid Search und Single Vector Search anhand eines Beispiels
In diesem Abschnitt vergleichen wir Bildsuchergebnisse mithilfe von Single-Vector- und Hybrid Search und zeigen, wie Hybrid Search die Qualität der Suchergebnisse verbessern kann. Weitere Details finden Sie in den vollständigen Codeausschnitten in diesem Notebook.
Der Datensatz
Wir haben Bilder mit Ampeln aus öffentlichen Quellen als unseren Datensatz heruntergeladen.
the dataset
Abfragebild
In dieser Demo ist das folgende Bild das Abfragebild, das wir im Datensatz finden möchten.
query image
Merkmalsextraktion mit ResNet und CLIP
Wir müssen eine Collection mit mehreren Vektorspalten erstellen, bevor wir die Merkmalsextraktion durchführen und Bilder in Milvus einfügen. Im folgenden Codeausschnitt haben wir zwei Vektorspalten erstellt, um Bildmerkmalsvektoren zu speichern, die mit verschiedenen Embedding-Modellen extrahiert wurden.
Create a collection with multiple vector columns
Für diese Demo verwenden wir ResNet und CLIP als unsere Embedding-Modelle.
- ResNet (Residual Network): Ein beliebtes Modell für Bilderkennung und Klassifizierung.
resnet.png
- CLIP (Contrastive Language–Image Pre-training): Ein bimodales Text-Bild-Embedding-Modell, das die Lücke zwischen visuellen und textuellen Daten überbrückt. Wir verwenden es, um Merkmale aus Bildunterschriften für die Bildsuche zu extrahieren.
clip
Single-Vector-Suchergebnisse mit ResNet-Vektoren
Wenn der Datensatz bei der Bildsuche ein identisches Bild zur Abfrage enthält, kann eine einspaltige Dense-Vektor-Suche schnell das korrekte Ergebnis liefern. In realen Anwendungsfällen unterscheiden sich Abfragebilder jedoch häufig von denen im Datensatz, etwa durch unterschiedliche Winkel oder Umgebungs-Hintergründe, was die Ergebnisse der Vektorsuche beeinflusst. In diesem Beispiel verwenden wir spezifische Merkmale aus dem Abfragebild, wobei wir uns insbesondere auf die Ampel konzentrieren, um die Bildsuche durchzuführen.
spezifische Merkmale des Abfragebilds - die Ampel
Wie Sie den folgenden Ergebnissen entnehmen können, heben alle zurückgegebenen Bilder hauptsächlich das Objekt der Ampel hervor. Das Abfragebild (Nr. 3) selbst wird jedoch nicht als das ähnlichste eingestuft. Wenn wir die Suchergebnisse auf nur die beiden obersten Bilder beschränken, erscheint das Abfragebild überhaupt nicht in den Ergebnissen.
Suchergebnisse - resnet.png
Ergebnisse der Single-Vector-Suche mit CLIP-Vektoren
Als Nächstes betrachten wir eine weitere Single-Vector-Suche. Aufgrund der multimodalen Verständnisfähigkeit von CLIP können wir mit Texteingaben nach Bildern suchen. Hier lautet die Sucheingabe „Bilder mit Gebäuden im Hintergrund“.
Suchergebnisse - clip
Die Ergebnisse zeigen, dass sich die zurückgegebenen Bilder auf das Hintergrundelement der Gebäude konzentrieren. Das Abfragebild scheint jedoch weiterhin nicht der beste Treffer zu sein.
Ergebnisse der Hybrid Search
Die Ergebnisse der vorherigen beiden einspurigen Vektorsuchen waren nicht ideal, daher haben wir eine hybride Suche über mehrere Vektorspalten hinweg durchgeführt. Bei dieser Hybrid Search werden die Ergebnisse der beiden AnnSearchRequest-Routen mithilfe einer gewichteten Durchschnittsmethode zusammengeführt. Die Gewichte für die ResNet- und CLIP-Spalten wurden auf 0,7 bzw. 0,8 gesetzt.
Ergebnisse der Hybrid Search
Wie Sie den obigen Ergebnissen entnehmen können, wurde das Abfragebild diesmal als das ähnlichste Bild (Top 1) zurückgegeben.
Dieses Beispiel zeigt, wie Hybrid Search multimodale Eingaben aus Bildern und Text effektiv integriert. Im Vergleich zu Single-Vector-Suchen zeigt Hybrid Search eine erhebliche Verbesserung der Endergebnisse.
Zusammenfassung
Hybrid Search ist eine Kernfunktion in Milvus, die die Datensuchfähigkeiten verbessert, indem sie gleichzeitige Abfragen über mehrere Vektorfelder hinweg ermöglicht. Diese Funktion kombiniert hybride Sparse- und Dense-Suche, multimodale Suche sowie hybride Dense- und Volltextsuche; all diese Suchergebnisse werden integriert und mithilfe effizienter Re-Ranking-Strategien neu eingestuft, um ein genaueres und relevanteres Endergebnis zu erzielen.
In Zukunft werden wir uns darauf konzentrieren, Hybrid Search auf verschiedene Bereiche auszuweiten. Beispielsweise kann sie erweitert werden, um zeitbasiertes Reranking für Anwendungsfälle wie die Empfehlung trendender sozialer Themen für Twitter oder TikTok zu nutzen. Wir planen außerdem, robustere Fusionsalgorithmen und Reranking-Modelle einzuführen, um ein verfeinertes Sucherlebnis zu bieten.
Das Potenzial der Hybrid Search geht über das hinaus, was hier behandelt wurde. Bleiben Sie dran für weitere Updates von uns.
Weiterlesen

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.



