BLOG Y NOTICIAS

16.01.2018

Watson, como plataforma, cuenta con procesamiento e interpretación de 3 tipos de contenido: imágenes, audio y texto. Tradicionalmente la mejor forma de resumir donde calza un componente de Watson en una arquitectura de solución es como interprete de una aplicación. Básicamente como un cerebro que le indica al cuerpo que acción realizar.

Teniendo entendido donde "calza" Watson, podemos iniciar a establecer una estrategia de gestión del contenido. El ciclo no es complejo, sin embargo, no conocer como funcionan las herramientas podría llevar un proyecto a un desenlace desagradable.

El contenido para aplicaciones de Watson puede ir desde recolectar fotografías, hasta descargar o acceder a PDFs.

Una estrategia de contenido es clave ya que la mayoría de servicios de Watson se entrenan con contenido existente. Y posterior, el interpretar el contenido sobre el cual se desea trabajar debe tener en consideración ciertas especificaciones especiales variables según el tipo de contenido.

Por ejemplo: clasificar fotografías de tipos de células.

  1. Se debe entrenar un servicio de Visual Recognition.
  2. Por ende se debe obtener ese contenido, almacenarlo, "taggearlo" y enviarlo a Watson.
  3. Se debe considerar la evolución del proyecto así que se debe versionar de alguna manera.
  4. Se entrena Watson.
  5. Se inicia a probar el servicio con contenido real, el cual debe estar almacenado en alguna parte, si es en tiempo real se debe considerar formatos y transformación en el momento, estrategia de canales e integraciones. Si se procesa por batches se debe considerar sistemas de registro de errores y almacenamiento de X GB.
  6. A la hora de re-entrenar se debe considerar pasar por flujos de pruebas normales y tener posibilidad de hacer rollback en caso de que algo suceda.
  7. Debe existir contenido para realizar pruebas.
  8. Se debe almacenar el contenido del uso del software para mejoras futuras u optimizaciones.

Así más o menos se ve un flujo simple de contenido de una aplicación, exploremos un poco más las principales etapas aquí.

analogy2x

Estrategia de alto nivel

1. Identificación de las fuentes y el contenido requerido.

Esta etapa es clave ya que de ella depende entender viabilidad, alcance y planificación un proyecto. De ellas podremos saber si se debe por ejemplo obtener una licencia para cierto contenido o si debemos desarrollar algún componente no identificado solo para recabar los datos. 
Aquí es importante entender las capacidades de Watson y el problema de negocio.

Ayuda hacer un listado de características que imaginamos que podría tener la solución, una par de talleres de Design Thinking nunca están de más para generar una idea general del problema y como se planea resolver el problema a alto nivel. El utilizar Design Thinking es porque ayuda a pensar en grande y en chico de manera ordenada. Además a conglomerar ideas de varias personas y promover la participación, lo cual es clave cuando se necesita conocimiento experto.

Una vez que se cuenta con esa lista de capacidades, se pueden mapear a contenidos que deban ser obtenidos y a su vez una estrategia de obtención, al mismo tiempo que se pueden identificar riesgos como por ejemplo acceso escaso o limitado a la información.

Iniciar la matriz de riesgos del proyecto aquí es una buena idea.

screen-shot-2018-01-12-at-19-20-49

2. Obtención o generación del contenido

En ciertas soluciones como asistentes virtuales o chatbos, el contenido se obtiene de fuentes existentes. Por esto las consideraciones van más orientadas a obtención, almacenamiento, limpiado y formateo de datos. Pero en ciertos casos (incluso en algunos asistentes virtuales) es requerido generar antes el contenido.

El saber como se va a obtener el contenido ayuda a planificar componentes de extracción, transformación y almacenado de datos. Si se deben generar en algunos casos hasta implican campañas de mercadeo.

3. Limpieza y formateo de datos

La información tradicionalmente (por no decir siempre) viene en un formato no compatible con lo que queramos hacer. Por esto es crítico considerar si se debe pasar cierto tiempo definiendo el formato correcto, limpiando y desechando contenido no útil para el sistema, y teniendo un flujo de datos acorde al software.

En algunos casos se generan sistemas que nunca dejan de aprender y por esto es importante tener claro cual sería el flujo, frecuencia, esfuerzo y riesgos de esto.

El contenido debe ser clasificado o curado por expertos que entienda el mismo. Por ejemplo, ¿cómo saber si un documento es relevante para una pregunta sobre tratamiento de la piel, si no somos especialistas? Aquí entra el rol de un Subject Matter Expert y entender cual es el formato que cada servicio de Watson acepta del contenido.

4. Desarrollo

