texto:   A-   A+
eliax

Google BigQuery y Prediction APIs, apuntan a inicios de Inteligencia Artificial masiva
eliax id: 8078 josé elías en sep 1, 2010 a las 12:03 AM (00:03 horas)
Hoy les presento una pieza más del "Plan Maestro" de Google para hacerse una parte intrínseca de nuestras vidas, y algo a los que arquitectos de software y Gerentes de Tecnologías deberían prestar mucha atención...

Se trata de dos proyectos de Google vagamente relacionados entre sí llamados BigQuery y el Prediction API, que Google reveló hace pocos días en su Google IO 2010, y que en mi opinión no obtuvieron la cobertura de los medios que se merecían, quizás porque a simple vista el nombre de estas tecnologías sugieren cosas intimidantemente complejas. Sin embargo, hagamos un esfuerzo en entenderlas, pues como veremos, detrás de ellas existe extrema simpleza.

BigQuery es algo que me recuerda a un proyecto experimental de Google llamado Fusion Tables del cual les hablé hace un año atrás acá mismo en eliax, pero que como verán, lleva el grado de simpleza al extremo.

Como podrán notar por el nombre "BigQuery" (en español sería algo como "Gran Consulta"), esta tecnología apunta a ser utilizado en cosas "grandes", y por grandes hablamos de verdaderamente grandes.

BigQuery es básicamente una base de datos en donde los datos los provees como tablas, pero en donde no tienes que especificar ni una sola regla de relación entre las tablas, o incluso si quieres indexar campos en esas tablas (es mas, ni siquiera tienes la opción de hacer estas cosas).

En otras palabras, Google infiere las relacione según las consultas que hagas, y no necesita indexación explícita de los datos, ya que estos son almacenados de una manera inherentemente indexada globalmente (es decir, es como si tu le pusiera un índice a todos y cada uno de los campos de tu base de datos, pero sin incurrir en problemas de eficiencia por hacerlo).

Uno se preguntaría, ¿pero cuál es el objetivo de esto? Y al ver el video que adjunto al final de este artículo comprenderán mejor: BigQuery fue diseñado para almacenar literalmente millones de millones de objetos, y (esta es la parte asombrosa) poder hacer consultas en tiempo casi real (entre 5 y 10 segundos para obtener una respuesta, aproximadamente).

Como verán en el video, una base de datos de 60 Mil Millones de registros se maneja como una sencilla base de datos local, y lo mejor de todo, con simple SQL. El hecho que Google haya decidido adoptar a SQL como el lenguaje de consulta es importantísimo, porque hace esta herramienta instantáneamente útil para cientos de miles de programadores que ya saben manejar SQL en todo el mundo.

Google además incluyó muchas funciones básicas de SQL (como por ejemplo, para manipular fechas y tiempos), así como otras bastante poderosas (como funciones de probabilidades y estadísticas), lo que hace de este sistema algo verdaderamente poderoso.

Noten que por el momento la idea es que uno cargue todos los datos en crudo, y después utilizar los APIs para hacer queries en modo de lectura.

Un ejemplo que verán en el video es como Google cargó toda la base de datos completa (es decir, incluyendo cambios históricos de artículos) de Wikipedia, y como es posible hacer queries en casi tiempo real (como por ejemplo, los artículos que mas cambios han recibido).

En el otro extremo tenemos a los Prediction APIs. Estos son unos APIs que dan acceso a patrones de reconocimiento artificiales para detectar patrones en datos masivos (o no tan masivos) y uno poder hacer predicciones (de ahí su nombre).

Un ejemplo que Google ofrece es utilizar el servicio para uno automáticamente predecir si un pedazo de texto está escrito en un lenguaje u otro. Para llevar esto a cabo, el proceso no podría ser mas sencillo:

1. Uno crea un archivo de texto plano para "entrenar" al sistema, en donde en cada linea uno escribe lo que sería el resultado esperado (output), y después de una coma uno escribe la entrada cruda (input). Algo como estas lineas:
"Inglés","To err is human, to forgive divine"
"Inglés","Imagination is more important than knowledge"
"inglés","You can if you think you can"
"Español","La vida es bella y no la podemos desperdiciar"
"Español","Vive cada día como si fuera tu último"
2. Uno llena el archivo con decenas, centenares, millares o millones de ejemplos que en este caso le dirán al Prediction API lo que es texto en inglés, y lo que es texto en español. Noten que el Prediction API no está limitado a simple texto, sino que también se pueden especificar valores numéricos y muchos otros patrones mas.

3. Uno sube ese archivo a Google, el cual es analizado y literalmente aprendido por el software de Inteligencia Artificial de Google, para aprender lo que es inglés y lo que es español. A los usuarios mas expertos les gustará saber que el Prediction API en realidad consiste de varios algoritmos tras bastidores, y que todos ellos son aplicados a los datos que subes, y el que se ajuste mejor a darte las respuestas correctas es el que se termina utilizando con tus datos, todo automáticamente.

4. Después de eso, el sistema está listo para hacer predicciones. Así que por ejemplo, si tu empresa recibe miles de emails de todas partes del mundo, y deseas automáticamente catalogar los emails por idioma (para por ejemplo, enviar una respuesta automatizada en el idioma de quien escribió el email), lo que puedes hacer es enviar el texto de cada email a tu Prediction API ya entrenado para que este prediga si el texto analizado es en inglés o español (o un sinnúmero de idiomas mas si así lo deseas).

