Création d'un modèle de langue personnalisé

Pour créer, ajouter du contenu et entraîner un modèle de langue personnalisé pour le service IBM Watson® Speech to Text, procédez comme suit :

  1. Créez un modèle de langue personnalisé. Vous pouvez créer plusieurs modèles personnalisés pour un même domaine ou pour des domaines différents. Le processus est le même quel que soit le modèle que vous créez. La personnalisation des modèles de langage est disponible pour tous les grands modèles de parole, la plupart des modèles de la génération précédente et pour tous les modèles de la génération suivante. Pour plus d'informations, voir Support de langue pour la personnalisation.
  2. Ajoutez un corpus au modèle de langue personnalisé. Un corpus est un document en texte brut qui utilise la terminologie d'un domaine en contexte. Vous pouvez ajouter plusieurs corpus à un modèle personnalisé, en série ou individuellement. Pour les modèles de génération précédente, le service génère un dictionnaire pour un modèle personnalisé en extrayant des termes des corpus qui n'existent pas dans son vocabulaire de base. Pour des modèles personnalisés basés sur des modèles nouvelle génération, le service extrait des corpus des séquences de caractères plutôt que des mots.
  3. Ajoutez des mots au modèle de langue personnalisé. Vous pouvez également ajouter des mots personnalisés à un modèle individuellement. Vous pouvez indiquer comment les mots d'un modèle personnalisé doivent être affichés dans une transcription vocale et comment ils sont prononcés dans l'audio. Pour des modèles personnalisés basés sur des modèles de génération précédente, vous pouvez également modifier des mots personnalisés extraits de corpus.
  4. Entraînez le modèle de langue personnalisé. Après avoir ajouté des corpus et des mots au modèle personnalisé, vous devez entraîner le modèle. Cet entraînement prépare le modèle personnalisé pour qu'il soit utilisé dans la reconnaissance vocale. Le modèle n'utilise pas de corpus ni de mots nouveaux ou modifiés jusqu'à ce que vous l'entraîniez.
  5. Utilisez un modèle de langue personnalisé pour la reconnaissance vocale. Une fois votre modèle personnalisé entraîné, vous pouvez l'utiliser avec des demandes de reconnaissance vocale. Si l'audio transmis pour la transcription contient des mots spécifiques au domaine qui sont définis dans les corpus et les mots personnalisés du modèle personnalisé, les résultats de la demande reflètent le vocabulaire amélioré du modèle. Vous ne pouvez utiliser qu'un seul modèle à la fois avec une demande de reconnaissance vocale.

Les étapes de création d'un modèle de langue personnalisé sont itératives. Vous pouvez ajouter des corpus, ajouter des mots, et entraîner ou ré-entraîner un modèle aussi souvent que nécessaire. Vous pouvez également ajouter des grammaires à la plupart des modèles de langue personnalisés. Les grammaires limitent la réponse du service uniquement aux mots qu'elles reconnaissent.

Création d'un modèle de langue personnalisé

Vous utilisez la méthode POST /v1/customizations pour créer un modèle de langue personnalisé. Cette méthode accepte un objet JSON qui définit les attributs du nouveau modèle personnalisé en tant que corps de la demande. Le nouveau modèle personnalisé appartient à l'instance du service dont les données d'identification sont utilisées pour le créer. Pour plus d'informations, voir Propriété des modèles personnalisés.

Vous pouvez créer un maximum de 1 024 modèles de langue personnalisés par données d'identification propriétaires. Pour plus d'informations, voir Nombre maximal de modèles personnalisés.

Un nouveau modèle de langue personnalisé comporte les attributs suivants :

name (chaîneobligatoire)

Nom défini par l'utilisateur pour désigner le nouveau modèle personnalisé. Utilisez un nom localisé qui correspond à la langue du modèle personnalisé et qui décrit le domaine du modèle, tel que Medical custom model ou Legal custom model.

  • Inclure un maximum de 256 caractères dans le nom.
  • N'utilisez pas de barres obliques inversées, de barres obliques, de signes deux-points, de signes égal, de perluètes ou de points d'interrogation dans le nom.
  • Utilisez un nom unique par rapport à tous les modèles de langue personnalisés que vous possédez.
base_model_name (chaîneobligatoire)

Le nom du modèle de langue de base qui doit être personnalisé par le nouveau modèle personnalisé. Vous devez utiliser le nom d'un modèle renvoyé par la méthode GET /v1/models. Le nouveau modèle personnalisé ne peut être utilisé qu'avec le modèle de base qu'il personnalise.

