Gracias a Kubernetes, una empresa con base en Argentina logró superar los retos que supone ayudarles a las grandes marcas del mundo a que su publicidad digital se vea y funcione mejor.

Ver la plataforma de Herolens en acción es como estar frente a un truco de magia. Un par de clics aquí y allá, un cambio en este o aquél parámetro, y una pieza publicitaria se transforma completamente. Esa es la promesa que esta startup argentina nacida en 2015 les hace sus clientes: “Herolens construye soluciones que le permiten a las marcas crear, de forma sencilla, contenido auténtico, relevante y atractivo para sus usuarios”, dice Alan Karpovsky, uno de sus cofundadores y co-CEO.

Herolens es un Creative Management Platform (CMP) que automatiza todo el proceso de creación de contenidos creativos publicitarios en línea. La plataforma recibe como input dinámicos distintos tipos de información, como el estado del clima, la hora del día, los resultados de eventos deportivos o el catálogo de productos de una tienda en línea, y luego transforma estos inputs en piezas y creativas listas para ser publicadas y vistas en una multiplicidad de canales.



Luego, su tecnología propietaria le permite alimentar con esos datos automáticamente piezas gráficas en diferentes formatos: pueden ser banners para la web, la información que muestra una pantalla física en un almacén o un pre-roll dinámico en YouTube, por ejemplo.

En solo tres años, Herolens ‘sirve’ 2.000 millones de impresiones por mes de publicidad a 80 diferentes anunciantes y agencias de todo América Latina y Estados Unidos, con excelentes resultados. Entre ellos están algunas de las marcas más reconocidas de la región, como Mercado Libre, Coca Cola, Renault o Falabella.

Todo esto tiene que hacerse rápido. Algunos comercios cambian sus precios automáticamente, y las piezas tienen que reflejar la nueva información. Además, como explica Karpovsky, “el tiempo de carga también es vital para la experiencia de usuario”. Si un aviso no se muestra inmediatamente, el usuario final no lo verá, y el sitio web donde se imprime la pieza puede sufrir en sus cifras de tráfico.

Por otra parte, el comercio electrónico es un negocio estacional, que tiene picos muy fuertes. “En el Black Friday del año pasado tuvimos seis veces más requests que el promedio —explica Jorge Mozzino, CTO de la compañía— y todo eso es bastante difícil de articular”.

El reto no solo es mantener el rendimiento en esos momentos críticos, sino también administrar la infraestructura para que los costos de operación sean óptimos. Como dice Karpovsky, “no podemos salir corriendo a rentar y montar servidores cada Black Friday”.

Además, el negocio de la publicidad digital exige que los anunciantes tengan a la mano información que les permita tomar decisiones en tiempo real sobre el rendimiento de sus piezas, y hacer pruebas o cambios que aumenten la efectividad de los mensajes.

¿Cómo logra Herolens solucionar todos esos retos? Gracias a las herramientas de Google.

Escalar a medida y crecer

Recientemente, Herolens migró su plataforma a Kubernetes, la plataforma de mantenimiento de infraestructura creada por Google. Eso les permitió además comenzar a migrar a otras herramientas, como BigQuery o PubSub. Gracias a esto, han logrado solucionar sus necesidades de infraestructura y estar preparados para crecer su operación.

“Kubernetes nos permite ser mucho más eficientes a nivel costo”, dice Mozzino. Gracias a sus herramientas de administración de recursos, Herolens puede prever de forma más eficiente los recursos que necesitará utilizar en una temporada, comenzar a utilizarlos de manera oportuna y dejar de usarlos cuando no son necesarios.

Esto le permite a Herolens responder con tranquilidad en los picos de demanda de su servicio, y al mismo tiempo, hace que los costos de escalar su plataforma sean fáciles de administrar. “Además, para nosotros la plataforma es mucho más intuitiva y sencilla de usar que antes”, dice Mozzino. Esto le permite al equipo dedicar más tiempo a desarrollar nuevas herramientas y mejorar su producto, y menos tiempo en la operación cotidiana.