Tradicionalmente al identificar las fuentes, obtener o generar el contenido, y definir como limpiar/curar el contenido, se puede dar inicio a entrenar a Watson.

5. Almacenaje

Por supuesto es clave haber identificado al menos lo siguiente:

  1. Dónde almacenar los datos crudos y por cuanto tiempo.
  2. Dónde almacenar los datos curados y por cuanto tiempo. Cómo manejar versionamiento para ellos. Usar paquetes, usar versiones en tiempo real, algún versionador de código quizás.
  3. Durante el uso de la aplicación donde se almacena y transporta el contenido. De nuevo, por cuanto tiempo, quienes deben tener acceso, si hay información sensible, si se puede utilizar para mejorar el sistema más adelante con un flujo de retroalimentación.
  4. Cómo se administra a través de ambientes de DevOps el obtener cierto contenido de versiones previas para evitar rollbacks manuales. Es importante tener en cuenta que la mayoría de servicios de Watson no respaldan entrenamiento, es decir, el desarrollador debe guardar y asegurar el contenido en caso de tener que regenerar un entrenamiento/servicio.
  5. ¿Se administrará de manera manual o se tendrá algún servicio de automatización de tareas?

Y aquí entran las dudas típicas de estrategias de almacenamiento, dónde se almacenarán (la nube, un centro de datos propio, ¿el disco duro del developer?!!!), al igual que si se va a replicar este contenido o respaldar de manera periódica.

Recuerde que en el caso de una catástrofe (por ejemplo un mal deploy) usted mismo está encargado de usar el contenido para regenerar el servicio. No es solamente entrenar un servicio y borrar los archivos "crudos". Además ese contenido es un activo para su compañía, al que se le ha invertido tiempo y esfuerzos, que podría funcionar como una importante diferencia competitiva.

6. Mejora continua

Del uso de la plataforma se puede obtener información invaluable para re-entrenar y optimizar los servicios. ¿Esta información como se administrará? ¿Cómo se aleja de una solución en producción a un ambiente donde se pueda "experimentar" de manera segura con el?

ibm-watson

Wrapping up

Estas son solo algunas consideraciones generales de la importancia de una estrategia de contenido. Administrar tanta información puede ser un reto a como va creciendo el proyecto ya que puede ser tan variada como archivos de audio, archivos planos, json's, PDFs, words, fotografías, bases de datos SQL y noSQL.

Planifique con tiempo y mejore el proceso de desarrollo con Watson.

Los comentarios están cerrados.

ARTICULOS RELACIONADOS

COMPUTACIÓN COGNITIVA

17.02.2017

Aplicaciones cognitivas: El siguiente paso del software

Hace unos dos años, decir que un sistema implementaba características cognitivas implicaba una inversión de dinero y tiempo particularmente alta. Pero, ¿qué tal si todos estos años de aprendizaje, investigación y procesamiento informático se pudiese contratar como un servicio a través de un pago mensual?

COMPUTACIÓN COGNITIVA

22.08.2017

Bluemix – Data Science Experience

DSX proporciona velocidad, flexibilidad, reducción de costos y colaboración a equipos de trabajo para que se enfoquen en construir los componentes que dan valor. También sirve como un entorno de aprendizaje al proporcionar toda la plomería y configuración por defecto.

COMPUTACIÓN COGNITIVA

17.07.2017

De inteligencia artificial a inteligencia aumentada #AIforJournalism

Hoy en día se utiliza en diversas industrias para atacar grandes problemas de negocio. Por esto, en Cognitiva preferimos, al igual que en IBM, alejarnos un poco de este término en dirección hacia el término augmented intelligence o inteligencia aumentada para referirnos a la computación cognitiva.

COMPUTACIÓN COGNITIVA

21.11.2017

IBM Watson Speech to Text con reconocimiento de palabras de Industria

El servicio Watson Speech to Text nos permite convertir fácilmente audio y voz en texto para un entendimiento rápido de contenido.

COMPUTACIÓN COGNITIVA

18.09.2017

Watson APIs: Retrieve and Rank vs Discovery

Recientemente IBM lanzó el servicio de búsquedas llamado Watson Discovery Service como parte de su oferta de servicios cognitivos.

COMPUTACIÓN COGNITIVA

08.05.2017

Natural Language Understanding: la evolución de Alchemy Language

Alchemy Language es uno de los APIs más potentes de la suite de IBM Watson. Cuenta con soporte para múltiples idiomas y extrae metadatos de valor a partir de datos no estructurados, es decir, texto. Esto lo realiza a través de técnicas avanzadas de procesamiento de lenguaje natural.

Esta información se extrae sin necesidad de ser experto en Machine Learning, permitiendo encontrar información oculta y estructurando el contenido mejor.