Ein ehrlicher Vektor-Speicher: Lebenszyklus, Nutzerberechtigungen, Metadaten, hybrider Suchmodus
Ein Vector-Store für RAG in der Produktion betreiben: Dokumentlebenszyklus, Aktualisierung von Embeddings, Tenant-Filter, hybrider Suchmodus für exakte IDs, Metadaten und Tracing.
Quellen: Vector Store Operations: What Keeps RAG Retrieval Correct in Production
Ein Feldtechniker fragt einen internen Support-Mitarbeiter, wie man eine Hydraulikpumpe ersetzt. Die Antwort scheint in Ordnung zu sein: richtige Gerätefamilie, richtiger Pumpentyp sowie eine sinnvolle Abfolge von Schritten. Sie ist außerdem bereits ein halbes Jahr alt. Die aktuelle Mitteilung verlangt einen Firmware-Upgrade vor dem Einbau der Pumpe, während die alte Mitteilung davon nie spricht. Beide Mitteilungen befinden sich im Vector-Store. Die neue wurde ordnungsgemäß indiziert, doch die alte wurde nie zurückgezogen. Das Modell hat nichts erfunden – es wurden ihm einfach veraltete Informationen gegeben.
Fragen wie diese entscheiden darüber, ob einem Suchsystem vertraut werden kann.
- Welche Version eines Dokuments kann derzeit abgerufen werden?
- Wie schnell wird eine Aktualisierung nach der Freigabe suchbar?
- Kann ein Kunde jemals den Inhalt eines anderen Kunden sehen?
- Was passiert, wenn ein Benutzer nach einer genauen Teilenummer und nicht nach einer allgemeinen Beschreibung sucht?
Das hat nichts mit der Qualität des Modells zu tun. Es geht um den täglichen Betrieb eines Vektorlagers.
Eine konkrete Einstellung: technischer Support für mehrere Kunden
Stellen Sie sich eine Support-Plattform vor, die von Gerätehändlern in mehreren Ländern genutzt wird. Sie enthält Produktanleitungen, Reparaturhinweise, Ersatzteilkataloge, Garantiebedingungen, Wartungsverfahren sowie Notizen, die von den einzelnen Händlern geschrieben wurden. Ein Techniker könnte fragen, welches Ersatzverfahren für die MX-204-Hydraulikpumpe, Version 5.2, in seiner eigenen Region zugelassen ist.
Das ist keine einfache semantische Suche. Das System muss die Wartungszwecke erkennen, genaue Identifikatoren wie die MX-204-Version 5.2 unverändert beibehalten, das aktuelle Reparaturverfahren zurückgeben, die richtige regionale Richtlinie anwenden und alles ausschließen, was zu anderen Händlern oder Konten gehört. Eine reine Ähnlichkeitsabfrage kann diese Garantien nicht bieten. Die Suchschicht muss sich wie ein verwalteter Informationsdienst verhalten.
Die Indizierung als Dokumentfreigabeverwaltung betrachten
Frühe Implementierungen von RAG betrachten die Indizierung in der Regel als ein einzelnes Vorgang: Hochladen, Aufteilen in Blöcke, Einbetten, Schreiben, fertig. Danach bleibt das Dokument suchbar, bis jemand zufällig ein Problem bemerkt. Die daraus resultierenden Fehler sind leicht vorherzusagen.
- Ein überarbeitetes Handbuch existiert neben seinem Vorgänger.
- Ein Entwurf einer Richtlinie wird bereits suchbar, bevor er von jemandem genehmigt wird.
- Ein zurückgezogener Vorgang bleibt verfügbar, da es kein Löschverfahren gibt.
- Ein Fehler im Pipeline-Prozess lässt ein Dokument nur teilweise indizieren, sodass nur Fragmente abgerufen werden können.
Für ein Support-Korpus sieht das kleinste nützliche Set an Lebenszykluszuständen wie folgt aus:
- Entwurf: erhalten, noch nicht zur Abrufung freigegeben.
- Kandidat: indiziert und zur Überprüfung bereit.
- Aktiv: freigegeben und zur Abrufung geeignet.
- Überholt: durch eine neuere Version ersetzt, zur Prüfung aufbewahrt, vor normalen Abfragen versteckt.
- Quarantäne: zurückgehalten, weil die Überprüfung, Metadaten-Checks oder eine Inhaltserstellung fehlschlugen.
- Gelöscht: aus dem Korpus entfernt und bei Bedarf auch aus der zugrunde liegenden Speicherung.
Es gilt eine wichtige Regel: Die Suche sollte nur Dokumente im Aktivzustand berücksichtigen. Dies muss mithilfe von Metadatenfiltern durchgesetzt werden, nicht durch Gewohnheiten bei der Benennung von Dateien oder Anweisungen in einer Anfrage.
Jedes Dokument benötigt außerdem eine stabile Dokument-ID sowie eine separate Version-ID. Die erste bezeichnet das logische Asset, wie beispielsweise ein bestimmtes Reparaturhandbuch, und die zweite bezeichnet eine bestimmte Überarbeitung davon. Die Freigabe einer neuen Überarbeitung aktiviert die neue Version und markiert die vorherige als überholt – dieser Wechsel sollte atomar erfolgen. Dadurch stellt das System sicher, dass keine mehr gültigen, aber relevanten Inhalte mehr angezeigt werden.
Aktualisierung von Embeddings: schrittweise, versioniert, rückgängig machbar
Die Aktualisierung von Embeddings wird oft als Aufgabe beschrieben, die immer dann ausgeführt werden muss, wenn sich das Modell ändert. Tatsächliche Auslöser sind jedoch vielfältiger:
- Ein Queldokument wird geändert.
- Eine Richtlinie erreicht ihr Gültigkeits- oder Ablaufdatum.
- Das Metadatenschema erweitert sich.
- Die Chunking-Strategie wird verbessert.
- Das Embedding-Modell wird aktualisiert.
- Ein Dokument wird zurückgezogen oder umklassifiziert.
- Die Berechtigungen eines Nutzers ändern sich.
Jeder Fall erfordert eine andere Reaktion. Eine überarbeitete Mitteilung benötigt möglicherweise nur eine Aktualisierung auf Ebene der Abschnitte. Ein neues Embedding-Modell kann bedeuten, dass alles neu aufgebaut werden muss. Ein neues Metadatenfeld erfordert eine kontrollierte Nachberechnung, und ein zurückgezogenes Dokument muss umgehend aus dem aktiven Index entfernt werden.
Daher sollte der Aktualisierungsprozess vier Versionen verfolgen: die Quellversion, die Chunking-Logik, das Embedding-Modell sowie das zur Filterung verwendete Metadatenschema. Ohne diese Nachverfolgung kann niemand erklären, warum sich zwei Blöcke bei der Abrufung unterschiedlich verhalten.
In der Praxis wird die eingehende Datei mithilfe eines Inhalts-Hashes oder eines strukturierten Diffs mit der aktiven Version verglichen. Die geänderten Abschnitte werden erneut in Blöcke aufgeteilt und eingebettet, während unveränderte Abschnitte unverändert bleiben – es sei denn, sich die Art der Blockierung oder Einbettung geändert hat.
Größere Modelloptimierungen erfordern einen sichereren Ablauf: Es wird ein paralleler Kandidatenindex erstellt, Bewertungsabfragen an beide Indexe gestellt, Zugriffskontrollen überprüft und der Verkehr erst dann umgeleitet, wenn der neue Index eine akzeptable Leistung zeigt. Entscheidend ist nicht, ob das neue Modell in einem Benchmark bessere Ergebnisse erzielt hat, sondern ob der neue Index für die tatsächlich eingegebenen Abfragen die richtigen, genehmigten Ergebnisse liefert.
Setzen Sie die Berechtigungen vor dem Abrufen durch, nicht danach.
Ein gefährlicher, aber häufig vorkommender Konstruktionsfehler bei multi-tenant RAG ist das Filtern nach dem Kunden nach der Suche. Das System sucht zunächst weit gefasst und entfernt anschließend die Ergebnisse, die anderen Organisationen gehören. Das ist bereits zu spät. Kunden- und Zugriffsfilter müssen den möglichen Ergebnisraum bereits vor Beginn jeder Vektor- oder Schlüsselwortabgleich definieren.
In der Support-Plattform lässt sich der Inhalt in drei Gruppen einteilen.
- Globaler Inhalt: Herstellermanualen und gemeinsame Sicherheitsverfahren.
- Händler-Inhalt: interne Serviceanleitungen, Geschäftsvereinbarungen und lokale Betriebsanleitungen.
- Kunden-Inhalt: Historie der Assets, Vertragsbedingungen und vertrauliche Betriebsnotizen.
Sie benötigen nicht denselben Speicherlayout. Globales Inhalt kann ein gemeinsames Korpus teilen. Händlerinhalte können einen durch verpflichtende Mieterfilter geschützten Index teilen. Sehr sensible Kunden mögen je nach regulatorischen, vertraglichen und risikobezogenen Anforderungen eigene Sammlungen oder isolierte Indizes benötigen.
Mieter, Rolle, Region, Produktberechtigung und Vertraulichkeitsgrad müssen aus der authentifizierten Sitzung stammen und niemals aus der Formulierung einer Anfrage. Ein Techniker, der den Namen eines anderen Händlers in eine Abfrage eingibt, darf den Filter nicht ändern. Im Grunde besagt die Suchanfrage, nur das suchen zu dürfen, auf das dieser authentifizierte Benutzer Zugriff hat, und erst danach beginnt die semantische oder schlagwortbasierte Sortierung. Dadurch wird die Vertraulichkeit geschützt und gleichzeitig unrelevante Ergebnisse entfernt.
Hybride Suche für exakte Identifikatoren
Dichte Vektorabfragen sind besonders nützlich, wenn Menschen ein Problem in Alltagssprache beschreiben, beispielsweise indem sie fragen, welche Firmware-Version vor dem Einbau einer Ersatzpumpe im MX-204 erforderlich ist. Teilenummern, Steuerungscode und Versionsangaben verhalten sich anders, und ein lexikalischer Index eignet sich viel besser, um sie genau abzugleichen.
Im Fall des MX-204 kann eine lexikalische Suche das exakte Dokument liefern, da es die Identifikatoren für Steuerung und Pumpe enthält, während eine dichte Suche verwandte Wartungshinweise liefert. Ein Neubewertungsmechanismus kann anschließend das Dokument bevorzugen, das die Firmware-Voraussetzungen sowie die genehmigte Vorgehensweise enthält.
Wenn die Suchleistung schwach ist, hilft es selten, mehr Textabschnitte in den Kontext aufzunehmen. Ein größeres top-k-Set fügt meist nur Störungen, Verzögerungen sowie die Möglichkeit eines plausibel klingenden, aber nicht belegten Antworten hinzu. Besser ist es, herauszufinden, in welcher Phase etwas schiefgelaufen ist.
- War das richtige Dokument inaktiv?
- Hat ein fehlerhafter Metadatenfilter es ausgeschlossen?
- Hat die lexikalische Suche ein alternatives Teilenummernformat übersehen?
- Hat der Neubewertungsmechanismus ein allgemeineres Dokument einem spezifischeren vorgezogen?
Jedes dieser Probleme ist ein messbares Systemproblem.
Metadaten als Steuerungsplattform
Metadaten werden oft als optionale Tags behandelt, die während der Eingabe hinzugefügt werden. In der Produktion bestimmen sie, was das System abrufen darf. Ein nützliches Schema umfasst fünf Bereiche.
- Identität: das Queldokument, das ursprüngliche System für den Datensatz sowie ein Inhaltshash.
- Lebenszyklus: Version, Freigabestatus, Gültigkeits- und Ablaufdaten sowie welche Versionen welche ersetzen.
- Zugriff: Tenant-ID, Region, Rollenrechte, Produktzugriff, Vertraulichkeitsstufe und rechtliche Beschränkungen.
- Abruf: Dokumenttyp, Sprache, Gerätemodell, Komponentenfamilie, Produktlinie und Inhaltskategorie.
Durch diese Struktur werden Fragen, die sonst schwierig zu beantworten wären, zu einfachen Abfragen. Welche aktiven Dokumente verwenden noch das alte Einbettungsmodell? Welche Wartungsverfahren laufen nächsten Monat ab? Welche Chunks fehlen regionale Metadaten? Welcher Mieter weist die höchste Anzahl an leeren Ergebnissen auf? Welche Quellsysteme verursachen die meisten Aufnahmefehler?
Metadaten sollten vor dem Eintreten eines Dokuments in das aktive Korpus validiert werden. Ein Chunk ohne Mieterspezifikation, Lebenszyklusstatus, Produktlinie oder Freigabestatus darf nicht allein deshalb suchbar werden, weil seine Einbettung erstellt wurde. Viele RAG-Systeme werden genau an diesem Punkt unzuverlässig: Die Datenbank funktioniert wie vorgesehen, doch das Metadatenmodell ist zu einfach strukturiert, um die tatsächlichen Regeln der Organisation bezüglich Zugriff, Lebenszyklus und Richtlinien darzustellen.
Überwachungsfähigkeit zur Erkennung des fehlerhaften Schritts
Wenn ein Benutzer eine falsche Antwort meldet, kann mehrere Dinge schiefgelaufen sein. Die richtige Quelle wurde möglicherweise nie indiziert, oder sie wurde zwar indiziert, aber als inaktiv markiert, oder von einem Filter ausgeschlossen. Sie könnte es zwar in die Liste der Kandidaten geschafft haben, aber zu niedrig bewertet worden sein. Möglicherweise wurde sie in den Modellkontext aufgenommen, aber ignoriert. Oder das Modell hat etwas geschrieben, was von den Beweismitteln nicht gestützt wird. Jeder Fall erfordert eine andere Lösung.
Deshalb protokolliert ein ausgereiftes Abrufsystem den gesamten Ablaufweg:
- Die Abfrage sowie den Benutzerkontext.
- Die angewendeten Zugriffs- und Lebenszyklusfilter.
- Dichte Kandidaten sowie lexikalische Kandidaten.
- Die zusammengeführte Rangliste sowie die Ausgabe des Neurangierers.
- Die endgültigen Beweismittel, die an das Modell übergeben werden.
- Die in der Antwort verwendeten Zitate.
Nützliche Maßnahmen umfassen die Verzögerung zwischen der Freigabe der Quelle und der Aktivierung des Index, den Anteil an aktiven Inhalten in der aktuellen Einbettungsversion, Dokumente mit mehr als einer aktiven Version, die Fehlerquoten bei bestimmten Abfragen, die Abdeckung bei Tests mit bekannten Antworten, die Ablehnungsquoten durch Filter sowie jeden Versuch eines Zugriffs zwischen verschiedenen Nutzern.
Eine nützliche Kennzahl ist die Abdeckungsrate der Kandidaten: Bei einer Abfrage mit bekannter Antwort – erschien die richtige Quelle vor der Neubewertung unter den Kandidaten? Falls nicht, liegt das Problem vermutlich bei der Indexierung, dem Filtern oder der Suchkonzeption. Wenn sie zwar erschien, aber schlecht bewertet wurde, sollte man sich die Fusion oder die Neubewertung ansehen. Wenn sie gut bewertet wurde, aber die Antwort sie ignorierte, liegt das Problem in der Erstellung oder Zusammenstellung der Anfrage. Durch die Trennung der Phasen verhindern Teams, dass sie versuchen, alles durch Bearbeitung der Anfrage zu beheben.
Ein Betriebsablauf
Ein Vektorlagersystem verdient dieselbe Sorgfalt wie jeder produktive Datendienst. Tägliche Überprüfungen sollten auf Fehlern bei der Dateneingabe, ausstehenden Aktualisierungen, Dokumenten, die in der Warteschlange oder in der Quarantäne stecken, fehlenden obligatorischen Metadaten sowie Verzögerungen bei der Freigabe zur Indexierung achten. Wöchentliche Überprüfungen sollten die Qualität der Abfragen bei verschiedenen Arten von Anfragen prüfen – von konversationalen Fragen über reine Codes, Produktnamen, Policy-Suchen, Suchanfragen in anderen Sprachen bis hin zu vagen Anfragen.
Jede Änderung bezüglich der Chunking-Methoden, Embedding-Modelle, des Metadatenschemas oder der Zugriffsrichtlinien sollte zunächst in einer Testumgebung getestet werden. Das Bewertungsset benötigt echte Benutzeranfragen, Fälle mit bekannten Antworten, Zugriffskontrolltests sowie Anfragen, die darauf abzielen, Lecks von Daten oder veraltete Inhalte aufzudecken.
Ziel ist es nicht, mehr Dokumente abzurufen, sondern den richtigen, genehmigten Beweis zum richtigen Zeitpunkt dem richtigen Benutzer zur Verfügung zu stellen. Ein Vektorlager ist keine passive Datenbank hinter einem Chatbot, denn es entscheidet, welcher Beweis zur Formulierung einer Antwort zugelassen wird. Wenn veraltete Dokumente weiterhin aktiv bleiben, sind Benutzerfilter optional, Identifikatoren verschwinden bei semantischer Abgleichung oder Metadaten können keine Geschäftsregeln ausdrücken – das System ist dann unzuverlässig, egal wie leistungsfähig das Modell ist.