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.