Angepasstes Sprachmodell erstellen
Führen Sie die folgenden Schritte aus, um ein angepasstes Sprachmodel für den Service IBM Watson® Speech to Text zu erstellen, zu trainieren und Inhalte hinzuzufügen:
- Angepasstes Sprachmodell erstellen. Sie können mehrere angepasste Modelle für dasselbe oder verschiedene Fachgebiete erstellen. Der Erstellungsprozess ist für jedes Modell, das Sie erstellen, gleich. Die Anpassung von Sprachmodellen ist für alle großen Sprachmodelle, die meisten Modelle der vorherigen Generation und für alle Modelle der nächsten Generation verfügbar. Weitere Informationen finden Sie im Abschnitt Sprachunterstützung bei der Anpassung.
- Korpus zum angepassten Sprachmodell hinzufügen. Ein Korpus ist ein Klartextdokument, in dem Terminologie aus dem jeweiligen Fachgebiet verwendet wird. Sie können mehrere Korpora nacheinander zu einem angepassten Modell hinzufügen. Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Der Service erstellt ein Vokabular für ein angepasstes Modell durch Extrahieren von Begriffen aus Korpora, die im Basisvokabular des Service nicht enthalten sind. Für angepasste Modelle, die auf Modellen der nächsten Generation basieren: Der Service extrahiert Zeichenfolgen anstelle von Wörtern aus Korpora.
- Wörter zum angepassten Sprachmodell hinzufügen. Sie können auch angepasste Wörter einzeln zu einem Modell hinzufügen. Sie können angeben, wie die Wörter aus einem angepassten Modell in einer Sprachaufzeichnung angezeigt und wie sie in Audio ausgesprochen werden sollen. Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Sie können auch angepasste Wörter ändern, die aus Korpora extrahiert werden.
- Angepasstes Sprachmodell trainieren. Nachdem Sie Korpora und Wörter zum angepassten Modell hinzugefügt haben, müssen Sie das Modell trainieren. Durch das Trainieren wird das angepasste Modell auf die Verwendung in der Spracherkennung vorbereitet. Nur im trainierten Modell können neue oder geänderte Korpora und Wörter verwendet werden.
- Angepasstes Sprachmodell für die Spracherkennung verwenden. Nachdem Sie das angepasste Modell trainiert haben, können Sie es in Spracherkennungsanforderungen verwenden. Wenn die Audiodaten, die für die Transkription übergeben werden, domänenspezifische Wörter enthalten, die in den Korpora und den angepassten Wörtern des angepassten Modells definiert sind, dann geben die Ergebnisse der Anforderung das erweiterte Vokabular des Modells wider. Sie können jeweils nur ein Modell mit einer Spracherkennungsanforderung verwenden.
Die Schritte zum Erstellen eines benutzerdefinierten Sprachmodells sind iterativ. Sie können beliebig oft Korpora und/oder Wörter hinzufügen und das Modell nach Bedarf trainieren bzw. erneut trainieren. Sie können den meisten angepassten Sprachmodellen auch Grammatiken hinzufügen. Grammatiken begrenzen die Antwort des Service auf diejenigen Wörter, die von einer Grammatik erkannt werden.
- Weitere Informationen zur Verwendung von Grammatiken finden Sie in Grammatiken mit angepassten Sprachmodellen verwenden.
- Weitere Informationen zu den Sprachen und Modellen, die Grammatiken unterstützen, finden Sie unter Sprachunterstützung für Anpassung.
Angepasstes Sprachmodell erstellen
Mit der Methode POST /v1/customizations können Sie ein neues angepasstes Sprachmodell erstellen. Die Methode akzeptiert ein JSON-Objekt, das die Attribute des neuen angepassten Modells als Hauptteil der Anforderung definiert. Eigner
des neuen angepassten Modells ist die Serviceinstanz, deren Berechtigungsnachweise beim Erstellen des Modells verwendet wurden. Weitere Informationen finden Sie im Abschnitt Eigentumsrecht an angepassten Modellen.
Sie können nicht mehr als 1024 angepasste Sprachmodelle pro besitzenden Berechtigungsnachweis erstellen. Weitere Informationen finden Sie im Abschnitt Maximale Anzahl an angepassten Modellen.
Ein neues angepasstes Sprachmodell verfügt über die folgenden Attribute:
name(erforderliche Zeichenfolge)-
Ein benutzerdefinierter Name für das neue angepasste Modell. Verwenden Sie einen lokalisierten Namen, der der Sprache des angepassten Modells entspricht und die Domäne des Modells beschreibt, z. B.
Medical custom modeloderLegal custom model.- Der Name darf maximal 256 Zeichen enthalten.
- Verwenden Sie im Namen keine Backslashes, Schrägstriche, Doppelpunkte, Gleichheitszeichen, Et-Zeichen oder Fragezeichen.
- Der verwendete Name sollte innerhalb Ihrer angepassten Sprachmodelle eindeutig sein.
base_model_name(erforderliche Zeichenfolge)-
Der Name des Basissprachenmodells, das durch das neue benutzerdefinierte Modell angepasst werden soll. Sie müssen den Namen eines Modells verwenden, der von der Methode
GET /v1/modelszurückgegeben wird. Das neue angepasste Modell kann nur in Verbindung mit dem Basismodell verwendet werden, dessen Anpassung es darstellt. dialect(optionale Zeichenfolge)-
Der Dialekt aus der angegebenen Sprache, der in dem neuen Modell verwendet werden soll. Bei allen Sprachen ist es immer sicher, dieses Feld wegzulassen. Der Service verwendet automatisch die Sprachenkennung aus dem Namen des Basismodells. Zum Beispiel verwendet der Dienst automatisch
en-USfür alle US-amerikanischen englischen Modelle.Wenn Sie
dialectfür ein neues angepasstes Modell angeben, beachten Sie die folgenden Richtlinien:- Für nicht spanische Modelle der vorherigen Generation und für Modelle der nächsten Generation müssen Sie einen Wert angeben, der mit der fünfstelligen Sprachenkennung aus dem Namen des Basismodells übereinstimmt.
- Für spanische Modelle der vorherigen Generation müssen Sie einen der folgenden Werte angeben:
es-ESfür Spanisch (Kastilien) (es-ES-Modelle)es-LAfür Spanisch (Lateinamerika) (es-AR-,es-CL-,es-CO- undes-PE-Modelle)es-USfür Spanisch (Mexiko) (es-MX-Modelle)
Bei allen Werten, die Sie für das Feld
dialectübergeben, wird die Groß-/Kleinschreibung ignoriert. description(optionale Zeichenfolge)-
Eine empfohlene Beschreibung des neuen benutzerdefinierten Modells.
- Verwenden Sie eine Beschreibung in der Sprache des angepassten Modells.
- Die Beschreibung darf maximal 128 Zeichen enthalten.
Im folgenden Beispiel wird ein neues angepasstes Sprachmodell mit dem Namen Example model erstellt. Das Modell wird für das Basismodell en-US-BroadbandModel erstellt und die zugehörige Beschreibung lautet Example custom language model.
Der erforderliche Content-Type-Header gibt an, dass JSON-Daten an die Methode übergeben werden.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data "{\"name\": \"Example model\", \
\"base_model_name\": \"en-US_BroadbandModel\", \
\"description\": \"Example custom language model\"}" \
"{url}/v1/customizations"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--data "{\"name\": \"Example model\", \
\"base_model_name\": \"en-US_BroadbandModel\", \
\"description\": \"Example custom language model\"}" \
"{url}/v1/customizations"
Das Beispiel gibt die Anpassungs-ID des neuen Modells zurück. Jedes angepasste Modell wird durch eine eindeutige Anpassungs-ID identifiziert. Diese ID ist eine global eindeutige ID (Globally Unique Identifier, GUID). Geben Sie die GUID für ein
angepasstes Modell mit dem Parameter customization_id der Aufrufe an, die dem Modell zugeordnet sind.
{
"customization_id": "74f4807e-b5ff-4866-824e-6bba1a84fe96"
}
Korpus zum angepassten Sprachmodell hinzufügen
Nachdem Sie ein angepasstes Sprachmodell erstellt haben, müssen Sie im nächsten Schritt domänenspezifische Daten zu dem Modell hinzufügen. Die empfohlene Vorgehensweise zum Füllen eines angepassten Modells besteht darin, mindestens einen Korpus hinzuzufügen. Ein Korpus ist eine einfache Textdatei, die im Idealfall Beispielsätze aus dem zugehörigen Fachgebiet enthält.
-
Für angepasste Modelle, die auf großen Sprachmodellen basieren, analysiert der Service Wortfolgen aus einer oder mehreren Korpora-Dateien und extrahiert sie. Die Zeichen unterstützen den Service dabei, Zeichenfolgen in Audiodaten zu erkennen und vorherzusagen. Weitere Informationen zur Verwendung von Korpora mit angepassten Modellen, die auf großen Sprachmodellen basieren, finden Sie unter Mit Korpora für große Sprachmodelle und Modelle der nächsten Generation arbeiten.
-
Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Der Service analysiert eine Korpusdatei und extrahiert alle Wörter, die nicht in seinem Basisvokabular enthalten sind. Diese Wörter werden als vokabularexterne Wörter (Out-Of-Vocabulary, OOV) bezeichnet. Weitere Informationen zur Verwendung von Korpora mit angepassten Modellen, die auf Modellen der vorherigen Generation basieren, finden Sie unter Mit Korpora für Modelle der vorherigen Generation arbeiten.
-
Für angepasste Modelle, die auf Modellen der nächsten Generation basieren, analysiert und extrahiert der Service Zeichenfolgen aus einer Korpusdatei. Die Zeichen unterstützen den Service dabei, Zeichenfolgen in Audiodaten zu erkennen und vorherzusagen. Weitere Informationen zur Verwendung von Korpora mit angepassten Modellen, die auf Modellen der nächsten Generation basieren, enthält Mit Korpora für große Sprachmodelle und Modelle der nächsten Generation arbeiten.
Durch die Bereitstellung von Sätzen, die domänenspezifische Wörter enthalten, ermöglichen Korpora dem Service das Erlernen von Wörtern und Zeichenfolgen im Kontext. Sie können die Wörter in einem Modell auch einzeln erweitern und ändern. Das Trainieren eines Modells mit einzelnen Wörtern ist zeitaufwendiger als das Hinzufügen von Wörtern aus Korpora und kann zu weniger effizienten Ergebnissen führen.
Mit der Methode POST /v1/customizations/{customization_id}/corpora/{corpus_name} können Sie ein Korpus zu einem angepassten Modell hinzufügen:
customization_id(erforderliche Zeichenfolge)- Geben Sie die Anpassungs-ID des angepassten Modells an, dem das Korpus hinzugefügt werden soll.
corpus_name(erforderliche Zeichenfolge)- Geben Sie einen Namen für den Korpus an. Verwenden Sie einen lokalisierten Namen in der Sprache des angepassten Modells, der den Inhalt des Korpus bezeichnet.
- Der Name sollte nicht mehr als 128 Zeichen umfassen.
- Verwenden Sie keine Zeichen, die eine URL-Codierung erforderlich machen. Verwenden Sie beispielsweise keine Leerzeichen, Schrägstriche, umgekehrten Schrägstriche, Doppelpunkte, Et-Zeichen, Anführungszeichen, Pluszeichen, Gleichheitszeichen, Fragezeichen etc. im Namen. (Die Verwendung dieser Zeichen ist im Service nicht unzulässig. Da für sie jedoch stets eine URL-Codierung erforderlich ist, wird von einer Verwendung dieser Zeichen ausdrücklich abgeraten.)
- Verwenden Sie nicht den Namen eines Korpus oder einer Grammatik, das bzw. die dem angepassten Modell bereits hinzugefügt wurde.
- Verwenden Sie nicht den Namen
user, der im Service für angepasste Wörter reserviert ist, die vom Benutzer hinzugefügt oder geändert werden. - Verwenden Sie nicht den Namen
base_lmoderdefault_lm. Beide Namen sind für die zukünftige Verwendung durch den Service reserviert.
Übergeben Sie die Corpus-Textdatei als erforderlichen Hauptteil der Anfrage. Im folgenden Beispiel wird die Korpustextdatei healthcare.txt zu dem angepassten Modell mit der angegebenen ID hinzugefügt. Im Beispiel wird dem Korpus
der Name healthcare zugeordnet.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--data-binary @healthcare.txt \
"{url}/v1/customizations/{customization_id}/corpora/healthcare"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--data-binary @healthcare.txt \
"{url}/v1/customizations/{customization_id}/corpora/healthcare"
Die Methode akzeptiert außerdem den optionalen Parameter allow_overwrite, um ein vorhandenes Korpus für ein angepasstest Modell zu überschreiben. Verwenden Sie diesen Parameter, wenn Sie eine Korpusdatei aktualisieren möchten, die
Sie zu einem Modell hinzugefügt haben.
Diese Methode arbeitet asynchron. Es kann einige Minuten dauern, bis die Methode beendet ist. Die Dauer der Operation hängt von der Gesamtzahl der Wörter im Korpus und der aktuellen Auslastung des Service ab. Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren, hängt die Dauer auch von der Anzahl neuer Wörter ab, die der Service im Korpus findet. Weitere Informationen zum Überprüfen des Status eines Korpus finden Sie im Abschnitt Anforderung zum Hinzufügen eines Korpus überwachen.
Sie können beliebig viele Korpora zu einem angepassten Modell hinzufügen, indem Sie die Methode für jede Korpustextdatei einmal aufrufen. Das Hinzufügen eines Korpus muss vollständig abgeschlossen sein, bevor ein weiteres Korpus hinzugefügt
werden kann. Ein Korpus hat den Status being_processed, wenn Sie ihn zum ersten Mal zu einem Modell hinzufügen. Wenn der Service die Verarbeitung des Korpus abgeschlossen hat, ändert sich sein Status in analyzed.
Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Nachdem das Hinzufügen eines Korpus abgeschlossen ist, überprüfen Sie die neuen angepassten Wörter, die daraus extrahiert wurden, auf Schreibfehler und andere Fehlern. Weitere Informationen finden Sie unter Wortressource für Modelle der vorherigen Generation validieren.
Anforderung zum Hinzufügen eines Korpus überwachen
Der Service gibt einen Antwortcode 201 zurück, wenn das Korpus gültig ist. Anschließend wird der Inhalt des Korpus asynchron verarbeitet. Sie können keine weiteren Anforderungen zum Hinzufügen von Daten für das angepasste Modell oder zum Trainieren des Modells übergeben, bis die Analyse des Korpus für die aktuelle Anforderung abgeschlossen ist.
Den Status der Korpusanalyse können Sie mit der Methode GET /v1/customizations/{customization_id}/corpora/{corpus_name} ermitteln. Die Methode akzeptiert die ID des Modells und den Namen des Korpus, wie im folgenden Beispiel gezeigt:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/customizations/{customization_id}/corpora/corpus1"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/customizations/{customization_id}/corpora/corpus1"
Die Antwort enthält den Status des Korpus. Da das angepasste Modell auf einem Modell der vorherigen Generation basiert, wird in der Antwort die Anzahl der OOV-Wörter angegeben.
{
"name": "corpus1",
"total_words": 5037,
"out_of_vocabulary_words": 401,
"status": "analyzed"
}
Im Feld status wird einer der folgenden Werte angegeben:
analyzedgibt an, dass das Korpus vom Service erfolgreich analysiert wurde.being_processedgibt an, dass der Service die Analyse des Korpus noch nicht abgeschlossen hat.undeterminedgibt an, dass der Service beim Verarbeiten des Korpus einen Fehler festgestellt hat.
Überprüfen Sie mit einer Schleife den Status des Korpus alle 10 Sekunden, bis der Status analyzed angegeben wird. Weitere Informationen zur Statusüberprüfung für die Korpora eines Modells finden Sie im Abschnitt Korpora für angepasstes Sprachmodell auflisten.
Wörter zum angepassten Sprachmodell hinzufügen
Obwohl das Hinzufügen von Korpora die empfohlene Methode zum Erweitern des Vokabulars in einem angepassten Sprachmodell ist, können auch einzelne Wörter direkt im Modell hinzugefügt werden. Der Service analysiert angepasste Wörter für das angepasste Modell auf die gleiche Weise wie den Inhalt von Wörtern aus Korpora.
Wenn Sie nur wenige Wörter zu einem Modell hinzufügen möchten, ist die Verwendung von Korpora möglicherweise keine sinnvolle oder realistische Option. In diesem Fall ist die einfachste Methode das Hinzufügen eines einzelnen Wortes mit zugehöriger Schreibweise. Sie können aber auch angeben, wie das Wort angezeigt werden soll und eine oder mehrere Aussprachevarianten für das Wort.
- Weitere Informationen zum Hinzufügen von Wörtern zu einem angepassten Modell, das auf einem Modell der vorherigen Generation basiert, finden Sie unter Mit angepassten Wörtern für Modelle der vorherigen Generation arbeiten.
- Weitere Informationen zum Hinzufügen von Wörtern zu einem angepassten Modell, das auf großen Sprachmodellen und Modellen der nächsten Generationbasiert, enthält Mit angepassten Wörtern für große Sprachmodelle und Modelle der nächsten Generation arbeiten.
Nachdem Sie Wörter zu einem benutzerdefinierten Modell hinzugefügt haben, überprüfen Sie die neuen benutzerdefinierten Wörter auf Tipp- und andere Fehler. Diese Überprüfung ist besonders wichtig, wenn Sie mehrere Wörter auf einmal hinzufügen.
- Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren, siehe Wörterressource für Modelle einer früheren Generation validieren.
- Für angepasste Modelle, die auf großen Sprachmodellen und Modellen der nächsten Generation basieren, siehe Wörterressource für große Sprachmodelle und Modelle der nächsten Generation validieren.
Wörter mit der POST-Methode hinzufügen
Die POST /v1/customizations/{customization_id}/words-Methode fügt ein oder mehrere Wörter auf einmal hinzu. Sie übergeben die Wörter, die als JSON-Daten hinzugefügt werden sollen, über den Hauptteil der Anforderung oder aus einer
Datei. In beiden Fällen gibt der erforderliche Content-Type-Header an, dass JSON-Daten an die Methode übergeben werden.
Die folgenden Beispiele fügen dem benutzerdefinierten Modell mit der angegebenen ID zwei benutzerdefinierte Wörter hinzu: HHonors und IEEE:
-
Im ersten Beispiel werden die Informationen zu den einzelnen Wörtern über den Hauptteil der Anforderung übergeben:
IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: application/json" \ --data "{\"words\": [ \ {\"word\": \"HHonors\", \"sounds_like\": [\"hilton honors\", \"H. honors\"], \"display_as\": \"HHonors\"}, \ {\"word\": \"IEEE\", \"sounds_like\": [\"I. triple E.\"]}]}" \ "{url}/v1/customizations/{customization_id}/words"IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: application/json" \ --data "{\"words\": [ \ {\"word\": \"HHonors\", \"sounds_like\": [\"hilton honors\", \"H. honors\"], \"display_as\": \"HHonors\"}, \ {\"word\": \"IEEE\", \"sounds_like\": [\"I. triple E.\"]}]}" \ "{url}/v1/customizations/{customization_id}/words" -
Im zweiten Beispiel werden dieselben Wörter aus einer Datei namens
words.jsonhinzugefügt:{ "words": [ {"word": "HHonors", "sounds_like": ["hilton honors", "H. honors"], "display_as": "HHonors"}, {"word": "IEEE", "sounds_like": ["I. triple E."]} ] }Die folgende Anfrage fügt die Wörter aus der Datei hinzu:
IBM Cloud
curl -X POST -u "apikey:{apikey}" \ --header "Content-Type: application/json" \ --data-binary @words.json \ "{url}/v1/customizations/{customization_id}/words"IBM Cloud Pak for Data IBM Software Hub
curl -X POST \ --header "Authorization: Bearer {token}" \ --header "Content-Type: application/json" \ --data-binary @words.json \ "{url}/v1/customizations/{customization_id}/words"
Die POST-Methode ist asynchron. Es kann einige Minuten dauern, bis die Methode beendet ist. Die benötigte Ausführungsdauer ist von der Anzahl der hinzugefügten Wörter und von der aktuellen Auslastung des Service abhängig. Weitere
Informationen zur Statusprüfung für die Operation finden Sie im Abschnitt Anforderung zum Hinzufügen von Wörtern überwachen.
Ein Wort mit der PUT-Methode hinzufügen
Die Methode PUT /v1/customizations/{customization_id}/words/{word_name} fügt einzelne Wörter hinzug. Sie übergeben ein JSON-Objekt, das Informationen über das Wort als Hauptteil der Anfrage bereitstellt.
Im folgenden Beispiel wird das Wort NCAA zu dem Modell mit der angegebenen ID hinzugefügt. Der erforderliche Content-Type-Header zeigt erneut an, dass JSON-Daten an die Methode übergeben werden.
IBM Cloud
curl -X PUT -u "apikey:{apikey}" \
--header "Content-Type: application/json" \
--data "{\"sounds_like\": [\"N. C. A. A.\", \"N. C. double A.\"]}" \
"{url}/v1/customizations/{customization_id}/words/NCAA"
IBM Cloud Pak for Data IBM Software Hub
curl -X PUT \
--header "Authorization: Bearer {token}" \
--header "Content-Type: application/json" \
--data "{\"sounds_like\": [\"N. C. A. A.\", \"N. C. double A.\"]}" \
"{url}/v1/customizations/{customization_id}/words/NCAA"
Die PUT-Methode ist synchron. Der vom Service zurückgegebene Antwortcode meldet sofort den Erfolg oder das Fehlschlagen der Anforderung.
Anforderung zum Hinzufügen von Wörtern überwachen
Bei Verwendung der Methode POST /v1/customizations/{customization_id}/words gibt der Service einen Antwortcode 201 zurück, wenn die Eingabedaten gültig sind. Anschließend werden die Wörter asynchron verarbeitet, um sie zum Modell
hinzuzufügen. Sie können keine weiteren Anforderungen zum Hinzufügen von Daten für das angepasste Modell oder zum Trainieren des Modells übergeben, bis der Service die Anforderung zum Hinzufügen neuer Wörter abgeschlossen hat.
Den Status der Anforderung können Sie mit der Methode GET /v1/customizations/{customization_id} ermitteln. Die Methode akzeptiert berücksichtigt die Anpassungs-ID des Modells, wie im folgenden Beispiel gezeigt:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/customizations/{customization_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/customizations/{customization_id}"
Die Anforderung enthält Informationen zum Status des Modells:
{
"customization_id": "74f4807e-b5ff-4866-824e-6bba1a84fe96",
"created": "2016-06-01T18:42:25.324Z",
"updated": "2016-06-01T18:45:11.737Z",
"language": "en-US",
"dialect": "en-US",
"owner": "297cfd08-330a-22ba-93ce-1a73f454dd98",
"name": "Example model",
"description": "Example custom language model",
"base_model_name": "en-US_BroadbandModel",
"status": "pending",
"progress": 0
}
Im Feld status wird der aktuelle Status des Modells angegeben. Solange der Service neue Wörter verarbeitet, wird der Status pending angegeben. Überprüfen Sie mit einer Schleife den Status alle 10 Sekunden, bis der
Status ready darauf hinweist, dass der Vorgang abgeschlossen ist. Weitere Informationen zu möglichen Werten für status finden Sie im Abschnitt Anforderung zum Trainieren des Modells überwachen.
Wörter in einem angepassten Modell ändern
Sie können auch die Methoden POST /v1/customizations/{customization_id}/words und PUT /v1/customizations/{customization_id}/words/{word_name} verwenden, um ein Wort in einem angepassten Modell zu ändern oder zu erweitern.
Mit diesen Methoden können Sie bei Bedarf einen Schreibfehler oder einen anderen Fehler korrigieren, der beim Hinzufügen eines Wortes zu dem Modell aufgetreten ist. Außerdem können Sie gleich klingende Aussprachevarianten für ein vorhandenes
Wort hinzufügen.
Mit diesen Methoden können Sie die Definition eines vorhandenen Wortes auf die gleiche Weise ändern wie beim Hinzufügen eines Wortes. Die neuen Angaben, die Sie für das Wort bereitstellen, überschreiben die vorhandene Definition des Wortes. Für angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Sie können auch Wörter ändern, die aus Korpora hinzugefügt wurden.
Angepasstes Sprachmodell trainieren
Nachdem Sie ein angepasstes Sprachmodell mit neuen Wörtern gefüllt haben (durch Hinzufügen von Korpora, durch direktes Hinzufügen von Wörtern oder durch Hinzufügen von Grammatiken), müssen Sie das Modell mit den neuen Daten trainieren. Durch Trainieren wird das angepasste Modell vorbereitet, damit die Daten bei der Spracherkennung genutzt werden können. Wörter, die Sie mit einem beliebigen Verfahren hinzugefügt haben, werden vom Modell erst verwendet, nachdem Sie das Modell mithilfe der neuen Daten trainiert haben.
Mit der Methode POST /v1/customizations/{customization_id}/train können Sie ein angepasstes Modell trainieren. In der Methode übergeben Sie die Anpassungs-ID des Modells, das Sie trainieren möchten, wie im folgenden Beispiel gezeigt:
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
"{url}/v1/customizations/{customization_id}/train"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
"{url}/v1/customizations/{customization_id}/train"
Diese Methode arbeitet asynchron. Die Dauer des Trainingsvorgangs kann mehrere Minuten betragen und ist von der Anzahl der neuen Wörter und von der aktuellen Auslastung des Service abhängig. Weitere Informationen zur Statusprüfung für den Trainingsvorgang finden Sie im Abschnitt Anforderung zum Trainieren des Modells überwachen.
Die Methode enthält die folgenden optionalen Abfrageparameter:
-
Mit dem Parameter
word_type_to_addwerden die Wörter angegeben, mit denen das angepasste Modell trainiert werden soll.- Geben Sie
allan oder lassen Sie den Parameter weg, um das Modell mit allen zugehörigen Wörtern (unabhängig von ihrer Herkunft) zu trainieren. - Geben Sie
useran, um das Modell nur mit Wörtern zu trainieren, die von dem angegebenen Benutzer hinzugefügt oder geändert wurden. Dabei werden Wörter ignoriert, die nur aus Korpora oder Grammatiken extrahiert wurden.
Angepasste Modelle, die auf Modellen der vorherigen Generation basieren: Diese Option ist hilfreich, wenn Sie Korpora mit unscharfen Daten hinzufügen (z. B. Wörter mit Schreibfehlern). Bevor Sie das Modell mit solchen Daten trainieren, können Sie mit dem Abfrageparameter
word_typein der MethodeGET /v1/customizations/{customization_id}/wordsWörter überprüfen, die aus Korpora und Grammatiken extrahiert wurden. Weitere Informationen finden Sie in Angepasste Wörter aus einem angepassten Sprachmodell auflisten.Für angepasste Modelle, die auf großen Sprachmodellen und Modellen der nächsten Generation basieren, ignoriert der Service den Parameter
word_type_to_add. Die Wörterressource enthält nur angepasste Wörter, die vom Benutzer direkt hinzufügt oder geändert werden, d. h. der Parameter ist nicht erforderlich. - Geben Sie
-
Der Parameter
customization_weightgibt die relative Gewichtung für Wörter aus dem angepassten Modell im Vergleich zu Wörtern aus dem Basisvokabular an, wenn das angepasste Modell für die Spracherkennung verwendet wird. Mit jeder Erkennungsanforderung, von der das angepasste Modell verwendet wird, können Sie auch eine Anpassungsgewichtung angeben. Weitere Informationen finden Sie im Abschnitt Anpassungsgewichtung verwenden. -
Der Parameter
strictgibt an, ob das Training fortgesetzt werden soll, wenn das angepasste Modell eine Mischung aus gültigen und ungültigen Ressourcen (Korpora, Wörter und Grammatiken) enthält. Das Training schlägt standardmäßig fehl, wenn das Modell mindestens eine ungültige Ressource enthält. Setzen Sie den Parameter auffalse, damit das Training fortgesetzt werden kann, sofern das Modell mindestens eine gültige Ressource enthält. Der Service schließt ungültige Ressourcen vom Training aus. Weitere Informationen finden Sie im Abschnitt Trainingsfehler bei angepassten Sprachmodellen.
Anforderung zum Trainieren des Modells überwachen
Der Service gibt einen Antwortcode 200 zurück, wenn der Trainingsvorgang erfolgreich eingeleitet wurde. Der Service kann keine weiteren Anforderungen für Trainingsvorgänge oder Anforderungen zum Hinzufügen neuer Korpora, Wörter oder Grammatiken akzeptieren, bis die aktuelle Anforderung abgeschlossen ist.
Wenn Sie angepasste Wörter direkt zu einem angepassten Modell hinzufügen, das auf einem großen Sprachmodell oder einem Modell der nächsten Generation basiert, wie in Wörter zum angepassten Sprachmodell hinzufügen beschrieben,
dauert das Training eines Modells einige Minuten länger als sonst. Wenn Sie ein Modell mit angepassten Wörtern trainieren, die Sie mithilfe der Methode POST /v1/customizations/{customization_id}/words oder PUT /v1/customizations/{customization_id}/words/{word_name} hinzugefügt haben, planen Sie einige Minuten zusätzliche Trainingszeit für das Modell ein.
Den Status der Trainingsanforderung können Sie mit der Methode GET /v1/customizations/{customization_id} ermitteln. Die Methode akzeptiert die Anpassungs-ID des Modells:
IBM Cloud
curl -X GET -u "apikey:{apikey}" \
"{url}/v1/customizations/{customization_id}"
IBM Cloud Pak for Data IBM Software Hub
curl -X GET \
--header "Authorization: Bearer {token}" \
"{url}/v1/customizations/{customization_id}"
Die Antwort enthält Informationen über den Status des Modells:
{
"customization_id": "74f4807e-b5ff-4866-824e-6bba1a84fe96",
"created": "2016-06-01T18:42:25.324Z",
"updated": "2016-06-01T18:45:11.737Z",
"language": "en-US",
"dialect": "en-US",
"owner": "297cfd08-330a-22ba-93ce-1a73f454dd98",
"name": "Example model",
"description": "Example custom language model",
"base_model_name": "en-US_BroadbandModel",
"status": "training",
"progress": 0
}
Die Antwort enthält die Felder status und progress, die den Status des angepassten Modells angeben. Die Bedeutung des Felds progress hängt vom Status des Modells ab. Im Feld status kann einer
der folgenden Werte angegeben werden:
-
pendinggibt an, dass das Modell erstellt wurde und sich im Wartestatus befindet, da entweder noch keine gültigen Trainingsdaten hinzugefügt wurden oder die Analyse der hinzugefügten Daten noch nicht abgeschlossen ist. Das Feldprogresshat den Wert0. -
readygibt an, dass das Modell gültige Daten enthält und jetzt für das Training bereit ist. Das Feldprogresshat den Wert0.Wenn das Modell eine Mischung aus gültigen und ungültigen Ressourcen enthält (z. B. sowohl gültige als auch ungültige angepasste Wörter), schlägt das Training des Modells fehl, falls Sie den Abfrageparameter
strictnicht auffalsegesetzt haben. Weitere Informationen finden Sie im Abschnitt Trainingsfehler bei angepassten Sprachmodellen. -
traininggibt an, dass das Modell momentan trainiert wird. Das Feldprogresshat den Wert0. Nachdem das Training abgeschlossen ist, wird das Feld von0in100geändert. -
availablegibt an, dass das Modell trainiert wurde und jetzt verwendet werden kann. Das Feldprogresshat den Wert100. -
upgradinggibt an, dass das Modell momentan aktualisiert wird. Das Feldprogresshat den Wert0. -
failed: Das Training des Modells ist fehlgeschlagen. Das Feldprogresshat den Wert0. Weitere Informationen finden Sie im Abschnitt Trainingsfehler bei angepassten Sprachmodellen.
Überprüfen Sie mit einer Schleife den Status alle 10 Sekunden, bis der Status available angegeben wird. Weitere Information zur Statusprüfung für ein angepasstes Modell finden Sie im Abschnitt Angepasste Sprachmodelle auflisten.
Trainingsfehler bei angepassten Sprachmodellen
Das Training kann nicht gestartet werden, wenn der Service momentan eine andere Anforderung für das angepasste Sprachmodell ausführt. In den folgenden Situationen schlägt eine Trainingsanforderung mit dem Statuscode 409 fehl:
- Durch Verarbeiten eines Korpus oder einer Grammatik eine Liste der OOV-Wörter generieren oder Zeichenfolgen extrahieren
- Der Service überprüft momentan angepasste Wörter oder generiert gleich klingende Aussprachevarianten
- Der Service verarbeitet momentan eine andere Trainingsanforderung
Darüber hinaus wird das Training in den folgenden Situationen nicht gestartet und Statuscode 400 angezeigt:
- Enthält seit der Erstellung oder dem letzten Training keine neuen gültigen Trainingsdaten (Korpora, Wörter oder Grammatiken)
- Enthält ein oder mehrere ungültige Korpora, Wörter oder Grammatiken (z. B. hat ein benutzerdefiniertes Wort eine ungültige gleich klingende Aussprache)
Schlägt die Trainingsanforderung mit dem Statuscode 400 fehl, legt der Service failed als Status des angepassten Modells fest. Führen Sie eine der folgenden Aktionen aus:
-
Untersuchen Sie mit den Methoden aus der Anpassungsschnittstelle die Ressourcen des Modells und beheben Sie alle gefundenen Fehler:
- Bei einem ungültigen Korpus können Sie die Korpustextdatei korrigieren und mit dem Parameter
allow_overwriteder MethodePOST /v1/customizations/{customization_id}/corpora/{corpus_name}die korrigierte Datei dem Modell hinzufügen. Weitere Informationen finden Sie im Abschnitt Korpus zum angepassten Sprachmodell hinzufügen. - Bei einer ungültigen Grammatik können Sie die Grammatikdatei korrigieren und mit dem Parameter
allow_overwriteder MethodePOST /v1/customizations/{customization_id}/grammars/{grammar_name}die korrigierte Datei dem Modell hinzufügen. Weitere Informationen hierzu enthält der Abschnitt Grammatik zum angepassten Sprachmodell hinzufügen. - Bei einem ungültigen angepassten Wort können Sie mit der Methode
POST /v1/customizations/{customization_id}/wordsoderPUT /v1/customizations/{customization_id}/words/{word_name}das Wort direkt in der Wörterressource des Modells ändern. Weitere Informationen finden Sie in Wörter in einem angepassten Modell ändern.
Weitere Informationen zum Validieren der Wörter in einem angepassten Sprachmodell finden Sie unter
- Bei einem ungültigen Korpus können Sie die Korpustextdatei korrigieren und mit dem Parameter
-
Setzen Sie den Parameter
strictder MethodePOST /v1/customizations/{customization_id}/trainauffalse, um ungültige Ressourcen vom Training auszuschließen. Das Modell muss mindestens eine gültige Ressource (Korpus, Wort oder Grammatik) enthalten, damit das Training erfolgreich ist. Der Parameterstrictist für das Training eines angepassten Modells, das eine Mischung aus gültigen und ungültigen Ressourcen enthält, hilfreich.