Entrenar un modelo de machine learning personalizado es solo la mitad del trabajo. El verdadero valor aparece cuando ese modelo se despliega en servicios como Watson Discovery o Natural Language Understanding (NLU) para enriquecer documentos y extraer entidades personalizadas de forma automática. A continuación se explica paso a paso cómo lograrlo, desde la aceptación de anotaciones hasta el consumo del modelo mediante cURL.
¿Cómo se aceptan las anotaciones y se genera el ground truth?
Una vez que los anotadores completan su trabajo, el administrador revisa el progreso en la sección Annotation Tasks [0:12]. Desde ahí se selecciona la tarea finalizada y se da clic en aceptar. Al hacerlo, las anotaciones se convierten en lo que se conoce como ground truth, es decir, la verdad base que el modelo utilizará para aprender patrones. Tras la aceptación, el indicador muestra el avance completo, por ejemplo "ocho de ocho" documentos anotados.
El siguiente paso es ir a la pestaña Performance y dar clic en Train [1:02]. El sistema entrena el modelo con las anotaciones aprobadas. Cuando el entrenamiento finaliza aparece una alerta de confirmación.
¿Cómo se despliega el modelo en Watson Discovery?
Para desplegar el modelo entrenado se accede a la pestaña Versions y se crea una nueva versión [1:20]. Al crearla se asigna una descripción identificable. Las opciones disponibles son promote, delete y deploy.
- Se selecciona Discovery como destino del despliegue.
- Se elige la región (por ejemplo, Dallas) y el espacio o grupo de recursos correspondiente.
- Se indica el nombre del servicio, como "Discovery Platzi".
- Al completar el despliegue se genera un Model ID que es indispensable copiar y guardar [1:55].
Dentro de Watson Discovery, en la colección existente, se accede a Configure Data en la esquina superior derecha [3:00]. Allí aparecen tres secciones: Identify Fields, Managed Fields y Enrichments. En los enriquecimientos de entidades y relaciones existe un campo llamado Custom Model ID donde se pega el identificador recién exportado. Se aplica el cambio y se cierra la configuración.
Al subir nuevos documentos mediante Upload Documents, estos se enriquecen automáticamente con las entidades personalizadas: dirección, fecha de nacimiento, nombre del cliente y teléfono del cliente [4:50]. En la vista de documento se comprueba que coexisten los enriquecimientos nativos de Discovery con los del modelo personalizado, lo que permite, por ejemplo, asociar un sentimiento positivo a una entidad específica que el equipo haya entrenado.
¿Cómo se consume el modelo personalizado desde NLU?
Desde Watson Knowledge Studio se crea una segunda versión, esta vez seleccionando Natural Language Understanding como destino [5:55]. Se repite el flujo de despliegue eligiendo la región, el grupo de recursos y el nombre del servicio ("Natural Language Understanding Platzi"). Se obtiene un nuevo Model ID.
¿Qué contiene el archivo de parámetros?
Dentro del material del curso existe un archivo NLU.txt con dos elementos clave [6:30]:
- Un parameters.json que incluye la URL de la página a analizar y campos para colocar el Model ID en categorías, entidades y relaciones.
- Un comando cURL que requiere la API key y la URL del servicio.
¿Cómo se ejecuta la petición cURL?
Para obtener las credenciales se ingresa a IBM Cloud, se busca el recurso de NLU en la lista de recursos, se abren las credenciales de servicio y se copian la API key y la URL [7:30]. Ambos valores se sustituyen en el comando cURL.
Es importante que el archivo parameters.json se guarde en el mismo directorio desde el cual se ejecutará el comando. Un detalle práctico: si la URL del sitio a analizar contiene caracteres especiales o guiones inesperados, la petición puede fallar con un error Access Forbidden o Could not fetch URL [8:20]. Basta con corregir la URL y verificar la indentación del JSON antes de reintentar.
Al ejecutar correctamente el cURL, el servicio devuelve las entidades entrenadas —dirección, nombre— cada una con su nivel de certeza (confidence) [9:05]. Si se incluyó un Model ID en categorías sin haber entrenado esa capacidad, NLU responderá con unsupported operation, lo cual es esperado.
Con el modelo desplegado tanto en Discovery como en NLU, el siguiente paso natural es llevarlo a un contexto conversacional. ¿Ya pensaste en qué entidades personalizadas podrían potenciar tu propio proyecto? Comparte tus ideas en los comentarios.