IBM Cloud Docs
Creazione di un modello di lingua personalizzato

Creazione di un modello di lingua personalizzato

Attieniti alla seguente procedura per creare, aggiungere contenuti e preparare un modello di lingua personalizzato per il servizio IBM Watson® Speech to Text:

  1. Crea un modello di lingua personalizzato. Puoi creare più modelli personalizzati per lo stesso dominio o per domini differenti. Il processo è lo stesso per qualsiasi modello che crei. La personalizzazione del modello di lingua è disponibile per tutti i modelli vocali di grandi dimensioni, per la maggior parte dei modelli di generazione precedente e per tutti i modelli di nuova generazione. Per ulteriori informazioni, vedi Supporto delle lingue per la personalizzazione.
  2. Aggiungi un corpus al modello di lingua personalizzato. Un corpus è un documento di testo semplice che utilizza la terminologia dal dominio in contesto. Puoi aggiungere più corpora in serie, uno alla volta, a un modello personalizzato. Per i modelli personalizzati basati sui modelli di generazione precedenti, il servizio crea un vocabolario per un modello personalizzato estraendo termini dai corpora che non esistono nel suo vocabolario di base. Per i modelli personalizzati basati sui modelli di nuova generazione, il servizio estrae le sequenze di caratteri invece delle parole dai corpora.
  3. Aggiungi parole a un modello di lingua personalizzato. Puoi anche aggiungere parole personalizzate a un modello singolarmente. Puoi specificare come devono essere visualizzate le parole da un modello personalizzato in una trascrizione vocale e come vengono pronunciate nell'audio. Per i modelli personalizzati basati su modelli di generazione precedente, puoi modificare le parole personalizzate estratte dai corpora.
  4. Addestra il modello di lingua personalizzato. Dopo aver aggiunto corpora e parole al modello personalizzato, devi addestrare il modello. L'addestramento prepara il modello personalizzato per l'utilizzo nel riconoscimento vocale. Il modello non utilizza corpora o parole nuove o modificate finché non lo si addestra.
  5. Utilizza un modello di lingua personalizzato per il riconoscimento vocale. Dopo aver addestrato il modello personalizzato, è possibile utilizzarlo con le richieste di riconoscimento vocale. Se l'audio trasmesso per la trascrizione contiene parole specifiche del dominio definite nei corpora e nelle parole personalizzate del modello personalizzato, i risultati della richiesta riflettono il vocabolario migliorato del modello. Puoi utilizzare solo un modello alla volta con una richiesta di riconoscimento vocale.

La procedura per creare un modello di lingua personalizzato è iterativa. Puoi aggiungere corpora e parole e addestrare o riaddestrare un modello tutte le volte che lo ritieni necessario. È inoltre possibile aggiungere grammatiche alla maggior parte dei modelli linguistici personalizzati. Le grammatiche limitano la risposta del servizio alle sole parole da esse riconosciute.

Crea un modello di lingua personalizzato

Utilizzi il metodo POST /v1/customizations per creare un nuovo modello di lingua personalizzato. Il metodo accetta un oggetto JSON che definisce gli attributi del nuovo modello personalizzato come corpo della richiesta. Il nuovo modello personalizzato appartiene all'istanza del servizio di cui vengono utilizzate le credenziali per crearlo. Per ulteriori informazioni, vedi Proprietà di modelli personalizzati.

Puoi creare un massimo di 1024 modelli di lingua personalizzati per credenziali di gestione. Per ulteriori informazioni, vedi Numero massimo di modelli personalizzati.

Un nuovo modello di lingua personalizzato ha i seguenti attributi:

name (stringaobbligatoria )

Un nome definito dall'utente per il nuovo modello personalizzato. Utilizzare un nome localizzato che corrisponda alla lingua del modello personalizzato e che descriva il dominio del modello, ad esempio Medical custom model o Legal custom model.

  • Inserire un massimo di 256 caratteri nel nome.
  • Non utilizzare barre retroverse, barre, due punti, segni di uguale, e commerciale o punti interrogativi nel nome.
  • Utilizza un nome che sia univoco tra tutti i modelli di lingua personalizzati di tua proprietà.
base_model_name (stringaobbligatoria )

Il nome del modello di lingua di base che deve essere personalizzato dal nuovo modello personalizzato. Devi utilizzare il nome di un modello restituito dal metodo GET /v1/models. Il nuovo modello personalizzato può essere utilizzato solo con il modello di base che personalizza.

