Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Der Amazon SageMaker BlazingText AI-Algorithmus bietet hochoptimierte Implementierungen der Word2VEC- und Textklassifizierungsalgorithmen. Der Word2vec-Algorithmus ist für viele nachgelagerte natürliche Sprachverarbeitungsaufgaben (Natural Language Processing, NLP) wie z. B. Stimmungsanalyse, Erkennung benannter Entitäten und Maschinenübersetzung nützlich. Die Textklassifizierung ist eine wichtige Aufgabe für Anwendungen, die Web-Suchvorgänge, Informationsabrufe, Rangfolgeneinstufungen und Klassifizierung von Dokumenten durchführen.
Der Word2vec-Algorithmus ordnet Wörter hochwertigen verteilten Vektoren zu. Die resultierende Vektordarstellung eines Wortes wird als Worteinbettung bezeichnet. Wörter, die semantisch ähnlich sind, entsprechen Vektoren, die nahe beieinander liegen. Auf diese Weise erfassen Worteinbettungen die semantischen Beziehungen zwischen Wörtern.
Viele Anwendungen mit natürlicher Sprachverarbeitung (NLP, Natural Language Processing) erlernen Worteinbettungen, indem sie mit großen Sammlungen von Dokumenten trainiert werden. Diese vortrainierten Vektordarstellungen liefern Informationen zur Semantik und zu den Wortverteilungen, was in der Regel die Generalisierung anderer Modelle verbessert, die später mit einer eher begrenzten Datenmenge trainiert werden. Die meisten Implementierungen des Word2vec-Algorithmus sind nicht für Multi-Core-CPU-Architekturen optimiert. Auf diese Weise lassen sich große Datensätze nur schwer skalieren.
Mit dem BlazingText Algorithmus können Sie problemlos auf große Datensätze skalieren. Ähnlich wie Word2VEC bietet es die Trainingsarchitekturen Skip-Gram und Continuous bag-of-words (CBOW). BlazingTextDie Implementierung des überwachten Algorithmus zur Klassifizierung von Text mit mehreren Klassen und mehreren Bezeichnungen erweitert den FastText-Textklassifikator um die Verwendung von GPU-Beschleunigung mit benutzerdefinierten CUDA-Kerneln.
Der BlazingText Algorithmus ist nicht parallelisierbar. Weitere Informationen zu Trainingsparametern finden Sie unter Docker-Registrierungspfade für SageMaker integrierte Algorithmen.
Die SageMaker BlazingText KI-Algorithmen bieten die folgenden Funktionen:
-
Beschleunigtes Training des FastText-Textklassifikators auf Multi-Core CPUs - oder GPU und Word2Vec bei der GPUs Verwendung hochoptimierter CUDA-Kernel. Weitere Informationen finden Sie unter BlazingText:
Skalieren und Beschleunigen von Word2Vec mithilfe von Multiple. GPUs -
Angereicherte Wortvektoren mit Teilwortinformationen
durch Erlernen von Vektordarstellungen für N-Gramm-Zeichen. Dieser Ansatz ermöglicht es BlazingText , aussagekräftige Vektoren für out-of-vocabulary (OOV) -Wörter zu generieren, indem deren Vektoren als Summe der Zeichen-N-Gramm-Vektoren (Teilwort-Vektoren) dargestellt werden. -
Ein
batch_skipgram
mode
für den Word2Vec-Algorithmus, mit dem schnellere Trainings und verteilte Berechnungen auf mehreren CPU-Knoten möglich sind. Dasbatch_skipgram
mode
führt eine Mini-Stapelverarbeitung mithilfe der Strategie des Austauschs von Negativbeispielen zum Konvertieren von BLAS-Operationen der ersten Ebene in BLAS-Operationen der dritten Ebene durch. Damit werden die Anweisungen zum Multiplizieren und Hinzufügen moderner Architekturen effizient genutzt. Weitere Informationen finden Sie unter Parallelizing Word2Vec in Shared und Distributed-Memory.
Zusammenfassend lässt sich sagen, dass die folgenden Modi von BlazingText Instanzen verschiedener Typen unterstützt werden:
Modi |
Word2Vec (Unüberwachtes Lernen) |
Textklassifizierung (Überwachtes Lernen) |
---|---|---|
Einzelne CPU-Instance |
|
|
Einzelne GPU-Instanz (mit einer oder mehreren GPUs) |
|
|
Mehrere CPU-Instances |
Batch Skip-gram |
Keine |
Weitere Informationen zur Mathematik, die dahinter steckt BlazingText, finden Sie unter BlazingText: Skalieren und Beschleunigen von Word2Vec
Themen
Eingabe-/Ausgabeschnittstelle für den Algorithmus BlazingText
Der BlazingText Algorithmus erwartet eine einzelne vorverarbeitete Textdatei mit durch Leerzeichen getrennten Token. Jede Zeile in der Datei enthält einen einzelnen Satz. Wenn Sie mehrere Textdateien trainieren, verketten Sie sie in einer Datei und laden Sie die Datei in den jeweiligen Kanal hoch.
Trainings- und Validierungsdatenformat
Trainings- und Validierungsdatenformat für den Word2Vec-Algorithmus
Für Word2Vec-Trainings laden Sie die Datei unter dem train-Kanal hoch. Andere Kanäle werden nicht unterstützt. Die Datei enthält einen einzelnen Trainingssatz pro Zeile.
Trainings- und Validierungsdatenformat für den Textklassifizierungsalgorithmus
Im Rahmen des beaufsichtigten Modus können Sie im Dateimodus oder im erweiterten Manifesttextformat trainieren.
Trainieren im Dateimodus
Im supervised
-Modus sollte das Trainings-/Validierungsdatei einen Trainingssatz pro Zeile zusammen mit den Bezeichnungen enthalten. Bezeichnungen sind Wörter, denen die Zeichenfolge __label__ vorangestellt ist. Hier finden Sie ein Beispiel für eine Trainings-/Validierungsdatei:
__label__4 linux ready for prime time , intel says , despite all the linux hype , the open-source movement has yet to make a huge splash in the desktop market . that may be about to change , thanks to chipmaking giant intel corp .
__label__2 bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly as the indian skippers return to international cricket was short lived .
Anmerkung
Die Reihenfolge der Bezeichnungen innerhalb des Satzes ist unerheblich.
Laden Sie das Trainingsdatei unter dem Trainingskanal hoch. Die Validierungsdatei können Sie optional unter dem Validierungskanal hochladen.
Schulen im erweiterten Manifesttextformat
Der überwachte Modus für CPU-Instances unterstützt auch das erweiterte Manifestformat, mit dem Sie im Pipe-Modus trainieren können, ohne RecordIO-Dateien erstellen zu müssen. Bei der Verwendung dieses Formats muss eine S3-Manifestdatei generiert werden, die die Liste der Sätze und ihre entsprechenden Bezeichnungen enthält. Das Manifestdateiformat sollte im JSON Linessource
-Tags angegeben und die Bezeichnung kann mithilfe des label
-Tags angegeben werden. Die – source
und label
-Tags sollten beide unter dem AttributeNames
-Parameterwert bereitgestellt werden, wie in der Anforderung angegeben.
{"source":"linux ready for prime time , intel says , despite all the linux hype", "label":1}
{"source":"bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly", "label":2}
Multi-Label-Training wird auch durch die Angabe eines JSON-Arrays von Labels unterstützt.
{"source":"linux ready for prime time , intel says , despite all the linux hype", "label": [1, 3]}
{"source":"bowled by the slower one again , kolkata , november 14 the past caught up with sourav ganguly", "label": [2, 4, 5]}
Weitere Informationen zu erweiterten Manifestdateien finden Sie unter Erweiterte Manifestdateien für Schulungsjobs.
Modellartefakte und Inferenz
Modellartefakte für den Word2Vec-Algorithmus
Für das Word2Vec-Training bestehen die Modellartefakte aus vectors.txt, die words-to-vectors Mapping enthält, und vectors.bin, einer Binärdatei, die von BlazingText für Hosting, Inferenz oder beides verwendet wird. vectors.txt speichert die Vektoren in einem Format, das mit anderen Tools wie Gensim und Spacy kompatibel ist. Beispiel: Ein Gensim-Benutzer kann die folgenden Befehle zum Laden der Datei vectors.txt ausführen:
from gensim.models import KeyedVectors
word_vectors = KeyedVectors.load_word2vec_format('vectors.txt', binary=False)
word_vectors.most_similar(positive=['woman', 'king'], negative=['man'])
word_vectors.doesnt_match("breakfast cereal dinner lunch".split())
Wenn der Auswertungsparameter auf True
festgelegt ist, wird eine zusätzliche Datei, eval.json, erstellt. Diese Datei enthält die Ergebnisse der Ähnlichkeitsauswertung (unter Verwendung der Rangkorrelationskoeffizienten von Spearman) im WS-353-Datensatz. Die Anzahl der Wörter aus dem WS-353-Datensatz, die im Trainingsdatensatz nicht vorhanden waren, werden gemeldet.
Für Inferenzanforderungen akzeptiert das Modell eine JSON-Datei mit einer Liste von Zeichenfolgen und gibt eine Liste der Vektoren zurück. Wenn das Wort im Vokabular nicht gefunden wird, gibt die Inferenz einen Vektor mit Nullen zurück. Wenn Teilwörter True
während des Trainings auf eingestellt sind, ist das Modell in der Lage, Vektoren für out-of-vocabulary (OOV-) Wörter zu generieren.
JSON-Beispielanfrage
Mime-Typ: application/json
{
"instances": ["word1", "word2", "word3"]
}
Modellartefakte für den Textklassifizierungsalgorithmus
Beim Training mit überwachten Ausgaben wird eine Datei model.bin erstellt, die vom BlazingText Hosting verwendet werden kann. Als Inferenz akzeptiert das BlazingText Modell eine JSON-Datei, die eine Liste von Sätzen enthält, und gibt eine Liste der entsprechenden vorhergesagten Bezeichnungen und Wahrscheinlichkeitswerte zurück. Jeder Satz muss eine Zeichenfolge mit durch Leerzeichen getrennten Token, Wörtern oder beidem sein.
JSON-Beispielanfrage
Mime-Typ: application/json
{
"instances": ["the movie was excellent", "i did not like the plot ."]
}
Standardmäßig gibt der Server nur eine Voraussage zurück, und zwar die mit der höchsten Wahrscheinlichkeit. Zum Abrufen der top k-Voraussagen können Siek in der Konfiguration wie folgt festlegen:
{
"instances": ["the movie was excellent", "i did not like the plot ."],
"configuration": {"k": 2}
}
Denn BlazingText die accept
Parameter content-type
und müssen gleich sein. Für die Stapeltransformation müssen beide application/jsonlines
lauten. Wenn sie sich voneinander unterscheiden, wird das Feld Accept
ignoriert. Das Format für die Eingabe lautet wie folgt:
content-type: application/jsonlines
{"source": "source_0"}
{"source": "source_1"}
if you need to pass the value of k for top-k, then you can do it in the following way:
{"source": "source_0", "k": 2}
{"source": "source_1", "k": 3}
Das Format für die Ausgabe lautet wie folgt:
accept: application/jsonlines
{"prob": [prob_1], "label": ["__label__1"]}
{"prob": [prob_1], "label": ["__label__1"]}
If you have passed the value of k to be more than 1, then response will be in this format:
{"prob": [prob_1, prob_2], "label": ["__label__1", "__label__2"]}
{"prob": [prob_1, prob_2], "label": ["__label__1", "__label__2"]}
Sowohl im überwachten Modus (Textklassifizierung) als auch im unbeaufsichtigten Modus (Word2Vec) BlazingText können die von erstellten Binärdateien (*.bin) von FastText übergreifend konsumiert werden und umgekehrt. Sie können von FastText BlazingText erstellte Binärdateien verwenden. Ebenso können Sie die mit FastText erstellten Modellbinärdateien mithilfe von hosten. BlazingText
Hier ist ein Beispiel für die Verwendung eines BlazingText mit FastText generierten Modells:
#Download the model artifact from S3
aws s3 cp s3://<YOUR_S3_BUCKET>/<PREFIX>/model.tar.gz model.tar.gz
#Unzip the model archive
tar -xzf model.tar.gz
#Use the model archive with fastText
fasttext predict ./model.bin test.txt
Die Binärdateien werden jedoch nur beim Training auf CPU und einer einzigen GPU unterstützt; das Training auf mehreren GPUs erzeugt keine Binärdateien.
EC2 Instanzempfehlung für den Algorithmus BlazingText
Für cbow
und skipgram
Modi, BlazingText unterstützt einzelne CPU- und einzelne GPU-Instanzen. Beide Modi unterstützen das Erlernen von subwords
-Einbettungen. Um die höchste Geschwindigkeit ohne Genauigkeitseinbußen zu erzielen, empfehlen wir die Verwendung einer ml.p3.2xlarge-Instance.
Für batch_skipgram
den Modus werden einzelne oder mehrere CPU-Instanzen BlazingText unterstützt. Wenn Sie auf mehreren Instanzen trainieren, legen Sie den Wert des S3DataDistributionType
Felds des S3DataSource
Objekts fest, an das Sie CreateTrainingJob
übergebenFullyReplicated
. BlazingTextkümmert sich um die Verteilung der Daten auf die Maschinen.
Im überwachten Textklassifizierungsmodus wird eine C5-Instance empfohlen, wenn der Trainingsdatensatz kleiner ist als 2 GB. Verwenden Sie für größere Datensätze eine Instanz mit einer einzigen GPU. BlazingText unterstützt P2-, P3-, G4dn- und G5-Instanzen für Training und Inferenz.
BlazingText Beispiel-Notizbücher
Ein Beispielnotizbuch, das den SageMaker BlazingText KI-Algorithmus zur Generierung von Wortvektoren trainiert und einsetzt, finden Sie unter Word2Vec-Wortdarstellungen lernen mit