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

    文章

    3234

    浏览量

    76508
  • IOT
    IOT
    +关注

    关注

    190

    文章

    4422

    浏览量

    209606

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Edge Impulse 唤醒词模型训练 | 技术集结

    Edgi-Talk开始使用边缘机器学习!目录EdgeImpulse简介创建账号录制数据集数据上传数据分割模型训练模型评估模型集成淘宝链接直达1EdgeImpulse简介EdgeI
    的头像 发表于 04-20 10:05 488次阅读
    Edge Impulse 唤醒词模型<b class='flag-5'>训练</b> | 技术集结

    论马斯克的预言:AI使人类边缘

    当地时间3月11日,“Abundance Summit”科技峰会上,马斯克谈及AI进展时表示,AI已经进入自我改进阶段,超高量级AI面前,人类终将走向边缘化。以下是对这一预言的相关
    发表于 03-14 05:27

    借助谷歌LiteRT构建下一代高性能端侧AI

    自 2024 年 LiteRT 问世以来,我们一直致力于将机器学习技术栈从其 TensorFlow Lite (TFLite) 基础之上演进为一个现代化的端侧 AI (On-Device AI
    的头像 发表于 01-30 11:23 3198次阅读
    借助谷歌LiteRT构建下一代高性能端侧AI

    探索PSOC Edge E84 AI Kit:开启下一代机器学习边缘设备设计之旅

    探索PSOC Edge E84 AI Kit:开启下一代机器学习边缘设备设计之旅 电子工程师的世界里,不断追求创新和高效是永恒的主题。今天
    的头像 发表于 12-18 14:45 894次阅读

    DDR training的产生原因

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

    如何精准驱动菜品识别模型--基于米尔瑞芯微RK3576边缘计算盒

    /rknn_model_zoo RKNN Model Zoo优点: 开箱即用的体验: 开发者无需从头开始进行模型训练和复杂的转换调试,可以直接下载所需的RKNN模型文件,利用提供的示例代码MYD-LR3576等
    发表于 10-31 21:19

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

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

    部署边缘计算设备时需要考虑哪些问题?

    部署边缘计算设备时,需结合边缘计算 “ 靠近数据源头、低延迟、分布式、资源受限 ” 的核心特性,从硬件适配、软件架构、数据管理、网络稳定、可靠性保障等多维度综合考量,确保
    的头像 发表于 09-05 15:38 1432次阅读
    部署<b class='flag-5'>边缘</b>计算<b class='flag-5'>设备</b>时需要考虑哪些问题?

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

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

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

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

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

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

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

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

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

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