dialect (stringafacoltativa )

Il dialetto della lingua specificata che deve essere utilizzato con il nuovo modello personalizzato. Per tutte le lingue, è sempre sicuro omettere questo campo. Il servizio utilizza automaticamente l'identificativo della lingua dal nome del modello di base. Ad esempio, il servizio utilizza automaticamente en-US per tutti i modelli di inglese (Stati Uniti).

Se si specifica dialect per un nuovo modello personalizzato, attenersi alle seguenti linee guida:

  • Per i modelli di generazione precedente non in spagnolo e per i modelli di nuova generazione, è necessario specificare un valore che corrisponda all'identificativo di lingua di cinque caratteri dal nome del modello base.
  • Per i modelli di generazione precedenti in spagnolo, è necessario specificare uno dei seguenti valori:
    • es-ES per lo spagnolo castigliano (modelli es-ES)
    • es-LA per lo spagnolo latino americano (modelli es-AR, es-CL, es-CO e es-PE)
    • es-US per lo spagnolo messicano (nord americano) (modelli es-MX)

Tutti i valori passati per il campo dialect non sono sensibili al maiuscolo / minuscolo.

description (stringafacoltativa )

Una descrizione consigliata del nuovo modello personalizzato.

  • Utilizza una descrizione localizzata che corrisponda alla lingua del modello personalizzato.
  • Includere un massimo di 128 caratteri nella descrizione.

Il seguente esempio crea un nuovo modello di lingua personalizzato denominato Example model. Il modello viene creato per il modello di base en-US-BroadbandModel e ha la descrizione Example custom language model. L'intestazione richiesta " Content-Type " specifica che i dati JSON vengono passati al metodo.

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"

L'esempio restituisce l'ID di personalizzazione del nuovo modello. Ogni modello personalizzato è identificato da un ID di personalizzazione univoco, che è un GUID (Globally Unique Identifier). Specifichi il GUID di un modello personalizzato con il parametro customization_id delle chiamate associate al modello.

{
  "customization_id": "74f4807e-b5ff-4866-824e-6bba1a84fe96"
}

Aggiungi un corpus al modello di lingua personalizzato

Una volta creato il modello linguistico personalizzato, il passo successivo consiste nell'aggiungere al modello dati specifici del dominio. Il metodo consigliato per popolare un modello personalizzato è aggiungere uno o più corpora. Un corpus è un file di testo semplice che idealmente contiene periodi di esempio dal tuo dominio.

  • Per i modelli personalizzati basati su modelli vocali di grandi dimensioni, il servizio analizza ed estrae le sequenze di parole da uno o più file corpora. I caratteri aiutano il servizio a imparare e prevedere le sequenza di caratteri dall'audio. Per ulteriori informazioni sull'utilizzo dei corpora con i modelli personalizzati basati su modelli vocali di grandi dimensioni, vedi Gestione dei corpora per i modelli vocali di grandi dimensioni e i modelli di nuova generazione.

  • Per i modelli personalizzati basati sui modelli di generazione precedente, il servizio analizza un file di corpus ed estrae tutte le parole che non sono nel suo vocabolario di base. Tali parole sono indicate come parole OOV (out-of-vocabulary). Per ulteriori informazioni sull'uso dei corpora con i modelli personalizzati basati sui modelli di generazione precedenti, vedi Gestione dei corpora per i modelli di generazione precedenti.

  • Per modelli personalizzati basati su modelli di nuova generazione, il servizio analizza ed estrae le sequenze di caratteri da un file del corpus. I caratteri aiutano il servizio a imparare e prevedere le sequenza di caratteri dall'audio. Per ulteriori informazioni sull'utilizzo dei corpora con i modelli personalizzati basati sui modelli di nuova generazione, vedi Gestione dei corpora per i modelli vocali di grandi dimensioni e i modelli di nuova generazione.

Fornendo frasi che includono parole specifiche del dominio, i corpora consentono al servizio di apprendere le parole e le sequenze di caratteri nel contesto. È anche possibile aumentare e modificare singolarmente le parole di un modello. Addestrare un modello solo su singole parole invece che sulle parole aggiunte dai corpora è più dispendioso in termini di tempo e può produrre risultati meno efficaci.

Utilizzi il metodo POST /v1/customizations/{customization_id}/corpora/{corpus_name} per aggiungere un corpus a un modello personalizzato:

