当前位置: 首页 > article >正文

小米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 技术的接受度和应用的普及。

http://www.kler.cn/a/295161.html

相关文章:

  • 2024年11月13日
  • Unity3D学习FPS游戏(12)敌人检测和攻击玩家
  • C++20 中最优雅的那个小特性 - Ranges
  • AI赋能电商:创新应用提升销售与用户体验
  • Oracle RAC的thread
  • 「QT」几何数据类 之 QLine 整型直线类
  • 域名证书,泛域名证书,sni
  • 测试一些概念
  • Flutter集成Firebase框架
  • unity 实现吸血鬼幸存者的随机奖励
  • 基于stm32的河流检测系统-单片机毕业设计
  • u盘显示需要格式化才能用预警下的数据拯救恢复指南
  • CNC数控加工如何开启个性化制造新时代?
  • C++数据结构重要知识点(5)(哈希表、unordered_map和unordered_set封装)
  • 封装触底加载组件
  • ✨机器学习笔记(一)—— 监督学习和无监督学习
  • 包机制,javadoc生成文档,用户交互scanner
  • 怎样通过STM32实现环境监测设计
  • 【大数据分析与挖掘算法】matlab实现——Apriori关联规则算法
  • 一篇文章告诉你小程序为什么最近这么火?
  • mysql创建新表,同步数据
  • 简单实用的php全新实物商城系统
  • 2024国赛数学建模B题完整分析参考论文38页(含模型和可运行代码)
  • 深度学习速通系列:如何生成句向量?
  • 9.8通宵速通javascript
  • [论文笔记]QLoRA: Efficient Finetuning of Quantized LLMs