建一个网站花费,网络推广的方法80种,网站被qq拦截 做301,有没有免费的网站推销产品本文主要是对 B 站 Up 主 ZOMI酱 推理系统系列视频 的理解#xff0c;可以认为是重点笔记。 一、深度学习模型的全生命周期
相信很多人和我一样#xff0c;刚看到深度学习模型中的推理系统或推理引擎时是一头雾水#xff0c;因为学习 DL 时通常关注于模型的设计和训练。下图… 本文主要是对 B 站 Up 主 ZOMI酱 推理系统系列视频 的理解可以认为是重点笔记。 一、深度学习模型的全生命周期
相信很多人和我一样刚看到深度学习模型中的推理系统或推理引擎时是一头雾水因为学习 DL 时通常关注于模型的设计和训练。下图是深度学习模型的全生命周期图主要分为两大类任务训练任务和推理任务。
训练任务通常需要执行数小时、数天一般配置较大的 batch size 以实现较大的吞吐量训练模型直到指定的准确度或错误率。推理任务执行 7 x 24 小时服务此时模型已稳定无需训练服务于真实数据进行推理预测一般 batch size 较小。
训练过程通过设计合适的 AI 模型以及损失函数、优化算法等前向传播并计算损失函数反向计算梯度利用优化函数来更新模型最终目标是使损失函数最小。推理过程是在训练好的模型上进行一次前向传播得到输出最终目标是将模型部署在生产环境中。 推理任务相比训练任务的挑战有如下几点
模型被部署为长期运行的服务需要稳定可靠推理时有更苛刻的资源约束需要在有限算力下服务部署的设备型号更加多样意味着设备架构多样需要具有通用性。
二、推理系统架构
推理系统的作用可以理解为提供一个服务服务的形式可以是 C/S 架构也可以是微服务架构服务的内容可以是推荐感兴趣的文章也可以是精准投放广告。因此推荐系统的输入应通过 HTTP 或 gRPC 等请求发送输出则根据业务需要进行定义。下图是推荐系统的架构图请求响应与处理、监控和调度队列应该是高性能系统的常见组成部分而推理系统的关键在于模型管理和推理引擎。模型管理可以选择合适的 AI 模型执行推理任务推理引擎则将各个任务合理分配给各种处理单元xPU进行处理。 推理系统的设计通常需要从以下几点考虑低延迟、高吞吐、准确性、高效率和扩展性。
三、推理引擎架构
下图是推理引擎架构图推理引擎本身也可以认为是一个基础软件它提供了一组 API 用于在特定平台如 CPU、GPU 和 VPU上进行推理任务。英特尔的 OpenVINO 这样定义推理引擎 OpenVINO推理引擎是一组 C 库提供通用 API可在您选择的平台CPU、GPU 或 VPU上提供推理解决方案。使用推理引擎 API 读取中间表示IR、设置输入和输出格式并在设备上执行模型。 虽然 C 库是主要实现但 C 库和 Python bindings通过 Python 调用 C/C 库也可用。 隐藏在推理引擎的 API 下有许多功能可以实现如同 Linux 提供的 API 一样通过暴露的编程接口可以配置网络、管理文件、实现算法等。推理引擎首先要实现的是模型格式转换深度学习框架多种多样包括流行的 PyTorch、TensorFlow以及 Keras、mxnet 等因此需要转换它们的数据格式以便后续处理。模型压缩的目的是将一个大模型压缩为精简的小模型由于端侧设备移动端、桌面端、嵌入式等的算力有限参数很多的深度神经网络必须经过压缩才能部署常用的方法在架构图中也有体现包括知识蒸馏、剪枝、二值化等。架构中的 Runtime 部分就是实际的推理执行而 Kernel 则是在具体的设备上进行运算。
推理引擎架构的每一层都有各自的问题从上到下可以总结出如下问题
如何对不同深度学习框架进行模型转换模型转换部分如何加快调度和执行Runtime 部分如何提高算子的性能Kernel 部分如何利用边缘设备/端侧设备算力设备部分