Además, la herramienta PubSub hace posible que los diferentes módulos de la plataforma de Herolens funcionen bien juntos y se comuniquen mejor. Eso ha mejorado la confiabilidad del servicio y optimizado su funcionamiento.

Por otra parte, la herramienta BigQuery le ha permitido a la empresa optimizar uno de los procesos más críticos: la generación de estadísticas y reportes. Desde que la usan, “la velocidad y flexibilidad que tenemos para analizar la información es mucho mayor”, dice Karpovsky. Eso les permite a sus  clientes tomar decisiones más oportunas sobre el rendimiento de alguna pieza o campaña, y tener información mucho más oportuna y conforme con sus necesidades específicas.

Con el respaldo de todas estas herramientas, Karpovsky, Mozzino y su equipo siguen desarrollando nuevas herramientas y funcionalidades que les permitan seguir conquistando a las grandes marcas de todo el mundo, y ayudándoles a que su publicidad digital se vea y funcione mejor que nunca.  El objetivo es ambicioso: como dice Karpovsky, “queremos ser el CMP número 1 del mundo de acá a 20 años”.




Publicado por Fred Alcober y Sandeep Gupta, en representación del equipo de TensorFlow
TensorFlow celebró su tercer evento para desarrolladores más grande del año hasta el momento en Sunnyvale (California) el 6 y el 7 de marzo de 2019. Aproximadamente 1,000 aficionados asistieron al evento de aprendizaje automático y decenas de miles ...



Publicado por Fred Alcober y Sandeep Gupta, en representación del equipo de TensorFlow
TensorFlow celebró su tercer evento para desarrolladores más grande del año hasta el momento en Sunnyvale (California) el 6 y el 7 de marzo de 2019. Aproximadamente 1,000 aficionados asistieron al evento de aprendizaje automático y decenas de miles miraron la transmisión en vivo.



A tres años de su lanzamiento, TensorFlow se convirtió en un ecosistema de aprendizaje automático (AA) de extremo a extremo que ayuda a impulsar la revolución del AA que está ocurriendo a nuestro alrededor. Se ha descargado más de 41 millones de veces y tiene más de 1,800 colaboradores en todo el mundo. Como una plataforma de AA completa, TensorFlow ayuda a un grupo diverso de profesionales, investigadores y nuevos usuarios a brindar soluciones nuevas e increíbles para resolver problemas difíciles de la IA. Por ejemplo:
En el evento para desarrolladores, anunciamos la versión Alfa de TensorFlow 2.0, que marca el comienzo de la era de TensorFlow 2.0 y brinda las capacidades poderosas de TensorFlow a más desarrolladores e investigadores, lo cual facilita más que nunca la compilación y el uso del AA. También anunciamos nuevas asociaciones comunitarias e iniciativas educativas con O’Reilly Media, Udacity, Deeplearning.ai en Coursera y fast.ai para ayudar a promover la colaboración de software libre y entrenar a la próxima generación de nuevos usuarios. Asimismo, escuchamos a nuestra comunidad y actualizamos por completo la documentación de los desarrolladores, y rediseñamos tensorflow.org para facilitar aún más los accesos a recursos e información.
Además de implementar las actualizaciones técnicas del equipo de TensorFlow, estuvimos en contacto con muchos de nuestros usuarios en una ronda de charlas brillantes en las que se expusieron aplicaciones increíbles. También organizamos espacios de hackers, sesiones informales y talleres donde los asistentes interactuaron con el equipo de TensorFlow, obtuvieron respuestas para sus preguntas y aprendieron y compartieron con los demás.
Estos son los aspectos destacados y los anuncios clave del evento.

Fácil de usar

