机器学习推理顾问
项目描述
机器学习推理顾问
介绍
该工具用于帮助 AI 开发人员设计和优化神经网络模型,通过启用在模型开发周期的早期进行性能分析并提供可行的建议。最终建议可以涵盖在应用模型优化(例如剪枝、聚类等)之前/之后在某些硬件上运行的模型推理的算子列表、性能分析和建议。
先决条件和依赖项
建议使用虚拟环境进行 MLIA 安装,MLIA 的典型设置需要:
- Ubuntu® 20.04.03 LTS(其他操作系统也可以工作,ML Inference Advisor 已经专门在这个上进行了测试)
- Python® >= 3.8
- Ethos™-U Vela 依赖项(仅限 Linux®)
- 更多细节请参考 Vela 的先决条件
后端安装
ML Inference Advisor 旨在支持多个性能评估器(后端),这些评估器可以为各种硬件类型生成性能分析。
该backend命令用于管理新后端的安装。该install子命令可用于
- 安装已在本地安装的后端(选项
--path)或 - (如果可用)自动下载必要的组件和依赖项,安装它们并正确配置它们(选项
--download)。
用法是:
mlia backend install --help
结果如下:
位置参数:
- name:要安装的后端名称
可选参数:
- -h/--help:显示此帮助信息并退出
- --path PATH:已安装后端的路径
- --download:下载并安装后端
- --noninteractive:非交互模式,自动确认每个动作
例子:
# Use this command to see what backends can be downloaded.
mlia backend install --download
成功安装后端后,开始在您的虚拟环境中使用 mlia。
请注意:后端安装后无法删除。考虑创建一个新环境并在需要时重新安装后端。
后端兼容性表
并非所有后端都可以在任何平台上运行。请参考下面的兼容性表:
+---------------------------------------------------------------------------+
| Backend | Linux | Windows | Python |
+============================================================================
| Corstone-300 | x86_64 | Not compatible | Python>=3.8 |
+----------------------------------------------------------------------------
| Corstone-310 | x86_64 | Not compatible | Python>=3.8 |
+----------------------------------------------------------------------------
| TOSA checker | x86_64 (manylinux2014) | Not compatible | 3.7<=Python<=3.9 |
+----------------------------------------------------------------------------
| Vela | x86_64 | Windows 10 | Python~=3.7 |
+---------------------------------------------------------------------------+
使用 Corstone™-300
要将 Corstone™-300 作为 Ethos™-U 的后端安装,可以使用两个选项 (--download
和):--path
# To download and install Corstone-300 automatically
mlia backend install --download Corstone-300
# To point MLIA to an already locally installed version of Corstone-300
mlia backend install --path YOUR_LOCAL_PATH_TO_CORSTONE_300
请注意:以上示例中使用的 Corstone™-300 仅在 Linux® 平台上可用。
使用 Corstone™-310
Corstone™-310 可用作 Arm® 虚拟硬件 (AVH)。
- 如需访问 Corstone™-310 的 AVH,请参阅: https ://developer.arm.com/Processors/Corstone-310
- 请在此处使用使用 Corstone™-310 的 MLIA 示例开始: https ://github.com/ARM-software/open-iot-sdk
使用 TOSA 检查器
TOSA 兼容性检查器在 MLIA 中作为外部依赖项提供。请使用以下命令将其安装到与 MLIA 相同的环境中:
pip install mlia[tosa]
TOSA 检查器资源:
- 源代码:https ://review.mlplatform.org/admin/repos/tosa/tosa_checker
- PyPi 包https://pypi.org/project/tosa-checker/
用法
初始设置后,您可以通过打开终端并键入以下命令来启动程序:
mlia [command] [arguments]
命令的选择:
- "operators" : 显示模型的操作员列表
- “优化”:运行指定的优化
- “性能”:衡量硬件推理的性能
- "all_tests" : 有一个完整的报告
要获取所有可用选项的列表,请使用:
mlia --help
要获得特定命令的帮助,请使用:
mlia [command] --help
大多数命令接受目标配置文件的名称作为输入参数。Ethos™-U 有许多预定义的配置文件,具有以下属性:
+--------------------------------------------------------------------+
| Profile name | MAC | System config | Memory mode |
+=====================================================================
| ethos-u55-256 | 256 | Ethos_U55_High_End_Embedded | Shared_Sram |
+---------------------------------------------------------------------
| ethos-u55-128 | 128 | Ethos_U55_High_End_Embedded | Shared_Sram |
+---------------------------------------------------------------------
| ethos-u65-512 | 512 | Ethos_U65_High_End | Dedicated_Sram |
+--------------------------------------------------------------------+
目标配置文件“tosa”可用于 TOSA 兼容性检查。
操作员(操作员)
描述
打印模型的操作员列表。
例子
# List operator compatibility for a specific target profile
mlia operators --target-profile ethos-u55-256 ~/models/mobilenet_v1_1.0_224_quant.tflite
论据
TFLite 模型选项
- model:TFLite 格式的输入模型[必需]。
目标配置文件选项
- --target-profile:目标配置文件,将设置目标选项,例如目标、MAC 值、内存模式等...
- 默认值:ethos-u55-256
- 选项:
- 精神-u55-256
- 精神-u55-128
- 精神-u65-512
- 土佐
输出选项
- --output:将保存报告的文件的名称。根据文件扩展名自动检测报告格式。支持的格式有:csv、json。
可选参数
- -h/--help:显示一般帮助文档并退出。
- --supported-ops-report:在当前工作目录生成SUPPORTED_OPS.md文件并退出。
性能(性能)
描述
打印模型的性能统计信息。
例子
# Explicitly specify backend(s) to use with --evaluate-on
mlia performance ~/models/mobilenet_v1_1.0_224_quant.tflite \
--evaluate-on "Vela" "Corstone-310"
论据
TFLite 模型选项
- model:TFLite 格式的输入模型[必需]。
目标配置文件选项
- --target-profile:目标配置文件,将设置目标选项,例如目标、MAC 值、内存模式等...
- 默认值:ethos-u55-256
- 选项:
- 精神-u55-256
- 精神-u55-128
- 精神-u65-512
输出选项
- --output:将保存报告的文件的名称。根据文件扩展名自动检测报告格式。支持的格式有:csv、json。
调试选项
- --verbose:产生详细的输出(用于调试目的)。
评估选项
- --evaluate-on:用于评估的后端。
- 默认:维拉
- 选项:
- 贝拉
- Corstone-300
- Corstone-310
可选参数
- -h/--help:显示一般帮助文档并退出。
- --supported-ops-report:在当前工作目录生成SUPPORTED_OPS.md文件并退出。
模型优化(选择)
描述
显示对模型应用优化后的性能改进。
例子
# Custom optimization parameters: pruning=0.6, clustering=16
mlia optimization \
--optimization-type pruning,clustering \
--optimization-target 0.6,16 \
~/models/ds_cnn_l.h5
论据
Keras™ 模型选项
- 模型:以 Keras™(.h5 或 SavedModel)格式输入模型 [必需]。
优化选项
- --optimization-type:应用于模型的优化类型[必需]。
- 选项:
- 修剪
- 聚类
- 选项:
- --optimization-target:优化目标(对于修剪,这是(0,1)之间的稀疏度,对于聚类,这是集群的数量(正整数))[必需]。
目标配置文件选项
- --target-profile:目标配置文件,将设置目标选项,例如目标、MAC 值、内存模式等...
- 默认值:ethos-u55-256
- 选项:
- 精神-u55-256
- 精神-u55-128
- 精神-u65-512
评估选项
- --evaluate-on:用于评估的后端。
- 默认:维拉
- 选项:
- 贝拉
- Corstone-300
- Corstone-310
调试选项
- --verbose:产生详细的输出(用于调试目的)。
可选参数
- -h/--help:显示一般帮助文档并退出。
- --supported-ops-report:在当前工作目录生成SUPPORTED_OPS.md文件并退出。
所有测试(全部)
描述
生成有关输入模型的运算符列表的完整报告,运行指定的优化并列出性能改进。
例子
# Create full report and save it as JSON file
mlia all_tests --output ./report.json ~/models/ds_cnn_l.h5
论据
Keras™ 模型选项
- 模型:以 Keras™(.h5 或 SavedModel)格式输入模型 [必需]。
优化选项
- --optimization-type:以逗号分隔的优化类型列表
- 默认值:修剪,聚类
- --optimization-target:以逗号分隔的优化目标列表,(对于修剪,这是(0,1)之间的稀疏度,对于聚类,这是聚类数(正整数))
- 默认值:0.5、32
目标配置文件选项
- --target-profile:目标配置文件,将设置目标选项,例如目标、MAC 值、内存模式等...
- 默认值:ethos-u55-256
- 选项:
- 精神-u55-256
- 精神-u55-128
- 精神-u65-512
- 土佐
输出选项
- --output:将保存报告的文件的名称。根据文件扩展名自动检测报告格式。支持的格式有:csv、json。
调试选项
- --verbose:产生详细的输出(用于调试目的)。
可选参数
- -h/--help:显示此帮助信息并退出
资源
其他有用信息:
执照
ML Inference Advisor 在Apache License 2.0下获得许可。
商标和版权
Arm®、Ethos™-U、Cortex®-M、Corstone™ 是 Arm® Limited(或其子公司)在美国和/或其他地方的注册商标或商标。TensorFlow™ 是 Google® LLC 的商标。Keras™ 是 François Chollet 的商标。Linux® 是 Linus Torvalds 在美国和其他地方的注册商标。Python® 是 PSF 的注册商标。Ubuntu® 是 Canonical 的注册商标。Microsoft 和 Windows 是 Microsoft 集团公司的商标。