Kontextbezogene Antworten durch generative KI verbessern

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

Diese Technologie hat durch Anwendungen wie Gemini unglaubliche Fähigkeiten bewiesen. Sie fragen sich vielleicht, wie ich generative KI-Tools in meine Webprodukte implementieren kann?

Ein gängiger Anwendungsfall ist die Bereitstellung einer besseren Schnittstelle für Nutzer, um Fragen zum Inhalt einer Website zu stellen. Mit Hilfe des maschinellen Lernens können Sie die Suchergebnisse Ihrer Nutzer erheblich verbessern.

Bessere, seitenspezifische Suche aufbauen

Sie könnten eine Schnittstelle einrichten, auf der die Benutzer ihre Frage schreiben, die dann an ein großes Sprachmodell (LLM) wie Gemini gesendet wird, und dann die Antworten für Ihre Benutzer anzeigen.

Angenommen, eine solche Funktion existiert auf dieser Website. Ein Benutzer 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 wird die Ausgabe aus mehreren Gründen wahrscheinlich falsch sein:

  • Der Benutzer hat dem LLM wenig Kontext für die Frage gegeben, daher ist der LLM eher geneigt, falsche Antworten oder Halluzinationen zu liefern.
  • Der LLM wurde wahrscheinlich trainiert, bevor Interop 2024 erstellt oder seine Funktionen festgelegt wurden, so dass ihm diese Informationen nicht bekannt sind.

Es ist zwar möglich, dass LLMs aktuellere Informationen finden, aber LLM-Trainingsdatensätze sind von Natur aus veraltet. Die Aufrechterhaltung aktueller Ergebnisse kann unglaublich zeitaufwendig und teuer sein.

Prompt-Engineering verwenden

Prompt-Engineering ist eine Reihe von Techniken, um die beste Ausgabe aus einem LLM herauszuholen.

Eine Technik ist die Bereitstellung von zusätzlichem Kontext in der Eingabeaufforderung, wodurch es wahrscheinlicher wird, dass der LLM Inhalte ausgibt, die mit dem Kontext in Zusammenhang stehen.

Um mit unserem Interop-Beispiel fortzufahren, besteht unser erster Schritt darin, den vollständigen Inhalt des Artikels als Kontext bereitzustellen. Dann fügen Sie die Frage als Eingabe hinzu, die der LLM beantworten soll. Zum 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?

Sie können erwarten, dass Gemini etwas wie das Folgende ausgibt:

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
Hinweis: LLM-Ausgaben sind nicht deterministisch und die Antwort kann sich ändern, wenn Sie versuchen, diese Eingabeaufforderung selbst auszuführen.

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

Mit RAG skalieren

Retrieval Augmented Generation (RAG) ist eine Technik zur Verbesserung von Antworten, die von generativer KI geliefert werden, indem sie auf zusätzliche Quellen außerhalb der Trainingsdaten zurückgreifen.

Anstatt beispielsweise eine Frage zu einem einzelnen Artikel zu beantworten, möchten wir, dass das LLM mehr Fragen zu web.dev beantwortet und dabei jeden Artikel als zusätzlichen Kontext verwendet. Während dies für kleinere Sites möglich sein mag, sind größere Prompts angesichts des Kontextfensters von Gemini 1.5 von 1 Million Token langsamer und teurer in der Ausführung.

Die Eingabe- und Ausgabelängen von LLMs werden in Token gemessen und berechnet, die eine gemeinsame Folge von Zeichen in einer Texteingabe darstellen. Die Anzahl der Token ist im Allgemeinen größer als die Anzahl der Wörter. Die Eingabe im ersten Beispiel bestand beispielsweise aus 775 Wörtern, die durch 1097 Token dargestellt wurden. Verschiedene LLMs können die Anzahl der Token unterschiedlich berechnen und die meisten bieten eine API oder einen Endpunkt an, um die Anzahl der Token für Texteingaben zu berechnen.

