Klicken Sie auf das Bild oben, um das Video zu dieser Lektion anzusehen
LLMs können mehr als nur Chatbots und Textgenerierung. Es ist auch möglich, Suchanwendungen mithilfe von Embeddings zu erstellen. Embeddings sind numerische Darstellungen von Daten, auch bekannt als Vektoren, und können für die semantische Suche nach Daten verwendet werden.
In dieser Lektion werden Sie eine Suchanwendung für unser Bildungs-Startup erstellen. Unser Startup ist eine gemeinnützige Organisation, die Schülern in Entwicklungsländern kostenlose Bildung bietet. Unser Startup verfügt über eine große Anzahl von YouTube-Videos, die Schüler nutzen können, um mehr über KI zu lernen. Unser Startup möchte eine Suchanwendung entwickeln, die es Schülern ermöglicht, nach einem YouTube-Video zu suchen, indem sie eine Frage eingeben.
Zum Beispiel könnte ein Schüler eingeben: „Was sind Jupyter Notebooks?“ oder „Was ist Azure ML?“ und die Suchanwendung wird eine Liste von YouTube-Videos zurückgeben, die für die Frage relevant sind. Noch besser: Die Suchanwendung wird einen Link zu der Stelle im Video zurückgeben, an der die Antwort auf die Frage zu finden ist.
In dieser Lektion behandeln wir:
- Semantische vs. Schlüsselwortsuche.
- Was sind Text-Embeddings.
- Erstellen eines Text-Embedding-Index.
- Durchsuchen eines Text-Embedding-Index.
Nach Abschluss dieser Lektion können Sie:
- Den Unterschied zwischen semantischer und Schlüsselwortsuche erklären.
- Erklären, was Text-Embeddings sind.
- Eine Anwendung erstellen, die Embeddings verwendet, um nach Daten zu suchen.
Das Erstellen einer Suchanwendung hilft Ihnen zu verstehen, wie Sie Embeddings verwenden können, um nach Daten zu suchen. Sie lernen auch, wie Sie eine Suchanwendung erstellen, die von Schülern genutzt werden kann, um Informationen schnell zu finden.
Die Lektion enthält einen Embedding-Index der YouTube-Transkripte des Microsoft AI Show YouTube-Kanals. Der AI Show ist ein YouTube-Kanal, der Ihnen KI und maschinelles Lernen näherbringt. Der Embedding-Index enthält die Embeddings für jedes der YouTube-Transkripte bis Oktober 2023. Sie werden den Embedding-Index verwenden, um eine Suchanwendung für unser Startup zu erstellen. Die Suchanwendung gibt einen Link zu der Stelle im Video zurück, an der die Antwort auf die Frage zu finden ist. Dies ist eine großartige Möglichkeit für Schüler, die benötigten Informationen schnell zu finden.
Das folgende ist ein Beispiel für eine semantische Abfrage zur Frage „Kann man RStudio mit Azure ML verwenden?“. Schauen Sie sich die YouTube-URL an, Sie werden sehen, dass die URL einen Zeitstempel enthält, der Sie zu der Stelle im Video führt, an der die Antwort auf die Frage zu finden ist.
Nun fragen Sie sich vielleicht, was semantische Suche ist. Semantische Suche ist eine Suchtechnik, die die Semantik oder Bedeutung der Wörter in einer Abfrage verwendet, um relevante Ergebnisse zurückzugeben.
Hier ist ein Beispiel für eine semantische Suche. Angenommen, Sie möchten ein Auto kaufen, dann könnten Sie nach „mein Traumauto“ suchen. Die semantische Suche versteht, dass Sie nicht von einem Auto träumen, sondern vielmehr Ihr „ideales“ Auto kaufen möchten. Die semantische Suche versteht Ihre Absicht und liefert relevante Ergebnisse. Die Alternative ist die „Schlüsselwortsuche“, die buchstäblich nach Träumen über Autos suchen würde und oft irrelevante Ergebnisse liefert.
Text-Embeddings sind eine Technik zur Textdarstellung, die in der natürlichen Sprachverarbeitung verwendet wird. Text-Embeddings sind semantische numerische Darstellungen von Text. Embeddings werden verwendet, um Daten so darzustellen, dass sie für eine Maschine leicht verständlich sind. Es gibt viele Modelle zur Erstellung von Text-Embeddings. In dieser Lektion konzentrieren wir uns darauf, Embeddings mit dem OpenAI Embedding Model zu generieren.
Hier ist ein Beispiel: Stellen Sie sich vor, der folgende Text stammt aus einem Transkript einer Episode des AI Show YouTube-Kanals:
Today we are going to learn about Azure Machine Learning.
Wir würden den Text an die OpenAI Embedding API übergeben, und sie würde das folgende Embedding zurückgeben, bestehend aus 1536 Zahlen, auch bekannt als Vektor. Jede Zahl im Vektor repräsentiert einen anderen Aspekt des Textes. Der Kürze halber sind hier die ersten 10 Zahlen des Vektors.
[-0.006655829958617687, 0.0026128944009542465, 0.008792596869170666, -0.02446001023054123, -0.008540431968867779, 0.022071078419685364, -0.010703742504119873, 0.003311325330287218, -0.011632772162556648, -0.02187200076878071, ...]Der Embedding-Index für diese Lektion wurde mit einer Reihe von Python-Skripten erstellt. Sie finden die Skripte zusammen mit Anweisungen im README im Ordner 'scripts' für diese Lektion. Sie müssen diese Skripte nicht ausführen, um diese Lektion abzuschließen, da der Embedding-Index für Sie bereitgestellt wird.
Die Skripte führen die folgenden Operationen aus:
- Das Transkript für jedes YouTube-Video in der AI Show-Playlist wird heruntergeladen.
- Mithilfe von OpenAI-Funktionen wird versucht, den Namen des Sprechers aus den ersten 3 Minuten des YouTube-Transkripts zu extrahieren. Der Sprechername für jedes Video wird im Embedding-Index namens
embedding_index_3m.jsongespeichert. - Der Transkripttext wird dann in 3-Minuten-Textsegmente unterteilt. Das Segment enthält etwa 20 Wörter, die sich mit dem nächsten Segment überschneiden, um sicherzustellen, dass das Embedding für das Segment nicht abgeschnitten wird und um einen besseren Suchkontext zu bieten.
- Jedes Textsegment wird dann an die OpenAI Chat API übergeben, um den Text in 60 Wörter zusammenzufassen. Die Zusammenfassung wird ebenfalls im Embedding-Index
embedding_index_3m.jsongespeichert. - Schließlich wird der Segmenttext an die OpenAI Embedding API übergeben. Die Embedding API gibt einen Vektor mit 1536 Zahlen zurück, die die semantische Bedeutung des Segments repräsentieren. Das Segment zusammen mit dem OpenAI Embedding-Vektor wird in einem Embedding-Index
embedding_index_3m.jsongespeichert.
Der Embedding-Index wird der Einfachheit halber in einer JSON-Datei namens embedding_index_3m.json gespeichert und in ein Pandas DataFrame geladen. In der Produktion würde der Embedding-Index jedoch in einer Vektordatenbank wie Azure Cognitive Search, Redis, Pinecone, Weaviate gespeichert werden, um nur einige zu nennen.
Wir haben über Text-Embeddings gelernt. Der nächste Schritt ist zu lernen, wie man Text-Embeddings verwendet, um nach Daten zu suchen und insbesondere die ähnlichsten Embeddings zu einer gegebenen Abfrage mithilfe der Kosinus-Ähnlichkeit zu finden.
Kosinus-Ähnlichkeit ist ein Maß für die Ähnlichkeit zwischen zwei Vektoren. Sie wird auch als nächster Nachbar-Suche bezeichnet. Um eine Kosinus-Ähnlichkeitssuche durchzuführen, müssen Sie den Abfrage-Text mithilfe der OpenAI Embedding API vektorisieren. Berechnen Sie dann die Kosinus-Ähnlichkeit zwischen dem Abfragevektor und jedem Vektor im Embedding-Index. Denken Sie daran, dass der Embedding-Index einen Vektor für jedes YouTube-Transkript-Textsegment enthält. Sortieren Sie schließlich die Ergebnisse nach Kosinus-Ähnlichkeit, und die Textsegmente mit der höchsten Kosinus-Ähnlichkeit sind die ähnlichsten zur Abfrage.
Aus mathematischer Sicht misst die Kosinus-Ähnlichkeit den Kosinus des Winkels zwischen zwei Vektoren, die in einem mehrdimensionalen Raum projiziert werden. Diese Messung ist vorteilhaft, da zwei Dokumente, die aufgrund ihrer Größe weit voneinander entfernt sind, dennoch einen kleineren Winkel zwischen sich haben und daher eine höhere Kosinus-Ähnlichkeit aufweisen können. Weitere Informationen zu Kosinus-Ähnlichkeitsgleichungen finden Sie unter Cosine similarity.
Als Nächstes lernen wir, wie man eine Suchanwendung mit Embeddings erstellt. Die Suchanwendung ermöglicht es Schülern, ein Video zu suchen, indem sie eine Frage eingeben. Die Suchanwendung gibt eine Liste von Videos zurück, die für die Frage relevant sind. Die Suchanwendung gibt auch einen Link zu der Stelle im Video zurück, an der die Antwort auf die Frage zu finden ist.
Diese Lösung wurde auf Windows 11, macOS und Ubuntu 22.04 mit Python 3.10 oder höher entwickelt und getestet. Sie können Python von python.org herunterladen.
Wir haben unser Startup zu Beginn dieser Lektion vorgestellt. Jetzt ist es an der Zeit, den Schülern zu ermöglichen, eine Suchanwendung für ihre Aufgaben zu erstellen.
In dieser Aufgabe erstellen Sie die Azure OpenAI-Dienste, die zum Aufbau der Suchanwendung verwendet werden. Sie werden die folgenden Azure OpenAI-Dienste erstellen. Sie benötigen ein Azure-Abonnement, um diese Aufgabe abzuschließen.
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie das Cloud Shell-Symbol in der oberen rechten Ecke des Azure-Portals aus.
- Wählen Sie Bash als Umgebungstyp.
Für diese Anweisungen verwenden wir die Ressourcengruppe mit dem Namen "semantic-video-search" in East US. Sie können den Namen der Ressourcengruppe ändern, aber wenn Sie den Standort für die Ressourcen ändern, überprüfen Sie die Modellverfügbarkeitstabelle.
az group create --name semantic-video-search --location eastusFühren Sie den folgenden Befehl aus der Azure Cloud Shell aus, um eine Azure OpenAI Service-Ressource zu erstellen.
az cognitiveservices account create --name semantic-video-openai --resource-group semantic-video-search \
--location eastus --kind OpenAI --sku s0Führen Sie die folgenden Befehle aus der Azure Cloud Shell aus, um den Endpunkt und die Schlüssel für die Azure OpenAI Service-Ressource abzurufen.
az cognitiveservices account show --name semantic-video-openai \
--resource-group semantic-video-search | jq -r .properties.endpoint
az cognitiveservices account keys list --name semantic-video-openai \
--resource-group semantic-video-search | jq -r .key1Führen Sie den folgenden Befehl aus der Azure Cloud Shell aus, um das OpenAI Embedding-Modell bereitzustellen.
az cognitiveservices account deployment create \
--name semantic-video-openai \
--resource-group semantic-video-search \
--deployment-name text-embedding-ada-002 \
--model-name text-embedding-ada-002 \
--model-version "2" \
--model-format OpenAI \
--sku-capacity 100 --sku-name "Standard"Öffnen Sie das Lösungs-Notebook in GitHub Codespaces und folgen Sie den Anweisungen im Jupyter Notebook.
Wenn Sie das Notebook ausführen, werden Sie aufgefordert, eine Abfrage einzugeben. Das Eingabefeld sieht wie folgt aus:
Nachdem Sie diese Lektion abgeschlossen haben, schauen Sie sich unsere Generative AI Learning Collection an, um Ihr Wissen über Generative KI weiter zu vertiefen!
Gehen Sie zu Lektion 9, in der wir uns ansehen, wie man Anwendungen zur Bildgenerierung erstellt!
Haftungsausschluss:
Dieses Dokument wurde mit dem KI-Übersetzungsdienst Co-op Translator übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner ursprünglichen Sprache sollte als maßgebliche Quelle betrachtet werden. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die sich aus der Nutzung dieser Übersetzung ergeben.


