IBM Cloud Docs
Creación de un modelo de lenguaje personalizado

Creación de un modelo de lenguaje personalizado

Siga estos pasos para crear, añadir contenido y entrenar un modelo de idioma personalizado para el servicio IBM Watson® Speech to Text:

  1. Cree un modelo de lenguaje personalizado. Puede crear varios modelos personalizados para los mismos dominios o para dominios diferentes. El proceso es el mismo para cualquier modelo que cree. La personalización de modelos de voz está disponible para todos los modelos de voz grandes, la mayoría de los modelos de generaciones anteriores y para todos los modelos de la próxima generación. Para obtener más información, consulte Soporte de idiomas para la personalización.
  2. Añada un corpus al modelo de lenguaje personalizado. Un corpus es un documento de texto sin formato que utiliza terminología del dominio en el contexto. Puede añadir varias corpus en serie, de uno en uno, a un modelo personalizado. Para modelos personalizados que se basan de la generación anterior, el servicio crea un vocabulario para un modelo personalizado extrayendo términos del corpus que no existen en su vocabulario base. Para modelos personalizados basados en modelos de próxima generación, el servicio extrae secuencias de caracteres en lugar de palabras del corpus.
  3. Añada palabras al modelo de lenguaje personalizado. También puede añadir palabras personalizadas a un modelo individualmente. Puede especificar cómo se mostrarán las palabras de un modelo personalizado en una transcripción de voz y cómo se pronuncian en audio. Para modelos personalizados basados en modelos de generación anterior, también puede modificar las palabras personalizadas que se extraen del corpus.
  4. Entrene el modelo de lenguaje personalizado. Después de añadir los corpus y las palabras al modelo personalizado, debe entrenar el modelo. El entrenamiento prepara el modelo personalizado para que se utilice en el reconocimiento de voz. El modelo no utiliza los corpus o palabras nuevos o modificados hasta que lo entrena.
  5. Utilización de un modelo de idioma personalizado para el reconocimiento de voz. Después de entrenar el modelo personalizado, puede utilizarlo con las solicitudes de reconocimiento de voz. Si el audio que se pasa para la transcripción contiene palabras específicas del dominio definidas en las palabras personalizadas y en el corpus del modelo personalizado, los resultados de la solicitud reflejan el vocabulario mejorado del modelo. Solo puede utilizar un modelo a la vez con una solicitud de reconocimiento de voz.

Los pasos para la creación de un modelo de lenguaje personalizado son iterativos. Puede añadir corpus, añadir palabras y entrenar o volver a entrenar un modelo tantas veces como sea necesario. También puede añadir gramáticas a la mayoría de los modelos de idioma personalizados. Las gramáticas restringen la respuesta del servicio a aquellas palabras que la gramática reconoce.

Creación de un modelo de lenguaje personalizado

Para crear un nuevo modelo de lenguaje personalizado se utiliza el método POST /v1/customizations. El método acepta un objeto JSON que define los atributos del nuevo modelo personalizado como el cuerpo de la solicitud. El modelo personalizado nuevo propiedad de la instancia del servicio cuyas credenciales se utilizan para crearlo. Para obtener más información, consulte Propiedad de modelos personalizados.

Puede crear un máximo de 1024 modelos de lenguaje personalizado por credenciales de propiedad. Para obtener más información, consulte Número máximo de modelos personalizados.

Un modelo de lenguaje personalizado nuevo tiene los atributos siguientes:

name (serie obligatoria)

Un nombre definido por el usuario para el nuevo modelo personalizado. Utilice un nombre localizado que coincida con el idioma del modelo personalizado y describa el dominio del modelo, como Medical custom model o Legal custom model.

  • Incluya un máximo de 256 caracteres en el nombre.
  • No utilice barras inclinadas invertidas, barras inclinadas, signos de dos puntos, signos de igual, signos de ampersand o signos de interrogación en el nombre.
  • Utilice un nombre que sea exclusivo entre todos sus modelos de lenguaje personalizado.
base_model_name (serie obligatoria)