Pero noten que este es un ejemplo sencillo. Google propone una lista inmensa de posibles usos, que van desde poder predecir la mejor ruta para enviar un paquete, hasta predecir cuáles productos de tu empresa un determinado cliente estaría dispuesto a comprar cuando se combine con otro, y desde detectar SPAM (emails no deseados) hasta predecir cuáles empleados de tu empresa están en riesgo de renunciar.

Y a propósito, ese último ejemplo Google nunca lo mencionó en el video que verán, pero es obvio que Google ya tiene un buen tiempo desarrollando y probando estas tecnologías, pues desde al menos el 2006 el Gerente General de la empresa ha dejado claro que la Inteligencia Artificial es el próximo gran reto de Google.

Por el momento estas tecnologías son de acceso limitado (debes aplicar para que Google apruebe tu solicitud de trabajar con estas, gratuitamente), pues en estos momentos Google aun las está afinando para el consumo masivo del público y desea retroalimentación de los primeros adoptantes.

Otros puntos a favor de estos emprendimientos de Google es que ha decidido proveer estos servicios como simples Servicios Web consumidos por HTTPS con un simple interfaz estilo REST, lo que hace la integración de estos servicios algo sumamente sencillo.

Google además te permite gestionar a quien le quieres dar acceso a tus datos, utilizando técnicas de ACLs (Access Control Lists), y además te permite instalar aplicaciones que tomen ventajas de estos servicios directamente en el Google App Engine.

Otra cosa interesante es que Google tiene muchos planes para expandir estas herramientas al usuario común. Por ejemplo, en el video que verán (y que dura cerca de una hora, pero que creo es un video obligatorio para todo técnico en computación) verán como pueden integrar los datos de BigQuery con la hoja de cálculos de Google Docs, permitiendo que un usuario que no sepa absolutamente nada de como funciona esto, pueda interactuar con modelos creados por usuarios mas técnicos.

Entonces en resumen, BigQuery es una herramienta para el análisis masivo de datos pasados o presentes, mientras que el Prediction API es una herramienta para predecir tendencias y acciones futuras.

Si seguimos por este camino, es posible que lleguemos a este escenario mucho antes de lo que muchos esperaban o siquiera creían iba a ser posible...

Página oficial del proyecto BigQuery

Página oficial del Prediction API

Google Storage for Developers (en donde almacenas tus datos masivos en Google para ser analizados por BigQuery y el Prediction API)

Video a continuación (enlace YouTube)...


autor: josé elías

Comentarios

  • Repitan después de mi: 'google va a dominar el mundo'

    • !google va dominar al mundo!

  • pos me huele a skynet :P jeje pero hablando de realidad pos ayudaria en muchos escenarios cotidianos ese tipo de tecnologias no solo para el uso empresarias ^^

  • Ohhh Elias con permiso "esto la cagó" como diriamos por aca, efectivamente da la impresión que ese nivel de asociación está a nivel cerebral, una tabla de asociación gigantesca (probablemente lo que ni saben 1000 personas juntas) totalmente heterogénea y asociativa, eso es buscar el sentido en el caos, podríamos decir que éste juego de herramientas "comprende".
    Es como estar construyendo la mente de dios por decir.
    (será q estoy puesto con el café?)

  • skynet will be back!!! XD

    ok fuera de bromas me parece un paso muy interesante a realizar pues sera precedente de todo tipo de tecnologia de nuestros sueños imaginse dentro de pocos años que los robots exploradores en otros planetas puedan decidir sus prioridades y quien sabe si logren decifrar uno que otro lenguaje de alguna nueva raza alienigena XD


    " vulcano ", " Nanu, Nanu "
    " ALF " , " solo tengo 10 organos importantes en mi cuerpo 8 de ellos son estomagos"
    " r2d2 " , " bip bi bop biiii "

    seria genial!!!!

    • Los vulcanos no dicen "nanu nanu", esos son los de Ork.

      Los vulcanos dicen "Larga vida y prosperidad".

      Y por si quieres más idiomas... qué te parece en Klingon?, algo así como "qaleghneS"

      Para más detalles busca el "The Klingon Language Institute"

      De hecho, hasta google soporta idioma klingon con el parámetro webhp?hl=xx-klingon

      • gracias por la aclaracion y doy mi mas sinceras disculpas admito que debi instruirme antes de hacer el post

  • Pues creo que Google ya lo esta implementando para uso masivo, recientemente en mi buzón de e-mail de gmail, apareció la opción "Prioritarios", que lo que hace es ver que correos lees con mas frecuencia, cuales contestas y los clasifica dándoles una prioridad, de esta manera filtra el spam, y te permite revisar primero los correos de los contactos que consultas mas frecuentemente, además puedes "entrenar" la herramienta subiendo o bajando de prioridad los correos....

  • O_o! como fue? senti un leve dolor de cabeza al tratar de entender e imaginarme hasta donde quiere llegar Google con todo esto... más alla de los limites de la imaginacion! Excelente!.

  • Parece que este API te permite crear y entrenar una red neuronal para que reconozca algun patron y en base al resultado aplicar un motor de reglas (como un sistema de IA). Mas que a "predecir" parece orientado a "interpretar" y "ejecutar".

Añadir Comentario

tu nombre
tu email
(opcional)
web personal
(opcional)
en respuesta a...
comentario de caracteres máximo
2 + 9 = requerido (control anti-SPAM)
 

"Excelente presentación. Tenía muchas ganas de verla y no me decepcionaste."

por "Jorge P" en sep 30, 2013


en camino a la singularidad...

©2005-2014 josé c. elías
todos los derechos reservados
como compartir los artículos de eliax