Para TensorFlow 2.0, el enfoque principal ha sido lograr que la API sea más simple, más intuitiva y natural para todos los usuarios. Estamos haciendo que los componentes de la API se integren mejor con tf.keras, ya que es la API general recomendada para la mayoría de los usuarios. Esto permitirá que los desarrolladores pasen de la ingestión de datos, la transformación, la compilación de modelos, la preparación y el guardado a la implementación mucho más fácilmente. Lanzamos los conjuntos de datos de TensorFlow, una recopilación de conjuntos de datos de AA de uso frecuente para facilitar su utilización en TensorFlow.


Los desarrolladores principiantes en AA de Roma están usando TensorFlow para ayudar a los paleógrafos a descifrar manuscritos medievales

Junto con la versión Alfa de TensorFlow 2.0, proporcionamos herramientas de conversión y migración, y documentación como ayuda para la transición del código 1.x al 2.0. Estos y muchos otros recursos, ejemplos y estudios de casos están disponibles en el nuevo sitio web de TensorFlow: tensorflow.org.

Poder para experimentar e inventar

TensorFlow está acelerando las investigaciones de vanguardia. Esto comienza con la flexibilidad para que los investigadores creen prototipos de sus ideas de manera rápida, prueben varios experimentos y los repitan. Estamos optimizando la experiencia del desarrollo con las nuevas características de TensorFlow 2.0, como la función de eager execution predeterminada, los flujos de control intuitivos de Python, la optimización automática de eager code con tf.function y una mensajería de errores considerablemente mejorada.


Los investigadores de NERSC del Lawrence Berkeley National Laboratory, Oak Ridge National Laboratory y NVIDIA ganaron el Gordon Bell Prize por escalar exitosamente una aplicación de aprendizaje profundo en la supercomputadora Summit usando TensorFlow para estudiar los efectos del clima extremo

La investigación a gran escala del aprendizaje automático también requiere una informática masiva paralela. Desde el año pasado, hemos aumentado la velocidad de la preparación en 8 V100 a más del doble. Con una Cloud TPU v2, impulsamos el rendimiento 1.6 veces y, con la aceleración de Intel MKL, aumentamos más de 3 veces la velocidad de inferencia. Lograr que el rendimiento sea excelente de manera inmediata es uno de los principales objetivos de TensorFlow 2.0 y una parte fundamental de nuestro progreso hacia la versión final.
El ecosistema de TensorFlow incluye una gran recopilación de complementos muy poderosos que expanden TensorFlow de formas nuevas y útiles. Algunos de los complementos que describimos incluyen:
  • TensorFlow Federated: una biblioteca para que el aprendizaje federado aproveche los datos descentralizados, anunciada en el evento
  • TensorFlow Privacy: una biblioteca en desarrollo que ofrecerá herramientas para ayudar a preparar modelos con privacidad diferencial
  • TensorFlow Probability: una biblioteca para usar métodos probabilísticos en modelos de AA a fin de hacer predicciones para superar la incertidumbre e incorporar conocimientos especializados
  • TensorFlow Agents: una biblioteca para el aprendizaje por refuerzo en TensorFlow 2.0
  • Avances en el procesamiento de texto y secuencias, como la compatibilidad con el texto Unicode y el nuevo tipo de RaggedTensor para datos con formas no uniformes
  • Mesh TensorFlow: una biblioteca poderosa para que los investigadores compilen y preparen modelos de escala masiva con técnicas de paralelismo
  • Sonnet de DeepMind: un ejemplo de cómo los laboratorios de investigación pueden crear sus propias bibliotecas en el marco de trabajo modular y flexible de TensorFlow

Producción en todas las plataformas y en cualquier idioma

Trasladar los modelos de la investigación a la producción siempre ha sido una de las principales fortalezas y metas de TensorFlow. Al usar TensorFlow, puedes implementar modelos en una gran cantidad de plataformas, como servidores, la nube, dispositivos móviles y otros dispositivos periféricos, navegadores y muchas otras plataformas JavaScript.


Los ingenieros de AirBnB usan TensorFlow para clasificar adecuadamente las millones de imágenes de casas cargadas por día a gran escala

TensorFlow para la producción

