ExecuTorch y TensorFlow Lite

Hace unas semanas, en la conferencia PyTorch, el equipo lanzó ExecuTorch , que es una herramienta que ejecuta modelos de PyTorch en dispositivos como teléfonos inteligentes, dispositivos portátiles y sistemas integrados.

Hace cuatro años, PyTorch Mobile se introdujo con un propósito similar, pero ExecuTorch utiliza un tamaño de memoria significativamente más pequeño y una huella de memoria dinámica, lo que resulta en un rendimiento y portabilidad superiores en comparación con PyTorch Mobile.

ExecuTorch no depende de TorchScript y, en cambio, aprovecha el compilador PyTorch 2 y la funcionalidad de exportación para la ejecución en el dispositivo de los modelos PyTorch.

No es sólo una reescritura de PyTorch Mobile; Aprovecha el compilador PyTorch 2, lo cual es un avance significativo. No limitado a móviles, el rendimiento incluye capacidades de hardware de CPU, NPU y DSP.

El equipo dijo que era un desafío para los dispositivos adaptarse a la compatibilidad con TorchScript, por lo que los modelos más nuevos optan cada vez más por el compilador PyTorch 2 para mejorar el rendimiento, lo que significa que el ya impopular Pytorch Mobile verá menos usuarios y soporte automático para ExecuTorch.

Por otro lado, TensorFlow Lite, que se lanzó en 2017 , también es una herramienta que convierte los modelos de TensorFlow a un formato más eficiente que se puede ejecutar en dispositivos perimetrales.

Para ello, utiliza un compilador llamado TensorFlow Lite Converter para convertir el modelo a un formato de búfer plano que puede ejecutarse mediante un tiempo de ejecución liviano.

Ahora, para comparar los dos sistemas, es imperativo comprender también cómo se utilizan los marcos en el aprendizaje automático.

TensorFlow Lite y ExecuTorch

ExecuTorch y TensorFlow Lite son herramientas diseñadas para implementar modelos de aprendizaje automático en dispositivos de vanguardia, como teléfonos inteligentes, dispositivos portátiles y sistemas integrados. Sin embargo, estas herramientas presentan diferencias significativas debido a los marcos en los que se basan.

PyTorch es innegablemente más favorable que Tensorflow y la mayoría de los expertos e investigadores de la industria lo prefieren a su contraparte más engorrosa. Si bien PyTorch Mobile tenía una compatibilidad limitada en dispositivos de borde, la introducción de ExecuTorch ha llenado ese vacío.

ExecuTorch se basa en PyTorch 2.0. Es más popular que Torch Script porque es fácil de usar y el compilador es compatible con una gama más amplia de dispositivos que TensorFlow.

Una de sus características destacadas es su compatibilidad con dispositivos Android, lo que la convierte en una opción atractiva para quienes son nuevos en la implementación del aprendizaje automático o necesitan compatibilidad con dispositivos Android.

Por el contrario, TensorFlow Lite, basado en el marco de TensorFlow, se ha establecido como una opción confiable conocida por su rendimiento y eficiencia excepcionales dentro del marco de TensorFlow. Para mejorar su adaptabilidad, TensorFlow actualizó la implementación de modelos LLM en Android.

ExecuTorch es elogiado por su facilidad de uso, amplia compatibilidad de modelos y soporte específico para dispositivos Android. Por el contrario, TensorFlow Lite, basado en TensorFlow, sobresale en rendimiento y cuenta con compatibilidad con una amplia gama de dispositivos.

ExecuTorch es una opción práctica para una amplia compatibilidad de modelos o compatibilidad con dispositivos Android. Por otro lado, TensorFlow Lite puede ser la opción más adecuada si su prioridad es el rendimiento de primer nivel en el dispositivo.

Un paso adelante de PyTorch Mobile

ExecuTorch supera a PyTorch Mobile en varias áreas clave. En primer lugar, demuestra un rendimiento y portabilidad superiores debido a su tamaño de memoria más pequeño y su huella de memoria dinámica. El compilador utilizado por ExecuTorch optimiza el modelo para el dispositivo de destino y la funcionalidad de exportación genera un archivo de modelo más pequeño.

Utiliza una técnica llamada asignación de memoria bajo demanda, lo que significa que solo asigna la memoria que necesita cuando la necesita.

Esto contrasta con PyTorch Mobile, que tiene una huella de memoria estática. Esto significa que PyTorch Mobile asigna toda la memoria que necesita por adelantado, incluso si no la necesita toda de inmediato. Esto puede provocar problemas de rendimiento y fallos de memoria en dispositivos con memoria limitada.