dialect (chaînefacultative )

Dialecte de la langue spécifiée qui doit être utilisé avec le nouveau modèle personnalisé. Pour toutes les langues, il est toujours possible d'omettre ce champ. Le service utilise automatiquement l'identificateur de langue à partir du nom du modèle de base. Par exemple, le service utilise automatiquement en-US pour tous les modèles en anglais américain.

Si vous spécifiez dialect pour un nouveau modèle personnalisé, suivez les instructions suivantes :

  • Pour les modèles de génération précédente différents de ceux pour l'espagnol et les modèles de nouvelle génération, vous devez spécifier une valeur qui correspond à l'identificateur de langue à cinq caractères du nom du modèle de base.
  • Pour les modèles de génération précédente en espagnol, vous devez indiquer l'une des valeurs suivantes :
    • es-ES pour l'espagnol castillan (modèles es-ES)
    • es-LA pour l'espagnol latino-américain (modèles es-AR, es-CL, es-CO et es-PE)
    • es-US pour l'espagnol mexicain (Amérique du Nord) (modèles es-MX)

Toutes les valeurs que vous transmettez pour la zone dialect sont insensibles à la casse.

description (chaînefacultative )

Une description recommandée du nouveau modèle personnalisé.

  • Utilisez une description localisée correspondant à la langue du modèle personnalisé.
  • Inclure un maximum de 128 caractères dans la description.

L'exemple suivant crée un modèle de langue personnalisé nommé Example model. Ce modèle est créé pour le modèle de base en-US-BroadbandModel avec la description Example custom language model. L'en-tête d' Content-Type s requis spécifie que les données JSON sont transmises à la méthode.

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'exemple renvoie l'ID de personnalisation (customization_id) du nouveau modèle. Chaque modèle personnalisé est identifié par un ID de personnalisation unique, correspondant à un identificateur global unique (GUID). Vous spécifiez le GUID d'un modèle personnalisé dans le paramètre customization_id des appels qui sont associés au modèle.

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

Ajout d'un corpus au modèle de langue personnalisé

Une fois que vous avez créé votre modèle de langue personnalisé, l'étape suivante consiste à ajouter des données spécifiques au domaine au modèle. La méthode recommandée pour remplir un modèle personnalisé consiste à ajouter un ou plusieurs corpus. Un corpus est un fichier en texte brut qui contient idéalement des exemples de phrases tirées de votre domaine.

  • Pour les modèles personnalisés basés sur des modèles vocaux de grande taille, le service analyse et extrait des séquences de mots à partir d'un ou de plusieurs fichiers de corpus. Les caractères aident le service à apprendre et à prévoir les séquences de caractères à partir de l'audio. Pour plus d'informations sur l'utilisation des corpus avec des modèles personnalisés basés sur des modèles vocaux de grande taille, voir Utilisation des corpus pour les modèles vocaux de grande taille et les modèles de nouvelle génération.

  • Pour des modèles personnalisés basés sur des modèles de génération précédente, le service analyse un fichier de corpus et extrait les mots qui ne figurent pas dans son vocabulaire de base. Ces mots sont désignés par OOV (Out-Of-Vocabulary). Pour plus d'informations sur l'utilisation de corpus avec des modèles personnalisés basés sur des modèles de génération précédente, voir Utilisation des corpus pour des modèles de génération précédente.

  • Pour des modèles personnalisés basés sur des modèles nouvelle génération, le service analyse et extrait des séquences de caractères d'un fichier de corpus. Les caractères aident le service à apprendre et à prévoir les séquences de caractères à partir de l'audio. Pour plus d'informations sur l'utilisation des corpus avec des modèles personnalisés basés sur des modèles de nouvelle génération, voir Utilisation des corpus pour les modèles de parole de grande taille et les modèles de nouvelle génération.

En fournissant des phrases qui comportent des mots propres au domaine, les corpus permettent au service d'apprendre les mots et les séquences de caractères en contexte. Vous pouvez également étendre et modifier les mots d'un modèle individuellement. L'entraînement d'un modèle uniquement sur des mots individuels par opposition à des corpus prend plus de temps et peut produire des résultats moins probants.

Vous utilisez la méthode POST /v1/customizations/{customization_id}/corpora/{corpus_name} pour ajouter un corpus à un modèle personnalisé :

