模型推理部署——基础概念篇

训练(training)vs推理(inference)

训练是通过从已有的数据中学习到某种能力,而推理是简化并使用该能力,使其能快速、高效地对未知的数据进行操作,以获得预期的结果。

训练是计算密集型操作,模型一般都需要使用大量的数据来进行训练,通过反向传播来不断的优化模型的参数,以使得模型获取某种能力。在训练的过程中,我们常常是将模型在数据集上面的拟合情况放在首要位置的。而推理过程在很多场景下,除了模型的精度外,还更加关注模型的大小和速度等指标。这就需要对训练的模型进行一些压缩、剪枝或者是操作上面的计算优化。

我们做算法的最终目的都是希望自己的方法可以真正的应用起来,那么在对模型部署上面,每一个算法工程师都应该有一些基本的sense。下面本文会简单介绍一些推理时比较关注的指标。

重要指标

Throughput 吞吐量

单位时间内所处理的数据量 一般用 推理/秒 或者 样本/秒 衡量。每台服务器的吞吐量对于数据中心能否合算的扩展至关重要。

# 包含并行情况
def calc_ips(batch_size, time): # 全局进程个数world_size = (torch.distributed.get_world_size() if torch.distributed.is_initialized() else 1)tbs = world_size * batch_sizereturn tbs / time

Latency 延迟

执行一次推理所花的时间,单位一般为ms。低延迟对于实时且快速增长地推理服务至关重要。一般在压测时,我们都是通过增加并发数,来观察 Latency 平均线、90线、 95线和99线

# time_list 为每个请求从发送到返回的时间列表
avg = np.mean(time_list)
cf_90 = max(time_list[:int(len(time_list) * 0.90)])
cf_95 = max(time_list[:int(len(time_list) * 0.95)])
cf_99 = max(time_list[:int(len(time_list) * 0.99)])

或者直接使用numpy提供的方法来求

# 根据不同的线来改变q
np.quantile(time_list, q, interpolation=“nearest”)

Accuracy 准确率

训练后的模型能够提供正确结果的能力。一般推理时,我们会评估模型在模型压缩或者优化后能够和训练时达到一样或者可接受的相似效果。模型是否正确部署,结果具有幂等性。同时根据应用场景的情况,我们可以针对自己在意的指标进行衡量(和训练时相同)。例如:一般针对图像分类而言,我们会参考top-1 or top-5的准确率。

Memory usage 内存使用情况

在众多场景下,在推理过程中很关注内存的使用情况。尤其是在多个网络模型并且内存资源有限的系统中尤为重要。另外,有时也需要在意内存的利用率情况,这对于评估资源是否浪费以及模型外工程方面的优化方向至关重要。在GPU设备上,我们可以使用下面命令来监控内存的使用情况。

nvidia-smiwatch -n 1 nvidia-smi #每个1s更新显示

Efficiency 效率

单位功率的吞吐量, 一般单位为 performance/watt。Efficiency是数据中心扩展合算分析的另一个关键因素。因为服务器、服务器机架和整个数据中心必须在固定的功率预算内运行。


FLOPs

是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

FLOPS

是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。

硬件相关

在大数据的时代,对于各种卡的选择我们也是需要有一点点了解的,很多优化操作都是针对不同的卡进行的。我现在用到比较多的就是 V100和T4,两者相关信息对比:

更多详见:List of Nvidia graphics processing units

参考文献

https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units

https://blogs.nvidia.com/blog/2016/08/22/difference-deep-learning-training-inference-ai/

https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#overview

