In einer datengetriebenen Welt entscheidet die Fähigkeit, Informationen schnell zu finden und abzurufen, oft über den Erfolg. Mit dem Vertex AI Agent Builder bündelt Google Cloud seine jahrzehntelange Erfahrung in Search und Conversational AI in einem leistungsfähigen Werkzeug für Gen-AI-Anwendungen. Eines der neuesten Features ist Search Tuning (zum Redaktionsschluss noch in der Preview): Damit lässt sich das Suchmodell gezielt auf die Anforderungen Ihrer Branche oder Ihres Unternehmens zuschneiden.
In diesem Beitrag stellen wir den Service kurz vor (mit Verweisen auf die passende Dokumentation für alle, die tiefer einsteigen wollen) und liefern ein Skript für vorbereitende Datenprüfungen mit – damit Sie ohne Umwege starten und Ihr Search Tuning auf Kurs bleibt.
Was ist der Vertex AI Agent Builder?
Eines vorweg: Da uns als Entwicklern Namen wichtig sind – und die Produktbezeichnungen rund um diese Features in den letzten Jahren ein bewegliches Ziel waren – kurz zur Einordnung: Anfang 2023 als Gen App Builder gestartet, kurz darauf in Vertex AI Search and Conversation umbenannt, heißt das Produkt heute Vertex AI Agent Builder.
Damit wäre die Namensfrage geklärt – schauen wir uns also an, was das Tool für uns leisten kann.
Mit dem Vertex AI Agent Builder macht Google Cloud Ihnen und Ihrem Unternehmen den Einstieg in Gen AI besonders einfach. Er nimmt Ihnen einen Großteil der Vorarbeit ab, die für eine Conversational AI, eine semantische Suche oder ein Retrieval-Augmented-Generation-System (RAG) sonst nötig wäre, und gibt Ihnen Zugriff auf erstklassige Foundation Models sowie auf die weltweit anerkannte Suchtechnologie, an der Google seit 25 Jahren feilt.
Im Vergleich zu anderen Angeboten der Vertex-AI-Suite (etwa der Gemini-1.5-Pro-API oder Vector Search) ist der Agent Builder deutlich stärker gemanagt und bietet entsprechend weniger Spielraum für Anpassung und Flexibilität. Im Gegenzug erreichen Sie schneller Time-to-Market und sind weniger auf rares In-House-Know-how angewiesen.
Innerhalb des Vertex AI Agent Builder stehen Vertex AI Agents und Vertex AI Search zur Verfügung:
- Vertex AI Agents erleichtert den Aufbau dialogbasierter Benutzeroberflächen über eine auf Large Language Models (LLMs) basierende Plattform für Natural Language Understanding.
- Vertex AI Search wiederum unterstützt Sie beim Aufbau KI-gestützter Such- und Empfehlungserlebnisse.
Heute geht es um Vertex AI Search, denn dort ist das Search Tuning verankert, für das wir Ihnen gleich ein Skript zur Datenprüfung an die Hand geben.
Eine ausführliche Einführung finden Sie in der Dokumentation hier.
Was ist Vertex AI Search?
In Vertex AI Search können Sie sowohl Search Apps als auch Recommendation Apps bauen. Hier liegt unser Fokus heute auf den Search Apps.
Einige der zentralen Features:
- Natural Language Understanding und semantische Suche – out of the box. Die semantische Suche erfasst Kontext und Absicht hinter einer Suchanfrage. Klassische Ansätze wie die Keyword-Suche stützen sich dagegen auf die exakte Übereinstimmung einzelner Stichwörter, ohne Sinn oder Kontext zu erfassen. Bei der Anfrage "Wann hat Apple das letzte iPhone vorgestellt?" erkennt die semantische Suche etwa, dass Apple Inc. gemeint ist und nicht Ihre Lieblingsfrucht.
- Out-of-the-box-Funktionen für Synonymerkennung, Rechtschreibkorrektur und Suchvorschläge.
- Generative-AI-gestützte Zusammenfassungen und Conversational Search für unstrukturierte Dokumente. Sie können beispielsweise festlegen, welche Antworten ausgespielt werden:
- Suche (Single-Turn)
- Suche mit Antwort (Single-Turn-Suche mit Zusammenfassung)
- Suche mit Folgefragen (Multi-Turn-Suche)
Das Setup von Vertex AI Search besteht im Wesentlichen aus zwei Phasen:
- Vorbereitung: Wir richten einen Data Store ein und spielen unsere strukturierten oder unstrukturierten Daten ein. Diese werden verarbeitet, in Chunks zerlegt und gemeinsam mit ihren Metadaten als Embeddings abgelegt – und zwar in der hochperformanten Vektordatenbank von Google Cloud, Vector Search. Auch hier haben Sie Stellschrauben: Sie können ein eigenes Schema mitbringen, eigene Embeddings nutzen (zum Redaktionsschluss in Preview) und sogar Parsing und Chunking individuell anpassen.
- Laufzeit: Hier findet die eigentliche Abfrage anhand der Nutzereingabe statt. Das System ruft die relevanten Dokumente ab und generiert daraus – falls gewünscht – eine Antwort. Auch an dieser Stelle ist Anpassung möglich: Sie bringen natürlich Ihre eigenen Prompts mit, können bestimmte Controls setzen, um etwa die Trefferliste zu filtern, und entscheiden, ob in den Responses kurze Antworten (Snippets) oder längere Absätze (Extractive Answers bzw. Segments) ausgegeben werden. Einen eigenen Ranker können Sie nicht mitbringen – dazu gleich mehr!