TensorFlow Extended (TFX) brinda a los usuarios la administración completa del ciclo de vida del aprendizaje automático. Está compuesto por varias bibliotecas, y hemos anunciado nuevas características de estos componentes. No obstante, la innovación más significativa es la compatibilidad con la orquestación, que permite proporcionar a los usuarios una plataforma integrada de extremo a extremo (consulta un ejemplo aquí). Gracias a la compatibilidad con el orquestador de cada usuario, los componentes de TFX se integran con un almacén de metadatos. Este almacén hace un seguimiento de todas las ejecuciones de componentes, de los artefactos que se incluyeron y de aquellos que se produjeron. Esto habilita características avanzadas, como el seguimiento de experimentos y las comparaciones de modelos, que mejorarán en gran medida los casos de uso de producción.

TensorFlow para dispositivos móviles e Internet de las cosas

El uso de TensorFlow Lite, nuestra solución para la ejecución de modelos en sistemas móviles e incorporados, ha aumentado exponencialmente en todo el mundo y hoy en día se ejecuta en más de 2,000 millones de dispositivos móviles. De esta manera, lidera la última generación de AA en dispositivos. Ayuda a los usuarios a resolver casos de uso, como la generación de textos predictivos, la clasificación de imágenes, la detección de objetos, el reconocimiento de audio, el reconocimiento de texto a voz y de voz a texto, la segmentación de video y la detección de bordes, entre muchos otros.
En el evento, escuchamos de qué manera empresas globales como Alibaba XianYuin y Netease usan TensorFlow Lite para proporcionar a sus usuarios mejores experiencias de aplicación. También hablamos del increíble rendimiento del AA de TensorFlow Lite y cómo está impulsando el AA en aplicaciones de Google destacadas, por ejemplo, la Búsqueda, el Asistente, las Fotos y Pixel.
Ha habido mejoras importantes en la usabilidad general de TensorFlow Lite y las características de conversión de modelos, además de un mayor enfoque en la optimización (es decir, la cuantificación digital) y el rendimiento (es decir, la aceleración de GPU). También mostramos cómo TensorFlow Lite está impulsando el aprendizaje automático en el borde y la IoT en plataformas de como Coral TPU y los microcontroladores (MCU).

TensorFlow para JavaScript

JavaScript es uno de los lenguajes de programación más usados y TensorFlow.js brinda AA a los desarrolladores de JavaScript. Desde su lanzamiento, ha tenido una adopción impresionante de la comunidad, con más de 300,000 descargas y 100 colaboradores. En el evento, anunciamos TensorFlow.js versión 1.0. Las características más importantes de este lanzamiento incluyen mejoras de rendimiento significativas (MobileNet v1 es 9 veces más rápido en el navegador para la inferencia en comparación con el año pasado), muchos modelos nuevos ya disponibles para que los desarrolladores web los incorporen en las aplicaciones y compatibilidad con más plataformas donde se ejecuta JavaScript. Empresas como AirBnB y Uber, entre otras, usan TensorFlow.js en entornos de producción y vemos nuevos casos de uso increíbles a diario en la galería de proyectos TensorFlow.js de nuestra comunidad.
Además de la implementación, TensorFlow.js se puede usar para compilar y preparar modelos de aprendizaje automático directamente en JavaScript tanto en navegadores como en Node.js.

Swift para TensorFlow

También compartimos nuestro progreso con el nuevo paquete de Swift para TensorFlow. Con el reciente lanzamiento de la versión 0.2, los usuarios pueden ver un aumento de la usabilidad y pueden probar este paradigma nuevo de AA. Para que sea más fácil comenzar a trabajar con Swift, lanzamos un curso nuevo de aprendizaje automático con Swift para TensorFlow de fast.ai.

Compromiso con el crecimiento de la comunidad

