Websitesuche optimieren: Kontextbezogene Antworten mit generativer KI

Generative KI bezieht sich auf den Einsatz von künstlicher Intelligenz, um neue Inhalte wie Text, Bilder, Musik, Audio und Videos zu erstellen. Generative KI nutzt ein ML-Modell (maschinelles Lernen), um die Muster und Beziehungen in einem Dataset aus von Menschen erstellten Inhalten zu ermitteln.

Diese Technologie hat sich in Anwendungen wie Gemini bereits bewiesen. Sie fragen sich vielleicht, wie Sie generative KI-Tools in Ihre Webprodukte einbinden.

Ein häufiger Anwendungsfall ist die Bereitstellung einer besseren Benutzeroberfläche, über die Nutzer Fragen zu den Inhalten einer Website stellen können. Mithilfe von maschinellem Lernen können Sie die Suchergebnisse für Ihre Nutzer erheblich verbessern.

Sie könnten eine Benutzeroberfläche erstellen, in der Nutzer ihre Frage eingeben, die dann an ein Large Language Model (LLM) wie Gemini gesendet wird. Die Antworten werden dann den Nutzern angezeigt.

Angenommen, diese Funktion würde auf dieser Website vorhanden sein. Ein Nutzer möchte wissen, welche APIs in Interop 2024 enthalten sind, und gibt die folgende Suchanfrage 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. Daher ist das LLM eher geneigt, falsche Antworten oder Halluzinationen zurückzugeben.
  • Das LLM wurde wahrscheinlich vor der Erstellung von Interop 2024 trainiert oder die Funktionen wurden noch nicht festgelegt. Daher sind diese Informationen nicht bekannt.

LLMs können zwar aktuellere Informationen finden, aber LLM-Trainingsdatensätze sind von Natur aus veraltet. Es kann sehr zeitaufwendig und teuer sein, aktuelle Ergebnisse zu erzielen.

Prompt Engineering verwenden

Prompt Engineering ist eine Reihe von Techniken, mit denen Sie die beste Leistung aus einem LLM herausholen können.

Eine Möglichkeit besteht darin, im Prompt zusätzlichen Kontext anzugeben, damit das LLM mit größerer Wahrscheinlichkeit Inhalte ausgibt, die sich auf den Kontext beziehen.

Anknüpfend an unser Beispiel für Interoperabilität geben wir als ersten Schritt den vollständigen Inhalt des Artikels als Kontext an. Fügen Sie dann die Frage als Eingabe für die LLM hinzu, die sie beantworten soll. 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?

Die Ausgabe von 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 bei einem Prompt ohne Kontext, da sie auf dem bereitgestellten Kontext basiert.

Mit RAG skalieren

Anstatt beispielsweise eine Frage zu einem einzelnen Artikel zu beantworten, soll das LLM mehr Fragen zu web.dev beantworten und dabei einen beliebigen Artikel als zusätzlichen Kontext verwenden. Bei kleineren Websites ist das zwar möglich, aber aufgrund des Kontextfensters von 1 Million Tokens von Gemini 1.5 sind größere Prompts langsamer und teurer.

Die Eingabe- und Ausgabelängen von LLMs werden in Tokens gemessen und in Rechnung gestellt. Ein Token ist eine Möglichkeit, eine häufige Folge von Zeichen 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 beispielsweise 775 Wörter, die durch 1.097 Token dargestellt wurden. Unterschiedliche LLMs können Tokens unterschiedlich berechnen. Die meisten bieten eine API oder einen Endpunkt zur Berechnung der Anzahl der Tokens für die Texteingabe.

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

  1. Fügen Sie den Inhalt der Top-Artikel als Kontext hinzu, wenn Sie den LLM aufrufen.
  2. Suchen Sie in den Inhalten nach Artikeln, die sich auf „Welche Funktionen sind in Interop 2024 enthalten?“ beziehen.

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

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?

Mit diesem Kontext erhalten wir 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 diejenigen, die mit KI-Techniken vertraut sind, wird bei diesem Ansatz RAG verwendet, eine gängige Praxis, um die Wahrscheinlichkeit echter Antworten von generativen KI-Tools zu verbessern.

Die RAG-Methode kann zwar mit der regulären Volltextsuche funktionieren, hat aber auch Nachteile.

  • Mit der Volltextsuche kann die KI genau passende Keywords finden. LLMs können jedoch nicht die beabsichtigte Bedeutung hinter der Suchanfrage eines Nutzers ermitteln. Dies kann zu unvollständigen oder falschen Ergebnissen führen.
  • Es kann zu Problemen kommen, wenn Wörter mehrere Bedeutungen haben oder in den Suchanfragen Synonyme verwendet werden. Ein Beispiel: „Bank“ (Finanzinstitut oder Ufer) kann zu irrelevanten Ergebnissen führen.
  • Die Volltextsuche kann Ergebnisse liefern, die zwar die Keywords enthalten, aber nicht dem Ziel des Nutzers entsprechen.

Die semantische Suche ist eine Methode, mit der die Suchgenauigkeit verbessert wird, indem sich auf die folgenden wichtigen Aspekte konzentriert wird:

  • Suchabsicht: Hier wird versucht, den Grund zu verstehen, warum ein Nutzer nach etwas sucht. Was möchten sie finden oder erreichen?
  • Kontextbezogene Bedeutung: Wörter und Wortgruppen werden in Bezug auf den umgebenden Text sowie andere Faktoren wie den Standort oder den Suchverlauf des Nutzers interpretiert.
  • Beziehung zwischen Konzepten: Bei der semantischen Suche werden Wissensgraphen (große Netzwerke verwandter Entitäten) und Natural Language Processing verwendet, um zu verstehen, wie Wörter und Ideen miteinander verbunden sind.

Wenn Sie also Tools mit semantischen Suchfunktionen erstellen, basiert das Suchergebnis auf dem Gesamtzweck der Suchanfrage und nicht auf Keywords. Das bedeutet, dass ein Tool relevante Dokumente finden kann, auch wenn das genaue Keyword nicht vorhanden ist. Außerdem können Ergebnisse vermieden werden, in denen das Wort zwar enthalten ist, aber eine andere Bedeutung hat.

Derzeit können Sie zwei Suchtools implementieren, die die semantische Suche nutzen: Vertex AI Search und Algolia AI Search.

Antworten aus veröffentlichten Inhalten abrufen

Sie haben gelernt, wie Sie mithilfe von Prompt-Engineering einem LLM Antworten zu Inhalten liefern lassen können, die es noch nie gesehen hat, indem Sie dem Prompt Kontext hinzufügen. Außerdem haben Sie gelernt, wie Sie diesen Ansatz mithilfe der Retrieval-Augmented Generation (RAG)-Methode von einzelnen Artikeln auf einen ganzen Inhaltskorpus skalieren. Sie haben gelernt, wie die semantische Suche die Ergebnisse für Suchanfragen von Nutzern weiter verbessern kann, indem Sie RAG in Ihrem Produkt besser implementieren.

Es ist ein bekanntes Problem, dass generative KI-Tools „halluzinieren“ können, was sie im besten Fall manchmal unzuverlässig und im schlimmsten Fall aktiv schädlich für ein Unternehmen macht. Mit diesen Techniken können sowohl Nutzer als auch Entwickler die Zuverlässigkeit verbessern und möglicherweise das Vertrauen in die Ausgabe dieser Anwendungen stärken.