Websitesuche optimieren: Kontextbezogene Antworten mit generativer KI

Generative AI bezieht sich auf den Einsatz von künstlicher Intelligenz zur Erstellung neuer Inhalte wie Text, Bilder, Musik, Audio und Videos. Generative AI stützt sich auf ein Modell für maschinelles Lernen (ML), um die Muster und Beziehungen in einem Dataset mit von Menschen erstellten Inhalten zu erlernen.

Diese Technologie hat durch Anwendungen wie Gemini unglaubliche Fähigkeiten gezeigt. Sie fragen sich vielleicht, wie Sie Generative AI-Tools in meine Webprodukte implementieren.

Ein häufiger Anwendungsfall besteht darin, Nutzern eine bessere Oberfläche für Fragen zum Inhalt einer Website zur Verfügung zu stellen. Sie können die Suchergebnisse Ihrer Nutzer mithilfe von maschinellem Lernen erheblich verbessern.

Sie könnten eine Schnittstelle erstellen, in der Nutzer eine Frage schreiben. Diese wird dann an ein Large Language Model (LLM) wie Gemini gesendet und die Antworten den Nutzern angezeigt.

Angenommen, eine solche Funktion gibt es auf dieser Website. Ein Nutzer möchte wissen, welche APIs in Interop 2024 enthalten sind, und gibt die folgende Abfrage ein:

What are the features included in Interop 24?

Leider ist die Ausgabe wahrscheinlich aus mehreren Gründen falsch:

  • Der Nutzer hat dem LLM wenig Kontext für die Frage gegeben, sodass es anfälliger für falsche Antworten oder Halluzinationen ist.
  • Das LLM wurde wahrscheinlich vor der Einführung von Interop 2024 oder der Entscheidung über die Funktionen trainiert, daher ist ihm diese Information nicht bekannt.

LLMs können zwar aktuellere Informationen finden, LLM-Trainings-Datasets sind jedoch grundsätzlich veraltet. Aktuelle Ergebnisse zu pflegen kann unglaublich zeitaufwendig und teuer sein.

Prompt Engineering verwenden

Prompt Engineering ist eine Reihe von Techniken, mit denen Sie die beste Ausgabe aus einem LLM erzielen.

Eine Technik besteht darin, in der Aufforderung zusätzlichen Kontext bereitzustellen, damit das LLM mit größerer Wahrscheinlichkeit Inhalte ausgibt, die mit dem Kontext zusammenhängen.

Um auf unser Interop-Beispiel zurückzukommen: Im ersten Schritt stellen wir den vollständigen Inhalt des Artikels als Kontext bereit. Fügen Sie dann die Frage als Eingabe für die Beantwortung durch das LLM hinzu. Beispiel:

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

Gemini sollte in etwa so aussehen:

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

Diese Antwort ist wahrscheinlich viel besser als mit einer Aufforderung ohne Kontext, da die Antwort auf dem bereitgestellten Kontext basiert.

Mit RAG hochskalieren

Anstatt beispielsweise eine Frage zu einem einzelnen Artikel zu beantworten, soll das LLM mehr Fragen zu web.dev beantworten und jeden Artikel als zusätzlichen Kontext verwenden. Obwohl dies bei kleineren Websites möglich ist, sind aufgrund des Kontextfensters von Gemini 1.5 von 1 Million Token größere Aufforderungen langsamer und teuer in der Ausführung.

Die Eingabe- und Ausgabelängen von LLMs werden in Tokens gemessen und geladen. Diese stellen eine Möglichkeit dar, eine gemeinsame Zeichenfolge in einer Texteingabe darzustellen. Die Anzahl der Tokens ist in der Regel größer als die Anzahl der Wörter. Die Eingabe im ersten Beispiel enthielt 775 Wörter, die durch 1.097 Tokens dargestellt werden. Verschiedene LLMs berechnen Token möglicherweise unterschiedlich und die meisten stellen eine API oder einen Endpunkt bereit, um die Anzahl der Tokens für die Texteingabe zu berechnen.