El éxito de TensorFlow se debe en gran parte a su increíble comunidad en crecimiento de usuarios y desarrolladores. Desarrollamos TensorFlow 2.0 mediante una colaboración cercana con la comunidad a través de un proceso de RFC abierto, varios grupos de interés especial y los comentarios y las pruebas de nuestra comunidad de desarrolladores de Google expertos.
Lanzamos una campaña nueva de #PoweredByTF y estamos descubriendo proyectos increíbles creados por nuestros usuarios. Anunciamos el programa Google Summer of Code, en el que los estudiantes pueden postularse para trabajar con el equipo de ingenieros de TensorFlow en proyectos prácticos de desarrollo. También lanzamos un nuevo desafío Powered by TF presentado por DevPost específicamente para que los usuarios creen y compartan lo último y lo mejor con TensorFlow 2.0.
Los recursos educativos de buena calidad son esenciales para la democratización y la adopción del aprendizaje automático. Anunciamos dos recursos educativos nuevos para facilitar los primeros pasos de los principiantes y los estudiantes con TensorFlow. El primero es el curso 1 de deeplearning.ai, llamado “Intro to TensorFlow for AI, ML and DL”, que forma parte de la serie TensorFlow: From Basics to Mastery de Coursera. El segundo es Intro to TensorFlow for Deep Learning de Udacity. Ambos cursos están diseñados para desarrolladores, no requieren experiencia previa en aprendizaje automático y ya están disponibles.
Por último, anunciamos TensorFlow World, una conferencia de una semana dedicada a promover la colaboración de software libre y todo lo referido a TensorFlow. Esta conferencia, presentada en conjunto por O’Reilly Media y TensorFlow, se llevará a cabo en Santa Clara (California) en la semana del 28 de octubre. Nuestra visión es reunir a quienes forman parte del mundo de TensorFlow y darles la oportunidad de conectarse entre sí. Está abierta la convocatoria de propuestas para que los asistentes envíen ponencias sobre proyectos interesantes de TensorFlow o para que las empresas muestren sus soluciones con TensorFlow. Esperamos verlos allí.
En Google, creemos que la investigación y las aplicaciones de la IA avanzarán más rápido cuando todos los usuarios tengan acceso a las mejores herramientas, lo cual permitirá que todos participen. TensorFlow se dedica a facultar a todos los usuarios del AA. Tenemos el compromiso de trabajar con la comunidad a fin de facilitar el uso de TensorFlow para todos y nunca dejar de promover la IA.


Publicado por Wolff Dobson y Josh Gordon







TensorFlow 2.0 se enfoca en la facilidad de uso, con API que los principiantes y los expertos pueden usar para crear modelos de aprendizaje automático. En artículos recientes, como ...

Publicado por Wolff Dobson y Josh Gordon







TensorFlow 2.0 se enfoca en la facilidad de uso, con API que los principiantes y los expertos pueden usar para crear modelos de aprendizaje automático. En artículos recientes, como Lo que viene en TensorFlow 2.0 y Estandarización de Keras, se presentaron funciones nuevas y la dirección a la que apunta la plataforma.

Hoy, en la Cumbre de desarrolladores de TensorFlow, se anunció la posibilidad de probar una versión preliminar anticipada de TensorFlow 2.0.

Cómo comenzar

La mejor forma de comenzar a usar TensorFlow 2.0 Alfa es visitar el nuevo sitio web de TensorFlow. En tensorflow.org/alpha, es posible encontrar instructivos de etapas preliminares y guías para la versión Alfa. Cada instructivo incluido en los documentos de Alfa descargará e instalará automáticamente TensorFlow 2.0 Alfa. ¡Esto es solo el comienzo!

Se recomienda comenzar con los ejemplos de “Hello World” para principiantes y expertos y, posteriormente, leer guías como La eficacia de TensorFlow 2.0.
  • En el ejemplo para principiantes, se utiliza la API secuencial de Keras: la forma más simple de comenzar a usar TensorFlow 2.0.
  • En el ejemplo para expertos, se muestra la forma de escribir un pase adelantado de modo imperativo, la forma de escribir un bucle de capacitación personalizado mediante GradientTape y la forma de usar tf.function para compilar código automáticamente (¡con solo una línea!).
