Metadatenfilterung, hybride Suche oder Agent beim Erstellen Ihrer RAG-Anwendung
Was ist RAG?
Retrieval Augmented Generation (RAG) ist eine Technik, die LLMs durch die Integration zusätzlicher Datenquellen erweitert. Eine typische RAG-Anwendung umfasst:
Indexierung - eine Pipeline zum Aufnehmen von Daten aus einer Quelle und zu deren Indexierung, die in der Regel aus dem Laden, Aufteilen und Sortieren der Daten in Milvus besteht.
Retrieval und Generierung - Zur Laufzeit verarbeitet RAG die Anfrage des Benutzers, ruft relevante Daten aus dem in Milvus gespeicherten Index ab, und das LLM generiert auf Grundlage dieses angereicherten Kontexts eine Antwort.
Es gibt verschiedene Möglichkeiten, Ihre RAG-Anwendung zu verbessern. In diesem Blog besprechen wir, wie die Milvus-Vektordatenbank die Leistung Ihrer RAG-Apps mit ihren Funktionen für Metadatenfilterung, hybride Suche und Agent-Fähigkeiten steigern kann.
Metadatenfilterung
Beim Einfügen Ihrer Daten in Milvus ist es hilfreich, Metadaten zu Ihren Daten einzuschließen. Wenn Sie beispielsweise mit PDFs arbeiten, können Sie die Seite einfügen, zu der die Vektoren gehören, den Namen der PDF-Datei, den Autor usw.
Das Speichern von Metadaten in Milvus ermöglicht es Ihnen, irrelevante Daten herauszufiltern, wodurch Ihr Retrieval schneller und effizienter wird. Dieser Ansatz kann besonders nützlich für Ihre RAG-Anwendung sein, da Sie sicherstellen können, dass Sie dem LLM nur die Inhalte zurückgeben, die für die Anfrage Ihres Benutzers relevant sind.
Milvus unterstützt den Abgleich von Metadaten als vollständige Zeichenketten, wodurch es möglich ist, Zeichenketten mithilfe von Präfix-, Infix-, Postfix- oder sogar Zeichen-Wildcard-Suchen abzugleichen.
# Präfix-Beispiel, stimmt mit jeder Zeichenkette überein, die mit “The” beginnt.
expression='title like "The%"'
# Infix-Beispiel, stimmt mit jeder Zeichenkette überein, die das Wort “the” irgendwo im Satz enthält.
expression='title like "%the%"'
# Postfix-Beispiel, stimmt mit jeder Zeichenkette überein, die mit “Rye” endet.
expression='title like "%Rye"'
# Beispiel für einen Einzelzeichen-Wildcard, stimmt mit einem beliebigen einzelnen Zeichen an einer bestimmten Position überein.
expression='title like "Flip_ed"'
Es ist auch möglich, Array-Werte zu verwenden, entweder durch exakte Übereinstimmungen oder indem geprüft wird, ob beliebige Elemente im Array mit contains_any() übereinstimmen.
Hybride Suche
Milvus erlaubt bis zu 10 Vektorfelder in einer einzelnen Dataset-Sammlung. Diese Unterstützung ermöglicht hybride Suche, sodass Benutzer gleichzeitig über mehrere Vektorspalten hinweg suchen können. Diese Fähigkeit erleichtert multimodale Suche, hybride Suche mit Sparse und Dense sowie hybride Dense- und Volltextsuche und bietet vielseitige und flexible Suchfunktionalität.
Vektoren in verschiedenen Spalten repräsentieren unterschiedliche Aspekte von Daten, die von verschiedenen Embedding-Modellen mit unterschiedlichen Verarbeitungsmethoden erzeugt wurden. Die Ergebnisse der hybriden Suche werden anschließend kombiniert und mithilfe verschiedener Re-Ranking-Strategien neu bewertet.
Wie hybride Suche in Milvus funktioniert
Mehrere Perspektiven von Informationen darstellen. Im E-Commerce umfassen Produktbilder beispielsweise Vorder-, Seiten- und Draufsicht. Verschiedene Ansichten können mit unterschiedlichen Typen oder Dimensionen von Vektoren dargestellt werden.
Verschiedene Arten von Vektor-Embeddings nutzen. Dazu gehören Dense Embeddings aus Modellen wie BERT und Transformers sowie Sparse Embeddings aus Algorithmen wie BM25, BGE-M3 und SPLADE.
Unterstützung der Fusion multimodaler Vektoren aus verschiedenen unstrukturierten Datentypen wie Bildern, Videos, Audio- und Textdateien. Beispielsweise können in strafrechtlichen Ermittlungen Verdächtige durch biometrische Modalitäten wie Fingerabdrücke, Stimmabdrücke und Gesichtserkennung dargestellt werden, was dabei hilft, Personen über verschiedene Modalitäten hinweg zu identifizieren.
Unterstützung der Fusion von Vektorsuche und Volltextsuche.
Agents in RAG-Anwendungen
Große Sprachmodelle können selbst keine Aktionen ausführen – sie geben lediglich Text aus. Agents sind Systeme, die LLMs als Reasoning-Engines verwenden, um zu bestimmen, welche Aktionen ausgeführt werden sollen und welche Eingaben ihnen übergeben werden. Nach der Ausführung von Aktionen können die Ergebnisse zurück an das LLM übertragen werden, um zu bestimmen, ob weitere Aktionen erforderlich sind oder ob der Vorgang abgeschlossen werden kann.
Sie können verwendet werden, um Aktionen wie die Websuche, das Durchsuchen Ihrer E-Mails, die Korrektur von RAG durch Hinzufügen von Selbstreflexion oder Selbstbewertung für abgerufene Dokumente und vieles mehr auszuführen.
Sobald sie eingerichtet sind, können die Agents neue Daten zu Milvus hinzufügen, wenn die Daten noch nicht gespeichert sind, oder sie können diese auch abrufen und an Ihr LLM zurückgeben. Dadurch kann Ihr RAG-System weiterhin auf dem neuesten Stand bleiben. Milvus macht es außerdem einfach, Ihre Daten bei Bedarf mit der Funktion ``` upsert()` `` zu aktualisieren.
Deshalb ist es wichtig, Metadaten in Ihrer Collection zu haben, da Sie damit nur die notwendigen Informationen per upsert aktualisieren können.
Schauen Sie sich gerne unseren Blog an, in dem wir zeigen, wie man ein Local Agentic RAG-System mit LangGraph, Llama 3 und Milvus erstellt
Fazit
Zusammenfassend lässt sich sagen, dass die Verwendung von Metadata Filtering, Hybrid Search und Agents, die alle in Milvus integriert sind, Ihre RAG-Anwendung verbessern kann.
Metadata Filtering ermöglicht es Ihnen, Ihre Daten mit zusätzlichen Attributen anzureichern und so präzise und effiziente Suchen zu ermöglichen. Hybrid Search erweitert die Suchmöglichkeiten, indem Abfragen über mehrere Vektorspalten hinweg ermöglicht werden. Agents gehen in ihrer Funktionalität noch einen Schritt weiter, indem sie Aktionen basierend auf der Ausgabe des LLM automatisieren.
Mit diesen Strategien können Sie eine robustere und effizientere RAG-Anwendung erstellen.
Wenn Ihnen dieser Blogbeitrag gefallen hat, geben Sie uns gerne einen Stern auf Github und treten Sie unserem Discord bei, um Ihre Erfahrungen mit der Community zu teilen.
Weiterlesen

Introducing Zilliz Cloud Global Cluster: Region-Level Resilience for Mission-Critical AI
Zilliz Cloud Global Cluster delivers multi-region resilience, automatic failover, and fast global AI search with built-in security and compliance.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.



