0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

能否在边缘进行训练(on-device training),使设备不断的自我学习?

OpenCV学堂 来源:机器之心 作者:机器之心 2022-12-05 15:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

该研究提出了第一个在单片机上实现训练的解决方案,并且系统协同设计(System-Algorithm Co-design)大大减少了训练所需内存。

说到神经网络训练,大家的第一印象都是 GPU + 服务器 + 云平台。传统的训练由于其巨大的内存开销,往往是云端进行训练而边缘平台仅负责推理。然而,这样的设计使得 AI 模型很难适应新的数据:毕竟现实世界是一个动态的,变化的,发展的场景,一次训练怎么能覆盖所有场景呢?

为了使得模型能够不断的适应新数据,我们能否在边缘进行训练(on-device training),使设备不断的自我学习?在这项工作中,我们仅用了不到 256KB 内存就实现了设备上的训练,开销不到 PyTorch 的 1/1000,同时在视觉唤醒词任务上 (VWW) 达到了云端训练的准确率。该项技术使得模型能够适应新传感器数据。用户在享受定制的服务的同时而无需将数据上传到云端,从而保护隐私。

bc68a0d6-73e2-11ed-8abf-dac502259ad0.png

网站:https://tinytraining.mit.edu/

论文:https://arxiv.org/abs/2206.15472

Demo: https://www.bilibili.com/video/BV1qv4y1d7MV

代码: https://github.com/mit-han-lab/tiny-training

背景

设备上的训练(On-device Training)允许预训练的模型在部署后适应新环境。通过在移动端进行本地训练和适应,模型可以不断改进其结果并为用户定制模型。例如,微调语言模型让其能从输入历史中学习;调整视觉模型使得智能相机能够不断识别新的物体。通过让训练更接近终端而不是云端,我们能有效在提升模型质量的同时保护用户隐私,尤其是在处理医疗数据、输入历史记录这类隐私信息时。

然而,在小型的 IoT 设备进行训练与云训练有着本质的区别,非常具有挑战性,首先, AIoT 设备(MCU)的 SRAM 大小通常有限(256KB)。这种级别的内存做推理都十分勉强,更不用说训练了。再者,现有的低成本高效转移学习算法,例如只训练最后一层分类器 (last FC),只进行学习 bias 项,往往准确率都不尽如人意,无法用于实践,更不用说现有的深度学习框架无法将这些算法的理论数字转化为实测的节省。最后,现代深度训练框架(PyTorch,TensorFlow)通常是为云服务器设计的,即便把 batch-size 设置为 1,训练小模型 (MobileNetV2-w0.35) 也需要大量的内存占用。因此,我们需要协同设计算法和系统,以实现智能终端设备上的训练。

bc7fe14c-73e2-11ed-8abf-dac502259ad0.png

方法与结果

我们发现设备上训练有两个独特的挑战:(1)模型在边缘设备上是量化的。一个真正的量化图(如下图所示)由于低精度的张量和缺乏批量归一化层而难以优化;(2)小型硬件的有限硬件资源(内存和计算)不允许完全反向传播,其内存用量很容易超过微控制器的 SRAM 的限制(一个数量级以上),但如果只更新最后一层,最后的精度又难免差强人意。

bc95c3f4-73e2-11ed-8abf-dac502259ad0.png

为了应对优化的困难,我们提出了 Quantization-Aware Scaling (QAS) 来自动缩放不同位精度的张量的梯度(如下左图所示)。QAS 在不需要额外超参数的同时,可以自动匹配梯度和参数 scale 并稳定训练。在 8 个数据集上,QAS 均可以达到与浮点训练一致的性能(如下右图)。

bcae282c-73e2-11ed-8abf-dac502259ad0.png