customization_id (stringaobbligatoria )
Specificare l'ID di personalizzazione del modello personalizzato a cui aggiungere il corpus.
corpus_name (stringaobbligatoria )
Specificare un nome per il corpus. Utilizza un nome localizzato che corrisponda alla lingua del modello personalizzato e riflette il contenuto del corpus.
  • Includi un massimo di 128 caratteri nel nome.
  • Non utilizzare caratteri che devono essere codificati in URL. Ad esempio, non utilizzare spazi, barre, barre rovesciate, due punti, e commerciali, virgolette doppie, segni più, segni di uguale, punti interrogativi e così via nel nome. (Il servizio non impedisce l'utilizzo di questi caratteri. Tuttavia, poiché devono essere codificati in URL ovunque ricorrano, il loro uso è vivamente sconsigliato.)
  • Non utilizzare il nome di un corpus o di una grammatica che è già stato aggiunto al modello personalizzato.
  • Non utilizzare il nome user, che è riservato dal servizio per denotare le parole personalizzate aggiunte o modificate dall'utente.
  • Non utilizzare il nome base_lm o default_lm. Entrambi i nomi sono riservati per un uso futuro da parte del servizio.

Trasmettere il file di testo corpus come corpo richiesto della richiesta. Il seguente esempio aggiunge il file di testo di corpus healthcare.txt al modello personalizzato con l'ID specificato. L'esempio denomina il corpus healthcare.

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"

Il metodo accetta anche un parametro di query allow_overwrite facoltativo che sovrascrive un corpus esistente per un modello personalizzato. Utilizza il parametro se devi aggiornare un file di corpus dopo averlo aggiunto a un modello.

Il metodo è asincrono. Il suo completamento può richiedere alcuni minuti. La durata dell'operazione dipende dal numero totale di parole nel corpus e dal carico corrente sul servizio. Per i modelli personalizzati basati sui modelli di generazione precedente, la durata dipende anche dal numero di parole nuove che il servizio trova nel corpus. Per ulteriori informazioni sul controllo dello stato di un corpus, vedi Monitoraggio della richiesta di aggiunta del corpus.

Puoi aggiungere qualsiasi numero di corpora a un modello personalizzato richiamando il metodo una volta per ciascun file di testo di corpus. L'aggiunta di un corpus deve essere del tutto completa prima di poterne aggiungere un altro. Un corpus ha lo stato being_processed quando lo aggiungi per la prima volta a un modello. Il suo stato diventa analyzed quando il servizio finisce di elaborarlo.

Per i modelli personalizzati basati sui modelli di generazione precedente, una volta completata l'aggiunta di un corpus, esamina le nuove parole personalizzate che sono state estratte da esso per controllare la presenza di errori tipografici e di altro tipo. Per ulteriori informazioni, vedi Convalida di una risorsa di parole per i modelli di generazione precedenti.

Monitoraggio della richiesta di aggiunta del corpus

Il servizio restituisce un codice di risposta 201 se il corpus è valido. Successivamente elabora in modo asincrono il contenuto del corpus. Non puoi inoltrare le richieste di aggiunta di dati al modello personalizzato o di addestramento del modello fino al completamento dell'analisi del corpus da parte del servizio per la richiesta corrente.

Per determinare lo stato dell'analisi, utilizza il metodo GET /v1/customizations/{customization_id}/corpora/{corpus_name} per eseguire il polling dello stato del corpus. Il metodo accetta l'ID del modello e il nome del corpus, come mostrato nel seguente esempio:

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"

La risposta include lo stato del corpus. Poiché il modello personalizzato si basa su un modello di generazione precedente, la risposta mostra il numero di parole OOV.

{
  "name": "corpus1",
  "total_words": 5037,
  "out_of_vocabulary_words": 401,
  "status": "analyzed"
}

Il campo status ha uno dei seguenti valori:

  • analyzed indica che il servizio ha eseguito correttamente l'analisi del corpus.
  • being_processed indica che il servizio sta ancora analizzando il corpus.
  • undetermined indica che il servizio ha riscontrato un errore durante l'elaborazione del corpus.

Utilizza un loop per controllare lo stato del corpus ogni 10 secondi fino a quando non diventa analyzed. Per ulteriori informazioni sul controllo dello stato dei corpora di un modello, vedi Elenco dei corpora per un modello di lingua personalizzato.

Aggiungi parole al modello di lingua personalizzato

Anche se l'aggiunta di corpora è il metodo consigliato per aggiungere parole a un modello di lingua personalizzato, puoi anche aggiungere delle singole parole personalizzate al modello direttamente. Il servizio analizza le parole personalizzate per il modello personalizzato proprio come fa il contenuto delle parole dai corpora.

Se hai solo una o poche parole da aggiungere a un modello, utilizzare i corpora per aggiungere le parole potrebbe non essere pratico o neanche fattibile. L'approccio più semplice consiste nell'aggiungere una parola con solo la sua ortografia. Ma puoi anche indicare come deve essere visualizzata la parola e una o più pronunce per la parola.

Dopo aver aggiunto parole a un modello personalizzato, esamini le nuove parole personalizzate per verificare la presenza di errori tipografici e di altro tipo. Questo controllo è particolarmente importante quando si aggiungono più parole contemporaneamente.

Aggiungere parole con il metodo POST

Il metodo " POST /v1/customizations/{customization_id}/words " aggiunge una o più parole alla volta. Passi le parole da aggiungere come dati JSON tramite il corpo della richiesta o da un file. In entrambi i casi, l'intestazione richiesta " Content-Type " specifica che i dati JSON vengono passati al metodo.

Gli esempi seguenti aggiungono due parole personalizzate, " HHonors " e " IEEE", al modello personalizzato con l'ID specificato:

  • Il primo esempio passa le informazioni su ogni parola tramite il corpo della richiesta:

    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"
    
  • Il secondo esempio aggiunge le stesse parole da un file denominato words.json:

    {
      "words": [
        {"word": "HHonors", "sounds_like": ["hilton honors", "H. honors"], "display_as": "HHonors"},
        {"word": "IEEE", "sounds_like": ["I. triple E."]}
      ]
    }
    

    La seguente richiesta aggiunge le parole dal file:

    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"
    

Il metodo dell' POST e è asincrono. Il suo completamento può richiedere alcuni minuti. Il tempo che ci vuole per completare l'operazione dipende dal numero di parole che aggiungi e dal carico corrente sul servizio. Per ulteriori informazioni sul controllo dello stato dell'operazione, vedi Monitoraggio della richiesta di aggiunta di parole.

Aggiungere una parola con il metodo PUT

Il metodo PUT /v1/customizations/{customization_id}/words/{word_name} aggiunge singole parole. Si passa un oggetto JSON che fornisce informazioni sulla parola come corpo della richiesta.

Il seguente esempio aggiunge la parola NCAA al modello con l'ID specificato. L'intestazione richiesta " Content-Type " indica nuovamente che i dati JSON vengono passati al metodo.

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"

Il metodo PUT è sincrono. Il servizio restituisce un codice di risposta che notifica l'esito positivo o negativo della richiesta immediatamente.

Monitoraggio della richiesta di aggiunta di parole

Quando utilizzi il metodo POST /v1/customizations/{customization_id}/words, il servizio restituisce un codice di risposta 201 se i dati di input non sono validi. Elabora quindi in modo asincrono le parole per aggiungerle al modello. Non puoi inoltrare richieste di aggiunta di dati al modello personalizzato o di addestramento del modello fino a quando il servizio non completa la richiesta di aggiunta di nuove parole.

Per determinare lo stato della richiesta, utilizza il metodo GET /v1/customizations/{customization_id} per eseguire il polling dello stato del modello. Il metodo accetta l'ID di personalizzazione del modello, come nel seguente esempio:

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}"