customization_id (chaîneobligatoire)
Indiquez l'ID de personnalisation du modèle personnalisé auquel le corpus doit être ajouté.
corpus_name (chaîneobligatoire)
Spécifiez un nom pour le corpus. Utilisez un nom localisé qui correspond à la langue du modèle personnalisé et qui reflète le contenu du corpus.
  • Indiquez un nom ne dépassant pas 128 caractères.
  • N'utilisez pas de caractères devant être codés dans l'URL. Par exemple, n'utilisez pas les caractères suivants dans le nom : espaces, barres obliques, barres obliques inversées, signes deux-points, perluètes, guillemets, signes plus, signes égal, points d'interrogation, etc. (Le service n'empêche pas l'utilisation de ces caractères. Toutefois, comme ils doivent être codés dans l'URL lorsqu'ils sont utilisés, leur utilisation est fortement déconseillée.)
  • N'utilisez pas le nom d'un corpus ou d'une grammaire qui a déjà été ajouté au modèle personnalisé.
  • N'utilisez pas le nom user, qui est réservé par le service pour désigner des mots personnalisés ajoutés ou modifiés par l'utilisateur.
  • N'utilisez pas le nom base_lm ou default_lm. Ces deux noms sont réservés pour une utilisation ultérieure par le service.

Transmettez le fichier texte corpus en tant que corps requis de la demande. L'exemple suivant ajoute le fichier texte de corpus healthcare.txt au modèle personnalisé avec l'ID spécifié. Dans cet exemple, le corpus est nommé 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"

La méthode accepte également le paramètre de requête facultatif allow_overwrite qui remplace un corpus existant pour un modèle personnalisé. Utilisez ce paramètre si vous devez mettre à jour un fichier de corpus après l'avoir ajouté à un modèle.

Cette méthode est asynchrone. Son exécution peut prendre quelques minutes. La durée de l'opération dépend du nombre total de mots dans le corpus et de la charge actuelle du service. Pour des modèles personnalisés basés sur des modèles de génération précédente, la durée dépend également du nombre de mots nouveaux que le service trouve dans le corpus. Pour plus d'informations sur la vérification du statut d'un corpus, voir Surveillance de la demande d'ajout d'un corpus.

Vous pouvez ajouter n'importe quel nombre de corpus à un modèle personnalisé en appelant la méthode une fois pour chaque fichier texte de corpus. L'ajout d'un corpus doit être entièrement terminé avant d'en ajouter un autre. Un corpus a pour statut being_processed lorsque vous l'ajoutez pour la première fois à un modèle. Son statut passe à analyzed lorsque son traitement par le service est terminé.

Pour des modèles personnalisés basés sur des modèles de génération précédente, une fois l'ajout d'un corpus terminé, examinez les nouveaux mots personnalisés qui en ont été extraits pour rechercher les éventuelles erreurs typographiques et autres. Pour plus d'informations, voir Validation d'une ressource de mots pour les modèles de génération antérieure.

Surveillance de la demande d'ajout d'un corpus

Le service renvoie le code de réponse 201 si le corpus est valide. Il traite ensuite de manière asynchrone le contenu du corpus. Vous ne pouvez pas soumettre de demande d'ajout de données à un modèle personnalisé ou entraîner le modèle tant que le service n'a pas terminé l'analyse du corpus pour la demande en cours.

Pour déterminer le statut de l'analyse, utilisez la méthode GET /v1/customizations/{customization_id}/corpora/{corpus_name} permettant d'interroger le statut du corpus. Cette méthode accepte l'ID du modèle et le nom du corpus, comme illustré dans l'exemple suivant :

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 réponse inclut le statut du corpus. Le modèle personnalisé étant basé sur un modèle de génération précédente, la réponse indique le nombre de mots OOV.

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

La zone status a l'une des valeurs suivantes :

  • analyzed indique que l'analyse du corpus par le service a abouti.
  • being_processed indique que le service est encore en train d'analyser le corpus.
  • undetermined indique que le service a rencontré une erreur lors du traitement du corpus.

Utilisez une boucle pour vérifier le statut du corpus toutes les 10 secondes jusqu'à ce qu'il passe à analyzed. Pour plus d'informations sur la vérification de statut des corpus d'un modèle, voir Affichage de la liste des corpus d'un modèle de langue personnalisé.

Ajout de mots au modèle de langue personnalisé

Bien que l'ajout de corpus soit la méthode recommandée pour ajouter des mots à un modèle de langue personnalisé, vous pouvez également ajouter directement des mots personnalisés individuels au modèle. Le service analyse les mots personnalisés pour le modèle personnalisé tout comme il le fait pour le contenu des mots des corpus.