ExecuTorch también destaca por su facilidad de uso. A diferencia de PyTorch Mobile, no depende de TorchScript, un compilador potencialmente complejo que requiere cambios en el código del modelo. En cambio, Executorch utiliza el compilador PyTorch 2 y la funcionalidad de exportación, lo que simplifica el proceso de implementación.

Además de estas ventajas principales, ExecuTorch se mantiene y actualiza activamente, en contraste con el estancamiento del desarrollo de PyTorch Mobile. Su comunidad más amplia de usuarios y desarrolladores proporciona una valiosa red de soporte.

Además, ExecuTorch se integra perfectamente con el ecosistema PyTorch, lo que garantiza la coherencia en las herramientas y bibliotecas para el desarrollo y la implementación de modelos.

Relacionado

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!

21 Mejores Frameworks de Java

Si recién comienzas a programar con Java, puedes oje la guía para principiantes sobre Java que te guiará a través de todos los conceptos más importantes de Java que necesitas conocer, si pronto quieres comenzar a utilizar cualquier de los frameworks Java. Java es un lenguaje robusto y combinado con un framework Java, puede proporcionar las mejores soluciones para cualquier campo tecnológico, ya bien sea; un ¡SEGUIR LEYENDO!

11 Mejores Herramientas de Automatización de Pruebas para Interfaces de Usuario

¿Eres un profesional del testing y las pruebas de software? Si es así, ¿Qué herramienta de pruebas utilizas? Como la mayoría de las personas cuando comienzan en el control de calidad. es posible que tenga que dominar solo una o dos herramientas de prueba porque estás restringido a lo que estás utilizando en la empresa. Cualquiera que sea la razón, si usted es un profesional experimentado, ¡SEGUIR LEYENDO!

15 Mejores Lenguajes de Programación que Aprender

Una de las habilidades más importantes para aprender en el mundo de hoy en día, es saber programar con un lenguaje de programación. En la actualidad, las computadoras han entrado en casi todas las industrias, desde el piloto automático de un avión hasta el velocímetro digital de una bicicleta pasando por la inclusión del Internet de las cosas en los pequeños electrodomésticos. Casi todo lo que ¡SEGUIR LEYENDO!

16 Bibliotecas que debes conocer como desarrollador de React

Ser un desarrollador de React moderno no se trata solo de conocer React en sí mismo. Para seguir siendo competitivo, se recomienda encarecidamente explorar todo el ecosistema. En este artículo, compilé algunas de las bibliotecas de componentes de React más útiles que podría usar para acelerar el flujo de trabajo de su desarrollador. Estos incluirán cualquier cosa, desde trabajar con formularios, gráficos, calendarios, tablas, guías, ventanas ¡SEGUIR LEYENDO!

25 Mejores aplicaciones Java jamás programadas

La historia de Java comenzó en 1991, en un momento en que Sun Microsystems buscaba extender su liderazgo en el mercado de estaciones de trabajo informáticas al floreciente mercado de la electrónica personal. Poco se sabía, de que el lenguaje de programación que Sun estaba a punto de crear democratizaría la informática, inspiraría a una comunidad mundial y se convertiría en la plataforma para un ecosistema ¡SEGUIR LEYENDO!

El lenguaje de programación OCaml cumplió 25 años

Hace 25 años, el 9 de Mayo de 1996, se anunció la versión 1.00 del lenguaje y sistema: Objective Caml: https://sympa.inria.fr/sympa/arc/caml-list/1996-05/msg00003.html 312. Ocaml era la consolidación de muchos años de trabajo, integrando el trabajo de Xavier Leroy, Jérôme Vouillon y Didier Rémy sobre objetos y clases dentro de Caml Special Light. Conjunto a Damien Doligez, Ascánder Suárez y muchas personas más. Pasaron muchas cosas durante este ¡SEGUIR LEYENDO!

3 Razones por las que los técnicos deberían aprender Linux

Linux como Mac o Windows OS, es un sistema operativo. Un día se utilizó principalmente para servidores y no era una buena solución para los PC personales. La causa de eso era su interfaz de usuario que era difícil de entender para el usuario más común Sin embargo, los desarrolladores han estado mejorado continuamente el sistema de Linux durante la última década digital y ahora, es ¡SEGUIR LEYENDO!

5 Aplicaciones de visualización de datos que deberías conocer

La visualización de datos es uno de los temas que siempre encontré interesantes. Desempeña un papel importante en las finanzas, la infografía, el periodismo, las relaciones públicas, la ingeniería, etc. De hecho, se puede argumentar que todas las industrias podrían beneficiarse del uso de la visualización de datos para presentar y digerir mejor la información. Los realmente populares como Tableau, Excel y Power BI ya satisfacen ¡SEGUIR LEYENDO!

Salir de la versión móvil