为了减少反向传播所需要的内存占用,我们提出了 Sparse Update,以跳过不太重要的层和子张的梯度计算。我们开发了一种基于贡献分析的自动方法来寻找最佳更新方案。对比以往的 bias-only, last-k layers update, 我们搜索到的 sparse update 方案拥有 4.5 倍到 7.5 倍的内存节省,在 8 个下游数据集上的平均精度甚至更高。

bcc3e6ee-73e2-11ed-8abf-dac502259ad0.png

为了将算法中的理论减少转换为实际数值,我们设计了 Tiny Training Engine(TTE):它将自动微分的工作转到编译时,并使用 codegen 来减少运行时开销。它还支持 graph pruning 和 reordering,以实现真正的节省与加速。与 Full Update 相比,Sparse Update 有效地减少了 7-9 倍的峰值内存,并且可以通过 reorder 进一步提升至 20-21 倍的总内存节省。相比于 TF-Lite,TTE 里经过优化的内核和 sparse update 使整体训练速度提高了 23-25 倍。

bcdce52c-73e2-11ed-8abf-dac502259ad0.png

bcef21d8-73e2-11ed-8abf-dac502259ad0.png

结论

本文中,我们提出了第一个在单片机上实现训练的解决方案(仅用 256KB 内存和 1MB 闪存)。我们的算法系统协同设计(System-Algorithm Co-design)大大减少了训练所需内存(1000 倍 vs PyTorch)和训练耗时(20 倍 vs TF-Lite),并在下游任务上达到较高的准确率。Tiny Training 可以赋能许多有趣的应用,例如手机可以根据用户的邮件 / 输入历史来定制语言模型,智能相机可以不断地识别新的面孔 / 物体,一些无法联网的 AI 场景也能持续学习(例如农业,海洋,工业流水线)。通过我们的工作,小型终端设备不仅可以进行推理,还可以进行训练。在这过程中个人数据永远不会上传到云端,从而没有隐私风险,同时 AI 模型也可以不断自我学习,以适应一个动态变化的世界

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内存
    +关注

    关注

    9

    文章

    3173

    浏览量

    76113
  • IOT
    IOT
    +关注

    关注

    189

    文章

    4369

    浏览量

    206566

