文字:小P同学不想透露自己的名字
模型培训的重点是如何通过培训策略获得具有更好性能的模型。该过程似乎包含各种绰号为“炼金术”的“形而上学”。从训练样本的获取(包括数据收集和标签),确定模型结构,损耗函数和评估指标,到模型参数,模型参数的培训,整个过程更多的是从事相关工作的业务方。一旦完成“炼金术”(即,培训具有具有良好指标的模型),如何将这种“长生不老药”赋予实际业务,并给予完全发挥其能力,是部署需要进行的工作。
通常,在正常情况下,学术界负责对各种SOTA(最新技术)模型进行培训和结构探索,并且该行业负责将这些SOTA模型应用于地面上,以增强数百个行业。
本文将讲述如何实现模型在简历场景中的快速着陆并赋予工业应用程序。模型部署通常不需要考虑如何修改培训方法或修改网络结构以提高模型的准确性。更重要的是,需要明确部署的场景,部署方法(中央服务或本地终端部署),模型优化指标以及如何改善吞吐量和减少延迟。本文将一一介绍这些内容。
此问题主要是由于中央服务器云部署和边际部署之间的差异。
对于上面提到的两种情况,有两种不同的部署方案:服务部署和SDK部署。
SDK发动机训练框架模型的语义转换需要重建前后处理公式以及实现一般框架的一般框架的模型。芯片编译器的深度优化功能偏向于朝向优化引擎的能力
部署的核心目标是合理控制成本,功耗和成本效益的三个主要要素。
成本成本是部署硬件的首要任务。部署到硬件的AI模型的成本将大大限制用户的业务公差。
成本问题主要集中在芯片选择上。例如,与Hanwu Ji MLU220和MLU270相比,MLU270主要用作数据中心 - 级别加速卡。它的计算功率和功耗低于边缘的人工智能加速卡MLU220。
至于NVIDIA推出的Jetson和Tesla T4,它们也很相似。特斯拉T4是主要数据中心的推理加速卡,Jetson是嵌入式设备加速卡。
对于终端场景,它也将根据对计算能力的需求进一步细分。例如,除了GPU的浮动点计算能力外,表中给出的Qualcomm Snapdragon芯片还将增加DSP以增加固定点计算能力。
长度有限,我不会详细介绍,主要是基于成本和业务需求。
7.5 w / 15 wt4130顶部(INT8)70 W在数据中心服务方案中,功耗的限制相对较低;在边缘终端设备方案下,硬件的功耗将影响边缘设备的电池使用时间。因此,对于具有相对较高功耗要求的场景,通常,通常会使用特殊优化器单元,例如NPU,例如NPU处理高密度计算,例如神经网络,从而节省了大量的功耗。
不同的业务场景有不同的芯片选择,以实现更高的成本绩效。
从公司业务的角度来看,云相对更关注对多路吞吐量优化的需求,而终端场景更关心一条道路的延迟需求。在当前的主流简历场中,低- 位模型相对成熟,并且由于INT8/INT4芯片的低成本和高计算能力,该芯片被广泛使用;位模型精度可能具有不可接受的准确性损失,因此FP16是一个相对更好的选择。
在CV领域的芯片成本效益中,在具有INT8/INT4计算精度的芯片中,具有低精确计算能力的产品是追求成本效益的主要选择之一,但这也可以提高均衡精度和均衡的准确性和巨大成本绩效比率挑战。
上面简要介绍了部署的主要方式和场景,并简要介绍了芯片选择考虑指标的选择。接下来,我以SDK部署为例,以总结部署中的SensePartot的整体过程。
Sensepartot的部署过程大致分为以下步骤:
模型转换主要用于在不同框架之间的模型循环,通常用于连接到训练和推理方案。
目前,主流框架以ONNX或CAFFE的交换格式,SensePartot也不例外。Sensepartots的模型转换主要分为两个步骤:计算图的生成和计算图转换。此外,根据需要,您还可以在中间插入计算图优化,以加速计算机的推断(例如常见的Conv/BN运算符融合)。
该计算图通过次要和跟踪记录将用户的模型生成静态表达式。在模型推理过程中,框架将记录执行操作员,输入和输出,超级标准,参数的类型的类型,并调用操作员的模型级别。最后刻度图。
生成计算图后,可以在转换计算图之前对其进行优化,例如删除冗余操作,计算合并。SensePartotsinsensepartots insense interally实现了一批计算图来简化和优化通行证,也可以鼓励用户自定义界面并优化计算图。
计算图转换是指分析静态计算图的操作员,该计算图对应于对目标格式的过渡。SensePartots支持多式背端转换,可以将其转换为OPSET opset ONNX,本机咖啡因,以及各种第三部分 - 部分 - 部分Caffe的版本。操作员继承或重写的框架,以使不同版本的Onnx和Caffe的转换更加容易。在同一时间,该框架打开了自定义操作员生成和自定义运算符转换器的接口,因此第三部分框架开发人员还可以轻松地开发从SensePartot到第三方框架的转换。
在终端场景中,通常会考虑内存和速度,因此该模型必须尽可能小,同时确保吞吐量更高。通过NAS(神经体系结构搜索)的小型模型,并通过蒸馏/修剪来压缩模型。
量化过程主要是为了压缩由原始浮点-Point FP32训练的模型,以固定 - 点INT8(或INT4/INT1)的模型。由于INT8仅需要8位要表达,模型刻度可以从理论上降低与32位的浮点相比,原始的1/4。这种压缩率非常可观。
此外,大多数终端设备将具有专用的固定点计算单元。通过低位指令实施的低廉准确操作员将在速度方面得到极大的改善。当然,此部分还取决于协作架构和算法以获得更大的加速度。
定量技术堆栈主要分为量化培训培训和离线交通数量。两者之间的主要区别是:
两者有自己的优势和缺点。根据原始浮动点模型的训练逻辑对定量培训进行培训。从理论上讲,它也可以确保收敛到原始模型的准确性,但是需要对其进行细微调整,并且生产周期很长。数据,因此生产周期很短,更灵活。缺点是准确性可能略低于定量训练。
在实际着陆过程中,发现大多数模型可以通过离线量化获得良好的模型准确性(当然,准确性损失在1%以内,这一部分的改善也是由于优化策略的祝福)。通过定量培训丧失准确性,它将应用于两者在实际业务中的优势和缺点。
量化有两个主要困难:
位数越低,吞吐量率就越大,但是准确性损失越大。因此,如何通过算法提高准确性很重要。这也是该组中的主要任务之一。
另外,在某些情况下,压缩到低位,可能不会提高吞吐量。还必须通过优化推理引擎优化模型,有时甚至是有关如何进行网络设计的反馈。这是算法和工程迭代的过程。
在实际的业务着陆过程中,模型可能只是产品过程的一部分。它用于实现某些特定功能,并且其输出可以用于该过程的下一部分。因此,模型包装将集成模型的前后处理,一个或多个模型,然后添加描述性文件(参数,模型相关参数,模型格式和前后处理的版本)以实现完整的功能。
由于这种需求,除了对某些通用前后处理的处理和对齐培训的一些高效率实现和逻辑外,SDK还需要足够的可扩展性来应对不同的方案,以促进商业线学生扩大新功能。
可以看出,模型包装过程更多是模型的进一步组装,将不同的模型组装在一起。当需要时,这些内容将分为整个过程(管道)的不同阶段(阶段),以实现整个产品功能。
此外,考虑到该模型的范围是研究人员的研究结果,以及与外国参与有关的机密问题,该模型将被加密以确保其安全性。需要根据该算法的选择来确定该模型的选择。实际的业务需求。例如,不同的密度算法具有不同的解密效率。密度的解密是否具有中央验证服务器,其核心是保护研究结果。
感谢您的阅读,欢迎在评论区域留言?
P.S.如果您喜欢这篇文章,请喜欢它,让更多的人看到我们:D
请注意公共帐户“ Sensepartots”,并获得行业动态和技术思维的人工智能框架。
原始:https://juejin.cn/post/7101245756383690765