Si vous n'avez qu'un seul mot ou quelques mots à ajouter au modèle, l'utilisation de corpus pour ajouter les mots n'apparaît pas comme une solution pratique ou viable. L'approche la plus simple est d'ajouter un mot avec son orthographe. Mais vous pouvez également indiquer comment le mot doit être affiché, ainsi qu'une ou plusieurs prononciations pour le mot.

Après avoir ajouté des mots à un modèle personnalisé, examinez les nouveaux mots personnalisés pour vérifier qu'ils ne contiennent pas d'erreurs typographiques ou autres. Cette vérification est particulièrement importante lorsque vous ajoutez plusieurs mots à la fois.

Ajouter des mots avec la méthode POST

La méthode d' POST /v1/customizations/{customization_id}/words, quant à elle, ajoute un ou plusieurs mots à la fois. Vous transmettez les mots à ajouter en tant que données JSON via le corps de la demande ou à partir d'un fichier. Dans les deux cas, l'en-tête d' Content-Type s requis spécifie que les données JSON sont transmises à la méthode.

Les exemples suivants ajoutent deux mots personnalisés, HHonors et IEEE, au modèle personnalisé avec l'ID spécifié :

  • Le premier example transmet les informations relatives à chaque mot via le corps de la requête:

    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"
    
  • Le deuxième exemple ajoute les mêmes mots à partir d'un fichier nommé words.json:

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

    La requête suivante ajoute les mots du fichier :

    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"
    

La méthode d' POST s est asynchrone. Son exécution peut prendre quelques minutes. Sa durée d'exécution dépend du nombre de mots que vous ajoutez et de la charge en cours sur le service. Pour plus d'informations sur la vérification du statut de l'opération, voir Surveillance de la demande d'ajout de mots.

Ajouter un mot à l'aide de la méthode PUT

La méthode PUT /v1/customizations/{customization_id}/words/{word_name} ajoute des mots individuels. Vous transmettez un objet JSON qui fournit des informations sur le mot en tant que corps de la requête.

L'exemple suivant ajoute le mot NCAA au modèle avec l'ID spécifié. L'en-tête d' Content-Type s requis indique à nouveau que les données JSON sont transmises à la méthode.

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"

La méthode d' PUT s est synchrone. Le service renvoie un code de réponse qui indique le succès ou la réussite d'une demande immédiatement.

Surveillance de la demande d'ajout de mots

Lorsque vous utilisez la méthode POST /v1/customizations/{customization_id}/words, le service renvoie le code de réponse 201 si les données d'entrée sont valides. Il traite ensuite les mots de manière asynchrones pour les ajouter au modèle. Vous ne pouvez pas soumettre des demandes d'ajout de données au modèle personnalisé, ni entraîner le modèle tant que le service n'a pas terminé la demande d'ajout des mots nouveaux.

Pour déterminer le statut de la demande, utilisez la méthode GET /v1/customizations/{customization_id} pour interroger le statut du modèle. La méthode accepte l'ID de personnalisation du modèle, comme dans l'exemple suivant :

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 demande contient des informations sur l'état du modèle :

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

La zone status indique l'état en cours du modèle. Tant que le service traite les mots nouveaux, le statut reste pending. Utilisez une boucle pour vérifier le statut toutes les 10 secondes jusqu'à ce qu'il passe à ready pour indiquer que l'opération est terminée. Pour plus d'informations sur les valeurs possibles pour status, voir Surveillance de la demande d'entraînement du modèle.

Modification des mots dans un modèle personnalisé

Vous pouvez également utiliser les méthodes POST /v1/customizations/{customization_id}/words et PUT /v1/customizations/{customization_id}/words/{word_name} pour modifier ou compléter un mot dans un modèle personnalisé. Vous serez peut-être amené à utiliser ces méthodes pour corriger une erreur typographique ou une autre faute qui s'est glissée lorsque le mot a été ajouté au modèle. Il vous faudra peut-être également ajouter des définitions de prononciations possibles pour un mot existant.

Vous utilisez ces méthodes pour modifier la définition d'un mot existant exactement de la même manière que vous procédez pour ajouter un mot. Les nouvelles données que vous fournissez au mot remplacent la définition existante du mot. Pour des modèles personnalisés basés sur des modèles de génération précédente, vous pouvez également modifier des mots qui ont été ajoutés à partir de corpus.

Entraînement du modèle de langue personnalisé