El nombre del modelo de idioma base que va a ser personalizado por el nuevo modelo personalizado. Debe utilizar el nombre de un modelo que devuelva el método GET /v1/models. El nuevo modelo personalizado solo se puede utilizar con el modelo base que personaliza.

dialect (serie opcional)

El dialecto del idioma especificado que se va a utilizar con el nuevo modelo personalizado. Para todos los idiomas, siempre es seguro omitir este campo. El servicio utiliza automáticamente el identificador de idioma del nombre del modelo base. Por ejemplo, el servicio utiliza automáticamente en-US para todos los modelos en inglés de EE. UU.

Si especifica dialect para un nuevo modelo personalizado, siga estas directrices:

  • Para los modelos de la generación anterior que no sean para español y para modelos de próxima generación, debe especificar un valor que coincida con el identificador de idioma de cinco caracteres del nombre del modelo base.
  • Para los modelos de la generación anterior para español, debe especificar uno de los valores siguientes:
    • es-ES para el español castellano (modelos es-ES)
    • es-LA para el español latinoamericano (modelos es-AR, es-CL, es-CO y es-PE)
    • es-US para el español mexicano (Norteamérica) (modelos es-MX)

Todos los valores que pase para el campo dialect no distinguen entre mayúsculas y minúsculas.

description (serie opcional)

Una descripción recomendada del nuevo modelo personalizado.

  • Utilice una descripción en el idioma del modelo personalizado.
  • Incluya un máximo de 128 caracteres en la descripción.

En el ejemplo siguiente se crea un nuevo modelo de lenguaje personalizado denominado Example model. El modelo se crea para el modelo base en-US-BroadbandModel y su descripción es Example custom language model. El encabezado de solicitud ( Content-Type ) especificado indica que se están pasando datos JSON al método.

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"

El ejemplo devuelve el ID de personalización del nuevo modelo. Cada modelo personalizado se identifica mediante un ID de personalización exclusivo, que es un GUID (identificador global exclusivo). El GUID del modelo personalizado se especifica con el parámetro customization_id de las llamadas que están asociadas con el modelo.

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

Adición de un corpus al modelo de lenguaje personalizado

Una vez que cree el modelo de idioma personalizado, el paso siguiente es añadir datos específicos del dominio al modelo. El medio recomendado de llenar un modelo personalizado es añadir uno o más corpus. Un corpus es un archivo de texto sin formato que contiene frases de ejemplo del dominio.

  • Para modelos personalizados basados en modelos de voz grandes, el servicio analiza y extrae secuencias de palabras de uno o varios archivos corpus. Los caracteres ayudan al servicio a aprender y predecir secuencias de caracteres de audio. Para obtener más información sobre cómo utilizar corpus con modelos personalizados basados en modelos de voz de gran tamaño, consulte Trabajar con corpus para modelos de voz de gran tamaño y modelos de próxima generación.

  • Para modelos personalizados basados en modelos de generación anterior, el servicio analiza un archivo de corpus y extrae cualquier palabra que no esté en su vocabulario base. Estas palabras reciben el nombre de palabras no definidas en el vocabulario (OOV). Para obtener más información sobre la utilización de corpus con modelos personalizados basados en modelos de generación anterior, consulte Trabajar con corpus para modelos de la generación anterior.

  • Para modelos personalizados basados en modelos de próxima generación, el servicio analiza y extrae secuencias de caracteres de un archivo de corpus. Los caracteres ayudan al servicio a aprender y predecir secuencias de caracteres de audio. Para obtener más información sobre cómo utilizar corpus con modelos personalizados basados en modelos de próxima generación, consulte Trabajar con corpus para modelos de voz de gran tamaño y modelos de próxima generación.

Al proporcionar frases que incluyen palabras específicas de dominio, los corpus permiten que el servicio aprenda palabras y secuencias de caracteres en contexto. También puede aumentar y modificar las palabras de un modelo individualmente. El entrenamiento de un modelo solo con palabras individuales, en contraposición con las palabras que añade el corpus, requiere más tiempo y puede producir resultados menos efectivos.

Utilice el método POST /v1/customizations/{customization_id}/corpora/{corpus_name} para añadir un corpus a un modelo personalizado:

