¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Despliega tu modelo de Machine Learning en la nube con Watson

Introducción

En este tutorial aprenderemos a como utilizar Watson Studio para poder entrenar a un modelo capaz de predecir la temperatura en Atenas basado en la hora y humedad que se le comparta y posteriormente disponibilizarlo como un servicio con Watson Machine Learning

Antes de empezar

Vamos a crear una instancia de Cloud Object Storage que servirá para guardar todos los elementos de este tutorial

Prerrequisitos

Para este tutorial solo necesitamos tener una cuenta gratuita de IBM Cloud

Tiempo estimado

Este tutorial tomará aproximadamente 1 hora (incluyendo el tiempo de entrenamiento del modelo)

Pasos

Paso 1: Preparación del ambiente

Para poder disponibilizar nuestros modelos sobre la nube haremos uso de dos servicios:

El primero es Watson Studio, un entorno con diversas herramientas referentes a Inteligencia Artificial que nos hará solo concentrarnos en la creación y entrenamiento de nuestros modelos.

Para crear una instancia, vamos al buscador del catálogo en la nube de IBM y escribimos Watson Studio

Selección de Watson Studio en el catálogo de IBM Cloud

Creamos nuestro ambiente con el plan Lite, le asignamos un nombre y etiquetas si queremos y hacemos click en Crear

El segundo servicio es Watson Machine Learning, con él podremos desplegar y disponibilizar nuestro modelo para ser consumido como un servicio en la nube.

Para crearlo, vamos al buscador del catálogo y escribimos Machine Learning

Selección de Watson Studio en el catálogo de IBM Cloud

Y seguimos el mismo proceso con el servicio anterior, elegimos el plan Lite y colocamos nombre y etiquetas a nuestro gusto y hacemos click en Crear

Para entrar en nuestro nuevo ambiente (llamado Cloud Pak for Data) debemos ir a nuestra instancia de Watson Studio y hacer click en el botón azul de Iniciar

Bienvenida a IBM Watson Studio

En este ambiente debemos crear un proyecto donde se encontrará nuestro Notebook, modelo y cualquier otro elemento necesario para él.

Dentro de Cloud Pak for Data hacemos click en la opción de Crear proyecto y posteriormente elegimos Crear un proyecto vacío

Crear proyecto en dashboard de IBM Cloud Pak for Data

Seleccionar creación de un nuevo proyecto vacío

Le colocamos un nombre a nuestro proyecto, opcionalmente una descripción y hacemos click en Crear

Esto nos llevará a la página inicial del proyecto. Aquí iremos a la opción Añadir al proyecto donde elegiremos Notebook

Agregar Notebook al proyecto desde el Dashboard

Selección de assets desde el Dashboard

Iremos por la opción de crear el notebook Desde un archivo donde colocaremos este notebook, le agregamos un nombre y elegimos como entorno Default Python 3.7 XS cuando tengamos todo listo hacemos click en el botón de Crear

Por último vamos a crear un espacio de despliegue, para ello regresamos a la página principal de IBM Cloud Pak for Data y vamos a la sección de Despliegues

Selección Deployments en el Dashboard de IBM Cloud Pak for Data

En esta página haremos click sobre el botón de Crear nuevo espacio de despliegue

Seleccionar nuevo espacio de Deployment

Y vamos a configurar los datos de nuestro espacio, en este caso solo basta con cambiar el nombre y seleccionar el servicio de Watson Machine Learning que recién creamos. Al tener todo listo hacemos click en Crear

Paso 2: Descargar y modificar Notebook

Dentro de nuestro proyecto en la sección de Assets podremos ver nuestro notebook agregado.

Dashboard de assets en IBM Watson Studio

Si le hacemos click podremos ver una previsualización sobre nuestro notebook, y arriba a la derecha veremos el ícono de un lápiz que nos permitirá editar el notebook.

Seleccionar tool de edición en el Notebook

