您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    模型部署优化的学习路途是什么?
    时间:2021-08-12 12:07 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    知友问: 我如今只会 Python,每天任务就是写脚本处置数据、训练模型,但是没什么工程才能,我想往模型部署优化、算法落地这个方向开展,请问该怎样学习与规划?

    模型部署优化这个方向其实比较普遍。 从模型完成训练,到最终将模型部署到实践硬件上,整个流程中会触及到很多不 同层面的任务,每一个环节对技术点的要求也不尽相反。

    部署的流程大致可以分为 以 下几个环节:

    模型部署优化的学习路途是什么?

    一、模型转换 

    从训练框架失掉模型后,依据需求转换到相应的模型格式。 模型格式的选择通常是依据公司业务端 SDK 的需求,通常为 caffe 模型或 onnx 模型,以方便模型在不同的框架之间适配。

    该环节的任务需求对相应的训练框架以及 caffe/onnx 等模型格式有所了解。

    常用的 Pytorch 和 TensorFlow 等框架都有十分成熟的社区和对应的博客或教程; caffe 和 onnx 模型格式也有很多可参考和学习的地下文档。

    即使没找到有可参考的文章时,好在二者都是开源的,依然可以经过对源码和样例代码的阅读来寻觅答案。

    二、模型优化 

    此处的模型优化是指与后端有关的通用优化,比如常量折叠 、 算数优化 、 依赖优化 、 函数优化 、 算子融合 以及 模型信息简化等等。

    部分训练框架会在训练模型导出时就包含部分上述优化进程,同时假设模型格式停止了转换操作,不同 IR 表示之间的差异能够会引入一 些冗余或可优化的计算,因此在模型转换后通常也会停止一部分的模型优化操作。

    该环节的任务需求对计算图的执行流程、各个 op 的计算定义、顺序运转功用模型有一定了解,才能知道假设停止模型优化, 如何 保证优化后的模型具有更好的功用。

    了解 得 越深化,越可以开掘到更多的模型潜在功用。

    三、模型紧缩 

    狭义下去讲,模型紧缩也属于模型优化的一部分。模型紧缩本身也包括很多种办法,比如剪枝 、 蒸馏 、 量化等等。 模型紧缩的基本目的是希望取得一个较小的模型,增加存储需求的同时降低计算量,从而到达减速的目的。

    该环节的任务需求对紧缩算法本身 、 模型触及到的算法义务及模型结构设计 、 硬件平台计算流程三个方面都有一定的了解。

    当因模型紧缩操作招致模型精度下降时,对模型算法的了解,和该模型在硬件上的计算细节有足够的了解,才能剖析出精度下降的缘由,并给出针对性的处置方案。

    关于模型紧缩更重要的往往是工程阅历 , 由于在不同的硬件后端上部署相反的模型时, 由于 硬件计算的差异性,对精度的影响往往也不尽相反,这方面只要经过 积聚 工程阅历来不断提升。

    Open PPL 也在逐渐开源本人的模型紧缩工具链,并对上述提到的模型算法、紧缩算法 和 硬件平台适配等方面的知识停止引见 。

    四、模型部署

    模 型部署是整个进程中最复杂的环节。从工程上讲,主要的中心义务是模型打包 、 模型加密,并停止 SDK 封装。

    在一个实践的产品中,往往会用到多个模型。

    模型打包是指将模型触及到的前后处置,以及多个模型整合到一同,并参加一些其他描画性文件。 模型打包的格式和模型加密的办法与详细的 SDK 相关。 在该环节中主要触及到的技艺与 SDK 开发更为严密。

    从功用上讲,对部署最后的功用影响最大的一定是 SDK 中包含的后端库,即实践运转模型的推理库。 开发一个高功用推理库所需求的技艺点就要更为普遍 ,并且 专业。

    并行计算的编程思想在不同的平台上是通用的,但不同的硬件架构的有着各自的特点,推理库的开发思绪也不尽相反,这也就要求对开发后端的架构体系有着一定的了解。

    详细到不同架构的编程学习,建议参考以后各大厂开源的推理库来进一步学习 。

    【编辑引荐】

    NLP义务非Transformer不可?谷歌研讨发现预训练卷积模型往往更优

    国科大提出CNN和Transformer双体基网模型 准确率高达84.1%

    6500字片面解说 Redis 功用优化点!

    LAMP部署-CentOS、Apache、MySQL、PHP配置优化视频课程

    运用 GTD 优化本人的任务和生活

    (责任编辑:admin)