Une fois que vous avez rempli avec de nouveaux mots un modèle de langue personnalisé (en ajoutant des corpus, en ajoutant directement des mots ou en ajoutant des grammaires), vous devez entraîner le modèle sur les nouvelles données. Cet entraînement prépare le modèle personnalisé à utiliser ces données dans la reconnaissance vocale. Le modèle n'utilise pas les mots que vous ajoutez avec la méthode de votre choix, tant que vous ne l'entraînez pas sur les données.

Pour entraîner un modèle personnalisé, vous utilisez la méthode POST /v1/customizations/{customization_id}/train. Vous transmettez à la méthode, l'ID de personnalisation (customization_id) du modèle que vous souhaitez entraîner, comme illustré dans l'exemple suivant :

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"

Cette méthode est asynchrone. L'entraînement peut prendre quelques minutes en fonction du nombre de mots nouveaux sur lesquels est entraîné le modèle et de la charge en cours sur le service. Pour plus d'informations sur la vérification du statut d'une opération d'entraînement, voir Surveillance de la demande d'entraînement du modèle.

La méthode comprend les paramètres de requête facultatifs suivants :

  • Le paramètre word_type_to_add spécifie les mots sur lesquels le modèle personnalisé doit être entraîné :

    • Spécifiez all ou omettez ce paramètre pour entraîner le modèle sur tous les mots qu'il comporte, quelle que soit leur origine.
    • Spécifiez user pour entraîner le modèle uniquement sur les mots qui ont été ajoutés ou modifiés par l'utilisateur, en ignorant les mots qui ont été extraits uniquement à partir des corpus ou des grammaires.

    En ce qui concerne les modèles personnalisés basés sur des modèles de génération précédente, cette option est utile si vous ajoutez des corpus à des données bruyantes, telles que des mots contenant des erreurs typographiques. Avant d'entraîner le modèle sur des données de ce type, utilisez le paramètre de requête word_type de la méthode GET /v1/customizations/{customization_id}/words pour réviser les mots extraits de corpus ou de grammaires. Pour plus d'informations, voir Liste de mots personnalisés à partir d'un modèle de langue personnalisé.

    Pour les modèles personnalisés basés sur des modèles de parole volumineux et des modèles de nouvelle génération, le service ignore le paramètre word_type_to_add. La ressource de mots ne contient que des mots personnalisés que l'utilisateur ajoute ou modifie directement, de sorte que le paramètre n'est pas nécessaire.

  • Le paramètre customization_weight indique le poids relatif attribué aux mots du modèle personnalisé par opposition aux mots du vocabulaire de base lorsque le modèle personnalisé est utilisé pour la reconnaissance vocale. Vous pouvez également indiquer un poids de personnalisation avec toutes les demandes de reconnaissance utilisant le modèle personnalisé. Pour plus d'informations, voir Utilisation d'un poids de personnalisation.

  • Le paramètre strict indique si l'entraînement doit se poursuivre si le modèle personnalisé contient un mélange de ressources valides et non valides (corpus, mots et grammaires). Par défaut, l'entraînement échoue si le modèle contient une ou plusieurs ressources non valides. Définissez le paramètre sur false pour permettre la poursuite de l'entraînement tant que le modèle contient au moins une ressource valide. Le service exclut les ressources non valides de l'entraînement. Pour plus d'informations, voir Echec de l'entraînement des modèles de langue personnalisés.

Surveillance de la demande d'entraînement du modèle

Le service renvoie le code de réponse 200 s'il a initié avec succès le processus d'entraînement. Le service ne peut pas accepter de demande d'entraînement suivante, ou de demande d'ajout de nouveaux corpus, mots ou grammaires, tant que la demande existante n'a pas été traitée.

L'ajout de mots personnalisés directement à un modèle personnalisé basé sur un modèle vocal de grande taille ou sur un modèle de nouvelle génération, comme décrit dans Ajouter des mots au modèle de langue personnalisé, entraîne l'entraînement d'un modèle qui prend quelques minutes de plus qu'il ne le ferait autrement. Si vous formez un modèle avec des mots personnalisés que vous avez ajoutés à l'aide de la méthode POST /v1/customizations/{customization_id}/words ou PUT /v1/customizations/{customization_id}/words/{word_name}, prévoyez quelques minutes d'entraînement supplémentaires pour le modèle.

Afin de déterminer le statut d'une demande d'entraînement, utilisez la méthode GET /v1/customizations/{customization_id} pour interroger le statut du modèle. La méthode accepte l'ID de personnalisation du modèle :

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 réponse comprend des informations sur le statut du modèle :

