In diesem Abschnitt lernen Sie eine der komfortabelsten Möglichkeiten kennen, um Einbettungen für Text zu generieren. Diese basiert auf dem SentenceTransformers- Framework.
Die Arbeit mit SentenceTransformers ist der empfohlene Weg, um sich mit der Verwendung von Embeddings vertraut zu machen, da die in diesem Framework verfügbaren Modelle auf Ihrem Computer installiert werden können, auch ohne GPU eine zufriedenstellende Leistung erbringen und kostenlos nutzbar sind.
Installieren Sie SentenceTransformers
Das SentenceTransformers-Framework wird als Python-Paket installiert. Stellen Sie sicher, dass Ihre virtuelle Python-Umgebung aktiviert ist, und führen Sie dann den folgenden Befehl in Ihrem Terminal aus, um dieses Framework zu installieren:
Wie immer ist es ratsam, die requirements.txt zu aktualisieren, wenn Sie Ihrem Projekt neue Abhängigkeiten hinzufügen:
Auswahl eines Modells
Die nächste Aufgabe besteht darin, sich für ein Machine-Learning-Modell zu entscheiden, das zur Generierung von Einbettungen verwendet werden soll. In der Dokumentation ist eine Liste vortrainierter Modelle enthalten. Da SentenceTransformers ein sehr populäres Framework ist, gibt es auch kompatible Modelle, die von Forschern erstellt wurden, die nicht direkt mit dem Framework verbunden sind. Eine vollständige Liste der verwendbaren Modelle finden Sie unter dem Tag „SentenceTransformers“ auf HuggingFace.
Für die Zwecke dieses Tutorials muss man sich über die Modellauswahl keine großen Gedanken machen, da jedes Modell ausreicht. Die Dokumentation von SentenceTransformers enthält folgenden Hinweis zu den vortrainierten Modellen:
„Die All-*-Modelle wurden mit allen verfügbaren Trainingsdaten (mehr als 1 Milliarde Trainingspaare) trainiert und sind als Allzweckmodelle konzipiert.“ Das Modell all-mpnet-base-v2 bietet die beste Qualität, während all-MiniLM-L6-v2 fünfmal schneller ist und dennoch eine gute Qualität bietet.“
Dies scheint darauf hinzudeuten, dass ihr all-MiniLM-L6-v2 -Modell eine gute Wahl ist, die einen guten Kompromiss zwischen Geschwindigkeit und Qualität bietet, also verwenden wir dieses Modell. Suchen Sie dieses Modell in der Tabelle und klicken Sie auf das Symbol „Info“, um weitere Informationen dazu zu erhalten.

Ein interessantes Detail, das Sie bei der Wahl Ihres Modells beachten sollten, ist die Länge der generierten Einbettungen, oder anders ausgedrückt, wie viele Zahlen oder Dimensionen die resultierenden Vektoren haben werden. Dies ist wichtig, da es sich direkt auf den benötigten Speicherplatz auswirkt. Im Fall von all-MiniLM-L6-v2 haben die erzeugten Vektoren 384 Dimensionen.
Modell laden
Der folgende Python-Code veranschaulicht, wie das Modell geladen wird. Sie können dies in einer Python-Shell ausprobieren.
Beim ersten Mal wird das Modell heruntergeladen und in Ihrer virtuellen Umgebung installiert, daher kann es einige Zeit dauern, bis der Aufruf zurückkehrt. Sobald das Modell installiert ist, sollte die Instanziierung nicht lange dauern.
Einbettungen generieren
Nachdem das Modell instanziiert wurde, können Sie nun ein Embedding generieren. Dazu übergeben Sie den Quelltext an die Methode model.encode() :
Das Ergebnis ist ein Array mit allen Zahlen, aus denen die Einbettung besteht. Wie Sie sich erinnern, haben die vom gewählten Modell erzeugten Einbettungen 384 Dimensionen, dies entspricht also der Länge des embedding -Arrays.
Nächste
Speichern von Einbettungen