customization_id (serie obligatoria)
Especifique el ID de personalización del modelo personalizado al que se va a añadir el corpus.
corpus_name (serie obligatoria)
Especifique un nombre para el corpus. Utilice un nombre en el idioma del modelo personalizado que refleje el contenido del corpus.
  • El nombre puede tener un máximo de 128 caracteres.
  • No utilice caracteres que se tengan que codificar en URL. Por ejemplo, en el nombre no utilice espacios, barras inclinadas, barras inclinadas invertidas, ampersands, comillas dobles, signos más, signos de igual, interrogaciones, etc. (El servicio no impide el uso de estos caracteres. Pero como se tienen que codificar en URL siempre que se utilicen, se desaconseja utilizarlos.)
  • No utilice el nombre de un corpus o gramática que ya se haya añadido al modelo personalizado.
  • No utilice el nombre user, que está reservado por el servicio para indicar las palabras personalizadas que el usuario añade o modifica.
  • No utilice el nombre base_lm ni default_lm. Ambos nombres se reservan para un posterior uso por parte del servicio.

Pase el archivo de texto corpus como el cuerpo requerido de la solicitud. En el ejemplo siguiente se añade el archivo de texto de corpus healthcare.txt al modelo personalizado con el ID especificado. En el ejemplo se utiliza el 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"

El método también acepta un parámetro de consulta opcional allow_overwrite que sobrescribe un corpus existente para un modelo personalizado. Utilice el parámetro si tiene que actualizar un archivo de corpus después de añadirlo a un modelo.

Este método es asíncrono. Puede tardar unos minutos en completarse. La duración de la operación depende del número total de palabras del corpus y de la carga actual en el servicio. Para modelos personalizados basados en modelos de generación anterior, la duración también depende del número de palabras nuevas que el servicio encuentra en el corpus. Para obtener más información sobre cómo comprobar el estado de un corpus, consulte Supervisión de la solicitud de añadir un corpus.

Puede añadir el número de corpus que desee a un modelo personalizado llamando al método una vez para cada archivo de texto de corpus. La adición de un corpus debe haber finalizado para poder añadir otro. Un corpus tiene el estado being_processed cuando se añade por primera vez a un modelo. Su estado pasa a ser analyzed cuando el servicio termina de procesarlo.

Para modelos personalizados basados en modelos de generación anterior, después de completar la adición de un corpus, examine las nuevas palabras personalizadas que se han extraído del mismo para comprobar si hay errores tipográficos o de otro tipo. Para obtener más información, consulte Validación de un recurso de palabras para modelos de la generación anterior.

Supervisión de la solicitud de añadir un corpus

El servicio devuelve un código de respuesta 201 si el corpus es válido. A continuación, procesa de forma asíncrona el contenido del corpus. No puede enviar solicitudes para añadir datos al modelo personalizado ni para entrenar el modelo hasta que el servicio termine de analizar el corpus para la solicitud actual.

Para determinar el estado del análisis, utilice el método GET /v1/customizations/{customization_id}/corpora/{corpus_name} para sondear el estado del corpus. El método acepta el ID del modelo y el nombre del corpus, tal como se muestra en el ejemplo siguiente:

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 respuesta incluye el estado del corpus. Dado que el modelo personalizado se basa en un modelo de la generación anterior, la respuesta muestra el número de palabras OOV.

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

El campo status tiene uno de los valores siguientes:

  • analyzed indica que el servicio ha analizado correctamente el corpus.
  • being_processed indica que el servicio todavía está analizando el corpus.
  • undetermined indica que el servicio ha encontrado un error al procesar el corpus.

Utilice un bucle para consultar el estado del corpus cada 10 segundos hasta que esté en el estado analyzed. Para obtener más información sobre cómo consultar el estado de los corpus de un modelo, consulte Listado de los corpus de un modelo de lenguaje personalizado.

Adición de palabras al modelo de lenguaje personalizado

Aunque la adición de corpus es el método recomendado para añadir palabras a un modelo de lenguaje personalizado, también puede añadir directamente palabras personalizados individuales al modelo. El servicio analiza las palabras personalizadas para el modelo personalizado tal como lo hace con el contenido de las palabras de los corpus.

