Video Summary and Transcription
TensorFlow.js permite el aprendizaje automático en el navegador y más allá, con características como malla facial, segmentación corporal y estimación de postura. Ofrece capacidades de prototipado y transferencia de JavaScript, así como la capacidad de reconocer objetos personalizados utilizando la función de Proyecto de Imagen. TensorFlow.js se puede utilizar con Cloud AutoML para entrenar modelos de visión personalizados y proporciona beneficios de rendimiento tanto en el desarrollo de JavaScript como en Python. Ofrece interactividad, alcance, escala y rendimiento, y fomenta la participación y colaboración de la comunidad entre las comunidades de JavaScript y aprendizaje automático.
1. Introducción a TensorFlow.js
Hola a todos. Voy a hablarles sobre el aprendizaje automático en el navegador y más allá. JavaScript es uno de los únicos lenguajes que puede ejecutarse en todos estos entornos sin complementos adicionales. TensorFlow.js es una excelente manera de entrenar sus modelos de aprendizaje automático. Puede crear cualquier cosa que pueda imaginar, desde realidad aumentada hasta análisis de sentimientos. La forma más fácil es usar nuestros modelos pre-entrenados, que incluyen detección de objetos, segmentación corporal, estimación de postura y detección de puntos de referencia faciales. Puede ver esto en acción en vivo en el navegador, incluso usando la cámara web.
TensorFlow.js. Hola a todos. Voy a hablarles sobre el aprendizaje automático en el navegador y más allá. Así que empecemos.
Ahora, en primer lugar, ¿por qué querrías usar el aprendizaje automático en JavaScript? Esa es una gran pregunta. Y si miramos aquí, podemos ver que podemos usar el aprendizaje automático en cualquier lugar donde JavaScript pueda ejecutarse, y eso es realmente muchos lugares. El navegador web, el lado del servidor, el escritorio, el móvil e incluso el Internet de las cosas. Y JavaScript es uno de los únicos lenguajes que puede ejecutarse en todos estos entornos sin complementos adicionales. Y eso solo es muy, muy poderoso.
Y con TensorFlow.js, puedes ejecutar, reentrenar mediante transferencia de aprendizaje o escribir tus propios modelos de aprendizaje automático completamente desde cero si quieres. Y también puedes usar TensorFlow.js para ejecutar tus propios modelos de aprendizaje automático. Así que empecemos. TensorFlow.js es una excelente manera de entrenar tus modelos de aprendizaje automático, y puedes ejecutar, reentrenar o escribir tus propios modelos de aprendizaje automático completamente desde cero si así lo deseas, al igual que lo harías en Python en este momento, pero en JavaScript. Y eso significa que puedes crear cualquier cosa que puedas imaginar, desde realidad aumentada, reconocimiento de sonido, análisis de sentimientos y mucho, mucho más. Realmente depende de ti lo que crees.
Entonces, la forma más fácil es usar nuestros modelos pre-entrenados. Estos son clases de JavaScript muy fáciles de usar para muchos casos de uso comunes, como podemos ver en la diapositiva actual. Y aquí, podemos ver cosas como detección de objetos, segmentación corporal, estimación de postura, detección de puntos de referencia faciales y mucho, mucho más. Incluso el procesamiento del lenguaje natural es compatible en el navegador. Así que veamos algunos de estos en acción. Ahora, lo primero que tenemos es el reconocimiento de objetos. Esto utiliza Cocoa SSD en segundo plano y está entrenado en 90 clases de objetos. Puedes ver esto en acción en el lado derecho, con los perros resaltados con sus cuadros delimitadores, e incluso podemos saber que hay dos perros en esta imagen ya que ambos nos son devueltos. Así que veamos esto en acción en vivo para ver cómo funciona en el navegador.
De acuerdo, aquí hay una página web que creé que está ejecutando este código en vivo en Chrome, y si hago clic en cualquiera de estas imágenes, ahora puedo obtener la detección de objetos funcionando para cualquier objeto que encuentre en esas imágenes, incluso si son diferentes tipos de clases de objetos. Pero podemos hacerlo mejor que esto, podemos habilitar la cámara web y luego hacer esto en tiempo real, y puedes verme hablando contigo en este momento, y puedes ver cómo clasifica tanto a mí como a la cama en el fondo a veces mientras te hablo. Y esto es muy genial, porque no solo se ejecuta en un script del lado del cliente, sino que se ejecuta en el lado del cliente en un navegador, lo que significa que ninguna de estas imágenes de la cámara web se envía a un servidor para su clasificación. No solo eso ahorra costos, también significa que se preserva mi privacidad, y eso es realmente importante en estos días. Y con TensorFlow.js, puedes obtener eso de forma gratuita. Así que a continuación, tenemos la malla facial.
2. Malla facial, Segmentación corporal y Estimación de postura
Esta parte presenta la función de malla facial, que puede reconocer 468 puntos de referencia faciales en el rostro humano. También muestra el rendimiento en tiempo real de la malla facial en un navegador web, con la capacidad de mover el rostro y ver la superposición de la malla. Además, se demuestra el uso de la segmentación corporal y la estimación de postura, resaltando el potencial creativo de estos modelos.
Esto tiene solo 3 megabytes de tamaño y puede reconocer 468 puntos de referencia faciales en el rostro humano. Y esta es una característica realmente genial, y voy a mostrarte cómo usarla en la diapositiva ahora mismo.
Ahora, las personas están comenzando a utilizar esto para casos de uso del mundo real, como L'Oreal, y han creado una prueba de maquillaje de realidad aumentada, que te permite probar lápiz labial en este caso en realtime sin siquiera tener que estar físicamente presente en la tienda. Así que debes tener en cuenta que la mujer del lado derecho no está usando lápiz labial. Estamos utilizando la malla facial para comprender dónde están sus labios, y cómo aplicar el lápiz labial que ella desea en su rostro en realtime. Así que esto es súper genial, y estoy seguro de que vamos a ver más cosas como esta en el futuro.
Veamos la malla facial en acción para ver cómo funciona en el mundo real. Cambiemos a la demostración. Bien, ahora puedes verme hablando contigo con la malla facial funcionando en realtime en el navegador web al mismo tiempo. En el lado izquierdo aquí, puedes ver el aprendizaje automático en acción, y de hecho hay una malla de mi rostro superpuesta en el navegador web, y puedo mover mi rostro y es bastante robusto. Puedo abrir y cerrar la boca y los ojos, y puedes ver que todo eso sucede en realtime. Y estamos obteniendo aproximadamente 25 cuadros por segundo mientras se ejecuta en mi GPU a través de WebGL.
Ahora, por supuesto, también estoy transmitiendo esto en vivo, así que estoy utilizando algunos de mis recursos de GPU en este momento. Podría obtener más cuadros por segundo si quisiera, pero también puedo cambiar como desarrollador a Wasm, que es WebAssembly, para ejecutar en una CPU, o puedo elegir ejecutar en la CPU por sí misma, que es la forma más lenta de ejecución. Así que hay varias opciones de implementación. Y debido a que esto es JavaScript, no solo estoy haciendo el aprendizaje automático en el lado izquierdo, también puedo representar esta nube de puntos 3D de los resultados en el lado derecho utilizando 3.js. Y JavaScript desde el primer día ha sido diseñado para la presentación y visualización de información, por lo que tienes muchas bibliotecas, especialmente para gráficos 3D, para poder hacer esto de manera muy, muy fácil. Y puedes ver que puedo moverlo y ahora inspeccionar mi rostro desde diferentes ángulos, que se está construyendo en tiempo real en el navegador.
Bien, volvamos a las diapositivas. A continuación está la segmentación corporal. Esto te permite distinguir 24 áreas corporales en múltiples cuerpos, todo en realtime. Puedes ver esto en acción en la diapositiva, y en el lado derecho tenemos varias líneas que representan diferentes partes de cada cuerpo. Aún mejor, también tenemos la estimación de postura, esas líneas azules claras contenidas en cada uno de los cuerpos del lado derecho, que nos permiten estimar dónde está el esqueleto humano. Y con eso, se pueden crear demostraciones realmente poderosas, como la capacidad de reconocer cuando estás en una cierta postura o un gesto, o algo así. Y tenemos muchos datos geniales de nuestros instructores de yoga y este tipo de cosas, así que es súper genial ver el potencial creativo de este modelo. Y de hecho, con un poco de creatividad, podemos usar cosas como imágenes corporales de varias formas encantadoras. Aquí hay solo dos ejemplos que creé en mi tiempo libre. En el lado izquierdo, puedes ver cómo me vuelvo invisible mientras camino en mi cama, y observa cuando camino en la cama, la cama todavía se deforma. Y con esta imagen estática, puedo calcular las actualizaciones del fondo en tiempo real y solo eliminar mi cuerpo de las partes donde realmente está mi cuerpo. Y, por supuesto, no es perfecto, pero son los primeros pasos, y esto se hizo en solo un día.
3. JavaScript Prototyping and Transfer Learning
JavaScript permite una prototipación rápida, como un estimador de tallas de ropa que ahorra tiempo y dinero. Combinar TensorFlow.js con otras tecnologías abre posibilidades para crear efectos similares a Iron Man, dar vida a imágenes de revistas e incluso teleportación. Otra forma de usar TensorFlow.js es a través del aprendizaje por transferencia, que permite volver a entrenar modelos existentes con datos personalizados. Teachable Machine es una excelente herramienta para prototipar con detección de objetos, estimación de postura y detección de sonido.
Cosas muy, muy geniales, y aquí puedes ver cómo JavaScript te permite prototipar ideas de manera muy, muy rápida. En el lado derecho, también hice un estimador de tallas de ropa. Ahora, no sé tú, pero soy realmente terrible para saber qué tan grande soy cuando intento comprar ropa una vez al año. Y para diferentes marcas, tengo diferentes tallas. En algunas marcas, soy pequeño, en otras marcas, soy mediano. Así que nunca sé qué seleccionar al momento de pagar. Ahora, aquí, en menos de 15 segundos, puedo obtener una estimación de mi talla corporal para las medidas clave que les importan para esa marca en particular, y puedo seleccionar automáticamente al pagar la talla correcta para mí. Y eso me ahorra tiempo y dinero al no tener que devolver cosas cuando las necesito, y esto resolvió un problema que tenía en mi vida diaria.
A continuación, ¿qué tal si te das superpoderes? Un chico de nuestra community combinó nuestro modelo de malla facial con sombreadores WebGL para crear este efecto similar a Iron Man. Y aquí puedes ver láseres saliendo de sus ojos y boca de una manera realmente hermosa y realista, lo cual podría ser genial para una activación con una compañía de cine o algo similar para el lanzamiento de una nueva película. ¿O qué tal si lo combinas con otras tecnologías? Aquí, estoy usando WebXR y WebGL y TensorFlow.js juntos para extraer una imagen de un cuerpo de una revista y luego traer ese cuerpo al mundo real para que puedan inspeccionar el diseño de moda con más detalle. Incluso he visto a esta persona ir un paso más allá y hacer que la cara se anime y emita sonidos, lo cual es realmente genial. Pero, ¿por qué detenerse ahí? Podemos ir un paso más allá todavía. Al agregar WebRTC a esto, que significa Comunicación en Tiempo Real a través de la Web, incluso puedo teleportarme. Entonces, aquí puedo segmentar mi cuerpo usando imágenes del cuerpo de mi habitación. Puedo transmitir esa segmentación a través de internet y luego reconstruirla en un espacio físico real utilizando WebXR. Y esto me permite hablar con mis amigos y familia en los tiempos actuales donde no podemos viajar tanto de una manera más significativa que una llamada de video rectangular. De hecho, tal vez en el futuro, mis presentaciones se entreguen en esta forma. ¿Quién sabe? Pero hay cosas muy emocionantes por delante.
Ahora, la segunda forma de usar TensorFlow.js es a través del aprendizaje por transferencia. Y esto te permite volver a entrenar modelos existentes para trabajar con tus propios datos personalizados. Ahora, por supuesto, si eres un experto en aprendizaje automático, puedes hacer todo esto de forma programática. Pero hoy, quiero mostrarte dos formas más fáciles de comenzar. La primera es Teachable Machine. Este es un sitio web que puede hacer tanto el entrenamiento como la inferencia completamente en el navegador web. Esto es genial para prototipar, para cosas como detección de objetos, estimación de postura y detección de sonido. Creo que en el futuro se admitirán más modelos, así que estate atento. Pero veámoslo en acción para darte una idea de cómo funciona. Bien, si vamos a teachablemachine.withgoogle.com, puedes seguir si quieres. En realidad, podemos seleccionar uno de los tres proyectos para elegir.
4. Reconocimiento de objetos personalizados con la función Image Project
Hoy vamos a reconocer un objeto personalizado utilizando la función Image Project. Podemos elegir reconocer mi rostro o una baraja de cartas. Después de asignar nombres significativos a las clases, grabamos muestras y entrenamos el modelo. El modelo categoriza con éxito los datos de entrenamiento y predice los objetos con alta confianza. Este prototipo se puede exportar como un modelo.
Hoy vamos a utilizar la función Image Project para reconocer un objeto personalizado. Así que hacemos clic en eso, y luego se nos presenta una pantalla como esta. A la izquierda, tenemos una serie de clases para los objetos que queremos reconocer. Si quieres reconocer más de dos cosas, podemos hacer clic en el botón Agregar Clase aquí si así lo deseamos. Pero hoy vamos a reconocer mi rostro o una baraja de cartas.
Así que vamos a darle algunos nombres más significativos. Voy a llamar al primero Jason para representarme y a la segunda clase la llamaré Cartas, que representa las cartas. Ahora, todo lo que tenemos que hacer es permitir el acceso a nuestra cámara web, y verás una vista previa en vivo de las cartas. Y verás una ventana emergente en el lado izquierdo para la primera clase.
Ahora solo necesito grabar algunas muestras de mi rostro para asegurarnos de tener algunos datos de entrenamiento para este tipo de clase. Así que vamos a hacer eso. Voy a mover mi cabeza para obtener algo de variedad. Ahí vamos. Y podemos ver que tengo... ¿cuántas imágenes tengo allí? Alrededor de 38 imágenes de muestra. Perfecto. Ahora voy a hacer lo mismo con la segunda clase, la baraja de cartas. Y puedes ver aquí un bonito conjunto de cartas de juego. Así que voy a mantener para grabar de nuevo, pero esta vez voy a obtener aproximadamente la misma cantidad de imágenes, pero de las cartas. Tengo 42 allí. Eso es lo suficientemente cercano. Todo lo que necesito hacer ahora es hacer clic en Entrenar Modelo.
Y ahora, en vivo en el navegador web, esto va a intentar categorizar los datos de entrenamiento que le he presentado en comparación con los que se le enseñó previamente. Y puedes ver que en menos de 30 segundos ya está completo, y actualmente está prediciendo JSON como resultado con un 99% de confianza, lo cual es bastante bueno. Y si acerco mi baraja de cartas, puedes ver que cambia a cartas con un 100% de confianza. Así que JSON, cartas, JSON, cartas. Y puedes ver lo fácil que fue hacerlo y lo robusto que es en realidad para detectar esos dos objetos.
Ahora, por supuesto, esto es un prototipo. Si esto fuera lo suficientemente bueno para lo que necesito, puedo hacer clic en Exportar Modelo aquí. Puedo ver que tengo un montón de cartas.
5. Usando Cloud AutoML y TensorFlow.js
Puedo ver que tengo un montón de cartas. Puedo hacer clic en el botón de Descargar. Entonces eso es Teachable Machine. Cloud AutoML nos permite entrenar modelos de visión personalizados en la nube. Puedes subir carpetas de imágenes a Google Cloud Storage. Una vez que esté listo, puedes hacer clic en Exportar y elegir TensorFlow.js. Es súper simple usar este modelo entrenado de calidad de producción. Primero, importa la biblioteca TensorFlow.js. Segundo, importa la biblioteca AutoML. Luego, llama a await tf.autoML loadImageClassification con model.json.
Puedo ver que tengo un montón de cartas. Puedo ver que tengo un montón de cartas. Puedo ver que tengo un montón de cartas aquí. Puedo hacer clic en el botón de Descargar. Y, por supuesto, luego puedo copiar este código y usarlo en mi propio sitio web si así lo elijo.
Entonces eso es Teachable Machine. Y genial para prototipos. Sin embargo, si tienes gigabytes de data, es posible que desees usar algo más robusto para modelos de calidad de producción. Así que volvamos a las diapositivas y veamos cómo hacerlo.
Entonces Cloud AutoML nos permite entrenar modelos de visión personalizados en la nube, y podemos implementar en TensorFlow.js al final, lo cual es súper útil. Todo lo que tienes que hacer es cargar carpetas de imágenes que deseas clasificar en Google Cloud Storage, como puedes ver aquí, y luego hacer clic en el botón Siguiente. Una vez que hagas eso, se te preguntará si deseas optimizar tu modelo para una mayor precisión o predicciones más rápidas o algún tipo de compromiso entre los dos. Luego estableces un presupuesto y lo dejas entrenando durante horas o días, dependiendo de cuántos data hayas subido allí, y te devolverá los mejores resultados. Entrenará tu modelo y probará muchos hiperparámetros diferentes, muchos tipos diferentes de modelos de visión por computadora, y tratará de averiguar qué funciona mejor con tus data. Una vez que esté listo, puedes hacer clic en Exportar y elegir TensorFlow.js, como se muestra aquí en el círculo, que descargará los archivos model.json que necesitas ejecutar en el navegador web. Y con eso, puedes usarlo en tu propia página web y agregar tu propia experiencia de usuario y interfaz de usuario, y así sucesivamente.
Puede que te preguntes, bueno, ¿qué tan difícil es realmente usar este modelo entrenado de calidad de producción? Y en realidad, es súper simple. De hecho, es tan simple que cabe en una diapositiva. Así que veamos este código. Primero, vamos a importar la biblioteca TensorFlow.js usando esta etiqueta de script. Segundo, vamos a importar la biblioteca AutoML con la segunda etiqueta de script. Debajo de esto, he creado una imagen, que es solo una imagen de una margarita, que encontré en algún lugar de internet. Esta es la imagen que queremos clasificar. Podría ser un fotograma de la cámara web o lo que sea. Pero esto, lo he tomado por simplicidad una daisy.jpg. Ahora, la parte importante del código está en estas tres líneas de JavaScript aquí. La primera simplemente llama await tf.autoML loadImageClassification y luego le pasamos model.json. Entonces model.json aquí es el archivo que descargamos en la página anterior. Y esto se alojará en algún lugar en tu red de entrega de contenido. Ahora, como esta es una operación asíncrona, tenemos que usar la palabra clave await en JavaScript para indicarle a JavaScript que espere a que termine antes de continuar secuencialmente después de eso. Una vez que se haya cargado, porque el modelo puede tener un par de megabytes de tamaño, podemos pasar al siguiente paso.
6. Clasificación de imágenes con TensorFlow.js
Para clasificar una imagen usando TensorFlow.js, necesitas obtener una referencia al elemento de la imagen, llamar al método model.classify y esperar a que la operación asíncrona termine. El objeto de predicciones contendrá información importante sobre la imagen, lo que te permitirá realizar diversas acciones con solo unas pocas líneas de código.
Entonces, a continuación, obtenemos una referencia a la imagen que queremos clasificar. En este caso, llamamos a document.getElementById daisy, que se refiere a la imagen de la margarita que se muestra arriba. Y ahora tenemos una referencia a esa en memoria. Todo lo que necesitamos hacer ahora es llamar a await model.classify y pasarle la imagen que deseas clasificar. Y esto, nuevamente, es una operación asíncrona porque esto puede llevar varios milisegundos en ejecutarse, lo cual, por supuesto, en términos informáticos, es mucho tiempo. Así que queremos esperar a que termine y luego tendremos un objeto JSON asignado a esta constante de predicciones aquí a la izquierda, que luego puedes recorrer y ver todas las cosas que cree que son importantes saber sobre la imagen. Y con eso, puedes hacer lo que quieras. Puedes activar algo para que se ejecute. Podrías controlar un robot. Podrías hacer lo que quisieras solo con unas pocas líneas de código. Así que súper genial y súper funcional.
7. Estructura de la API y beneficios de rendimiento
Ahora, la tercera forma de usar TensorFlow.js es escribir tu propio código. Hoy me centraré en los superpoderes y beneficios de rendimiento de usar TensorFlow.js en el navegador. Tenemos dos APIs: la API de Capas de alto nivel, similar a Keras, y la API de Operaciones de bajo nivel para operaciones matemáticas. Nuestros modelos predefinidos se basan en estas APIs, que pueden ejecutarse en diferentes plataformas, incluyendo CPU, WebGL y WebAssembly. En el lado del servidor, podemos ejecutarlo usando Node.js, con los mismos beneficios de rendimiento que Python.
Ahora, la tercera forma de usar TensorFlow.js es escribir tu propio código. Y, por supuesto, profundizar en eso sería una charla completamente diferente en sí misma. Así que hoy me centraré en los superpoderes y beneficios de rendimiento de por qué podrías considerar usar TensorFlow.js en el navegador.
Quiero darte una visión general de cómo está estructurada nuestra API. Tenemos dos APIs. Una es la API de Capas de alto nivel, que es muy similar a Keras, si estás familiarizado con Python. De hecho, si usas Keras, básicamente son las mismas firmas de funciones, así que deberías sentirte como en casa. Y luego, para aquellos de ustedes que quieran ir a un nivel más bajo, tenemos la API de Operaciones, que es la capa más matemática que te permite hacer cosas como álgebra lineal y demás.
Y luego aquí tenemos nuestros modelos predefinidos, que se basan en nuestra API de Capas. Esa API de Capas se basa en nuestra API de Operaciones, y esto entiende cómo comunicarse con diferentes entornos, como el lado del cliente. Y con lado del cliente aquí, nos referimos a cosas como el navegador web. Ahora, esos entornos en sí mismos pueden ejecutarse en diferentes plataformas. Y en este caso, podemos ejecutar en cosas como la CPU, que es la forma más lenta de ejecución, WebGL para obtener aceleración de la tarjeta gráfica, y WebAssembly, o WASM abreviado, para un mejor rendimiento en la CPU en dispositivos móviles. Y lo mismo ocurre en el lado del servidor. Podemos ejecutarlo usando Node.js en el lado del servidor, y esto puede comunicarse con las mismas bibliotecas de enlace de TensorFlow CPU y GPU que tiene Python. Sí, eso significa que obtienes el mismo soporte AVX y la misma aceleración CUDA que en Python. Y de hecho, como veremos más adelante, esto significa que los beneficios de rendimiento son prácticamente los mismos. Ejecutamos tan rápido, y a veces más rápido que Python para ciertos casos de uso.
8. Desarrollo en Python y beneficios de rendimiento
Si decides desarrollar tu aprendizaje automático en Python, nuestra implementación de Node.js admite la carga de modelos Keras y modelos TensorFlow Save sin necesidad de conversión. Sin embargo, si deseas ejecutar un modelo Save en el navegador web, deberás utilizar nuestro convertidor de línea de comandos de TensorFlow.js. En cuanto al rendimiento, convertir el pre y post-procesamiento a Node.js puede generar mejoras significativas. HuggingFace convirtió su modelo Distilbert para ejecutarse en Node.js, lo que resultó en un aumento del rendimiento de dos veces. La ejecución en el lado del cliente ofrece privacidad, menor latencia y costos más bajos, lo que la hace ideal para ciertas aplicaciones.
Ahora, si decides seguir desarrollando tu aprendizaje automático en Python, lo cual muchos de ustedes, por supuesto, harán, eso está completamente bien también. Nuestra implementación de Node.js admite la carga de modelos Keras y modelos TensorFlow Save sin necesidad de ninguna conversión. Así que siempre y cuando estés ejecutando en el lado del servidor en Node, no se requiere ninguna conversión para utilizarlo e integrarlo, por ejemplo, con un equipo web. Eso es bastante conveniente. Y luego, si decides tomar tu modelo Save y quieres ejecutarlo en el navegador web, entonces deberás utilizar nuestro convertidor de línea de comandos de TensorFlow.js para hacerlo. Eso convertirá el formato del modelo Save en el formato .json que necesitamos para ejecutarlo en el navegador web. Y eso solo es necesario si deseas ejecutarlo en el lado del cliente en el navegador.
Hablemos ahora del rendimiento. Aquí podemos ver, para MobileNet V2, los tiempos promedio de inferencia para GPU y CPU. Observando los resultados de la GPU, puedes ver que para tf.python obtenemos un resultado de 7.98 milisegundos, y para Node.js obtenemos 8.81. Básicamente, están a menos de un milisegundo de diferencia, lo cual es prácticamente el mismo resultado. Ahora, lo importante a tener en cuenta aquí es que si tienes mucho pre y post-procesamiento, y lo conviertes para que se escriba en Node.js, obtienes los beneficios de un compilador en tiempo de ejecución que es único en JavaScript. Y esto puede generar mejoras significativas en el rendimiento más allá de la inferencia en sí. Veamos cómo HuggingFace utilizó esto. Aquí podemos ver cómo HuggingFace convirtió su modelo Distilbert para ejecutarse en Node.js. Básicamente, convirtieron las capas de pre y post-procesamiento para que se escribieran en JavaScript en Node, y esto resultó en un aumento del rendimiento equivalente a dos veces. Lo importante a tener en cuenta aquí es que estamos utilizando el modelo guardado desde Python, pero al convertir las capas de pre y post-procesamiento, obtenemos un aumento de velocidad de dos veces debido a la compilación en tiempo de ejecución de JavaScript en Node. Y hablando de eso, si estás pensando en ejecutarlo en el lado del cliente, también hay algunas ventajas a considerar. Estas son difíciles o imposibles de lograr en el lado del servidor en Node o Python. La primera es la privacidad. Si estás ejecutando completamente en el lado del cliente, ninguno de los datos del sensor se enviará a un servidor para la inferencia. Y eso significa que la privacidad del cliente se mantiene por completo. Y eso es muy importante para ciertos tipos de aplicaciones, como las médicas o legales, o si estás tratando de cumplir con ciertas reglas, como el GDPR, donde es posible que no se te permita transmitir datos a un servidor diferente. El segundo punto es que, si no hay un servidor involucrado, puedes lograr latencias más bajas. Por lo general, puede llevar 100 milisegundos o más si estás utilizando un dispositivo móvil para comunicarte con un servidor y obtener el resultado. Si estás utilizando TensorFlow.js en el dispositivo, puedes eliminar a ese intermediario y, en esencia, tener una latencia más baja para tus tiempos de inferencia, lo que resulta en un mayor número de cuadros por segundo para permitir aplicaciones en tiempo real. El tercer punto es un menor costo. Como no hay servidores involucrados, puedes ahorrar costos significativos en la contratación de GPUs, RAM y CPUs, que podrían estar funcionando las 24 horas del día, los 7 días de la semana para una aplicación de aprendizaje automático ocupada. Al hacer todo esto en el lado del cliente, no necesitas contratar esas piezas de hardware en primer lugar. Solo necesitas tener el CDN web estándar para entregar el sitio web.
9. Interactividad, Alcance, Escala y Rendimiento
JavaScript proporciona interactividad y capacidades de presentación avanzadas. El alcance y la escala de la web permiten un fácil acceso a los modelos de aprendizaje automático. TensorFlow.js en el navegador ofrece soporte para GPU en una amplia gama de dispositivos. Node.js permite el uso de modelos guardados de TensorFlow sin necesidad de conversión. JavaScript permite programar en un solo lenguaje y cuenta con un gran ecosistema de NPM para Node.js. El rendimiento se mejora con las uniones C y la compilación en tiempo real.
Cuarto punto, interactividad. JavaScript desde el primer día ha sido diseñado para presentar información de una manera avanzada. Y tenemos bibliotecas muy maduras para gráficos 3D, visualización de datos, gráficos y mucho más. Esto te permite prototipar cosas muy complejas de manera muy rápida. Y esta es una de las ventajas de usar JavaScript.
Y luego el quinto punto es el alcance y la escala de la web. Cualquier persona en el mundo puede hacer clic en un enlace y usar tu modelo de aprendizaje automático en un navegador web. Lo mismo no es cierto si quieres hacer esto en Node o Python. Porque en primer lugar, tienes que entender cómo instalar Linux. En segundo lugar, necesitas instalar TensorFlow. Luego necesitas instalar el controlador CUDA y luego necesitas clonar el repositorio de GitHub de la persona, leer su archivo README y si todo eso funciona a tu favor, entonces podrías tener la oportunidad de ejecutar su modelo de aprendizaje automático. Puedes ver cómo hay una barrera de entrada mucho más baja aquí si tu objetivo es que tu investigación sea utilizada por muchas personas en todo el mundo. Y eso puede ser realmente genial porque te permite identificar sesgos o errores que podrían haber pasado desapercibidos si solo 10 personas lo estuvieran usando en lugar de 10,000.
Con TensorFlow.js en el navegador, podemos ejecutar en GPU en el 84% de los dispositivos debido a WebGL. No estamos limitados solo a las tarjetas gráficas NVIDIA. También podemos ejecutar en las de AMD, y así sucesivamente. Y si miramos el lado del servidor, también podemos ver algunos de los beneficios de ejecutar en Node.js. Nos permite usar el formato de modelo guardado de TensorFlow sin ningún tipo de conversión o penalización de rendimiento, y podemos ejecutar modelos más grandes de los que podemos hacer en el lado del servidor. Por supuesto, puede haber límites de memoria de GPU a los que te puedes enfrentar si intentas enviar un modelo de un gigabyte a través de la web al dispositivo del cliente.
Tercer punto, te permite programar en un solo lenguaje. Si ya estás utilizando JavaScript, esto es una gran ventaja. Actualmente, el 67% de los desarrolladores utilizan JavaScript en el desarrollo, según la encuesta de Stack Overflow 2020. Y hay un gran ecosistema de NPM para Node.js. Tenemos muchos módulos y bibliotecas disponibles para que los ejecutes, por lo que también hay un gran soporte de la comunidad. Y luego, quinto punto, rendimiento, como hablamos antes, tenemos las mismas uniones C que el TensorFlow original en Python, que se pueden utilizar para obtener la paridad en cuanto a la velocidad de inferencia, y tenemos el impulso del compilador en tiempo real para el pre y post-procesamiento si decides convertirlo a Node.js.
Entonces, con eso, terminemos con algunos recursos que puedes utilizar para comenzar y aprender más. Si hay una diapositiva que quieras marcar, probablemente sea esta. Aquí puedes ver todos los recursos que necesitas para comenzar con TensorFlow.js. Nuestro sitio web en la parte superior, puedes encontrar muchos recursos y tutoriales para ayudarte en tu camino. Tenemos nuestros modelos disponibles en tensorflow.org.js.models.
10. Getting Started and Community Engagement
Hoy te he mostrado algunos ejemplos, pero hay muchos más disponibles en GitHub para que puedas comenzar rápidamente. Si quieres profundizar, te recomiendo leer Deep Learning with JavaScript. Únete a nuestra comunidad y echa un vistazo al hashtag madewithtfjs en Twitter o LinkedIn para ver los increíbles proyectos que se están creando. Comienza con el código de plantilla en nuestro repositorio de GitHub. El aprendizaje automático ahora está al alcance de todos, por lo que los artistas, músicos y creativos pueden aprovecharlo. Mantente en contacto en Twitter y LinkedIn para más preguntas.
Hoy solo te he mostrado tres o cuatro, pero hay muchos más disponibles que también puedes usar directamente para comenzar súper rápido. Somos completamente de código abierto, por lo que también estamos disponibles en GitHub, así que si eres ambicioso, siéntete libre de echarle un vistazo. Tenemos un grupo de Google para preguntas técnicas más avanzadas, donde hay moderadores del grupo. Y por supuesto, incluso tenemos ejemplos de código en glitch para ayudarte a comenzar con el código de plantilla y entender cómo tomar datos de una cámara web y pasarlos a algunos de nuestros modelos. Con eso, puedes comenzar muy, muy rápido.
Ahora, si quieres profundizar, te recomiendo leer Deep Learning with JavaScript de Manning Productions, escrito por personas de mi equipo y del propio equipo de TensorFlow. Es un gran recurso para pasar de cero a héroe. Y con eso, te animo a unirte a nuestra comunidad. Si revisas el hashtag madewithtfjs en Twitter o LinkedIn, encontrarás cientos de proyectos que las personas están creando cada semana en todo el mundo. No puedo mostrarlos todos en la presentación de hoy, pero aquí tienes un vistazo de algunas de las cosas geniales que están sucediendo en la comunidad.
Entonces, mi última pregunta es, ¿cómo puedes comenzar con el código de plantilla? Bueno, creo que lo primero que debes hacer es ir al repositorio de GitHub. Así que mi última pregunta para ti es, ¿qué vas a crear? Aquí tienes una última pieza de inspiración de un chico de nuestra comunidad en Tokio, Japón. Él es bailarín durante el día, pero ha utilizado TensorFlow.js para hacer este video de hip-hop con un aspecto realmente genial, como puedes ver en la diapositiva. Y mi punto al decir esto es que el aprendizaje automático realmente está al alcance de todos, y estoy muy emocionado de ver cómo todos los demás en el mundo comenzarán a usar el aprendizaje automático ahora que se vuelve más accesible. Artistas, músicos, creativos. Todos tienen la oportunidad ahora de usar el aprendizaje automático, y si lo haces, por favor utiliza el hashtag madewithtfjs para que podamos destacarte en nuestras futuras presentaciones y publicaciones de blog. Muchas gracias por escuchar, y con eso, no dudes en mantenerte en contacto. Estoy disponible en Twitter y LinkedIn para más preguntas, y espero hablar contigo pronto. Gracias. Bueno, gracias por tenerme hoy. Es genial estar aquí. Bueno, estoy realmente feliz de tenerte.
JavaScript and Machine Learning Collaboration
Mi primera pregunta es sobre la cantidad de cámaras utilizadas. TensorFlow.js con JavaScript tiene el potencial de ser más ampliamente utilizado que la versión de Python. No necesitas tener mucho conocimiento en ML para usar modelos predefinidos en JavaScript. Para aquellos con experiencia en aprendizaje automático, usar TensorFlow.js en el lado del cliente ofrece ventajas como la privacidad y la escalabilidad. Utiliza la herramienta adecuada para el trabajo correcto y haz que tu investigación de vanguardia en ML sea accesible para todo el mundo. La colaboración entre las comunidades de JavaScript y aprendizaje automático puede llevar a grandes innovaciones.
Mi primera pregunta, y la pregunta es mía, ¿cuántas cámaras tienes? Parecía que tenías como seis cámaras, todas desde diferentes ángulos. Definitivamente tengo más de dos cámaras aquí. Es muy bueno para las demostraciones y para hacer cosas en el navegador web y grabar al mismo tiempo, así que es genial. Sí, fue agradable poder disfrutar de tu micrófono brillante desde seis ángulos, así que sí. Muchas gracias por tu increíble configuración de equipo. Hace que el entrenamiento de ML sea más rápido si tengo RGB, ¿verdad? Buen material. Podemos entrenar con eso.
Entonces vamos a pasar a una pregunta del público. ¿Es TensorFlow con JavaScript la nueva tendencia? ¿Crees que será más grande que usar TensorFlow con Python en algún momento? Si solo miramos el número de desarrolladores que usan JavaScript, actualmente, creo que el 69% de los desarrolladores profesionales usan JavaScript en producción. Entonces, si solo miramos el número puro de desarrolladores que existen y que usan JS, definitivamente hay una audiencia más grande que, digamos, Python. ¿Todos esos desarrolladores de JS usarán aprendizaje automático? Esa es la pregunta más importante, por supuesto. Pero creo que a medida que pasa el tiempo, las personas se darán cuenta de cómo pueden usarlo en los entornos web para desbloquear nuevas cosas para sus clientes y así sucesivamente. A medida que crece, creo que tiene el potencial de convertirse en algo más ampliamente utilizado que tal vez la versión de Python. Pero el tiempo dirá cómo va eso, supongo. Así que depende de si las personas comienzan a usarlo más en los entornos web. Sí.
Para mí, soy un desarrollador web. Y me da miedo entrar en aprendizaje automático. Quiero decir, solo quiero mover cajas y hacer consultas de medios y sitios web receptivos. Y luego dices, básicamente, si tienes ese conocimiento, si puedes hacer desarrollo web con JavaScript, puedes hacer aprendizaje automático con TensorFlow. Sí. Quiero decir, no necesitas tener mucho conocimiento en ML para usar nuestros modelos predefinidos de los que hablé en la presentación de hoy. Siempre y cuando sepas algo de JavaScript y cómo llamar a una función, básicamente, puedes obtener algunos resultados y luego hacer lo que quieras con eso, al igual que usarías cualquier otra API de caja negra de Internet o algo así. Así que es súper fácil de usar para que las personas comiencen. Pero para aquellos de ustedes que tienen más experiencia en aprendizaje automático, tal vez ya lo estén haciendo en Python, y solo quieren obtener el alcance y la escala de la web, porque eso es algo que tal vez no obtengan si lo hacen solo en el lado del servidor en su propio entorno personalizado y no lo escalan a millones de personas, entonces hay algunas otras ventajas que puedes obtener al hacerlo con TensorFlow.js en el lado del cliente, como la privacidad y todas estas otras cosas de las que hablamos en la presentación. Así que creo que, ya sabes, usa la herramienta adecuada para el trabajo correcto. Y si tu objetivo es hacer que tu investigación de vanguardia en ML sea popular y accesible para todo el mundo, entonces JS es una excelente manera de hacerlo porque las personas que no son tan técnicas tienen la oportunidad de usar tu increíble investigación. Y me encantaría ver más de esto uniendo a las dos comunidades. Así que imagina si algún músico, artista o creativo pudiera tomar esa increíble investigación que has hecho y aplicarla de una manera muy diferente a lo que originalmente imaginaste, pero para crear algunas grandes innovaciones de todos modos. Como el estimador de talla de ropa que vimos hoy, pero que creé en unos días.
Understanding Math and TensorFlow.js
La importancia de tener un buen entendimiento de matemáticas al usar TensorFlow.js es similar al aprendizaje automático basado en Python. Si bien adentrarse en los niveles más bajos puede requerir aprender matemáticas, trabajar con modelos predefinidos o investigaciones existentes a menudo simplifica el proceso. La mayoría de los usuarios no necesitarán crear modelos personalizados desde cero, ya que ya existen modelos disponibles para diversas tareas. Sin embargo, si surgen requisitos específicos, puede ser necesario volver a entrenar con datos personalizados. TensorFlow.js ofrece accesibilidad a usuarios de todos los niveles, proporcionando tanto APIs de alto nivel como de bajo nivel. Permite a los usuarios comenzar con lo básico y explorar gradualmente conceptos más avanzados.
Y la persona original que creó body pics puede que no haya pensado en eso. Puede que no haya pensado en usarlo en ese caso de uso. Pero, por supuesto, cuando las personas tienen problemas en sus vidas, encuentran soluciones muy creativas para esos problemas. Y estoy emocionado de ver qué sucede en el futuro con eso también.
Sí, básicamente las personas pueden hacer un álbum de portada. Entonces, una pregunta de seguimiento a eso es, ¿qué tan importante es tener un buen entendimiento de matemáticas si quiero comenzar a usar TensorFlow.js? Es igual que en Python. Es algo muy simple. Es algo muy simple. Es algo muy simple. Es igual que el aprendizaje automático basado en Python. Obviamente, si quieres profundizar y desentrañar todas las capas de lo que está sucediendo detrás de escena, eventualmente encontrarás mucho álgebra lineal y estadísticas y todas esas cosas que impulsan todo esto. Entonces, si quieres ir a un nivel más bajo, entonces, por supuesto, debes comenzar a aprender algo de matemáticas para ajustar las cosas. Pero si estás trabajando con modelos predefinidos u otras investigaciones que han hecho las personas, a menudo muchas de estas cosas son muy simples. Creo que tal vez el 5% de las personas realmente necesitarán escribir su propio modelo personalizado desde cero. La mayor parte del tiempo, puedes reutilizar investigaciones existentes. Si quiero hacer detección de puntos de referencia faciales, ya tenemos modelos para eso. No necesito reinventar la rueda necesariamente, a menos que necesite entender diferentes puntos que no están disponibles en ese modelo actual. En ese punto, necesito comenzar a profundizar en esto para volver a entrenarlo con mis datos personalizados para aprender a reconocer los datos. Así que es algo muy simple. Puedo comenzar a usar mis datos personalizados para aprender a reconocer esas cosas. Pero si no necesitas hacer eso, entonces puedes hacerlo muy bien sin profundizar demasiado en el montón de cosas allí. Así que es fácil probarlo sin que sea demasiado aterrador.
Sí, creo que sin importar tu nivel, todos tienen la oportunidad de jugar con TensorFlow.js. Y si las personas quieren profundizar, todas las cosas buenas a las que estás acostumbrado en el mundo de Python también existen allí. Tenemos una API similar a Keras y también la API matemática de nivel inferior también existe, al igual que la versión original basada en Python de TensorFlow. Entonces, sin importar tu nivel, puedes sumergirte por completo o puedes quedarte en los niveles altos y tener una visión más abstracta de todo. Sí, pero básicamente es como cualquier cosa que aprendas, ¿verdad? Puedes probarlo poco a poco y estará bien. Y cuanto más familiar te vuelvas, puedes ir más profundo y más profundo y adentrarte en la madriguera del conejo, básicamente. Exactamente. Y creo que esa es la forma de hacerlo, sinceramente.
Explorando el Aprendizaje Automático y la Comunidad de JS
Las personas comienzan en un nivel alto, exploran y optimizan su pasión. No me considero un experto, pero uso el aprendizaje automático de manera creativa. Mi formación es en ingeniería web y he estado explorando el aprendizaje automático en los últimos años. Ser un defensor del desarrollador de TensorFlow.js me permite adentrarme más en el aprendizaje automático mientras disfruto de JavaScript. La comunidad de JS es más joven que Python, pero está comenzando a desarrollar herramientas similares. Tenemos danfo.js, inspirado en pandas, y damos la bienvenida a contribuciones para replicar estas herramientas en JS.
Creo que muchas personas comienzan en un nivel alto, encuentran algo en lo que están apasionados, comienzan a experimentar con eso, y luego quieren optimizarlo de alguna manera o ajustarlo ligeramente. Y es en ese punto cuando comienzan a profundizar en ese campo y, ya sabes, hacen grandes cosas. Así que, sí, poco a poco, las personas van en la dirección correcta según sus necesidades, creo, y exploran según lo necesiten. Sí. De acuerdo. Tenemos otra pregunta. ¿Cuánto tiempo te llevó convertirte en un experto en aprendizaje automático, como lo eres ahora? No me considero un experto. Todavía estoy aprendiendo todos los días. Siempre me inspiran las cosas increíbles que están surgiendo del resto de la comunidad y de mis colegas. Así que tengo un largo camino por recorrer en mi viaje, seguro. Creo que simplemente uso el aprendizaje automático de manera creativa en formas en las que la gente no siempre piensa. Por ejemplo, algunas de las demostraciones que mostré hoy. Así que creo que me conocen por ese tipo de cosas. Pero mi viaje en el aprendizaje automático, mi formación es en ingeniería web, y solo han pasado un par de años y solo han sido los últimos tres o cuatro años que realmente comencé a explorar el lado del aprendizaje automático. Y tuve mucha suerte de obtener este puesto como defensor del desarrollador de TensorFlow.js, donde ahora tengo la oportunidad de profundizar mucho, mucho más en el lado del ML y seguir disfrutando de mi pasión por JavaScript también. Así que, sí, tengo mucho que aprender por delante, y estoy emocionado de hacerlo con todos ustedes también y espero compartir mis aprendizajes a medida que avanzo. Aprender en público. Siempre es divertido. Exactamente. Entonces, la siguiente pregunta es en realidad de mi colega Sergey. Python tiene un gran conjunto de herramientas para el análisis de datos exploratorios, como pandas. Jupyter, Math, Plotlib. ¿Cómo es para JS? ¿Cuál es el mayor obstáculo para la comunidad de JS en el aprendizaje profundo? Sí. Obviamente, somos mucho, mucho más jóvenes que la comunidad de Python. Solo tenemos alrededor de, bueno, poco más de tres años en comparación con TensorFlow Python, que tiene más de tres años ahora. Sin embargo, estamos comenzando a ver que nuestra comunidad de JS está portando algunas de estas cosas a JS. Así que hay una biblioteca llamada danfo.js, que es básicamente inspirada en pandas. Y las personas están comenzando a crear estas herramientas y cosas en JS también. Y, por supuesto, nos encantaría que cualquier persona interesada en ayudarnos a hacer y replicar estas cosas en JS, por favor, contribuya. Somos de código abierto, y por supuesto, para estas otras cosas, no es necesario contribuir a TensorFlow.js en sí mismo.
Oportunidades y Seguridad Laboral en TensorFlow.js
Podría ser una biblioteca independiente. Ahora es un buen momento para involucrarse. La seguridad laboral en el aprendizaje automático está en demanda. Depende de las necesidades de la empresa. JavaScript permite una implementación fácil de modelos de ML. Los trabajos crecerán a medida que aumente la conciencia. Aprender las habilidades ahora es excelente para el futuro. Los desarrolladores de JS tienen el potencial de optimizar diversas industrias con ML.
Podría ser una biblioteca independiente. Y ahora es un momento realmente bueno para involucrarse porque, como mencioné, el 69% de los desarrolladores están utilizando JavaScript y recién están comenzando a familiarizarse con el aprendizaje automático. Y esto podría ser una gran oportunidad para crear la biblioteca que todos usen dentro de cinco a diez años cuando se vuelva más común en la comunidad de JavaScript. Así que esta es una gran oportunidad para subirse a ese tren, por así decirlo. Pero sí, estamos comenzando a ver que la comunidad construye estas cosas de forma orgánica, y estoy seguro de que eso continuará mejorando con el tiempo.
Y esta es otra pregunta mía. Quiero decir que la seguridad laboral es... Digamos que lo dejo todo y me dedico por completo a TensorFlow.js, no sé, unos meses de estudio. ¿Cómo es la seguridad laboral? Quiero decir, el aprendizaje automático, en general, está en demanda. Creo que en este momento a la mayoría de las personas no les interesa el aspecto de la seguridad laboral. Y creo que eso es algo bueno. Creo que eso es algo bueno. Creo que en este momento la mayoría de las personas asociarían el aprendizaje automático con roles basados en Python, típicamente, especialmente en instituciones académicas y áreas de investigación, incluso en Google, por ejemplo. Sin embargo, creo que depende de las necesidades de la empresa a la que estés tratando de ingresar. Si es una startup web, tal vez hagan sistemas de gestión de contenido o algo así para sitios web y cosas por el estilo. Y tal vez quieran tener un factor diferenciador que los haga destacar entre la multitud. Tal vez quieran agregar inteligencia a su pila web para ese sistema de gestión de contenido. Tal vez puedas tener resúmenes automáticos de texto o recorte inteligente de imágenes cuando las personas carguen imágenes. Y todas estas cosas se pueden hacer ahora en JavaScript muy, muy fácilmente utilizando algunos de los modelos que hemos visto hoy. Y sí, básicamente, creo que estos trabajos crecerán a medida que las personas se den cuenta de que realmente es posible hacerlo en el navegador. Todavía estamos en las etapas iniciales, como mencioné, pero a medida que aumente la conciencia de las personas, también lo harán los trabajos y otras cosas que vienen con eso. Sí. Entonces, está bien. Aprender las habilidades ahora es excelente para los próximos años cuando esos trabajos comiencen a aparecer, cuando las personas realmente necesiten esto. Porque como desarrolladores de JS, estamos en una posición única en la que... Cuando creamos un sitio web, ese sitio web podría ser para prácticamente cualquier industria. Podría ser para un agricultor. Podría ser para una marca de moda. Podría ser para cualquier cosa. Y todas estas diferentes verticales tienen el potencial de ser optimizadas de alguna manera utilizando algún tipo de flujo de ML.
ML en Diversas Industrias
El aprendizaje automático se puede aplicar en diversas industrias, como la moda y la agricultura, para optimizar procesos y mejorar las experiencias de usuario. Por ejemplo, se puede utilizar un estimador de tallas de ropa en la industria de la moda, mientras que la categorización de productos como manzanas y naranjas puede agilizar las operaciones agrícolas. La plataforma web también ofrece oportunidades para experiencias sin fricciones sin necesidad de instalar aplicaciones. El aprendizaje automático puede optimizar los puntos de contacto en los sitios web, mejorando las experiencias de usuario.
Entonces, para la moda, tal vez algo como el estimador de tallas de ropa. Para la agricultura, tal vez les permita enviar automáticamente los productos al lugar correcto mediante la categorización de manzanas y naranjas, sea lo que sea. Por lo tanto, existe el potencial de aplicar el aprendizaje automático en sus procesos. Y tal vez también haya espacio para algo en la plataforma web para una experiencia más fluida y sin fricciones, donde no necesites instalar una aplicación. Simplemente ingresas al sitio web. En ese caso, hay un punto de contacto que podría necesitar ser optimizado utilizando el aprendizaje automático en ese caso de uso. Cosas como esas podrían surgir en el futuro.
Integración con TensorFlow en el lado del servidor
Los desarrolladores de JavaScript deben aprender TensorFlow.js para garantizar la seguridad laboral. TensorFlow.js funcionará de la mano con el sistema de servicio de TensorFlow en el lado del servidor. Dependiendo de la situación y el conocimiento del equipo, integrar TensorFlow.js con Node.js puede simplificar la integración con los equipos web. Convertir las capas de pre y post-procesamiento a Node.js puede llevar a mejoras significativas en el rendimiento. La combinación adecuada de herramientas depende del caso de uso y la familiaridad del equipo con diferentes lenguajes.
Sí. Así que los desarrolladores de JavaScript que están viendo esto, lo escucharon aquí primero. Es bueno para su seguridad laboral. Aprendan TensorFlow. Tengo una pregunta de Jeroen. ¿TensorFlow.js hará que el sistema de servicio de TensorFlow en el lado del servidor sea obsoleto? No. No, creo que funcionará de la mano con estas cosas. Como mencioné, depende de sus ingenieros y de lo que estén acostumbrados. No quiero empezar ninguna guerra de lenguajes aquí. Creo que si conoces Python y estás familiarizado con Python, úsalo sin duda. Pero si estás integrando con un equipo web, es posible que el equipo web esté usando Node.js. Y en ese caso, es posible que prefieran cargar tu modelo de Python en Node, lo cual puedes hacer con TensorFlow.js en Node. Y puedes hacerlo sin ninguna conversión, de hecho. Puede ser un poco más complicado pero facilita la integración con otros equipos, tal vez, dependiendo de las pilas que ya estén utilizando. Y muchos equipos de ingeniería web estarán utilizando algo como Node.js. Y también vimos hoy que al convertir las capas de pre y post-procesamiento de toda tu pila, de tu pila de aprendizaje automático, si conviertes eso a Node, puedes obtener los beneficios de un compilador en tiempo real de JavaScript que vimos con HuggingFace para la implementación de DistillBERT. Esto llevó a un aumento de velocidad de dos veces en el rendimiento de extremo a extremo, lo cual es genial solo con la conversión a Node.js en el lado del servidor. Así que creo que depende de tu caso de uso y del conocimiento de tu equipo y todas estas cosas. No tengo ninguna preferencia fuerte entre usar uno u otro, pero usar la combinación adecuada puede depender de tu situación y lo que estés tratando de hacer.
Ejecutando TensorFlow.js sin servidor
Si estás ejecutando en el lado del cliente, todo está completamente fuera del servidor, excepto la entrega inicial de activos. Puede funcionar completamente sin conexión si usas una aplicación web progresiva. Puedes hacerlo completamente sin servidor si así lo eliges. Muchas gracias, Jason. Solo un recordatorio, Jason se dirige ahora a la sala de conferencias. Si tienes más preguntas o quieres pasar un rato, ve al Chat Espacial. Gracias por unirte, Jason. Estoy deseando ver lo que haces. ¡Salud!
Sí. De acuerdo. Tenemos tiempo para una respuesta breve. Esta es una pregunta del usuario Quest. Charla muy inspiradora. Hablamos sobre los beneficios de seguridad de ejecutar TensorFlow.js sin servidor. ¿Es posible mantener todo fuera del servidor, o hay cosas que no funcionarían sin el servidor? Un minuto, adelante.
Sí, si estás ejecutando en el lado del cliente, entonces todo está completamente fuera del servidor, excepto la entrega inicial de esos activos. En ese sentido, puede funcionar completamente sin conexión si usas algo como una aplicación web progresiva o algo similar. Así que sí, puedes hacerlo completamente sin servidor si así lo decides.
Genial. Bueno, muchas gracias, Jason. Solo como recordatorio, Jason se dirigirá ahora a la sala de conferencias. Si tienes más preguntas o simplemente quieres pasar un rato con Jason, ve al Chat Espacial, encuentra el enlace a continuación en el horario. Y muchas gracias por unirte, Jason. Y sí, tal vez me ensucie las manos este fin de semana. Excelente. Estoy deseando ver lo que haces. Y gracias por recibirme. Salud. Adiós. Adiós.
Comments