La richiesta include informazioni sullo stato del modello:

{
  "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
}

Il campo status notifica lo stato corrente del modello. Mentre il servizio sta elaborando le nuove parole, lo stato rimane pending. Utilizza un loop per controllare lo stato ogni 10 secondi finché non diventa ready per indicare che l'operazione è stata completata. Per ulteriori informazioni sui possibili valori di status, vedi Monitoraggio della richiesta di addestramento del modello.

Modifica di parole in un modello personalizzato

Puoi anche utilizzare i metodi POST /v1/customizations/{customization_id}/words e PUT /v1/customizations/{customization_id}/words/{word_name} per modificare o aumentare una parola in un modello personalizzato. Potresti dover utilizzare i metodi per correggere un errore di battitura oppure un altro errore che era stato fatto quando una parola è stata aggiunta al modello. Potresti anche dover aggiungere delle definizioni di suono simile (sounds-like) per una parola esistente.

Utilizzi i metodi per modificare la definizione di una parola esistente esattamente come fai per aggiungere una parola. I nuovi dati che fornisci per la parola sovrascrivono la definizione esistente della parola. Per i modelli personalizzati basati sui modelli di generazione precedente, puoi modificare le parole che sono state aggiunte dai corpora.

Addestra il modello di lingua personalizzato