Beispiel eines Extractive Segments aus einem unstrukturierten Data Store (PDF). Beachten Sie, dass die Seitenzahl aus der Originaldatei in der Referenz übernommen wird. (Screenshot aus Platzgründen angepasst)
Was ist Search Tuning?
Was tun, wenn Sie mit der Qualität Ihrer Suchergebnisse nicht zu 100 % zufrieden sind? Dann greifen Sie für Ihre unstrukturierten Data Stores zum Search-Tuning-Feature (zum Redaktionsschluss in Preview). Gerade wenn die zu durchsuchenden Daten sehr spezifisch für Ihr Unternehmen sind, tut sich ein Standardmodell beim präzisen Retrieval mitunter schwer. Doch hier können wir nachhelfen – wir müssen das Modell nur mit den passenden Daten füttern.
Wie nutzt man Search Tuning?
Konkret brauchen Sie 3, optional sogar 4 Trainingsdatensätze:
- Training Queries: die Suchanfragen, die Sie von Ihren Nutzerinnen und Nutzern erwarten. Beispiel:
What is the maximum student-to-instructor ratio for confined water dives?
2. Extractive Segments: Auszüge aus den Dokumenten in Ihrem Data Store (Ihrem Korpus). Einige Segmente sollen die oben definierten Queries beantworten, andere bewusst nicht – beide Varianten haben ihren Zweck und verstärken das Modell positiv bzw. negativ. Wichtig ist außerdem, dass die Segmente ausreichend lang sind. Beispiel:
## Ratios
### Confined Water 10:1 — May add four student divers per certified assistant.
### Open Water 8:1 — May add two student divers per certified assistant
3. Relevance Scores: Diese Trainingslabels verknüpfen Queries und Extractive Segments über einen Score (nicht-negative ganze Zahl). 0 bedeutet, dass das Segment für die Query nicht relevant ist; je höher der Score, desto relevanter das Segment für die jeweilige Query. Beispiel:
Der Relevance Score läge in diesem Fall bei
1, da das Segment für die gestellte Frage relevant ist.
4. (Optional) Test Labels: Diese Daten sind den Relevance Scores ähnlich, dienen aber zur Bewertung der Performance des getunten Modells. Liefern Sie sie nicht selbst mit, nutzt Search Tuning automatisch 20 % der Queries aus den unter Punkt 3 definierten Trainingslabels.
Wo lauern die Stolperfallen?
Diese Daten werden als Dateien übergeben und müssen einer bestimmten Formatierung sowie weiteren Anforderungen genügen. Einige unserer Kunden sind dabei in eine Sackgasse geraten: Sie erhielten den Error Code 13 mit der Meldung "Internal error encountered. Please try again. If the issue persists, please contact our support team."
Die Ursache: Nicht alle Dateien hielten sich an die in der Dokumentation beschriebenen Anforderungen – nur ließ sich das aus der Fehlermeldung leider nicht ableiten. Kein Grund zur Verzweiflung, DoiT to the rescue! Wir haben ein paar einfache Checks gebaut, mit denen Sie fehlerhaft formatierte Dateien frühzeitig aufspüren und den Fehler vermeiden. Das Skript liegt auf GitHub und ist denkbar einfach auszuführen:
python search_tuning_checks.py.py <corpus_path> <query_path> <scoring_path>`.
Eine Beispielausgabe sieht etwa so aus:
General dataset checks
- - - - - - - - - - -
Number of segments in Corpus file that don't have a match in Scoring file: 6030
Number of segments in Scoring file that don't have a match in Corpus file: 1551
Number of queries in Query file that don't have a match in Scoring file: 0
Number of queries in Scoring file that don't have a match in Query file: 0
Documentation dataset checks
- - - - - - - - - - - - - -
Training query requirements met: ✅ met
|___ Subcheck: At least one extractive segment per query: ✅ met
|___ Subcheck: At least 10 000 additional extractive segments: ✅ met
Extractive segment requirements met: ✅ met
Relevance score requirements met: ✅ met
|___ Subcheck: At least 100 segments that contain query answers: ✅ met
|___ Subcheck: At least 10 000 random segments: ❌ not met
|___ Subcheck: At least 10 000 segments with 0 as score: ✅ met
Corpus file requirements met: ❌ not met
Query file requirements met: ✅ met
|___ Subcheck: Same ids in query and scoring data: ✅ met
|___ Subcheck: Column 'score' contains non-negative integer values: ✅ met
Training labels requirements met: ✅ met
Die `general data checks` führen lediglich eine Integritätsprüfung der bereitgestellten Daten durch: Hat jede ID der gelieferten Segmente einen passenden Score – und gilt das umgekehrt auch für die IDs der Queries?
Die `documentation dataset checks` decken die folgenden, in der Google-Cloud-Dokumentation beschriebenen Prüfungen ab:
- für Trainingsdaten allgemein (die ersten 3 Checks)
- für die Corpus-Datei
- für die Query-Datei
- für die Training-Labels-Datei
Es lohnt sich, vor dem Einreichen Ihrer Dateien überall ein ‚✅‘ zu sehen – die Feedback-Schleife kann nämlich mehrere Stunden dauern!
In diesem Artikel haben wir den Vertex AI Agent Builder von Google Cloud beleuchtet – mit Fokus auf das Search-Tuning-Feature in Vertex AI Search. Search Tuning erlaubt das Feintuning von Suchmodellen für mehr Genauigkeit und Relevanz. Der Prozess setzt drei spezifische Datensätze voraus: Training Queries, Extractive Segments und Relevance Scores. Damit typische Formatierungsprobleme gar nicht erst zu Fehlern führen, haben wir ein Python-Skript vorgestellt, das die vorbereitenden Datenprüfungen übernimmt. Damit stellen Sie sicher, dass Ihre Datensätze vor dem Einreichen alle Anforderungen erfüllen – das spart Zeit und steigert die Wirkung Ihrer Search-Tuning-Maßnahmen.
Sie stehen vor weiteren Herausforderungen? Schauen Sie auf doit.com/services vorbei und erfahren Sie, wie wir Sie unterstützen können!