jueves, 24 de septiembre de 2015

Watson: El ordenador que ganó al hombre por segunda vez.

¿Como es el ordenador que venció a los concursantes de Jeopardy? Una entrada para explicar la tremenda capacidad de computación e inteligencia que la máquina de IBM dotó a Watson, para poder ganar a los concursantes del concurso televisivo.



En 1997 la primera batalla intelectual entre un hombre y una máquina (el "Deep Blue" de IBM), tuvo como desenlace la derrota del campeón del mundo de ajedrez Gary Kasparov.

Esa primera victoria de una supercomputadora, posicionada en el puesto 259 dentro de una lista de las 500 mejores, fue revalidada por el supercomputador Watson, también -como no podría ser de otra manera- diseñada por IBM, ganando el concurso Jeopardy! en Estados Unidos el febrero del 2011.

Recordaremos el formato del concurso: "Jeopardy! es un concurso de televisión estadounidense con preguntas sobre historia, literatura, arte, cultura popular, ciencia, deportes, geografía, juegos de palabras, y otros temas. El programa tiene un formato de “respuesta y pregunta”, en el cual a los concursantes se les presentan pistas en forma de respuestas, y deben dar sus respuestas en forma de una pregunta.”-  fuente Wikipedia.


¿Que hace que estas máquinas sean tan potentes?

La capacidad de proceso de estas supercomputadoras se logra sumando varias decenas de servidores entre sí mediante una red de muy altas prestaciones, usando sistemas operativos escalables y programas que permitan trabajar con miles de nodos y extensas cantidades de datos.

Para poder vencer a los concursantes, la solución presentada por IBM usó software de código libre -exceptuando la base de datos propietaria DB2- y una integración de procesadores masivamente paralelos.

Watson respondía "la pregunta" usando una estructuración de la información indexada en su memoria, tomada de variopintos orígenes, siendo el motivo de esta entrada, desgranar el hardware (servidores y red) y software de la solución exitosa aportada por IBM.


Componentes hardware de Watson (servidores).

Para poder dar una gran capacidad de indexación de la información y, teniendo en cuenta que Watson no tenía conexión a internet, el servidor escogido por los investigadores de IBM fue el Power 750.

Para poder cargar toda la información en la RAM, tener una latencia de computación extrema, usaron 4 tarjetas con un procesador RISC de 8 núcleos cada uno, teniendo un total de 32 núcleos lógicos por servidor.

Diez armarios para alojar un total de 90 servidores, dotaban al sistema de 2880 núcleos (cores) de 3.25 GHz. 

Todos esos servidores estaban unidos mediante un conmutador Ethernet de Juniper -de alta capacidad de proceso- a una velocidad de 10 Gbps. La unión física de los servidores se realizó con fibra óptica.

El total de memoria RAM conseguida era de unos 15 TBbytes. Los investigadores creyeron, acertadamente, que era necesario tanta memoria de acceso aleatorio para conseguir almacenar la mayor información posible y, disminuir la más que probable penalización en el caso de tener que acceder a disco (Hard Disk).

Para encontrar paralelismos con la vida cotidiana, remarcar que con todos esos TeraBytes podríamos: escuchar música durante 2 años ininterrumpidamente, visualizar más de 5 millones de fotos, ver más de 3 millones de películas o almacenar 90 millones de veces la Enciclopedia Británica.

Esta configuración de hardware permitía disponer de 80.000.000.000.000 de operaciones por segundos, es decir 80 TeraFLOPSs. En una lista de 500 superordenadores, Watson ocupaba el puesto 114.



Componentes hardware de Watson (red).

Para poder mover una cantidad ingente de datos entre los 90 servidores con una ridícula latencia, los investigadores usaron un IBM J16E con 15 tarjetas 10GBytes Ethernet.


La capacidad de computación de esta excelente caja de comunicaciones es impresionante y necesaria, para poder dotar de velocidad a la capa de software del que hablaremos en el siguiente punto.

Este mastodóntico conmutador de paquetes Ethernet, permite mover 2 billones de paquetes por segundo (pps) con un velocidad de 12.4 TeraBytes por segundo.

Con esta potencia Watson es capaz de correr con garantias los mas de 100 algoritmos, para poder llegar a la respuesta en menos de 3 segundos.

Probablemente no se le de nunca la importancia que tiene el tener una buena infraestructura LAN (red de área local), pero sin este hardware de red, Watson no podría responder con tanta rapidez, pues su software no podría procesar paralelamente mediante sus algoritmos con garantías.

Junos OS, es el sistema operativo que corre en el hardware de Juniper. El principal atractivo del producto es que permite virtualización y balanceo de carga a voluntad, teniendo controlado en todo momento la interconexión de los 2880 núcleos -con sus respectivas pilas de proceso- controladas por el sistema operativo SUSE.


El Software de Watson.

El sistema operativo que Watson usó para gestionar un repositorio de datos des-estructurados y el DeepQA, fue la  distribución de Linux Suse Enterprise Server v11.

