首页 > 其他分享 >【推理引擎:核心原理】系列来啦!从入门到昇腾!

【推理引擎:核心原理】系列来啦!从入门到昇腾!

时间:2023-03-03 13:46:17浏览次数:54  
标签:入门 训练 推理 模型 引擎 video 优化

哎,当年作为核心SE在MindSpore团队从0到1构建了MindSpore Lite推理引擎,到去年知道的信息是现在在华为和荣耀手机上的AI能力都是基于Lite推理引擎,调用次数10亿/天。   所以就基于之前的工作,总结了《AI推理引擎:核心原理》这个系列的内容:从推理系统整体架构开始,然后到模型小型化、模型压缩,在真正推理之前需要进行模型转换和图优化,最后到kernel和runtime优化。还是很有意思的,也花了很多时间,希望能够帮助到大家啦!!!


在讲推理引擎/推理系统,又或者是推理部署之前呢,我们回顾下训练和推理的区别 ^_^   训练过程通过设定数据处理方式,并设计合适的网络模型结构以及损失函数和优化算法,在此基础上将数据集以小批量(mini-batch)反复进行前向计算并计算损失,然后反向计算梯度利用特定的优化函数来更新模型,来使得损失函数达到最优的结果。训练过程最重要的就是梯度的计算和反向传播。   而推理就是在训练好的模型结构和参数基础上,做一次前向传播得到模型输出的过程。相对于训练而言,推理不涉及梯度和损失优化。推理的最终目标是将训练好的模型部署生产环境中。真正让 AI 能够运用起来。推理引擎可以将深度学习模型部署到云(Cloud)端或者边缘(Edge)端,并服务用户的请求。模型训练过程好比是传统软件工程中的代码开发的过程,而开发完的代码势必要打包,部署给用户使用,那么推理系统就负责应对模型部署的生命周期中遇到的挑战和问题。   当推理系统将完成训练的模型进行部署,并在服务时还需要考虑设计和提供负载均衡,请求调度,加速优化,多副本和生命周期管理等支持。相比深度学习框架等为训练而设计的系统,推理系统不仅关注低延迟,高吞吐,可靠性等设计目标,同时受到资源,服务等级协议(Service-Level Agreement),功耗等约束。本章将围绕深度学习推理系统的设计,实现与优化内容展开,同时还会在最后介绍部署和 MLOps 等内容。   移动端的推理引擎应该挺多的了,google在2017年推出了TF-Lite,腾讯在2017年推出了ncnn,Apple在2017也推出了CoreML,阿里在2018年推出了MNN,华为2019年推出了MindSpsore-Lite。距今已经过去了快5年的时间,技术上也接近收敛。下面让我们一起打开推理引擎的技术吧! 系列内容
  • 《推理系统》推理系统是本分享的重点概述,推理就是在训练好的模型结构和参数基础上,执行前向传播得到模型输出的过程。相对于训练而言,推理不涉及梯度和损失优化。推理的最终目标是将训练好的模型部署生产环境中,真正让 AI 能够运用起来。推理引擎可以将深度学习模型部署到云(Cloud)端或者边缘(Edge)端,并服务用户的请求。模型训练过程好比是传统软件工程中的代码开发的过程,而开发完的代码势必要打包,部署给用户使用,那么推理系统就负责应对模型部署的生命周期中遇到的挑战和问题。
  • 《轻量网络》在端侧推理引擎中,主要是执行轻量的模型结构。主要思想是针对神经网络模型设计更高效的网络计算方式,从而使神经网络模型的参数量减少的同时,不损失网络精度,并进一步提高模型的执行效率。本节主要集中介绍模型小型化中需要注意的参数和指标,接着深入了解CNN经典的轻量化模型和Transformer结构的轻量化模型。
  • 《模型压缩》模型压缩跟轻量化网络模型不同,压缩主要是对轻量化或者非轻量化模型执行剪枝、蒸馏、量化等压缩算法和手段,使得模型更加小、更加轻便、更加利于执行。
  • 《模型转换&优化》在这一节当中分为模型转换和模型优化,在整体架构图中属于离线模型转换模块。一方面,推理引擎需要把不同 AI 框架训练得到的模型进行转换;另外一方面需要对转换后的模型进行图优化等技术。
  • 《Kernel优化》在上层应用或者 AI 网络模型中,看到的是算子;但是在推理引擎实际执行的是具体的 Kernel,而推理引擎中 CNN 占据了主要是得执行时间,因此其 Kernel 优化尤为重要。
