小米Vela:端侧AI推理框架
小米Vela是小米公司基于开源实时操作系统NuttX打造的物联网嵌入式软件平台。该平台旨在为各种物联网硬件提供统一的软件服务,支持丰富的组件和易用的框架,以打通碎片化的物联网应用场景。2024年8月在“开源中国开源世界”大会,小米对外公开超过1000万行的Xiaomi Vela开源代码。
1 下一代应用框架架构图
2 Vela 端侧 AI 推理框架
小米Vela系统能够支持轻量化的端侧AI大模型,这意味着即使在资源受限的设备上也能运行复杂的AI模型。这主要得益于其对多种硬件规格的适配能力,包括最小系统仅需8KB内存,并且CPU主频不限,适配任意SoC多核架构。
通过与高通和联发科的合作,小米正在将端侧AI底层能力整合进SoC芯片中,以提升端侧AI大模型的推理效率和性能。
Vela 端侧 AI 推理框架可支撑在低算力设备上执行 AI 任务。利用统一框架优势,实现一次优化,可提升多个 Vela AI 业务(面向低算力设备,不包含大模型)。主要的框架技术包括:
2.1 模型转换器(Model Converter)
模型转换器能够将训练好的 AI 模型转换为适合在 Vela 系统上运行的格式。涉及到将模型权重量化、剪枝或压缩,以满足嵌入式设备的资源限制。
2.2 推理引擎(Inference Engine)
- 推理引擎能够在嵌入式系统上加载转换后的模型,并执行实时 AI 推理任务。
- 采用优化技术比如 tiling、内存重用等技术以提高推理速度、内存效率和能效,适应嵌入式环境的资源限制。
- 支持多种 AI 任务,如健康检测、语音识别或自然语言处理,提供统一的 AI 模型部署开发 API 和方案,简化 AI 业务开发流程。
- 考虑硬件加速,如 NPU、DSP 或专用 AI 芯片等,设计多后端联合优化方案,充分发挥硬件性能,进一步提速 AI 推理任务。
2.3 性能检测工具(Benchmark Tool)
Benchmark Tool 提供模型分析、设备上内存占用、模型端到端推理时延检测、算子时延检测等,增强框架的鲁棒性。
2.4 部署和集成(Deployment and Integration)
- 统一的部署开发流程,框架对外提供统一的模型部署 API,开发者只需按照固定流程开发对应的 AI 业务,调用统一的 API 完成模型加载、算子注册、定义输入输出缓冲区、执行推理即可。
- 封装底层异构硬件及优化技术,开发人员只需关心推理及性能结果,使用统一的部署流程即可完成不同设备上 AI 业务的开发。
- 文档和工具,以便开发人员能够轻松部署和集成嵌入式 AI 推理引擎到他们的应用程序或设备中
3 关键技术
框架主要分为四部分:Converter 模块,Runtime 推理引擎,Benchmark Tool, Operators Library 扩展接口。
3.1 Converter 模块
转换其他框架模型为本框架可执行格式,并且对转换后的模型文件进行图优化,在保证模型精度的前提下,缩减模型尺寸,提升模型推理效率。
3.2 Runtime 推理引擎
主要包含引擎的适配及优化,开发编译优化功能,实现针对异构硬件的访存特性,生成针对性算子;使用 delegate 接口,扩展框架 NPU、DSP 后端,实现多后端推理。采用多个正交优化技术,联合优化框架的性能。
3.3 Benchmark Tool
- Benchmark Tool for Converter:Converter 中的 Benchmark Tool 用来检测模型转换前后的误差、推理时延等,以此评价 Converter 的转换效果。
- Benchmark Tool for Runtime:Runtime 中的 Tool 通过检测 e2e Latency、opLatency、Accuracy 等信息,提供给框架使用和开发者来检测框架的推理性能、自定义算子或者计算库的误差等等。通过检测 e2e Latency、op Latency、Accuracy 等,提供给框架使用和其他开发者来检测框架推理性能、自定义算子或者计算库的误差等等。
3.4 Operators Library 扩展接口
对外提供算子扩展接口,其他厂商可通过定义的规范向框架中添加自定义算子,并提供 test case 做准入测试,用于测试自定义算子的规范性。
4 优势与挑战
4.1 优势
- 轻量化设计:Vela 系统适配多种不同硬件规格的产品,最小系统仅需 8KB 内存,这使得它能够在资源受限的设备上运行,如低端智能手机、智能家居设备等,从而实现广泛的应用场景覆盖。
- 高性能异构推理加速:Vela 支持轻量化端侧 AI 大模型,以及轻量容器方案,通过三重隔离解决 MCU 的安全问题,这有助于提升端侧 AI 应用的性能和安全性。
- 跨端应用框架:Vela 支持跨端快应用框架,允许一次开发多设备运行,这为开发者提供了便利,能够快速将应用部署到不同的端侧设备上。
- 提升用户体验:端侧 AI 能够提供低延迟的交互体验,如实时语音识别和图像处理,这对于提升用户满意度和应用的响应速度至关重要。
4.2 挑战
- 算力和资源限制:端侧设备具有有限的计算能力和内存,这限制了可以在其上运行的 AI 模型的复杂性和大小。Vela 需要在保持应用性能的同时,优化模型以适应这些限制。
- 模型优化和适配:为了在端侧设备上高效运行,需要对 AI 模型进行特定的优化和适配,如量化、剪枝等,这增加了开发和维护的复杂性。
- 硬件支持和兼容性:不同的端侧设备可能具有不同的硬件架构和性能,Vela 需要确保在各种硬件平台上都能提供一致的性能和体验。
- 能耗和散热问题:端侧设备对能耗和散热有严格要求,尤其是在移动设备上。Vela 需要在保证性能的同时,控制好能耗和散热,以延长设备的使用寿命。
- 安全和隐私保护:端侧 AI 处理用户数据时需要确保数据的安全和隐私,Vela 需要提供足够的安全措施来保护用户数据不被未授权访问。
- 产品同质化和杀手级应用缺乏:端侧 AI 市场面临着产品同质化的问题,以及缺乏能够大规模吸引用户的杀手级应用,这可能会影响用户对端侧 AI 技术的接受度和应用的普及。