Para poder trabajar con datos estructurados, semi-estructurados o no-estructurados, usaron el Framework de Hadoop. Tenemos que pensar que Watson tenia "cargada" en RAM muchísimas enciclopedias, diccionarios, noticias, artículos, títulos literarios, bases de datos de música y bases de datos de películas.

Hadoop es un software de código libre, surge a través de un proyecto (Dug Cutting, Mike Cafarella), soporta aplicaciones distribuidas y, permite trabajar con volumenes de TeraBytes, PetaBtye o ExaBytes.

Está insipirado en la tecnologías Map&Reduce de Google y Google File System (GFS). Está desarrollado en JAVA y sus bloques principales son HDFS Map&Reduce.

HDFS es un sistema de ficheros distribuido y Map&Reduce es el paradigma de la computación en paralelo. Para poder tener la información controlada existen componentes Hadoop que alojan la información en bases de datos no SQL, como son: HBase, Hive y CassandraHadoop es el nombre de un elefante que tenía un hijo de los dos creadores.

La gran aportación realizada por IBM fue el software DeepQA. Básicamente gestionaba un centenar de algoritmos que, en base a la pregunta realizada por el presentador, hacia los siguientes pasos (apoyándose en una arquitectura UIMA) :
  • Analizaba la pregunta en lenguaje natural.
  • Identificaba fuentes alojados en sistema.
  • Separaba y generaba hipótesis.
  • Buscaba y puntuaba evidencias.
  • Sintetizaba los datos para dar finalmente la respuesta, dependiendo de la puntuación obtenida.
La gran potencia del sistema era la posibilidad de gestionar múltiples procesos, para poder lanzar "queries" (preguntas) y obtener decenas de hipótesis. Con estas hipótesis el software sintetizaba los resultados para poder dar una respuesta.

Para poder buscar, analizar y evaluar semánticamente o lexicográficamente la pregunta, se usaron librerías de Lucene y Lemur / Indri. Son librerías de código abierto. La gran importancia de estas librerías, es poder buscar en diferentes formatos de documento. Es decir, buscar textos que puede estar en PFD o en páginas Web, así como documentos realizados con cualquier procesador de textos.



En la imagen resumen de arriba, vemos un esquema del UIMA (Unstructed Information Management Architecture) usado por DeepQA.

Básicamente este componente software analiza y gestiona información no estructurada (texto, audio o vídeo). Permite construir una herramienta para poder extraer la información solicitada. Es licenciado por Apache y de código abierto.


¿Para que servirá Watson en el futuro?

Teniendo en cuenta que casi toda la información que circula por Internet no esta estructurada, de las decenas de TeraBytes generados cada hora, Watson crea un sistema de lenguaje natural para responder a una pregunta de manera rápida y segura.

Ejemplos de aplicación inmediata:

Call Center o asistencia telefónica: el primer nivel, responde a las preguntas que le puede hacer un usuario básico. En el caso de no poder solucionar la consulta, se pasaría a un segundo nivel con un operador humano.

Marketing / Desarrollo de producto: Predicciones en el comportamiento de las personas en la compra y utilización de bienes. Seguimiento de la post-venta mediante redes sociales y web. Seguimiento de pre-venta en redes sociales, documentos internet y encuestas físicas en tienda.

Finanzas: Predicciones en el comportamiento bursátil, teniendo en cuenta las noticias, redes sociales e indices de contratación. El hombre ya ha sido ganado por aplicaciones en una competición simulada de comercio financiero.

Sanidad: Interpretación masiva de datos en busca de patrones para poder solucionar mutaciones. Consulta de casos repetitivos para poder mejorar el diagnostico.

Recursos Humanos: Búsquedas heurísticas en los empleados para determinar horarios, proyectos o cualquier otra información que se precise.

Infinitas aplicaciones serán apoyadas con micro o mini Watsons. Pero lo que de momento no podrá hacer Watson, es tomar decisiones. 

Serán  utilizados como asistentes interactuados por voz, un nuevo interfaz de usuario-maquina. De esta manera la indexación de la información de múltiples fuentes, sera realizada por el asistente liberándonos de esa tediosa tarea.

Lo que no sabrán todos los sistemas IT similares a Watson es saber qué son, todavía.

La cita:


“Todas las piezas deben unirse sin ser forzadas. Debe recordar que los componentes que está reensamblando fueron desmontados por usted, por lo que si no puede unirlos debe existir una razón. Pero sobre todo, no use un martillo” — Manual de mantenimiento de IBM, año 1925

sábado, 4 de julio de 2015

Pebble, el reloj inteligente para el pueblo.

Después de probar el Pebble clásico durante más de un mes, ésta es mi entrada tributo a éste liviano "smartwatch".

Es de sobras conocido que Pebble obtuvo un 3000% de la financiación que necesitaba para poder ejecutar la construcción de su smartwatch. Más de 15 millones de dólares fueron los aportados por los geeks micromecenas a través de la plataforma Kickstarter.

En la actualidad existen miles de aplicaciones diseñadas para este reloj. Estas aplicaciones se apoyan en nuestros teléfonos inteligentes, estén gestionados por Android o por IOS. Esta ejecución camaleónica es lo que hace el Pebble aún mas diferente.