希望这个系列能够给大家、朋友们带来一些些帮助,也希望自己能够继续坚持完成所有内容哈!   然这里不是打广告,而是希望跟所有关注开源项目的好朋友一起探讨研究,共同促进学习讨论,也欢迎各位专家和朋友多拍拍砖,多提点意见。相关的材料都开源在这里:   https://github.com/chenzomi12/DeepLearningSystem/tree/main/Inference   具体大纲   通过《推理引擎:核心原理》系列,我们会给大家介绍下面一些内容:  
名称 具体内容
推理系统 推理系统整体介绍,推理引擎架构梳理
轻量网络 轻量化主干网络,MobileNet等SOTA模型介绍
模型压缩 模型压缩4件套,量化、蒸馏、剪枝和二值化
模型转换&优化 AI框架训练后模型进行转换,并对计算图优化
Kernel优化 Kernel层、算子层优化,对算子、内存、调度优化
1. 推理系统
  1. 推理内容介绍(video
  2. 什么是推理系统(video
  3. 推理流程全景(video
  4. 推理系统架构(video
  5. (上) 推理引擎架构(video
  6. (下) 推理引擎架构(video
2. 模型小型化
  1. 推理参数了解(video
  2. (上) CNN模型小型化(video
  3. (下) CNN模型小型化(video
  4. Transformer小型化(video
3. 模型压缩
  1. 压缩四件套介绍(video
  2. 低比特量化原理(video
  3. 感知量化训练 QAT(video
  4. 训练后量化PTQ与部署(video
  5. 模型剪枝(video
  6. (上) 知识蒸馏原理(video
  7. (下) 知识蒸馏算法(video
4. 模型转换
  1. 基本介绍(video
  2. 架构与文件格式(video
  3. 自定义计算图IR(video
  4. 流程细节(video
5. 图优化模块
  1. 计算图优化策略(video
  2. 常量折叠&冗余节点消除(video
  3. 算子融合/替换/前移(video
  4. 数据布局转换&内存优化(video
6. Kernel优化
  1. Kernel优化架构(video
  2. 卷积操作基础原理(video
  3. Im2Col算法(video
  4. Winograd算法(video
  5. QNNPack算法(video
  6. 推理内存布局(video
完结,撒花!

标签:入门,训练,推理,模型,引擎,video,优化
From: https://www.cnblogs.com/ZOMI/p/17175314.html

相关文章

  • 火山引擎 DataTester:A/B 实验如何实现人群智能化定向?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群在精细化运营时代,用户需求和业务场景愈加多元,在产品功能迭代以及各类活动中,面向不......
  • 串口通信原理详解232、422、485,入门必看!
    串口通信原理详解232、422、485,入门必看!混说Linux ​关注他 50人赞同了该文章本文介绍了串口通讯的基本概念、数据格式、通讯方式、典型的串口通讯......
  • 一个强大的作图工具Mermaid入门
    一个强大的作图工具Mermaid入门参考网站:https://mermaid.live/edit在线编辑器https://mermaid.js.org/intro/官网使用方法在typora中选择```mermaid即可,复杂......
  • springboot gradle 集成流程引擎activiti
    plugins{id'org.springframework.boot'version'2.1.4.RELEASE'id'io.spring.dependency-management'version'1.0.13.RELEASE'id'java'}group=......
  • Web安全入门与靶场实战二(2)- 实例解释HTTP状态码
    在HTTP响应头中有一部分非常重要的信息就是响应行中的状态码。状态码都是由三位数字组成,比如状态码200表示请求成功。状态码主要分为5个大类: 1xx:100-101,指示信息。这种状......
  • LESS 快速使用入门指南简介
    LessCSS是一个使用广泛的CSS预处理器,通过简单的语法和变量对CSS进行扩展,可减少很多CSS的代码量。LESS将CSS赋予了动态语言的特性,如变量、继承、运算、函数......
  • Solidity极简入门#27. ABI编码解码
    ABI(ApplicationBinaryInterface,应用二进制接口)是与Ethereum智能合约交互的标准。数据基于他们的类型编码;并且由于编码后不包含类型信息,解码时需要注明它们的类型。Soli......
  • Servlet-thymeleaf入门与渲染index页面
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录笔记以供日后回顾由于是多个视频内容混合在一起,因此只放了第一个链接视频链接知识点Thymel......
  • 谷歌seo独立站搜索引擎优化指南【2023新版】
    作为一个拥有十年操作经验的个人站长,我认为SEO是网站优化的核心,它可以帮助我们的网站在搜索引擎上获得更高的排名和更多的流量。在本篇文章中,我将分享我的谷歌SEO独立站搜索......
  • 如何选择mysql的存储引擎
    在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合。InnoDB:是Mysql的默认存储引擎,支持事务、......