También existen diversas guías nuevas. Algunas de ellas son:
  • Importante: Una guía sobre AutoGraph (herramienta que permite obtener todo el rendimiento y la portabilidad de los gráficos, sin necesidad de escribir código de nivel de gráfico).
  • Una guía sobre la actualización de códigos (con una secuencia de comandos de conversión para facilitar la conversión de código de TensorFlow 1.x en 2.0).
  • Guías adicionales de etapas preliminares para Keras.
También existe una referencia de API revisada para ver los cambios implementados (ahora con muchos menos símbolos). Ten en cuenta que, si bien TensorFlow 2.0 se encuentra en desarrollo activo, los documentos de 1.x serán la página de destino predeterminada de tensorflow.org. Si deseas explorar la referencia de API, asegúrate de seleccionar la versión de TensorFlow correcta.

Instalación

Para instalar la versión Alfa, se recomienda crear un entorno virtual nuevo y usar lo siguiente:
# CPU
pip install tensorflow==2.0.0-alpha0
# GPU
pip install tensorflow-gpu==2.0.0-alpha0
Una referencia importante es esta guía de instalación, disponible en tensorflow.org, en la que se proporcionan más detalles. (Nota: Esta es una versión muy reciente que se actualizará en el futuro cercano). También es posible probar la versión Alfa en Colab mediante alguno de los nuevos blocs de notas en la sección de TensorFlow 2.0 Alfa del sitio web.

Funciones, no sesiones

Profundicemos en la forma en que dos funciones de 2.0 trabajan en conjunto: Eager Execution y @tf.function.

Uno de los cambios más importantes es que TensorFlow es diligente, lo que significa que las opciones se ejecutan inmediatamente al llamarlas. Como se sabe, en TensorFlow 1.x, primero es necesario construir un gráfico y, a continuación, ejecutar porciones del gráfico mediante tf.Session.run(). TensorFlow 2.0 simplifica radicalmente el uso de TensorFlow; las mismas opciones grandiosas ahora son mucho más fáciles de comprender y usar.

a = tf.constant([1, 2])
b = tf.constant([3, 4])
print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)


TensorFlow 2.0 utiliza Keras como una experiencia de desarrollador central. Con 2.0, puedes usar Keras de la forma que sabes, crear modelos con la API secuencial y usar la función de compilar y ajustar. Todos estos ejemplos conocidos de tf.keras de tensorflow.org funcionan de inmediato en la versión 2.0.

La opción fit() de Keras funciona bien en la mayoría de los casos; sin embargo, los usuarios que necesitan más flexibilidad tienen muchas más opciones. Examinemos un bucle de capacitación personalizado escrito en estilo TensorFlow 2.0 en este ejemplo:

# See https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb

def train_one_step(model, optimizer, x, y):
  with tf.GradientTape() as tape:
    logits = model(x)
    loss = compute_loss(y, logits)

  grads = tape.gradient(loss, model.trainable_variables)
  optimizer.apply_gradients(zip(grads, model.trainable_variables))

  compute_accuracy(y, logits)
  return loss

def train(model, optimizer):
  train_ds = mnist_dataset()
  step = 0
  loss = 0.0
  for x, y in train_ds:
    step += 1
    loss = train_one_step(model, optimizer, x, y)
    if tf.equal(step % 10, 0):
      tf.print('Step', step, ': loss',
                loss, '; accuracy', compute_accuracy.result())
  return step, loss, accuracy

Aquí se utiliza una opción GradientTape estilo Autograd y se aplican las gradientes manualmente mediante un optimizador. Esto puede resultar útil para escribir bucles de capacitación personalizados con un funcionamiento interno complicado, como el aprendizaje de refuerzo o la investigación (con lo que es más fácil trabajar sobre una nueva idea y obtener un optimizador más eficiente).
Eager Execution también es útil para depurar y supervisar código a medida que se ejecuta, ya que se puede usar el depurador Python para inspeccionar objetos, como variables, capas y gradientes. Actualmente, se usan construcciones de Python, como if, for y print(), dentro de nuestro bucle de capacitación.