Si solo tiene una o unas pocas palabras que añadir a un modelo, el uso de corpus para añadir las palabras podría no resultar práctico o incluso viable. La forma más sencilla de hacerlo es mediante la adición de una palabra con solo su ortografía. No obstante, también se puede indicar cómo se va a mostrar la palabra y una o varias pronunciaciones para la palabra.

Después de añadir palabras a un modelo personalizado, examine las nuevas palabras personalizadas para comprobar si hay errores tipográficos o de otro tipo. Esta comprobación es especialmente importante cuando se añaden varias palabras a la vez.

Añadir palabras con el método POST

El método de " POST /v1/customizations/{customization_id}/words " añade una o más palabras a la vez. Pase las palabras que se van a añadir como datos JSON a través del cuerpo de la solicitud o de un archivo. En cualquier caso, el encabezado de solicitud ( Content-Type ) requerido especifica que se están pasando datos JSON al método.

Los siguientes ejemplos añaden dos palabras personalizadas, HHonors y IEEE, al modelo personalizado con el ID especificado:

  • El primer ejemplo pasa la información sobre cada palabra a través del cuerpo de la solicitud:

    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"
    
  • El segundo ejemplo añade las mismas palabras de un archivo denominado words.json:

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

    La siguiente solicitud añade las palabras del archivo:

    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"
    

El método de transferencia asíncrona ( POST ) es asíncrono. Puede tardar unos minutos en completarse. El tiempo que tarda en completarse depende del número de palabras que añade y de la carga actual del servicio. Para obtener más información sobre cómo comprobar el estado de la operación, consulte Supervisión de la solicitud de añadir palabras.

Añadir una palabra con el método PUT

El método PUT /v1/customizations/{customization_id}/words/{word_name} añade palabras individuales. Pasa un objeto JSON que proporciona información sobre la palabra como el cuerpo de la solicitud.

En el ejemplo siguiente se añade la palabra NCAA al modelo con el ID especificado. El encabezado « Content-Type » requerido indica de nuevo que se están pasando datos JSON al método.

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"

El método de transferencia asincrónica de archivos ( PUT ) es sincrónico. El servicio devuelve un código de respuesta que muestra de forma inmediata si se ha ejecutado correctamente o no.

Supervisión de la solicitud de añadir palabras

Cuando se utiliza el método POST /v1/customizations/{customization_id}/words, el servicio devuelve el código de respuesta 201 si los datos de entrada son válidos. Luego procesa de forma asíncrona las palabras para añadirlas al modelo. No puede enviar solicitudes para añadir datos al modelo personalizado ni para entrenar el modelo hasta que el servicio complete la solicitud de añadir palabras nuevas.

Para determinar el estado de la solicitud. utilice el método GET /v1/customizations/{customization_id} para sondear el estado del modelo. El método acepta el ID de personalización del modelo, como en el ejemplo siguiente:

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 solicitud incluye información sobre el estado del modelo:

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

El campo status muestra el estado actual del modelo. Mientras el servicio está procesando palabras nuevas, el estado es pending. Utilice un bucle para consultar el estado cada 10 segundos hasta que esté en el estado ready, que indica que la operación se ha completado. Para obtener información sobre los valores posibles de status, consulte Supervisión de la solicitud de entrenamiento del modelo.

Modificación de las palabras de un modelo personalizado

También puede utilizar los métodos POST /v1/customizations/{customization_id}/words y PUT /v1/customizations/{customization_id}/words/{word_name} para modificar o aumentar una palabra en un modelo personalizado. Es posible que tenga que utilizar los métodos para corregir un error tipográfico u otro error que se haya cometido al añadir una palabra al modelo. También es posible que tenga que añadir definiciones de pronunciaciones para una palabra existente.

Los métodos para modificar la definición de una palabra existente se utilizan del mismo modo que los utilizados para añadir una palabra. Los nuevos datos que se proporcionan para la palabra sobrescriben la definición existente de la palabra. Para modelos personalizados basados en modelos de generación anterior, también puede modificar las palabras que se hayan añadido desde el corpus.

Entrenamiento del modelo de lenguaje personalizado