Muy poco pesado, tiene pantalla Sharp Flat LCD  de 1,25 pulgadas (similar a las usadas en los libros digitales e-paper / papel electrónico)

No es táctil y presenta su información en blanco y negro . Esto hace que la batería dure mucho, 6-7 días en uso pseudo-intensivo. La correa tiene un tacto agradable, el frontal parece ser receptivo a las rayadas. Ultimo mi pedido a www.screenknight.com, comprando un par de protecciones frontales para el reloj.

El diseño es atractivo y los botones están muy bien posicionados, en un par de días la experiencia de usuario en la navegación se consolida sin problemas. Sinceramente un gran acierto teniendo en cuenta que no dispone de pantalla táctil.

Si no conectamos el reloj a nuestro smartphone por bluetooth, la batería puede durar más de dos semanas. Obviamente un wareable sin conexión carece de sentido, pero a los amantes de los relojes mecánicos, tener un "watchface" de Bell & Ross en la muñeca no tiene parangón...

¿Qué lleva en el interior este reloj inteligente?

Las partes más importantes del reloj, se muestran en la imagen siguiente. Al detalle los componentes son:



  • Memoria flash de 32MBytes Micron (marcado en rojo).
  • CPU ARM Cortex-M3 MCU con un reloj máximo a 120MHz. Esta CPU está presente en otros weareables actuales como Fitbit y provocará ventas en millones de unidades en aplicaciones inimaginables. Por ejemplo, reproducción de un vídeo en T-Shirt (camiseta) con pantalla de papel, ejecutándose en el móvil. Estas son las características técnicas: ARM-based 32-bit MCU, 150DMIPs, up to 1 MB Flash/128+4KB RAM, USB, OTG HS/FS.
  • Un acelerómetro STM LIS3DH 3-ejes. Recordar que los acelerómetros son dispositivos electromecánicos que detectan las fuerzas de aceleración estática o dinámica. Es un condensador cuyas placas se mueven, cambiando su carga. Ese cambio de capacidad es detectada por la CPU y, en base a una tabla actúa con la acción requerida para ese movimiento detectado.
  • Un oscilador. El circuito es capaz de convertir la corriente continua en una corriente periódica con oscilación cuadrada.
  • Un magnetómetro MAG3110. Actúa como brújula, para detectar el sentido del reloj, hacia donde apunta.
  • Un sensor de ambiente. Permite detectar la luz y activar la luz según condiciones ambientales.
  • En la parte trasera de la placa tenemos el módulo para dotar de conectividad bluetooth al reloj, por gentileza de Panasonic (PAN1316).

¿Que podemos hacer con el reloj?

Existen miles de diseños personalizables para mostrar el tiempo actual en el reloj. Denominados watchfaces, son descargables desde la misma aplicación que Pebble facilita, para poder gestionar el reloj.

Conocer la persona que esta llamando, leer el texto en la pequeña pantalla de mensajes recibidos por aplicaciones de mensajería instantánea o por aplicaciones cliente de correo electrónico.

La app necesaria para gestionar el reloj está disponible para Android  y IOS, permite gestionar las 8 celdas disponibles en el reloj,  en las que se puede alojar, o bien una carátula de reloj (watchface) o una aplicación.

En  la captura de pantalla se muestra una app que permite temporizar una tarea, mediante cuenta atrás.

Existen app que son extensiones de otras aplicaciones que existen en el smartphone. TripAdvisor, Misfit, EvernoteRunKeeper...

Otras miles aplicaciones y juegos sólo son ejecutadas en el microordenador RISC, en sus 144 x 168 pixeles disponibles en su pantalla.

Mencionar que 8 celdas para alojar aplicaciones, no son suficientes si cargamos muchas carátulas de relojes.

En la imagen se puede observar los watchfaces disponibles (parte de arriba), indicando que sólo queda una celda / espacio libre, y en taquilla las carátulas que se puede cargar, descargando previamente alguna de las que tenemos activas, para poder liberar espacio.

En recuadro naranja tenemos la watchface que esta mostrándose en el reloj. Vemos que en taquilla tenemos disponible un watchface de Mondaine.

Ningún problema en la ejecución de todas las carátulas, excepto algunos reinicios inesperados en alguna de ellas. 

Personalmente pienso que Pebble ha marcado un inicio en lo que a weareables que se "atan" a la muñeca se refiere.

Para nada es el smartwatch mas tecnológico del mercado, pero si el primero y, muchas veces es más que una victoria. Hay actualmente alternativas más evolucionadas, con pantalla en color y táctil, micrófono y mucha más memoria. El coste de esos smartwatches hacen que sean inalcanzables para mucha gente.

Experiencia positiva disponer del primer reloj weareable del mercado. Altamente recomendable para todo aquel que quiera experimentar, con la explosión de nano-ordenadores, la interacción de cosas entre si. En esta caso el reloj y el teléfono móvil. La cuna de la internet de las cosas (IoT).

La cita:

“Si piensas que eres demasiado pequeño como para hacer una diferencia, es que no has dormido nunca con un mosquito en la habitación”. Proverbio Africano.