Una vez que el código funciona de la manera deseada, se recomienda aumentar la optimización y la eficiencia de los gráficos. Para esto, se debe encapsular la opción train con @tf.function de decorador. Autograph se encuentra integrado en tf.function; por eso, no es necesario hacer nada especial para que las cláusulas if o for se ejecuten con eficiencia de gráficos.

# See https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb

@tf.function
def train(model, optimizer):
  train_ds = mnist_dataset()
  step = 0
  loss = 0
  accuracy = 0
  for x, y in train_ds:
     # as above, including the "if" and "print()"
  return step


Este código funcionará exactamente de la misma manera sin la anotación, pero se compilará en un gráfico que se podrá ejecutar fácilmente en GPU y TPU, o se podrá guardar en un SavedModel para utilizarlo más tarde.

La parte particularmente divertida de esto es que, al encapsular train() en @tf.function, train_one_step(), compute_loss() y compute_accuracy() también se convertirán automáticamente. Asimismo, es posible optar por encapsular solo una parte de los cómputos en @tf.function para obtener el comportamiento deseado.

Además, TensorFlow 2.0 es totalmente compatible con los estimadores. Consulta los nuevos instructivos para Árboles optimizados y Comprensión de modelos.

¡Las pruebas y los comentarios son bienvenidos!

Agradecemos enormemente los comentarios de los usuarios que prueban la versión más reciente y actualizan sus modelos. Únete al grupo de usuarios testing@TensorFlow. Te invitamos a participar en nuestras presentaciones de soporte de TF 2.0 semanales (martes, 2:00 p. m., hora del Pacífico).
Es probable que detectes errores, problemas de rendimiento y otros asuntos. Te recomendamos que los denuncies en nuestro rastreador de problemas con la etiqueta 2.0. Sería de gran ayuda que incluyas un ejemplo mínimo completo donde se reproduzca con exactitud el error.

Pronto habrá más novedades

Para permanecer actualizado sobre los problemas conocidos y el trabajo de desarrollo de TensorFlow 2.0, consulta nuestro Rastreador de proyectos de TF 2.0 en Github. Seguimos trabajando y mejorando TensorFlow 2.0, así que verás actualizaciones frecuentes en el paquete de compilación nocturno. Para aclarar, esta es una versión preliminar para desarrolladores. ¡Valoramos tus comentarios!

Además, si creaste algo asombroso con TF 2.0, desde aplicaciones para dispositivos móviles y proyectos de investigación hasta instalaciones de arte, nos encantaría oír sobre eso y destacar tu trabajo. Cuéntanos aquí.

Si desarrollaste ejemplos recientes que deseas compartir, considera enviar una solicitud PR para agregarla a la organización TensorFlow como parte de tensorflow/examples/community.


  • Sin mantenimiento: solo desarrollamos en Javascript o Typescript y subimos el código por medio de comandos a entornos de ejecución en Firebase y este se encargará de forma automática de proveer los recursos de procesamiento según los patrones de uso de los usuarios. No tendremos que preocuparnos de nada.
  • Seguridad: El código estará de forma segura, aislada totalmente del cliente.
  • Integrada con los servicios de firebase: es posible ejecutar una función a partir de eventos que son generados por servicios de firebase y google cloud.
  • Fácil desarrollo: firebase nos brinda todo un conjunto de herramientas, librerías para desarrollar de una forma rápida las funciones y con sus respectivas pruebas.
Por Juan Guillermo Gómez @jggomezt, GDG Cali founder. CEO DevHack. Firebase GDE.

Hace 12 años, un alto porcentaje de las aplicaciones o software se hospedaban en los servidores que mantenían las empresas. En estos años los grandes proveedores de software y de servicios que usan millones de usuarios, vieron que podrían brindar como servicio la infraestructura que tenían y con ello las buenas prácticas y tácticas con las que ofrecen servicios de calidad, escalables y con alta disponibilidad. Estos servicios de infraestructura se pueden adquirir de una forma sencilla, rápida y pagar por demanda,  esto dio inicio a lo que es la computación en la nube o cloud computing. Y desde ahí este paradigma no ha parado de crecer y tenemos cientos de servicios disponibles en la nube al día de hoy, desde almacenamiento, máquinas virtuales, aplicaciones, bases de datos, hasta máquinas para procesamiento de machine learning.