{
  "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 réponse comprend les zones status et progress qui indiquent l'état du modèle personnalisé. La signification de la zone progress dépend du statut du modèle. La zone status peut avoir l'une des valeurs suivantes :

  • pending indique que le modèle a été créé mais attend que des données d'entraînement valides soient ajoutées ou que le service termine l'analyse des données qui ont été ajoutées. La zone progress a la valeur 0.

  • ready indique que le modèle contient des données valides et qu'il est prêt à être entraîné. La zone progress a la valeur 0.

    Si le modèle contient à la fois des ressources valides et non valides (par exemple, à la fois des mots personnalisés valides et non valides), l'entraînement du modèle échoue tant que vous ne définissez pas le paramètre de requête strict sur false. Pour plus d'informations, voir Echec de l'entraînement des modèles de langue personnalisés.

  • training indique que le modèle est en cours d'entraînement. La zone progress a la valeur 0. La zone passe de 0 à 100 lorsque l'entraînement est terminé.

  • available indique que l'entraînement du modèle est terminé et que le modèle est prêt à l'emploi. La zone progress a la valeur 100.

  • upgrading indique que le modèle est en cours de mise à niveau. La zone progress a la valeur 0.

  • failed indique que l'entraînement du modèle a échoué. La zone progress a la valeur 0. Pour plus d'informations, voir Echec de l'entraînement des modèles de langue personnalisés.

Utilisez une boucle pour vérifier le statut toutes les 10 secondes jusqu'à ce qu'il passe à available. Pour plus d'informations sur la vérification du statut d'un modèle personnalisé, voir Affichage de la liste des modèles de langue personnalisés.

Echec de l'entraînement des modèles de langue personnalisés

L'entraînement ne parvient pas à démarrer si le service traite une autre demande pour le modèle de langue personnalisé. Par exemple, le démarrage d'une demande d'entraînement échoue avec le code d'état 409 si le service exécute l'une des opérations suivantes :

  • Traitement d'un corpus ou d'une grammaire pour générer une liste de mots OOV ou pour extraire des séquences de caractères
  • Traitement de mots personnalisés pour valider ou générer automatiquement des prononciations possibles
  • Traitement d'une autre demande d'entraînement

Le démarrage de l'entraînement échoue également avec le code d'état 400 si le modèle personnalisé

  • Ne contient aucune donnée d'apprentissage valide (corpus, mots ou grammaires) depuis sa création ou son dernier entraînement
  • Contient un ou plusieurs corpus, mots ou grammaires non valides (par exemple, un mot personnalisé possède une prononciation non valide)

Si la demande d'entraînement échoue avec le code d'état 400, le service définit l'état du modèle personnalisé sur failed. Exécutez l'une des actions suivantes :

  • Utilisez des méthodes de l'interface de personnalisation pour examiner les ressources du modèle et corriger les erreurs que vous trouvez :

    • Pour un corpus non valide, vous pouvez corriger le fichier texte du corpus et utiliser le paramètre allow_overwrite de la méthode POST /v1/customizations/{customization_id}/corpora/{corpus_name} pour ajouter le fichier corrigé au modèle. Pour plus d'informations, voir Ajout d'un corpus au modèle de langue personnalisé.
    • Pour une grammaire non valide, vous pouvez corriger le fichier de grammaire et utiliser le paramètre allow_overwrite de la méthode POST /v1/customizations/{customization_id}/grammars/{grammar_name} pour ajouter le fichier corrigé au modèle. Pour plus d'informations, voir Ajout d'une grammaire au modèle de langue personnalisé.
    • Pour un mot personnalisé non valide, vous pouvez utiliser la méthode POST /v1/customizations/{customization_id}/words ou PUT /v1/customizations/{customization_id}/words/{word_name} pour modifier le mot directement dans la ressource des mots du modèle. Pour plus d'informations, voir Modification des mots dans un modèle personnalisé.

    Pour plus d'informations sur la validation des mots dans un modèle de langue personnalisé, voir

  • Définissez le paramètre strict de la méthode POST /v1/customizations/{customization_id}/train sur false pour exclure les ressources non valides de l'entraînement. Le modèle doit comporter au moins une ressource valide (corpus, mot ou grammaire) pour que l'entraînement aboutisse. Le paramètre strict est utile pour entraîner un modèle personnalisé contenant à la fois des ressources valides et non valides.