原文标题:用少于256KB内存实现边缘训练,开销不到PyTorch千分之一

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DDR training的产生原因

    信号完整性(Signal Integrity, SI)问题:随着DDR内存频率的提高,信号完整性问题变得更加突出。高速信号传输过程中会受到各种因素的影响,如反射、串扰、噪声干扰等,这些问题会导致
    的头像 发表于 11-17 10:25 3117次阅读
    DDR <b class='flag-5'>training</b>的产生原因

    一文看懂AI训练、推理与训推一体的底层关系

    我们正在参加全球电子成就奖的评选,欢迎大家帮我们投票~~~谢谢支持很多人听过“大模型”,但没搞懂两件事。我们总说AI有多强,但真正决定AI能否落地的,是它的两个阶段:训练Training)和推理
    的头像 发表于 09-19 11:58 1571次阅读
    一文看懂AI<b class='flag-5'>训练</b>、推理与训推一体的底层关系

    超小型Neuton机器学习模型, 在任何系统级芯片(SoC)上解锁边缘人工智能应用.

    Neuton 是一家边缘AI 公司,致力于让机器 学习模型更易于使用。它创建的模型比竞争对手的框架小10 倍,速度也快10 倍,甚至可以最先进的边缘
    发表于 07-31 11:38

    打通边缘智能之路:面向嵌入式设备的开源AutoML正式发布----加速边缘AI创新

    、模型选择、超参数调整并针对特定硬件进行优化,学习曲线极为陡峭。因而,开发者肯定希望能够微控制器等边缘器件和其他受限平台上,轻松地构建和部署性能稳健、资源密集型的机器
    的头像 发表于 07-17 16:08 377次阅读
    打通<b class='flag-5'>边缘</b>智能之路:面向嵌入式<b class='flag-5'>设备</b>的开源AutoML正式发布----加速<b class='flag-5'>边缘</b>AI创新

    边缘AI实现的核心环节:硬件选择和模型部署

    边缘AI的实现原理是将人工智能算法和模型部署到靠近数据源的边缘设备上,使这些设备能够本地
    的头像 发表于 06-19 12:19 1045次阅读
    <b class='flag-5'>边缘</b>AI实现的核心环节:硬件选择和模型部署

    边缘计算中的机器学习:基于 Linux 系统的实时推理模型部署与工业集成!

    学习如何训练模型、导出模型,并在基于Linux的系统上运行实时推理,并通过MQTT发布结果。这是一个简单但完整的流程——从工作站上的建模到边缘设备
    的头像 发表于 06-11 17:22 778次阅读
    <b class='flag-5'>边缘</b>计算中的机器<b class='flag-5'>学习</b>:基于 Linux 系统的实时推理模型部署与工业集成!

    什么是边缘盒子?一文讲透边缘计算设备不同行业的真实应用

    随着工业物联网、AI、5G的发展,数据量呈爆炸式增长。但你有没有想过,我们生成的数据,真的都要发回云端处理吗?其实不一定。特别是一些对响应时间、网络带宽、数据隐私要求高的行业里,边缘计算开始“火”了起来,而实现它的关键硬件,就是我们今天要聊的主角——
    的头像 发表于 06-09 14:48 2116次阅读
    什么是<b class='flag-5'>边缘</b>盒子?一文讲透<b class='flag-5'>边缘</b>计算<b class='flag-5'>设备</b><b class='flag-5'>在</b>不同行业的真实应用

    海思SD3403边缘计算AI数据训练概述

    AI数据训练:基于用户特定应用场景,用户采集照片或视频,通过AI数据训练工程师**(用户公司****员工)** ,进行特征标定后,将标定好的训练样本,通过AI
    发表于 04-28 11:11

    Deepseek海思SD3403边缘计算AI产品系统

    海思SD3403边缘计算AI框架,提供了一套开放式AI训练产品工具包,解决客户低成本AI系统,针对差异化AI 应用场景,自己采集样本数据,进行AI特征标定,AI模型训练,AI应用部署的
    发表于 04-28 11:05

    宇树科技物联网方面

    。 人工智能算法优化:宇树科技不断优化其机器人的人工智能算法,使其能够物联网环境中更好地进行智能决策。通过机器学习、深度学习等技术,机器人
    发表于 02-04 06:48

    大模型训练框架(五)之Accelerate

    Hugging Face 的 Accelerate1是一个用于简化和加速深度学习模型训练的库,它支持多种硬件配置上进行分布式训练,包括 C
    的头像 发表于 01-14 14:24 1767次阅读

    边缘设备上设计和部署深度神经网络的实用框架

    ‍‍‍‍ 机器学习和深度学习应用程序正越来越多地从云端转移到靠近数据源头的嵌入式设备。随着边缘计算市场的快速扩张,多种因素正在推动边缘人工智
    的头像 发表于 12-20 11:28 1390次阅读

    边缘学习:降本增效,开启物流新未来

    展现出独特优势。 边缘学习作为深度学习的一个子集,具有易于部署和成本效益高的特点。它不需要复杂的编程知识,只需通过简单的配置和训练,即可快速投入使用。其
    的头像 发表于 12-20 09:07 542次阅读

    AI模型部署边缘设备的奇妙之旅:目标检测模型

    网络(DenseNet)等创新设计都是为了克服深层网络训练中的挑战而提出的。 3 边缘设备部署 边缘
    发表于 12-19 14:33

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    ,建议多做练习,特别是针对不同类型的图像处理任务进行实战演练。同时,可以参考官方文档、在线教程以及社区讨论来加深对算子的理解,学习他人是如何解决问题的。此外,不断积累经验和案例研究也会有助于提高解决新问题
    发表于 12-14 09:31