También han proliferado las APIs, que exponen funcionalidades o productos de estos proveedores como servicios para ser usados en otras aplicaciones. Por ejemplo vemos APIs de Google Maps, Chats, para procesamiento de imagen, para registro de logs, para envío de mensajes o de emails y muchos más. Además se fueron creando SDKs para los diferentes lenguajes de programación, que por medio de envoltorios o fachadas ocultan la “complejidad” del llamado a las APIs, con el propósito que el uso o consumo de estos servicios sean más fácil desde las aplicaciones. Estos SDKs nos permiten consumir servicios que normalmente desarrollamos cuando construimos una aplicación, como es la creación y autenticación de usuarios, almacenamiento, analíticas, registro de errores, uso de bases de datos, notificaciones entre otros. A estos servicios se les llama BaaS (Backend as a Service).


Además podemos crear lógica de negocio dividida en microservicios y a su vez en funciones específicas, que desarrollamos y desplegamos a un proveedor de la nube el cual se encargará de proveer la infraestructura necesaria para atender a la cantidad de usuarios que tengamos en cualquier momento de forma automática y brindar una alta disponibilidad que al final nos reduce la administración y mantenimiento de servidores. Esto es conocido como FaaS (Functions as a Service). Crear aplicaciones donde su arquitectura usa BaaS y FaaS se le conoce como serverless.

Serverless significa literalmente “sin servidor” y es crear aplicaciones usando un conjunto de servicios de backend y entornos de ejecución con escalamiento automático en el cual podemos alojar la lógica de negocio de las aplicaciones. Esto permite desarrollar una aplicación reduciendo tiempos y posiblemente costos operativos.

Firebase es un BaaS (Backend as a Service) el cual nos brinda los servicios más comunes al crear una aplicación móvil o web, servicios como creación y autenticación de usuarios, base de datos, almacenamiento, analíticas, gestión de errores, notificaciones, entre otros. Nos brinda más de 15 servicios con las mejores prácticas, la cual nos reduce el tiempo de desarrollo de una forma considerable.



Firebase también nos brinda una capacidad de cómputo que no mantenemos, entornos donde desplegamos nuestra lógica de negocio o componentes divididos o representados como funciones (Faas), que se pueden ejecutar con una petición HTTP o por eventos de otros servicios, ejemplo cuando se sube un archivo al almacenamiento o cuando se agrega un nuevo documento a una colección en la base de datos o cuando se crea un usuario entre otros. Este servicio se llama “firebase cloud functions”, la cual nos brinda las siguientes ventajas:

  • Sin mantenimiento: solo desarrollamos en Javascript o Typescript y subimos el código por medio de comandos a entornos de ejecución en Firebase y este se encargará de forma automática de proveer los recursos de procesamiento según los patrones de uso de los usuarios. No tendremos que preocuparnos de nada.
  • Seguridad: El código estará de forma segura, aislada totalmente del cliente.
  • Integrada con los servicios de firebase: es posible ejecutar una función a partir de eventos que son generados por servicios de firebase y google cloud.
  • Fácil desarrollo: firebase nos brinda todo un conjunto de herramientas, librerías para desarrollar de una forma rápida las funciones y con sus respectivas pruebas.

Hay que aprender muy bien cómo se comportan las “cloud functions” y realizar un seguimiento adecuado para no tener altos costos. Las arquitecturas serverless son las más adecuadas al momento de construir aplicaciones que deseamos agreguen valor al usuario en corto tiempo. Es por ello que te invito a realizar el curso de Firebase Cloud Functions si deseas conocer mas de como construir y probar una cloud function de manera práctica y alineado al mundo real.