模型推理部署——基础概念篇相关推荐

  1. 【软件测试】基础-概念篇

    软件测试基础-概念篇 记录 - 慕课网 imooc 软件测试基础-概念篇 简介:系统介绍什么是软件测试,从软件测试的定义.原则以及测试阶段.测试模式.测试手段和测试类型分别详细说明软件测试中的各种测试 ...

  2. C++面试题(一)——基础概念篇

    https://blog.csdn.net/worldwindjp/article/details/18909079 C++面试题--基础概念篇 唐璐 http://blog.csdn.net/wor ...

  3. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  4. [转载] 网络游戏程序员须知 基础概念篇

    转载自:https://blog.csdn.net/rellikt/article/details/5878447 本文为作者原创或翻译,转载请注明,不得用于商业用途. 作者:rellikt@gmai ...

  5. 工作流入门(基础概念篇)

    1.  工作流管理系统基本概念 近两年随着电子商务环境不断演进(例如阿里巴巴的B2B电子商务平台),从原来支持企业内部单系统的业务流程.到企业内部应用.服务的集成,再进一步向企业与合作伙伴之间业务交互 ...

  6. 数据集成之主数据管理(一)基础概念篇

    数据集成是当下比較热门的话题,相关的产品和平台也越来越多.非常多CIO都在各种数据集成平台和产品之间犹豫不决.因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据 ...

  7. Win32多线程编程(1) — 基础概念篇

    内核对象的基本概念 Windows系统是非开源的,它提供给我们的接口是用户模式的,即User-Mode API.当我们调用某个API时,需要从用户模式切换到内核模式的I/O System Servic ...

  8. 软件测试基础——概念篇

    一.软件概念以及分类 软件的概念 软件就是指用以指挥计算机运行活动所使用的程序 软件的分类 软件可以分为系统软件和应用软件 系统软件 系统软件是指管理.控制和维护计算机及外部设备,提供用户与计算机之间 ...

  9. 数据结构与算法——从零开始学习(一)基础概念篇

    系列文章 第一章:基础知识 第二章:线性表 第三章:栈和队列 第四章:字符串和数组 第五章:树和二叉树 第六章:图 第七章:排序算法 前言 数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合 ...

最新文章

  1. R语言ggplot2可视化在箱图上添加分组样本个数
  2. EBS查询当前LOV SQL
  3. python读取excel一列-Python从Excel中读取日期一列的方法
  4. muduo网络库学习(六)缓冲区Buffer及TcpConnection的读写操作
  5. 英语口语(5月17)
  6. python适合开发游戏吗_用python能制作游戏吗
  7. MySQL大表关联如何优化_MySQL 对于大表(千万级),要怎么优化呢?
  8. mysql insert 性能_MySQL 提高Insert性能
  9. opencl初探-sobel检测
  10. Linux运维之如何查看目录被哪些进程所占用,lsof命令、fuser命令
  11. {windows}之向 暴风一号(病毒) 学习一个注册表小知识
  12. Linux 下安装交叉编译工具链
  13. 关于蚂蚁的纯知识解读:杠杆、资本充足率、ABS
  14. 【开学了】整理各种常用功能的实现 | 小游戏源码分享
  15. frp内网穿透入门级木马上线实践
  16. 南宁漏水检测:热烈祝贺广西中水荣获广西首届著名品牌
  17. 关于前端研发质量提升的建设思路
  18. 【点云处理】PointNet网络
  19. 如何实现EDIUS中滚动字幕的制作
  20. 人力资源管理系统和oa的区别?

热门文章

  1. 锁屏页面实现及原理深入分析
  2. 桌面支持--zwcad打印显示文件位置戳记
  3. anki怎么设置学习计划_3.2 制定计划
  4. 提高个人工作效率的五大软件,你肯定不知道
  5. 电脑频繁出现0x0000000A蓝屏错误怎么重装系统?
  6. 如何从零开始解读产品经理行业分析
  7. 华为鸿蒙HarmonyOS,万物皆鸿蒙,华为 HarmonyOS 连发三个视频
  8. 毕业答辩英文论文如何找
  9. COCOS2D-X Battle 独立游戏 (一) 第一版文案
  10. 如何不用鼠标-----键盘快捷键-----字符指令