Eine Lösung besteht darin, relevante Artikel für die LLM-Prompts zur Verfügung zu stellen. Diese Aufgabe sollte aus zwei Teilen bestehen:

  1. Füge den Inhalt der Top-Artikel als Kontext hinzu, wenn das LLM auffordert.
  2. Suchen Sie in den Inhalten nach Artikeln zum Thema „Welche Features sind in Interop 2024 enthalten?“.

Wir möchten, dass die Gemini-Ergebnisse Inhalte zurückgeben, die auf den folgenden Artikeln basieren:

Die Eingabe sollte so aussehen:

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

Dieser Kontext liefert die erwartete Ausgabe.

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

Für Personen, die mit KI-Techniken vertraut sind, wird für diesen Ansatz RAG verwendet, eine gängige Praxis, um die Wahrscheinlichkeit echter Antworten von generativen KI-Tools zu verbessern.

Die RAG-Technik kann zwar mit der regulären Volltextsuche verwendet werden, hat jedoch Nachteile.

  • Die Volltextsuche unterstützt die KI bei der Suche nach genau passenden Keywords. LLMs können jedoch nicht die beabsichtigte Bedeutung einer Nutzerabfrage bestimmen. Dies kann dazu führen, dass Ausgaben unvollständig oder falsch sind.
  • Wenn Wörter mehrere Bedeutungen haben oder in den Abfragen Synonyme verwendet werden, kann es zu Problemen kommen. Beispielsweise kann „Bank“ (Finanzinstitut oder Flussbank) zu irrelevanten Ergebnissen führen.
  • Die Volltextsuche kann Ergebnisse ausgeben, die zufällig die Suchbegriffe enthalten, aber nicht mit dem Ziel des Nutzers übereinstimmen.

Die semantische Suche ist ein Verfahren zur Verbesserung der Suchgenauigkeit, indem der Schwerpunkt auf folgenden wichtigen Aspekten liegt:

  • Suchabsicht: Es wird versucht zu verstehen, warum ein Nutzer nach etwas sucht. Was möchten sie erreichen oder erreichen?
  • Kontextbezogene Bedeutung: Wörter und Wortgruppen werden im Verhältnis zu ihrem umgebenden Text und anderen Faktoren wie dem Standort des Nutzers oder dem Suchverlauf des Nutzers interpretiert.
  • Beziehung zwischen Konzepten: Die semantische Suche verwendet Wissensdiagramme (große Netzwerke verwandter Entitäten) und Natural Language Processing, um zu verstehen, wie Wörter und Ideen zusammenhängen.

Wenn Sie also Tools mit semantischer Suche erstellen, beruht die Suchausgabe auf dem allgemeinen Zweck der Abfrage und nicht auf den Suchbegriffen. Das bedeutet, dass ein Tool relevante Dokumente auch dann ermitteln kann, wenn das genaue Keyword nicht vorhanden ist. Damit können auch Ergebnisse vermieden werden, in denen das Wort vorhanden ist, aber eine andere Bedeutung hat.

Derzeit können Sie zwei Suchoptionen mit semantischer Suche implementieren: Vertex AI Search und Algolia AI Search.

Antworten aus veröffentlichten Inhalten ziehen

Sie haben gelernt, wie Sie Prompt Engineering verwenden, um ein LLM zu ermöglichen, Antworten in Bezug auf Inhalte zu liefern, die es nie gesehen hat, indem dem Prompt Kontext hinzugefügt wird. Außerdem haben Sie gelernt, wie Sie diesen Ansatz mithilfe der Methode Retrieval-Augmented Generation (RAG) von einzelnen Artikeln auf einen ganzen Korpus von Inhalten skalieren. Sie haben gelernt, wie die semantische Suche die Ergebnisse für Nutzersuchanfragen weiter verbessern und RAG besser in Ihr Produkt implementieren kann.

Es ist ein bekanntes Problem, dass Generative-AI-Tools „Halluzinationen“ erzeugen können, wodurch sie im besten, manchmal unzuverlässigen oder im schlimmsten Fall sogar aktiv schädlich für ein Unternehmen sind. Mit diesen Verfahren können sowohl Nutzer als auch Entwickler die Zuverlässigkeit verbessern und vielleicht auch Vertrauen in die Ausgabe dieser Anwendungen aufbauen.