- Google AI Edge facilita la implementación de modelos de IA en dispositivos móviles, web y embebidos
- Con un framework multiplataforma unificado, es posible ejecutar el mismo modelo en Android, iOS, web y entornos embebidos
- Ofrece compatibilidad con diversos frameworks de machine learning (JAX, Keras, PyTorch, TensorFlow)
- Proporciona herramientas avanzadas de desarrollo como visualización y depuración de conversión de modelos, y construcción de pipelines personalizados
- Permite aprovechar entornos de IA generativa en el dispositivo como Gemini Nano en las plataformas Android y Chrome
Introducción a Google AI Edge
- Google AI Edge es una solución para la implementación de IA en el dispositivo y multiplataforma
- Es una plataforma que permite implementar y ejecutar modelos de IA de forma eficiente en múltiples entornos, como aplicaciones móviles, web y embebidas.
Características principales
- Almacenamiento en el dispositivo: los datos se mantienen en privado de forma local, lo que reduce la latencia y permite funcionamiento sin conexión
- Soporte multiplataforma: permite la ejecución del mismo modelo en Android, iOS, web y entornos embebidos
- Compatibilidad multiframework: ofrece compatibilidad con varios frameworks de machine learning como JAX, Keras, PyTorch y TensorFlow
- Stack completo de IA en el edge: integra soporte para frameworks flexibles, soluciones turnkey y aceleradores de hardware
Soluciones listas para usar y frameworks flexibles
API low-code para tareas comunes de IA
- Ofrece APIs multiplataforma low-code para manejar fácilmente tareas comunes de IA como IA generativa, visión, texto y audio
- Al estar basado en MediaPipe, permite una puesta en marcha e implementación rápidas
Implementación multiplataforma de modelos personalizados
- Los modelos de IA existentes entrenados con JAX, Keras, PyTorch y TensorFlow pueden ejecutarse con alto rendimiento en Android, iOS, web y dispositivos embebidos
- Con soporte de LiteRT, se obtienen eficiencia operativa y facilidad de implementación
Herramientas de conversión y visualización de modelos
- Ofrece funciones para visualizar el proceso de conversión y cuantización de los modelos
- Con un overlay de benchmarks de rendimiento, es posible depurar hotspots en proyectos de IA
Construcción de pipelines de ML personalizados
- Es posible encadenar múltiples modelos de ML, incluyendo lógica de preprocesamiento y posprocesamiento, para construir pipelines funcionales complejos
- Los pipelines acelerados basados en GPU y NPU pueden ejecutarse sin bloquear la CPU
Gemini Nano en Android y Chrome
- Con Gemini Nano, el más reciente modelo de IA generativa en el dispositivo de Google, es posible integrar funciones de IA generativa en diversos entornos como Android y Chrome
Conclusión
- Google AI Edge es una opción sólida para la implementación de tecnologías de IA distribuidas y en el dispositivo.
- Con compatibilidad multiplataforma, soporte para diversos frameworks, herramientas de productividad para desarrollo y el entorno más reciente de IA generativa, ofrece a startups y a la comunidad de desarrolladores de TI una experiencia eficiente y potente para adoptar IA.
1 comentarios
Opiniones de Hacker News
En mi opinión, la combinación de tensorflow lite y mediapipe fue excelente en su momento, pero da la impresión de que Google la ha dejado casi abandonada durante los últimos 3 años. Mediapipe casi no ha tenido actualizaciones significativas, y muchos de los modelos más usados están desactualizados o son lentos. TF Lite sí daba soporte para NPUs como el ANU de Apple, pero en mediapipe no había soporte alguno. Además, también había demasiada mezcla de marcas entre MLKit, Firebase ML, TF lite y LiteRT. En este momento, creo que es mejor usar onnxruntime junto con las bibliotecas hugging face transformers o transformers.js, o esperar a que executorch madure. Oficialmente, casi no he visto modelos SOTA recientes portados a tensorflow lite / liteRT (SAM2, EfficientSAM, EdgeSAM, DFINE, DEIM, Whisper, Lite-Whisper, Kokoro, DepthAnythingV2, etc.); básicamente todo gira más en torno a pytorch, aunque las comunidades de ONNX y MLX siguen siendo grandes
En https://github.com/google-ai-edge/gallery se puede ver una galería de casos de uso de ML/GenAI que corren directamente en el dispositivo. Ahí puedes probar o usar los modelos localmente
Me parece bueno que sigan aumentando las soluciones para ML on-device. Aun así, no estoy seguro de que me animaría a usarlo salvo que fuera para un caso de uso específico que yo tenga. También es difícil estimar qué tan complicado sería agregar un modelo nuevo que reciba entradas y salidas arbitrarias. He usado Onnx para inferencia de modelos entre dispositivos, y Onnx es realmente de bajo nivel, así que se le pueden aplicar prácticamente los pesos que quieras. En muchos trabajos, transformers.js puede envolver Onnx y así te ahorras tareas repetitivas como la decodificación (sin tener que implementar beam search por tu cuenta). Un recurso más amplio, similar a la guía mencionada arriba, es https://github.com/huggingface/transformers.js-examples. Las distintas soluciones que mencioné se pueden revisar en https://ai.google.dev/edge/mediapipe/solutions/guide
Esto es TensorFlow Lite + MediaPipe reempaquetado como una nueva “marca”
Me pregunto si alguien tiene experiencia usando esta solución. Yo perdí bastante tiempo intentando exportar modelos personalizados de pytorch a coreml, y fue una batalla: muchas cosas sin soporte, segfaults que interrumpían todo, y varios errores bastante tontos. Ojalá alguien pudiera asegurarme que esto no es igual de doloroso
Lo probé directamente y, por lo que vi, servía básicamente para reconstruir un modelo puro de pytorch como un modelo .tflite. En mi caso lo apliqué a un modelo finbert personalizado, y el tamaño del modelo quedó casi igual. Convertí una versión quantized, pero la salida fue bastante distinta. Según recuerdo, la documentación estaba orientada a modelos estándar de pytorch, por ejemplo los de la familia torchvision.models. Así que quizá funcione mejor con modelos de ese tipo. Aclaro que lo que intenté fue hace como 1 año, así que también puede que, por pura suerte, me haya salvado antes de un parche importante de bugs
Aquí hay información detallada https://ai.google.dev/edge/mediapipe/solutions/guide y el enlace al código abierto es https://github.com/google-ai-edge/mediapipe. Por lo que entiendo, esto es una forma unificada de desplegar modelos de IA que realmente corren en el dispositivo (edge). Se podría suponer que ocupa una posición parecida a la de “JavaScript dentro del stack de IA”. Me pregunto quién es el usuario objetivo de esta tecnología
Algunos modelos de mediapipe son bastante útiles, pero mediapipe en sí es una tecnología antigua que existe desde alrededor de 2019. Siempre se ha enfocado en correr IA en el edge, especialmente visión por computadora (por ejemplo, seguimiento facial). Cosas como el seguimiento facial siguen siendo útiles, pero en reconocimiento de imágenes y similares el mundo ha cambiado muchísimo
En cuanto al público objetivo, creo que son personas que quieren desplegar modelos de ML de forma multiplataforma. En especial cuando necesitan soportar código adicional que no se resuelve solo con el runtime de TFLite. Casos como LLM o visión por computadora encajan bien. Por ejemplo, si quisieras desplegar un reconocedor de gestos con la mano, tendrías que pasar por un proceso complejo como este: preprocesar la imagen de entrada a un espacio de color y tamaño específicos, copiar la imagen al GPU, ejecutar un modelo TFLite para detectar la mano, redimensionar la salida, ejecutar un modelo TFLite para reconocer el gesto y luego hacer el posprocesamiento hacia un resultado válido. Si quieres desplegar eso tanto en iOS como en Android, además de ejecutar TFLite necesitas una enorme cantidad de código auxiliar. El enfoque que Google eligió en Mediapipe fue empaquetar toda esa serie de pipelines y nodos de procesamiento comunes como una biblioteca en C++, para que tomes y uses solo las piezas necesarias. Esta biblioteca compila de forma multiplataforma y también ofrece opciones de aceleración por GPU. Supongo que dentro de Google debieron debatir si extender el runtime de TFLite con estas capacidades o crear una biblioteca separada como Mediapipe. Al final, parece que la dirección fue dejar que TFLite se enfoque en el “cálculo de tensores” en sí, y descargar tareas más amplias como LLM o procesamiento de imágenes a una biblioteca aparte
Me pregunto si esto es un producto nuevo o si es más bien una página de marketing que reúne las tecnologías existentes de MediaPipe bajo una sola narrativa. Al principio me emocioné bastante, pero me confundía qué era exactamente “Google AI Edge”. Luego investigué y parece que esto es un rebranding de https://developers.googleblog.com/en/introducing-mediapipe-solutions-for-on-device-machine-learning/
Es una solución que va varios años detrás de lo que ya ofrecen frameworks como CoreML o TimyML. Y primero Google tiene que demostrar que no va a desechar el producto enseguida solo por los resultados del próximo trimestre
En realidad eso no es correcto. Son dos productos completamente distintos. CoreML, dentro del ecosistema de Apple, te permite convertir un modelo de PyTorch a CoreML (.mlmodel) para correrlo con los aceleradores de iOS/Mac. Google Mediapipe es una enorme biblioteca en C++ para ejecutar flujos de ML de forma multiplataforma (ios/android/web). Incluso incluye Tensorflow Lite (ahora LiteRT) y puede actuar como procesador de grafos para tareas comunes de preprocesamiento, como redimensionar imágenes. Existe el meme de que Google abandona productos temprano, pero Mediapipe es open source, así que al menos eso hay que reconocerlo. Yo construí un producto de visión por computadora para iOS/Android a partir de un fork de Mediapipe; fue muy complejo, pero funcionó bien. Es una solución multiplataforma que jamás podrías construir con CoreML
TensorFlow Lite tiene un historial de varios años probado en decenas de miles de millones de dispositivos. Yo veo esta solución como Mediapipe y todo eso reunido, renombrado y extendido. Google lleva más de 5 años invirtiendo seriamente en ML on-device, así que no parece algo que vayan a matar de repente. Eso sí, da la impresión de que confunden a todos cambiando de nombre con demasiada frecuencia
¿No será que la parte de IA generativa no existe en el ecosistema de Apple? Si Apple llegara a algo como lo de Google, me parecería un cambio enorme. Personalmente, las funciones de chat me parecen muy útiles. Y también me pregunto cuándo demonios va a salir Swift Assist
Es simplemente tensorflow lite renombrado. Yo lo he usado desde 2019 en edge devices. CoreML también es excelente
CoreML surgió porque Apple vio TensorFlow y, en vez de colaborar, hizo su propia versión con funciones parecidas. TF ya existía desde 2 años antes de que anunciaran CoreML y ya era un framework exitoso. Hasta hoy, CoreML en la práctica no pasa de ser una interfaz BLAS propietaria, y no se usa ampliamente en la industria. La perspectiva de los desarrolladores de iOS da miedo
Este tipo de trabajo también se puede hacer con WebLLM