优化您的边缘AI模型
发表于 2025-06-25 15:45:14

 核心要点

我们讨论五种可用于提高本地AI模型性能的技术,其中包括:编译为机器代码、量化、权重剪枝、特定领域微调,以及利用大模型训练小模型。

开发者为什么要关注边缘AI

无论您认为边缘AI属于尖端技术还是围绕边缘的粗糙技术(或者两者兼而有之!),边缘AI正在为开发者创造全新的机会。各种硬件在速度、处理能力、和电池寿命方面变得越来越强大,从而极大地扩展了设备上可以实现的项目类型。物联网市场增长迅速、范围广阔,而分析师预测其市场增长将达到数千亿美元1,其中包括医疗保健、制造、能源、物流和智能城市等行业的扩张2。

随着边缘AI的快速扩张,精明的开发者获得了独一无二的机会,可以将其自身确立为思想领袖并塑造边缘AI的未来。

不要白日做梦

有效的边缘AI开发取决于在硬件规范和能力范围内进行的工作。这意味着选择一个可以完成预期任务的AI模型,并确保已经针对所部署的硬件对选定的模型进行了优化。

机会

限制条件

提高隐私性/安全性

将延迟降至最低限度

将费用降至最低限度

不同设备的规范有所不同

有限/缺少连接性

范围较小

功率有限

附图1:在边缘部署AI导致独特的机会和限制条件

在许多方面,为边缘构建AI应用程序需要开发者重新审视前云时代的各项原则。许多相同的最佳实践方法均适用:

  • 构建可重复使用的小代码元素
  • 周到的资源分配,垃圾收集,外部依赖最小化,以及其他类似做法
  • 利用本地存储和处理、数据压缩、及其他技术,在存在连接限制条件的情况下进行工作

如何实现:为边缘优化AI模型所使用的技术

以下是几种可用于提高AI模型边缘性能的优化技术:

1. 对模型或其各个层面的子集进行微调,以提高特定领域的性能。即使在资源受限的环境中,这种技术也有助于保持针对特定领域的准确性。请考虑以下步骤:

a. 确保使用正确的训练数据集 – 在各种训练场景中,选择一个高质量、具有充分规模的相关数据集非常重要;针对特定领域的训练对各个层面的子集进行的训练也不例外。

b. 必要时调整模型架构 – 对各个层面予以冻结、添加、或以其他方式进行修改可以更容易保留一般特征,同时允许进行特定领域的训练。

c. 选择正确的微调技术和训练参数 – 采取措施避免灾难性遗忘。考虑降低学习率,以更小的批量进行工作,或者在较少的训练周期后停止,以达到预期目标。

d. 根据需要进行评估和优化 – 检查您的工作!对模型基准进行测试,以确定该领域训练是否提高了效率。检查一般准确性以及特定领域的准确性。

2. 将推理模型编译为机器代码以提高性能。通过对具体模型硬件的功能进行微调、减少运行时开销、实现资源效率的最大化,该项技术可以提供帮助。Edge Impulse中包含的EON编译器是一个功能强大的选项;但是,某些开发者喜欢更实际的方法。要做到这一点,请遵循以下步骤:

a. 将模型导出为框架无关的格式 –PyTorch TorchScriptONNX、以及TensorFlow SavedModel 都是很不错的选项。

b. 使用机器学习编译器或优化器将架构转换为硬件优化代码 – 您可能已经使用XLAGlow进行工作。

c. 与本地代码后处理集成 – 一旦您已经对模型进行了编译,就可以使用您选择的程序库将其嵌入到某一应用程序中(例如:TensorFlow LiteONNX运行时)。

3. 量化。该项技术很有帮助,因为该项技术可以解决在内存、电源、和计算单元方面存在的硬件限制条件。如要对模型进行量化,则请遵循以下步骤:

a. 选择正确的量化运算符 – 该步骤有助于将重点集中在计算成本较高的运算符。

b. 选择适当的量化方法来保持必要的准确性水平 – 动态量化、静态量化、或量化意识训练都是很好的选择,具体取决于项目情况。

c. 在量化之后对模型进行验证 – 检查模型规模并运行推理测试,以确保模型仍按预期发挥功能。这种情况下AI模型优化工具包 (AIMET) 是一种很好的资源。您也可以试试QuantSim来确认准确性和延迟性。

4. 剪枝对性能不会造成显著影响的权重。该项技术可以帮助您在资源受限的环境中保持准确性和性能。请按照以下步骤修剪模型:

a. 选择一个剪枝策略 – 请记住,需要考虑您选择的任何策略对于准确性的影响。根据梯度进行的迭代的剪枝可能需要更多的计算量;但是,也可以更好地确保模型在剪枝后保持准确性。

b. 分析权重分布情况 – 请记住,各个层面之间的分布可能有所不同,因此需要不同的剪枝方法。

c. 设置剪枝阈值 – 在保持准确性非常重要的前提下,自适应和验证驱动的剪枝方法最为有效。

d. 实施剪枝并评估模型性能 – 检查稀疏性、准确性、和推理速度,以确保您的努力可以产生预期的结果。

5. 使用大模型提炼知识,并向小模型教授有关范围域的知识。该项技术有助于避免过度参数化,同时仍然可以确保较小的模型提供更小的规模、更快的推理和提高的能源效率。(但是,请注意,在选择模型时考虑设备限制条件仍然很重要。)

a. 确保教师和学生模型之间的兼容性 – 考虑匹配架构、容量、和输出格式,以减少特征不一致和其他扰乱情况。

b. 管理特定领域的训练数据集 – 确保训练数据符合任何相关法规。使用平衡抽样方法,不要回避包括边缘的情况!

c. 提取教师知识 – 考虑学生和教师之间的特征一致性,并选择对您想要实现的特定类型知识转移有意义的提炼方法。

d. 训练学生 – 使用比教师原始训练率更低的训练率,并且使用更大的批量来帮助稳定特征转移。

e. 评估性能 – 同以前一样,将性能基准和准确性指标结合在一起,以确保模型在不牺牲输出质量的情况下在边缘表现良好。

开发者拥有独一无二的机会,可以通过在设备上引入新颖用例的方式来定义边缘AI的未来。如果您想成参与到此项工作中,您可以通过回归经典的硬件感知编码原则,以帮助您为边缘优化代码,从而使自己获得边缘友好的心态。在边缘部署AI时,编译为机器代码、量化、剪枝、微调到必要的领域、以及使用大模型来教授小模型等技术均可以帮助优化。当然,这一优化技术列表并不详尽!您在其他优化技术方面取得过成功吗?

参考文献

1. 2024年物联网市场报告物联网市场的增长及预测

2. 医疗保健物联网市场规模报告,2030年

在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通技术公司或其子公司(以下简称为“高通技术公司”)的观点。所提供的内容仅供参考之用,而并不意味着高通技术公司或任何其他方的赞同或表述。本网站同样可以提供非高通技术公司网站和资源的链接或参考。高通技术公司对于可能通过本网站引用、访问、或链接的任何非高通技术公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。

CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
微博关注
【免责声明:CSDN本栏目发布信息,目的在于传播更多信息,丰富网络文化,稿件仅代表作者个人观点,与CSDN无关。其原创性以及文中陈述文字和文字内容未经本网证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本网不做任何保证或者承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件有任何怀疑或质疑,请立即与CSDN联系,我们将迅速给您回应并做处理。】