深度学习经过多年发展,AI 已经深入人心,事实上,在图像、文本领域,AI 在多个产业已经落地了诸多应用,我们熟知的自动驾驶、语音助手,背后就大量运用了 AI 技术。
当下,PaddlePaddle、TensorFlow、PyTorch 这样的开源框架已经非常强大,为部署侧也提供了相关的开源组件,以求降低开发难度。以 PaddlePaddle 框架为例,为了支持端侧预测,提供了 PaddleLite 推理引擎;为了提升预测性能,提供了 PaddleSlim 模型压缩工具。但即便如此,一方面,使用这些工具仍然有一定的开发门槛,另一方面由于端侧硬件、系统种类繁多,各种加速芯片层出不穷,框架工具很难完全支持和适配。因此,端侧部署开发工作仍存在实实在在的挑战,成为开发者将 AI 模型真正用起来的“拦路虎”。面对这些问题,是否存在一个平台,能够缩短部署开发的时间,实现一键式部署?同时对模型进行压缩提速,实现高性能推理?
百度 EasyEdge 专为解决以上问题而生,EasyEdge 以 PaddleLite、PaddleSlim 为基础,提供了简单易用的端上部署套件,实现不写代码直接部署模型到端侧,并支持二次开发。另外,EasyEdge 也扩展了对主流端计算硬件的支持,适配更广泛的硬件平台、操作系统、模型类型,并针对特定加速芯片使用专有的计算库,实现进一步的性能提升。
五大灵魂拷问,AI 模型端部署难点在哪里?
- 灵魂拷问一:我的使用场景需要我将模型部署到端上,但是端上开发可能会面向嵌入式设备,操作系统也可能是 Android、iOS,有一定的上手成本,怎样才能更轻松地把模型落地到硬件设备上?
- 灵魂拷问二:这些年出了好多加速芯片、加速卡、边缘计算盒,价格便宜还不占地,我想知道它们跑模型能达到什么样的精度和性能,帮助我进行选型。
- 灵魂拷问三:我训好的模型适配 XX 芯片,要在各种模型格式之间转来转去,有点头大,好不容易模型格式对齐了,又有算子 OP 不支持,我该怎么办才能让它跑起来?
- 灵魂拷问四:我想换个芯片,却发现怎么各家芯片的端上推理模型格式都不一样,又得从头适配,模型转起来想想就头大。
- 灵魂拷问五:费了九牛二虎之力,模型在端上跑起来了,可是速度不是太理想,我想让它跑得更快,更省内存。听说量化、剪枝、蒸馏这方面挺有用,但是好像自己研究代码耗时太久。
EasyEdge 提供最广泛的硬件平台适配
上述问题是开发者在端上部署模型时经常遇到的难点,为了解决这些问题,百度推出了 EasyEdge 端与边缘 AI 服务平台。通过 EasyEdge,开发者可以便捷地将 AI 模型部署到各式各样的 AI 芯片和硬件平台上。事实上,最近 EasyEdge 又新增支持了两个新的芯片系列:Atlas300+鲲鹏服务器以及瑞芯微多款 NPU 芯片(当前已适配 RK3399Pro、RV1109、RV1126),下图是 EasyEdge 的适配芯片矩阵,目前,EasyEdge 支持20+AI 芯片与硬件平台,4大主流操作系统。
你想把模型部署到 Windows PC 上?没问题,安排!
发布到手机上?Android 还是 iOS,随便选!当然,Linux 系统更加是支持的。
具体到推理芯片上面,EasyEdge 支持了很多市面上常见的硬件,除了常见的 CPU、GPU 以及前面提到的新支持的芯片,我们还支持英伟达 Jetson 系列、比特大陆、海思 NNIE 系列、Intel VPU、主流手机上的 NPU、GPU 等芯片,以及百度自研的 EdgeBoard 系列边缘 AI 计算盒。嵌入式设备、ARM CPU,那都不是事,而且,在未来,EasyEdge 还会不断适配更多的 AI 芯片、加速卡、边缘计算盒,持续为开发者降低端侧模型适配迁移的难度。
EasyEdge 提供超全的模型适配
EasyEdge 是专业的模型部署平台,已经预置在 EasyDL 中。EasyDL 作为零门槛的 AI 开发平台,涵盖了完整的数据处理、模型训练与优化、服务部署等功能,支持了非常完整的模型类型,包含图像、文本、视频、语音、OCR 等多种场景多种类型的模型。通过 EasyDL 训练的模型可以天然使用 EasyEdge 来方便的进行端上部署。
但如果你是专业的 AI 模型开发者,手上已经有训练好的深度学习模型,只是苦于模型部署的麻烦,也可以来 EasyEdge 发布您的端上部署包。对于这样的第三方模型,当前 EasyEdge 已经支持了 PaddlePaddle、TensorFlow、PyTorch、Caffe、MXNet 等诸多框架以及 ONNX 模型格式,支持的算法类型也包括了图像分类、物体检测、人脸识别等业界主流的各类算法。
EasyEdge 提供更强的端上推理性能
为了适配诸多 AI 芯片,EasyEdge 针对不同芯片做了大量适配加速工作。因为在训练阶段,更多地关注模型效果及调优的灵活性。当训练完成后,模型就固化下来了。然而在端上部署时,关注点会变为模型的推理,在推理环节中的重点是推理性能。因此各家 AI 芯片厂商为了实现更高性能的推理能力,都在努力提高芯片的并行处理能力,或者通过 GPU 这样的超多线程并行处理,或者通过 ASIC 芯片这样极大增强芯片的单指令向量乃至矩阵处理能力。但不管怎样,线程化或者向量化带来算力巨大提升的同时,必然导致灵活性的下降。这也是为什么端侧 AI 芯片大都具有自己的模型格式和计算库。但同时也就带来了部署上面大量的适配和模型转换工作。
为此,EasyEdge 内置了强大的模型互转工具,实现各个框架模型到统一 IR 的转换,再将统一的 IR 适配到各个端上。当模型部署到端上时,遇到有些 OP 不支持的情况时,EasyEdge 提供了大量的 OP 优化和替换操作。同时,EasyEdge 还会利用芯片的自定义 OP 功能或者底层的编程语言进行自定义 OP 的编写,以保证模型端到端地运行到 AI 芯片上。
为了让模型跑的更快更省内存,模型压缩就是推理侧非常强大且实用的技术了。这方面,EasyEdge 不仅支持了业界领先的量化、剪枝和蒸馏技术,还能够混合使用这几项能力,在尽可能保证效果的同时达到更好的压缩效果。左下图展示了几款常见硬件的定点数算力和浮点数算力的比对,可以看到在很多硬件上定点数算力都远大于浮点数算力,对于这样的硬件,量化是非常必要的。而右图中则可以看到剪枝和蒸馏对于模型推理的加速效果,剪枝和蒸馏本质都是对基础模型在尽量不影响精度的前提下进行精简,自然模型小了,内存占用就少了,推理时间也就短了。
EasyEdge 内置全自动评估系统
EasyEdge 内置全自动评估系统能展示模型精度、性能、内存等多维度评价指标,事实上,在 EasyEdge,当你发布模型的时候,你通常能见到这样的网页:
一次训练,多端部署。一个模型可以发布这么多的部署包,省去了一个个适配的麻烦。在这个页面上,我们还最新上线了模型效果评估的功能,打开性能评估报告,便能看到下面这样的页面。模型的精度、在对应硬件上的推理时间都一目了然的展示出来了(tips:这里的推理时间可不是经验时间,是你的模型真实在硬件跑出来的时间哦),有个这个报告,大家在部署前就能对自己的模型精度和性能情况了然于胸,是不是很贴心呢?
如果你选择 SDK 的方式进行模型部署,你将获取一个功能强大的部署包:不仅有完整且简单的接口,也有非常完善的 demo 工程,包括图片的推理、视频流的推理、多线程的推理等等,如果你是一个编程高手,相信你看完接口和 demo,很快就能集成 AI 的能力去进行应用开发。那如果不想写代码就想部署模型怎么办呢?安排!
SDK 里面提供了部署 Serving 服务的能力,不用写代码,运行一下编译出来的二进制,你的模型 Serving 服务就起来了,还附带 H5 页面,可以在这个页面上拖入图片看看效果。也可能通过 http 方式去请求 Serving 服务,操作非常便捷。事实上,EasyEdge 的工具包中还有诸多类似这样方便开发和调试的小工具,限于篇幅没法一一列举,静待开发者来探索与体验。
快来训练部署你的模型吧!
相信通过前面的介绍,大家对于 EasyEdge 的多操作系统、多芯片适配的能力已经有了大体的认知了,那不妨亲自来体验一下。
EasyDL 基于飞桨开源深度学习平台,面向企业 AI 应用开发者提供零门槛 AI 开发平台,实现零算法基础定制高精度 AI 模型。EasyDL 提供一站式的智能标注、模型训练、服务部署等全流程功能,内置丰富的预训练模型,支持公有云、设备端、私有服务器、软硬一体方案等灵活的部署方式。准备好你的场景数据,去训练一个模型并部署到任何你们想部署的硬件上,使用 EasyDL 高效完成不是梦!
如果你已经有自己的模型,也可以去 EasyEdge 发布适配自己芯片的 SDK 和开发者套件哦。开发者套件使用十分简单便捷,无需关注深度学习、具体硬件等底层逻辑,只需关注输入图片和输出的识别结果即可。
厉害了
需要嵌入式知识吗
可以啊啊加油奥利给啊。。
对了,还有语音识别、GAN、语音合成这些,即使只放个手机端demo出来,效果都很赞啊
话说现在还都是CV模型,希望未来能把NLP模型也纳入进来
设备适配方面,好像华为海思NPU被拿掉了……唉
SDK什么的有设备限制,哈哈
不过看起来还是有不少收费功能的,哈哈哈
昨天试了下,2.0已经支持了,好用啊
用户越来越多了
厉害