Una volta popolato un modello linguistico personalizzato con nuove parole (aggiungendo corpora, aggiungendo direttamente parole o aggiungendo grammatiche), è necessario addestrare il modello sui nuovi dati. L'addestramento prepara il modello personalizzato a utilizzare i dati nel riconoscimento vocale. Il modello non utilizza le parole che aggiungi servendoti di un qualsiasi metodo finché non ne esegui l'addestramento sui dati.

Utilizzi il metodo POST /v1/customizations/{customization_id}/train per addestrare un modello personalizzato. Passi al metodo l'ID di personalizzazione del modello che vuoi addestrare, come nel seguente esempio:

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"

Il metodo è asincrono. Il completamento dell'addestramento può richiedere qualche minuto, a seconda del numero di nuove parole su cui si sta eseguendo l'addestramento del modello e del carico corrente sul servizio. Per ulteriori informazioni sul controllo dello stato di un'operazione di addestramento, vedi Monitoraggio della richiesta di addestramento del modello.

Il metodo include i seguenti parametri di query facoltativi:

  • Il parametro word_type_to_add specifica le parole su cui deve essere addestrato il modello personalizzato:

    • Specifica all oppure ometti il parametro per addestrare il modello su tutte le sue parole, indipendentemente dalla loro origine.
    • Specifica user per addestrare il modello solo sulle parole che erano state aggiunte o modificate dall'utente, ignorando quelle estratte solo da corpora o grammatiche.

    Per i modelli personalizzati basati sui modelli di generazione precedente, questa opzione è utile se aggiungi corpora con dati rumorosi, come parole che contengono errori tipografici. Prima di addestrare il modello su tali dati, puoi utilizzare il parametro di query word_type del metodo GET /v1/customizations/{customization_id}/words per esaminare le parole estratte da corpora e grammatiche. Per ulteriori informazioni, vedere Elencare parole personalizzate da un modello linguistico personalizzato.

    Per i modelli personalizzati basati su modelli vocali di grandi dimensioni e modelli di prossima generazione, il servizio ignora il parametro word_type_to_add. La risorsa di parole contiene solo parole personalizzate che l'utente aggiunge o modifica direttamente, quindi il parametro non è necessario.

  • Il parametro customization_weight specifica il peso relativo che viene dato alle parole dal modello personalizzato rispetto alle parole dal vocabolario di base quando il modello personalizzato viene utilizzato per il riconoscimento vocale. Puoi anche specificare un peso di personalizzazione con qualsiasi richiesta di riconoscimento che utilizza il modello personalizzato. Per ulteriori informazioni, vedi Utilizzo del peso di personalizzazione.

  • Il parametro " strict " indica se la formazione deve procedere se il modello personalizzato contiene un mix di risorse valide e non valide (corpora, parole e grammatiche). Per impostazione predefinita, l'addestramento non riesce se il modello contiene una o più risorse non valide. Imposta il parametro su false per consentire all'addestramento di continuare finché il modello contiene almeno una risorsa valida. Il servizio esclude le risorse non valide dall'addestramento. Per ulteriori informazioni, vedi Errori di addestramento per i modelli di lingua personalizzati.

Monitoraggio della richiesta di addestramento del modello

Il servizio restituisce un codice di risposta 200 se inizia il processo di addestramento con esito positivo. Il servizio non può accettare richieste di formazione successive o richieste di aggiunta di nuovi corpora, parole o grammatiche fino a quando la richiesta esistente non sarà completata.

L'aggiunta di parole personalizzate direttamente a un modello personalizzato che si basa su un modello vocale di grandi dimensioni o su un modello di nuova generazione, come descritto in Aggiungi parole al modello di lingua personalizzato, fa sì che l'addestramento di un modello impiega alcuni minuti in più di quanto non farebbe altrimenti. Se stai addestrando un modello con parole personalizzate che hai aggiunto utilizzando il metodo POST /v1/customizations/{customization_id}/words o PUT /v1/customizations/{customization_id}/words/{word_name}, concedi alcuni minuti di tempo di addestramento supplementare per il modello.

