几周前,在PyTorch大会上,该团队推出了ExecuTorch,这是一个在智能手机、可穿戴设备和嵌入式系统等设备上运行PyTorch模型的工具。
四年前,PyTorch Mobile就推出了类似的工具,但是ExecuTorch的内存占用更小,动态内存占用更小,性能和可移植性优于PyTorch Mobile。
ExecuTorch不依赖TorchScript,而是利用PyTorch 2编译器和导出功能来在设备上执行PyTorch模型。它不仅仅是对PyTorch Mobile的重新编写,还利用了PyTorch 2编译器,这是一个重大进步。它的性能不仅适用于手机,还包括CPU、NPU和DSP等硬件能力。
团队表示,设备适应TorchScript兼容性是一个具有挑战性的问题,因此越来越多的新模型选择PyTorch 2编译器来获得更好的性能,这意味着已经不受欢迎的PyTorch Mobile的用户会减少,ExecuTorch会自动获得支持。
另一方面,TensorFlow Lite在2017年推出,也是一款将TensorFlow模型转换为能够在边缘设备上运行的更高效格式的工具。它通过使用名为TensorFlow Lite Converter的编译器将模型转换为可以由轻量级运行时执行的flatbuffer格式。
现在来比较这两个系统,了解一下它们在机器学习中的应用是必要的。
TensorFlow Lite与ExecuTorch
ExecuTorch和TensorFlow Lite都是用于在智能手机、可穿戴设备和嵌入式系统等边缘设备上部署机器学习模型的工具。然而,由于它们构建在不同的框架上,这些工具存在显著的差异。
毫无疑问,PyTorch比TensorFlow更受欢迎,大多数行业专家和研究人员更喜欢PyTorch,而不是更为繁琐的TensorFlow。虽然PyTorch Mobile在边缘设备的兼容性上存在限制,但引入ExecuTorch填补了这一空白。
ExecuTorch建立在PyTorch 2.0的基础上。与Torch Script相比,它更受欢迎,因为它更易于使用,并且支持的设备范围比TensorFlow广泛。它的一个突出特点是与Android设备的兼容性,这使得它对于那些刚接触机器学习部署或需要Android设备支持的人来说是一个有吸引力的选择。
相比之下,基于TensorFlow框架的TensorFlow Lite以其在TensorFlow框架内的出色性能和效率而闻名。为了提高其适应性,TensorFlow更新了在Android上部署LLM模型的方式。
ExecuTorch因其易于使用、广泛的模型兼容性和对Android设备的特殊支持而受到赞扬。相比之下,以TensorFlow为基础的TensorFlow Lite在性能方面表现出色,并且与各种设备兼容。
ExecuTorch是在广泛的模型兼容性或对Android设备的支持方面是一个实用的选择。另一方面,如果您的首要目标是在设备上获得一流的性能,TensorFlow Lite可能是更合适的选择。
从PyTorch Mobile升级
ExecuTorch在几个关键领域超过了PyTorch Mobile。首先,由于其更小的内存占用和动态内存占用,它展现出更优秀的性能和可移植性。ExecuTorch使用的编译器会对目标设备进行优化,并生成一个更小的模型文件。它使用了一种称为按需内存分配的技术,这意味着它只在需要时分配所需的内存。
这与PyTorch Mobile形成了对比,后者具有静态内存占用。这意味着PyTorch Mobile会一次性分配所需的所有内存,即使它暂时不需要全部内存。这可能导致性能问题和设备内存崩溃。
ExecuTorch在易于使用方面也表现出色。与PyTorch Mobile不同,它不依赖于TorchScript,TorchScript是一个潜在复杂的编译器,需要对模型代码进行更改。相反,ExecuTorch利用PyTorch 2编译器和导出功能,简化了部署过程。
除了这些核心优势之外,ExecuTorch还在不断维护和更新,而PyTorch Mobile的开发则停滞不前。它庞大的用户和开发者社区为提供了宝贵的支持网络。
此外,ExecuTorch与PyTorch生态系统无缝集成,确保了模型开发和部署的工具和库的一致性。