Una vez que haya rellenado un modelo de idioma personalizado con palabras nuevas (añadiendo corpus, añadiendo palabras directamente o añadiendo gramáticas), debe entrenar el modelo con los nuevos datos. El proceso de entrenamiento prepara el modelo personalizado para que utilice los datos en el reconocimiento de voz. El modelo no utiliza las palabras que se añaden a través de cualquier método hasta que lo entrena con los datos.

Utilice el método POST /v1/customizations/{customization_id}/train para entrenar un modelo personalizado. Debe pasar al método el ID de personalización del modelo que desea entrenar, como en el ejemplo siguiente:

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"

Este método es asíncrono. El entrenamiento puede tardar unos minutos en completarse en función del número de palabras nuevas con las que se está entrenando el modelo y de la carga actual del servicio. Para obtener más información sobre cómo consultar el estado de una operación de entrenamiento, consulte Supervisión de la solicitud de entrenamiento del modelo.

El método incluye los siguientes parámetros de consulta opcionales:

  • El parámetro word_type_to_add especifica las palabras con las que se va a entrenar el modelo personalizado:

    • Especifique all o bien omita el parámetro para entrenar el modelo con todas sus palabras, independientemente de su origen.
    • Especifique user para entrenar el modelo solo con las palabras que el usuario ha añadido o modificado, sin tener en cuenta las palabras que solo se han extraído de corpus o de gramáticas.

    Para modelos personalizados basados en modelos de la generación anterior, esta opción es útil si añade corpus con datos ruidosos, como por ejemplo palabras que contienen errores tipográficos. Antes de entrenar el modelo con este tipo de datos, puede utilizar el parámetro de consulta word_type del método GET /v1/customizations/{customization_id}/words para revisar las palabras que se extraen de corpus y de gramáticas. Para obtener más información, consulte Listado de palabras personalizadas de un modelo de idioma personalizado.

    Para los modelos personalizados que se basan en modelos de voz grandes y modelos de próxima generación, el servicio ignora el parámetro word_type_to_add. El recurso de palabras sólo contiene palabras personalizadas que el usuario añade o modifica directamente, por lo que el parámetro es innecesario.

  • El parámetro customization_weight especifica la ponderación relativa que se otorga a las palabras del modelo personalizado en comparación con las palabras del vocabulario base cuando se utiliza el modelo personalizado para el reconocimiento de voz. También puede especificar una ponderación de personalización con cualquier solicitud de reconocimiento que utilice el modelo personalizado. Para obtener más información, consulte Utilización de ponderaciones de personalización.

  • El parámetro strict indica si el entrenamiento debe continuar si el modelo personalizado contiene una combinación de recursos válidos y no válidos (corpus, palabras y gramáticas). De forma predeterminada, el entrenamiento falla si el modelo contiene uno o más recursos no válidos. Establezca el parámetro false para permitir que el entrenamiento continúe siempre que el modelo contenga como mínimo un recurso válido. El servicio excluye del entrenamiento los recursos que no son válidos. Para obtener más información, consulte Errores de entrenamiento para modelos de lenguaje personalizado.

Supervisión de la solicitud de entrenamiento del modelo

El servicio devuelve el código de respuesta 200 si inicia correctamente el proceso de entrenamiento. El servicio no acepta solicitudes posteriores de entrenamiento, ni solicitudes para añadir nuevos corpus, palabras o gramáticas, hasta que finaliza la solicitud actual.

La adición de palabras personalizadas directamente a un modelo personalizado que se basa en un modelo de voz de gran tamaño o en un modelo de próxima generación, tal como se describe en Añadir palabras al modelo de lenguaje personalizado, hace que el entrenamiento de un modelo tarde unos minutos más de lo que lo haría de otro modo. Si está entrenando un modelo con palabras personalizadas que ha añadido utilizando el método POST /v1/customizations/{customization_id}/words o PUT /v1/customizations/{customization_id}/words/{word_name}, deje pasar unos minutos de tiempo de entrenamiento adicional para el modelo.

Para determinar el estado de una solicitud de entrenamiento, utilice el método GET /v1/customizations/{customization_id} para sondear el estado del modelo. El método acepta el ID de personalización del modelo:

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 respuesta incluye información sobre el estado del modelo:

{
  "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 respuesta incluye los campos status y progress que muestran el estado del modelo personalizado. El significado del campo progress depende del estado del modelo. El campo status puede tener uno de los valores siguientes:

  • pending indica que el modelo se ha creado pero está a la espera de que se añadan datos de entrenamiento válidos o que el servicio termine de analizar los datos que se han añadido. El campo progress es 0.

  • ready indica que el modelo contiene datos válidos y que está listo para ser entrenado. El campo progress es 0.

    Si el modelo contiene una mezcla de recursos válidos y no válidos (por ejemplo, ambas palabras personalizadas válida y no válida), el entrenamiento del modelo falla a menos que establezca el parámetro de consulta strict en false. Para obtener más información, consulte Errores de entrenamiento para modelos de lenguaje personalizado.

  • training indica que el modelo se está entrenando. El campo progress es 0. El campo cambia de 0 a 100 cuando se ha completado el entrenamiento.

  • available indica que el modelo está entrenado y listo para su uso. El campo progress es 100.

  • upgrading indica que el modelo se está actualizando. El campo progress es 0.

  • failed indica que el entrenamiento del modelo ha fallado. El campo progress es 0. Para obtener más información, consulte Errores de entrenamiento para modelos de lenguaje personalizado.

Utilice un bucle para consultar el estado cada 10 segundos hasta que esté en el estado available. Para obtener más información sobre cómo comprobar el estado de un modelo personalizado, consulte Listado de modelos de lenguaje personalizado.

Errores de entrenamiento para modelos de lenguaje personalizado

El entrenamiento no se puede iniciar si el servicio está gestionando otra solicitud para el modelo de lenguaje personalizado. Por ejemplo, una solicitud de entrenamiento no se puede iniciar con un código de estado de 409 si el servicio está

  • Cómo procesar un corpus o gramática para generar una lista de palabras OOV o para extraer secuencias de caracteres
  • Procesando palabras personalizadas para validar o generar automáticamente pronunciaciones
  • Gestionando de otra solicitud de entrenamiento

El entrenamiento tampoco se puede iniciar con un código de estado de 400 si el modelo personalizado

  • No contiene nuevos datos de entrenamiento válidos (corpus, palabras o gramáticas) desde que se creó o se entrenó por última vez
  • Contiene uno o varios corpus, palabras o gramáticas no válidas (por ejemplo, una palabra personalizada tiene una pronunciación parecida no válida)

Si falla la solicitud de entrenamiento con un código de estado de 400, el servicio establece el estado de modelo personalizado en failed. Realice una de las acciones siguientes:

  • Utilice métodos de la interfaz de personalización para examinar los recursos de los modelos y corrija los posibles errores que encuentre:

    • Para un corpus no válido, puede corregir el archivo de texto del corpus y utilizar el parámetro allow_overwrite del método POST /v1/customizations/{customization_id}/corpora/{corpus_name} para añadir el archivo corregido al modelo. Para obtener más información, consulte Adición de un corpus al modelo de lenguaje personalizado.
    • Para una gramática no válida, puede corregir el archivo de gramática y utilizar el parámetro allow_overwrite del método POST /v1/customizations/{customization_id}/grammars/{grammar_name} para añadir el archivo corregido al modelo. Para obtener más información, consulte Adición de una gramática al modelo de lenguaje personalizado.
    • Para una palabra personalizada no válida, puede utilizar el método POST /v1/customizations/{customization_id}/words o PUT /v1/customizations/{customization_id}/words/{word_name} para modificar la palabra directamente en el recurso de palabras del modelo. Para obtener más información, consulte Modificación de las palabras de un modelo personalizado.

    Para obtener más información sobre cómo validar las palabras en un modelo de idioma personalizado, consulte

  • Establezca el parámetro strict del método POST /v1/customizations/{customization_id}/train en false para excluir los recursos no válidos del entrenamiento. El modelo debe contener al menos un recurso válido (corpus, palabra o gramática) para que el entrenamiento tenga éxito. El parámetro strict es útil para entrenar un modelo personalizado que contiene una mezcla de recursos válidos y no válidos.