Per determinare lo stato di una richiesta di addestramento, utilizza il metodo GET /v1/customizations/{customization_id} per eseguire il polling dello stato del modello. Il metodo accetta l'ID di personalizzazione del modello:

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}"

La risposta include informazioni sullo stato del modello:

{
  "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
}

La risposta include i campi status e progress che notificano lo stato del modello personalizzato. Il significato del campo progress dipende dallo stato del modello. Il campo status può avere uno dei seguenti valori:

  • pending indica che il modello è stato creato ma è in attesa che vengano aggiunti dati di addestramento validi o che il servizio finisca di analizzare i dati che erano stati aggiunti. Il campo progress è 0.

  • ready indica che il modello contiene dati validi ed è pronto per essere addestrato. Il campo progress è 0.

    Se il modello contiene una combinazione di risorse valide e non valide (ad esempio, parole personalizzate sia valide che non valide), l'addestramento del modello non riesce a meno che non imposti il parametro di query strict su false. Per ulteriori informazioni, vedi Errori di addestramento per i modelli di lingua personalizzati.

  • training indica che il modello è in fase di addestramento. Il campo progress è 0. Il campo cambia da 0 a 100 quando la formazione è completa.

  • available indica che il modello è addestrato e pronto per l'uso. Il campo progress è 100.

  • upgrading indica che il modello è in fase di upgrade. Il campo progress è 0.

  • failed indica che l'addestramento del modello non è riuscito. Il campo progress è 0. Per ulteriori informazioni, vedi Errori di addestramento per i modelli di lingua personalizzati.

Utilizza un loop per controllare lo stato ogni 10 secondi fino a quando non diventa available. Per ulteriori informazioni sul controllo dello stato di un modello personalizzato, vedi Elenco dei modelli di lingua personalizzati.

Errori di addestramento per i modelli di lingua personalizzati

L'addestramento non viene avviato se il servizio sta gestendo un'altra richiesta per il modello di lingua personalizzato. Ad esempio, una richiesta di addestramento non viene avviata con un codice di stato 409 se il servizio sta

  • Elaborazione di un corpus o di una grammatica per generare un elenco di parole OOV o per estrarre sequenze di caratteri
  • Elaborando parole personalizzate per convalidare o generare automaticamente pronunce dal suono simile (sounds-like)
  • Gestendo un'altra richiesta di addestramento

Inoltre, l'addestramento non viene avviato, con il codice di stato 400, se il modello personalizzato

  • Non contiene nuovi dati di apprendimento validi (corpora, parole o grammatiche) dalla sua creazione o dall'ultimo apprendimento
  • Contiene uno o più corpora, parole o grammatiche non validi (ad esempio, una parola personalizzata ha una pronuncia simile a un suono non valido)

Se la richiesta di addestramento non riesce con un codice di stato 400, il servizio imposta lo stato del modello personalizzato su failed. Esegui una delle seguenti azioni:

  • Utilizza i metodi dell'interfaccia di personalizzazione per esaminare le risorse del modello e correggere gli eventuali errori che rilevi:

    • Per un corpus non valido, puoi correggere il file di testo di corpus e utilizzare il parametro allow_overwrite del metodo POST /v1/customizations/{customization_id}/corpora/{corpus_name} per aggiungere il file corretto al modello. Per ulteriori informazioni, vedi Aggiungi un corpus al modello di lingua personalizzato.
    • Per una grammatica non valida, puoi correggere il file di grammatica e utilizzare il parametro allow_overwrite del metodo POST /v1/customizations/{customization_id}/grammars/{grammar_name} per aggiungere il file corretto al modello. Per ulteriori informazioni, vedi Aggiungi una grammatica al modello di lingua personalizzato.
    • Per una parola personalizzata non valida, puoi utilizzare il metodo POST /v1/customizations/{customization_id}/words o PUT /v1/customizations/{customization_id}/words/{word_name} per modificare la parola direttamente nella risorsa di parole del modello. Per ulteriori informazioni, vedi Modifica di parole in un modello personalizzato.

    Per ulteriori informazioni sulla convalida delle parole in un modello linguistico personalizzato, vedere

  • Imposta il parametro strict del metodo POST /v1/customizations/{customization_id}/train su false per escludere le risorse non valide dall'addestramento. Il modello deve contenere almeno una risorsa valida (corpus, parola o grammatica) affinché l'addestramento abbia successo. Il parametro strict è utile per addestrare un modello personalizzato che contiene una combinazione di risorse valide e non valide.