Anleitung zum Texteinbetten im Web

Mit der Aufgabe „MediaPipe Text Embedder“ können Sie eine numerische Darstellung von Textdaten erstellen, semantische Bedeutung erfassen. In dieser Anleitung erfahren Sie, wie Sie die Text Embedder für Web- und JavaScript-Anwendungen

Weitere Informationen zu Funktionen, Modellen und Konfigurationsoptionen Sehen Sie sich die Übersicht an.

Codebeispiel

Der Beispielcode für Text Embedder bietet eine vollständige Implementierung dieses in JavaScript ausführen. Mit diesem Code können Sie diese Aufgabe testen und Erstellen Sie Ihre eigene App zum Einbetten von Text. Sie können Daten abrufen, ausführen, und bearbeiten Sie die Beispielcode für Texteinbettungen ganz einfach in Ihrem Webbrowser.

Einrichtung

In diesem Abschnitt werden die wichtigsten Schritte zum Einrichten Ihrer Entwicklungsumgebung und Codeprojekte für die Nutzung von Text Embedder. Allgemeine Informationen zu Einrichten Ihrer Entwicklungsumgebung für die Verwendung von MediaPipe-Aufgaben, einschließlich Plattformversionsanforderungen finden Sie in der Einrichtungsleitfaden für das Web

JavaScript-Pakete

Der Code für Texteinbettungen ist über die @mediapipe/tasks-text Paket. Sie können diese Bibliotheken über die Links in der Plattform Leitfaden für die Einrichtung

<ph type="x-smartling-placeholder">

Sie können die erforderlichen Pakete mit dem folgenden Code für das lokale Staging installieren mit dem folgenden Befehl:

npm install @mediapipe/tasks-text

Wenn die Bereitstellung auf einem Server erfolgen soll, können Sie eine Inhaltsübermittlung verwenden. Netzwerkdienst (CDN) wie jsDelivr, um Code direkt auf Ihrer HTML-Seite einfügen:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Modell

Für die Aufgabe „MediaPipe Text Embedder“ ist ein trainiertes Modell erforderlich, für die Aufgabe. Weitere Informationen zu verfügbaren trainierten Modellen für Text Embedder finden Sie unter in der Aufgabenübersicht im Abschnitt „Modelle“.

Wählen Sie ein Modell aus, laden Sie es herunter und speichern Sie es dann in Ihrem Projektverzeichnis:

<dev-project-root>/app/shared/models

Aufgabe erstellen

Mit einer der createFrom...()-Funktionen für Texteinbettungen die Aufgabe für die Ausführung von Inferenzen vorbereiten. Sie können die createFromModelPath() verwenden mit einem relativen oder absoluten Pfad zur trainierten Modelldatei. Der Code Im folgenden Beispiel wird die Verwendung von createFromOptions() veranschaulicht. . Weitere Informationen zu den verfügbaren Konfigurationsoptionen finden Sie unter Konfigurationsoptionen.

Der folgende Code zeigt, wie diese Aufgabe erstellt und konfiguriert wird:

async function createEmbedder() {
  const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  textEmbedder = await TextEmbedder.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
      },
      quantize: true
    }
  );
}
createEmbedder();

Konfigurationsoptionen

Diese Aufgabe hat die folgenden Konfigurationsoptionen für Web und JavaScript Anwendungen:

Option Beschreibung Wertebereich Standardwert
l2Normalize Gibt an, ob der zurückgegebene Featurevektor mit der L2-Norm normalisiert werden soll. Verwenden Sie diese Option nur, wenn das Modell noch keine native L2_NORMALIZATION TFLite Op. In den meisten Fällen ist dies bereits der Fall und Die L2-Normalisierung wird somit über TFLite-Inferenz ohne Notwendigkeit erreicht. für diese Option. Boolean False
quantize Ob die zurückgegebene Einbettung in Byte quantisiert werden soll mithilfe von eine skalare Quantisierung. Bei Einbettungen wird implizit angenommen, Daher hat jede Dimension garantiert einen Wert in [-1,0; 1,0]. Verwenden Sie die Option „l2Normalize“ verwenden, wenn dies nicht der Fall ist. Boolean False

Daten vorbereiten

Der Texteinbetter arbeitet mit Textdaten (string). Die Aufgabe verarbeitet die Vorverarbeitung von Dateneingaben, einschließlich Tokenisierung und Tensor-Vorverarbeitung. Alle erfolgt die Vorverarbeitung in der Funktion embed. Es ist nicht nötig, zur zusätzlichen Vorverarbeitung des Eingabetexts.

const inputText = "The input text to be embedded.";

Aufgabe ausführen

Der Texteinbetter verwendet die Funktion embed, um Inferenzen auszulösen. Für Text Einbettung, bedeutet dies, dass die Einbettungsvektoren für den Eingabetext zurückgegeben werden.

Der folgende Code zeigt, wie die Verarbeitung mit dem Aufgabenmodell ausgeführt wird.

// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
  inputText
);

Ergebnisse verarbeiten und anzeigen

Der Texteinbetter gibt eine TextEmbedderResult aus, die eine Liste von Einbettungen (entweder Gleitkomma oder skalar quantisiert) für den Eingabetext.

Im Folgenden sehen Sie ein Beispiel für die Ausgabedaten dieser Aufgabe:

TextEmbedderResult:
  Embedding #0 (sole embedding head):
    float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
    head_index: 0

Sie können die semantische Ähnlichkeit zweier Einbettungen mit der Funktion TextEmbedder.cosineSimilarity. Im folgenden Code finden Sie eine Beispiel.

// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
  embeddingResult.embeddings[0],
  otherEmbeddingResult.embeddings[0]);

Der Beispielcode für „Text Embedder“ zeigt, wie der Embedder angezeigt wird. der Aufgabe zurückgegebene Ergebnisse finden Sie in der Codebeispiel .