Al editar vamos a cargar un ambiente que nos permitirá ejecutar cada uno de los bloques de nuestro notebook, nosotros nos encargaremos primero de editar ciertas variables:

  • En el bloque 1 configuramos las variables de nuestra instancia de Watson Machine Learning, aquí necesitaremos una API Key de IBM Cloud y la ubicación de nuestra instancia de Watson Machine Learning

Código de autenticación con Watson Machine Learning

  • Para crear una API Key de IBM Cloud hay que ir a la nube en la sección Administración y elegir Acceso (IAM)

Seleccionar Access IAM dentro del menú Administración del Dashboard

Allí dentro vamos a la sección API Keys y creamos una nueva

Crear una API Key de IBM Cloud dentro del menú del Dashboard

Para conocer la ubicación de nuestro servicio tenemos que ver en cuál zona la creamos, eso se ve en nuestra lista de recursos

Seleccionar región del recurso

Y debemos buscar la región a la cuál pertenece en la documentación de Watson Machine Learning. En este caso, la instancia está en Dallas por lo que mi región sería us-south

Tabla de Endpoints URLs

  • En el bloque 5 debemos colocar el ID de espacio de nuestra zona de despliegue

Configuración de importación e instalación del paquete

Este id lo podemos encontrar en el espacio de despliegue que recién creamos y vamos a la sección Administrar

Encontrar Space GUID en el menú Administrar

Allí encontraremos un dato llamado Space GUID el cuál copiaremos y colocaremos en nuestro notebook

Una vez agregado todos estos datos vamos a nuestro notebook, vamos al menú de Celdas y elegimos Correr todas las celdas

Seleccionar RUN ALL en el menú Cells

Esto comenzará el proceso de creación, entrenamiento, despliegue y prueba dentro del notebook, que si queremos podemos ir viendo paso a paso mientras se va ejecutando con los logs de cada bloque.

Si no se presenta ningún error veremos que cada uno de los bloques se ejecutó (debido a los números que aparecen a su izquierda) y veremos información sobre la creación, despliegue y evaluación.

Paso 3: Probar el modelo desplegado

Para poder consumir nuestro modelo debemos conocer el servicio que expone, esto lo vemos yendo a nuestro espacio creado.

Si nuestro Notebook se ejecutó de manera correcta veremos nuestro modelo dentro del espacio.

Selección del modelo en el menú Assets

Y si vamos a la pestaña de Despliegues veremos un despliegue realizado del modelo subido.

Confirmación de despliegue del modelo

Si hacemos click sobre nuestro depsliegue veremos información sobre nuestro depsliegue, incluyendo el URL para consultar el servicio y ejemplos de como implementarlo en distintos lenguajes.

Información del modelo despegado

En la sección Probar podremos hacer pruebas directamente a nuestro modelo y ver los resultados que obtenemos, siguiendo una estructura en formato JSON de envío de los datos:


{
  "input_data": [
    {
      "fields": [
        "time", 
        "humidity"
      ],
      "values": [
        [
          79863, 
          47
        ]
      ]
    }
  ]
}
  • El campo fields define las anotaciones con las que entrenamos nuestra inteligencia artificial, lo que sabe. En este caso conoce sobre tiempo y humedad.

  • El campo values define esos valores de los fields colocados para que nuestra inteligencia artifical pueda predecirlo. Este campo es una lista de dos dimensiones.

Si probamos con esta entrada y damos click en Predecir obtendremos un resultado similar a este:


{
  "predictions": [
    {
      "fields": [
        "prediction"
      ],
      "values": [
        [
          7.222139940699037
        ]
      ]
    }
  ]
}

Siguiendo la misma estructura del mensaje que le envíamos, mostrándonos que nuestro modelo quedó desplegado y funcionando de manera correcta!

Resumen

En este tutorial aprendimos a utilizar Watson Studio para la creación y despliegue de manera automatizada de modelos sobre la nube de IBM. El flujo seguido en el Notebook servirá como referencia para futuros despliegues y creación de modelos.