OnnxStream:内存友好的机器学习推理引擎 可在树莓派Zero 2上运行Stable Diffusion 1.5
OnnxStream是一款专注于减少内存占用、提高推理效率的机器学习推理引擎。它的设计目标是在资源受限的环境中运行深度学习模型,如树莓派Zero2,该设备只有512MB的RAM。
通过OnnxStream,用户现在可以在这种低功耗设备上运行复杂的算法,这对于需要在移动环境中处理大量数据的用户来说是一个重大突破。
项目地址:
https://github.com/vitoplantamura/OnnxStream/tree/846da873570a737b49154e8f835704264864b0fe
目前,OnnxStream的源代码已经在GitHub上开源,任何感兴趣的用户都可以查看和使用。这一创新为在资源有限的环境中运行深度学习算法提供了新的可能性,对于技术爱好者和开发者来说是一个令人振奋的消息。
核心功能:
1. 内存占用极低:OnnxStream的最大特点之一是其出色的内存管理能力。它可以将内存占用降低到极低的水平,甚至可以在RAM只有512MB的树莓派Zero2上运行大型深度学习模型,如Stable Diffusion XL1.0。
2. 权重加载器:OnnxStream提供了权重加载器(WeightsProvider)的接口,用户可以根据自己的需求实现不同的权重加载逻辑。默认情况下,OnnxStream提供了两种加载器:DiskNoCache和DiskPrefetch,分别用于不缓存和预加载权重数据。
3. 注意力切片:在运行UNET模型时,OnnxStream支持注意力切片(Attention Slicing),这可以显著减少计算中的内存占用,从而使模型在资源受限的设备上运行更加顺畅。
4. 动态量化和静态量化:OnnxStream支持动态量化和静态量化,这有助于减少模型的内存占用,并提高推理速度。用户可以根据自己的需求选择不同的量化方式。
5. 跨平台支持:OnnxStream可以在多个平台上运行,包括Linux、Mac、Windows和Termux。它的跨平台性使得用户可以在不同的设备上灵活使用。
更新于:2023-10-08 12:07