Eine Lösung besteht darin, dem LLM prompt-relevante Artikel zur Verfügung zu stellen. Diese Aufgabe sollte in zwei Teile aufgeteilt werden:

  1. Hinzufügen des Inhalts von Top-Artikeln als Kontext bei der Eingabeaufforderung des LLM.
  2. Durchsuchen Sie den Inhalt nach Artikeln zum Thema "Welche Funktionen sind in Interop 2024 enthalten?".

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

Die Eingabe sollte wie folgt 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?
Hinweis: Ihr Kontext sollte den gesamten Inhalt dieser Artikel enthalten.

Dieser Kontext führt zu dem erwarteten Ergebnis.

* 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: Dieser Ansatz verwendet RAG, eine gängige Praxis, um die Wahrscheinlichkeit echter Antworten von generativen KI-Tools zu verbessern.

Verbessern Sie die Ausgabe mit semantischer Suche

Die RAG-Technik kann zwar mit der regulären Volltextsuche funktionieren, hat aber auch ihre Schwächen.

  • Die Volltextsuche hilft der künstlichen Intelligenz, exakte Schlüsselwortübereinstimmungen zu finden. LLMs sind jedoch nicht in der Lage, die beabsichtigte Bedeutung hinter der Anfrage eines Nutzers zu ermitteln. Dies kann dazu führen, dass die Ergebnisse unvollständig oder falsch sind.
  • Es kann zu Problemen kommen, wenn Wörter mehrere Bedeutungen haben oder die Abfragen Synonyme verwenden. Zum Beispiel kann "Bank" (Finanzinstitut versus Flussbank) zu irrelevanten Ergebnissen führen.
  • Die Volltextsuche kann Ergebnisse liefern, die zwar die Schlüsselwörter enthalten, aber nicht mit dem Ziel des Benutzers übereinstimmen.

Die semantische Suche ist eine Technik zur Verbesserung der Suchgenauigkeit durch Konzentration auf diese Schlüsselaspekte:

  • Die Absicht des Suchenden: Es wird versucht, den Grund zu verstehen, warum ein Nutzer nach etwas sucht. Was will er finden oder erreichen?
  • Die kontextuelle Bedeutung: Es interpretiert Wörter und Sätze in Bezug auf den sie umgebenden Text sowie auf andere Faktoren wie den Standort des Nutzers oder die Suchhistorie.
  • Beziehung zwischen Konzepten: Die semantische Suche nutzt Wissensgraphen (große Netzwerke verwandter Entitäten) und die Verarbeitung natürlicher Sprache, um zu verstehen, wie Wörter und Ideen miteinander verbunden sind.

Wenn Sie also Tools mit semantischer Suche entwickeln, basiert die Suchausgabe auf dem allgemeinen Zweck der Anfrage und nicht auf Schlüsselwörtern. Das bedeutet, dass ein Tool relevante Dokumente ermitteln kann, auch wenn das genaue Schlüsselwort nicht vorhanden ist. Es kann auch Ergebnisse vermeiden, bei denen das Wort zwar vorhanden ist, aber eine andere Bedeutung hat.

Derzeit können Sie zwei Suchwerkzeuge einsetzen, die die semantische Suche verwenden: Vertex AI Search und Algolia AI Search.

Antworten aus veröffentlichten Inhalten ableiten

Sie haben gelernt, wie man Prompt-Engineering einsetzt, damit ein LLM Antworten auf Inhalte geben kann, die es noch nie gesehen hat, indem es den Prompt mit Kontext versieht. Und Sie haben gelernt, wie man diesen Ansatz von einzelnen Artikeln auf ein ganzes Korpus von Inhalten skalieren kann, indem man die Retrieval-Augmented Generation (RAG) Technik verwendet. Sie haben gelernt, wie die semantische Suche die Ergebnisse für Suchanfragen von Benutzern weiter verbessern kann, indem Sie RAG besser in Ihr Produkt implementieren.

Es ist ein bekanntes Problem, dass generative KI-Tools "halluzinieren" können, was sie im besten Fall 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 vielleicht auch Vertrauen in die Ergebnisse dieser Anwendungen aufbauen.