CN117196000A - 一种容器化部署的边缘侧模型推理加速方法 - Google Patents
一种容器化部署的边缘侧模型推理加速方法 Download PDFInfo
- Publication number
- CN117196000A CN117196000A CN202311201460.6A CN202311201460A CN117196000A CN 117196000 A CN117196000 A CN 117196000A CN 202311201460 A CN202311201460 A CN 202311201460A CN 117196000 A CN117196000 A CN 117196000A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- conversion
- reasoning
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000001133 acceleration Effects 0.000 title claims abstract description 36
- 238000006243 chemical reaction Methods 0.000 claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000013139 quantization Methods 0.000 claims abstract description 31
- 238000007781 pre-processing Methods 0.000 claims abstract description 26
- 238000012549 training Methods 0.000 claims abstract description 26
- 238000013138 pruning Methods 0.000 claims abstract description 24
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012805 post-processing Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims 1
- 230000015556 catabolic process Effects 0.000 abstract description 2
- 238000006731 degradation reaction Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 29
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013136 deep learning model Methods 0.000 description 5
- 238000009792 diffusion process Methods 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- GPRLSGONYQIRFK-MNYXATJNSA-N triton Chemical compound [3H+] GPRLSGONYQIRFK-MNYXATJNSA-N 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及计算机技术领域,尤其涉及一种容器化部署的边缘侧模型推理加速方法,其特征在于,包括以下步骤:S1:通过将训练模型根据格式模型进行转换后输出转换模型,根据转换模型的结构建立模型网络,对模型网络的转换模型进行量化操作和剪枝操作输出模型结构;S2:对模型结构通过数据类型转换和数据格式转换完成数据预处理;S3:通过对模型结构进行初始化操作,生成初始化模型,对初始化模型处理后获得处理模型和处理数据,完成推理引擎模型;S4:通过容器化工具部署推理加速服务,使得模型结构、数据预处理和推理引擎模型在容器执行。解决了精度损失、推理流程单一、部署复杂性和在多模态场景下可能会导致性能下降的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种容器化部署的边缘侧模型推理加速方法。
背景技术
随着5G、物联网的快速发展,传统云计算架构上进行复杂模型推理时面临着高计算需求和海量数据传输带来的高延迟等挑战,影响了服务实时性和用户体验,云端模型推理可能涉及数据安全危机,边缘服务架构具有实时性、保护数据隐私和安全等特点,减轻云端压力,节省网络带宽,并且适用于通信业应用场景。这种架构有助于提高***性能、用户体验,并为各种领域的创新提供支持。
目前现有的传统模型推理加速框架存在以下问题:精度损失:一些加速技术(如量化、剪枝等)可能在推理过程中引入精度损失,从而对模型的性能和准确性造成影响;推理流程单一:模型推理过程中的模块化程度较低,任务之间的紧密耦合度较高,导致CPU和GPU的利用率不充分,此外,服务器内存策略相对滞后,造成内存资源的浪费,从而拖慢了推理速度;部署复杂性:将模型推理加速框架应用于实际场景可能需要进行模型部署、集成和调优等复杂任务,这些过程需要专业知识和时间投入;动态场景适应性:在实时动态场景下,模型推理需要适应不断变化的输入数据,然而,某些加速技术在多模态场景下可能会导致性能下降的问题。
发明内容
在边缘服务架构上部署模型可以提供实时数据处理和决策能力,从而克服传统云端计算中存在的上述计算资源限制、网络延迟和数据隐私问题。
本发明的目的是为了解决现有技术中存在的缺点,而提供了一种容器化部署的边缘侧模型推理加速方法,包括以下步骤:
S1:通过将训练模型根据格式模型进行转换后输出转换模型,根据所述转换模型的结构建立模型网络,对所述模型网络的所述转换模型进行量化操作和剪枝操作输出模型结构;
S2:对所述模型结构通过数据类型转换和数据格式转换完成数据预处理;
S3:通过对所述模型结构进行初始化操作,生成初始化模型,对所述初始化模型处理后获得处理模型和处理数据,完成推理引擎模型;
S4:通过容器化工具部署推理加速服务,使得所述模型结构、所述数据预处理和所述推理引擎模型在所述容器执行;
进一步地,所述转换模型,进一步包括:
所述训练模型根据格式模型的格式进行转换,所述转换模型的格式为所述格式模型的格式。
进一步地,所述步骤S1,进一步包括:
将所述模型结构使用验证工具验证输出的所述模型结构、以及输入信息和输出信息是否正确。
进一步地,所述模型网络,进一步包括:
S21:解析所述转换模型的结构,查看所述转换模型的所述输入信息和所述输出信息,在所述模型网络创建输入节点和输出节点;
S22:根据所述转换模型的结构在所述模型网络建立网络层和连接,确保所述输入信息和输出信息的正确传递。
进一步地,所述网络层和连接的建立,进一步包括:
通过解析所述转换模型中的参数值,在所述网络层设置所述网络层参数,根据所述转换模型的所述连接的关系,将所述网络层进行连接起来。
进一步地,所述量化操作,进一步包括:
通过在所述模型网络的输入节点和所述输出节点***量化伪节点后,对所述模型网络的权重和激活值进行量化,对所述量化模型进行量化推理后,***一个反量化伪节点,最终输出量化模型。
进一步地,所述剪枝操作,进一步包括:
通过对所述量化模型进行剪枝操作后,移除所述剪枝操作后产生的冗余参数,对所述移除后的量化模型进行微调后输出模型结构。
进一步地,所述数据预处理,进一步包括:
根据格式模型的数据格式将所述模型结构的数据进行转换,将转换后的数据作为输入信息传递给所述推理引擎模型。
进一步地,所述对所述初始化模型处理,进一步包括:
遍历所述输入的请求,对所述请求获取输入文本,对所述文本进行Pipeline的数据的前处理,使用文本模型进行Pipeline的前向处理,所述前向处理主要对所述文本进行编码解码操作,所述编码解码操作产生的数据进行所述数据格式转换获得Pipeline的数据后处理,所述数据后处理即处理数据。
进一步地,所述容器化工具部署推理加速服务,进一步包括:
通过将所述模型结构、所述数据预处理和所述推理引擎模型放入所述容器,对所述容器进行包括镜像、监控***、日志机制在内的配置、建立所述请求的客户端,通过容器配置实现容器间的通信和数据共享。
与现有技术相比,本发明的有益效果是:
(1)精度保证:加速技术侧重于模型推理参数的精度量化,减少对模型结构的剪枝,确保模型精度损失在可接受的范围内。
(2)引入pipeline化推理:通过引入pipeline化推理,将推理过程划分为多个阶段,降低了模型推理各模块耦合度。这优化了推理过程中缓存的利用,同时实现了多模型请求的统一管理。
(3)容器化部署:采用容器化工具部署推理服务,降低了模型推理工作者的门槛,同时提升部署的灵活性和负载均衡,特别适用于边缘场景下的异构服务器环境。
(4)多模态支持:该专利支持多模态模型,且在多模态模型推理加速测试条件下展现领先的性能,这种能力在满足用户推理需求和提高数据处理能力方面表现出色。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
在附图中:
图1为本发明一种容器化部署的边缘侧模型推理加速方法的模型训练和推理流程图;
图2为本发明一种容器化部署的边缘侧模型推理加速方法的模型推理加速的流程图;
图3为本发明一种容器化部署的边缘侧模型推理加速方法的推理服务部署场景图;
图4为本发明一种容器化部署的边缘侧模型推理加速方法的推理文件和配置文件在仓库中的存放结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本发明实施例涉及的技术术语定义如下:
1、Encoder:通常采用深度卷积神经网络(CNN)作为编码器,用于将输入的图像或特征图映射到潜在空间中。
2、Diffusion Process:这是模型的核心部分,采用了扩散过程来逐步生成图像。
3、Decoder:解码器通常也是一个深度CNN,负责将潜在空间中的表示还原为生成的图像。在扩散过程中,解码器生成逐步改进的图像。
4、Loss Function:通常使用生成对抗性损失(GAN loss)或其他适当的损失函数来训练模型,这些损失函数有助于确保生成的图像与真实图像之间的相似性。
5、Conditioning:在一些情况下,模型可能会引入条件信息,例如文本描述或其他额外信息,以指导图像生成的过程。
6、Temporal Scheduling:模型中的时间步长选择和调度过程,这决定了扩散过程中每一步生成图像的方式,包括噪声的引入和调整。
7、Docker,Docker是一种容器化平台,利用容器技术将应用程序、库和依赖项打包到一个标准化的单元中。每个Docker容器都运行在隔离的环境中,避免了应用之间的冲突和影响。Docker容器在不同环境中具有一致的运行方式,使应用在开发、测试和生产环境中更易于迁移。Kubernetes(通常简称为K8s)是一个开源的容器编排和管理平台,用于自动化容器的部署、扩展、管理和运维。Kubernetes提供服务发现机制和负载均衡;可以自动检测和替换失败的容器实例,确保应用的高可用性;根据负载情况自动扩展容器实例,以满足不同流量的需求。Docker和Kubernetes通常一起使用,Docker用于创建容器镜像,Kubernetes用于部署和管理这些容器镜像。
8、多模态,常见的多模态模型可以按照其结构和融合策略进行归类:按照结构可分为Early Fusion、Late Fusion、Transformer-Based等;按照融合策略分类可分为Concatenation、Summation、Weighted Average、Attention-Based和Cross-ModalRetrieval等,这些分类只是一种常见的方式,实际上,许多多模态模型可能会在不同的结构和融合策略之间进行组合和创新,以满足特定任务的要求。
实施例
深度学习模型的训练是一个迭代的过程,旨在通过数据来调整模型的参数,以使其能够准确地对数据进行预测。深度学习模型的推理是将经过训练的模型应用于新数据,生成预测结果的过程。
参考图1所示,模型训练流程和推理流程存在以下差别:
目的不同:训练流程旨在通过数据调整模型参数以最小化损失,使模型能够从数据中学习;推理流程是将训练好的模型应用于新数据,生成预测结果。
数据使用:训练流程使用训练数据来调整模型参数;推理流程使用新数据来生成预测。
反向传播:训练流程涉及反向传播来计算梯度并更新模型参数;推理流程只涉及前向传播,不需要反向传播。
参数状态:在训练流程中,模型参数被不断更新,以逐步优化模型性能;在推理流程中,模型参数保持不变。
计算开销:训练流程通常比推理流程更耗时和计算密集,因为训练涉及大量数据和参数更新的迭代过程。
本实施例提供的一种容器化部署的边缘侧模型推理加速方法的技术方案,在边缘服务架构上部署模型可以提供实时数据处理和决策能力,从而克服传统云端计算中存在的上述计算资源限制、网络延迟和数据隐私问题。
参考图2所示,本发明的目的是为了解决现有技术中存在的缺点,而提供了一种容器化部署的边缘侧模型推理加速方法,包括以下步骤:
S1:通过将训练模型根据格式模型进行转换后输出转换模型,根据转换模型的结构建立模型网络,对模型网络的转换模型进行量化操作和剪枝操作输出模型结构,具体地,在本实施例中,格式模型为原始框架,原始框架包括Pytorch、TensorFlow和MXNet在内的框架,以下主要采用Pytorch框架详细说明;
S2:对模型结构通过数据类型转换和数据格式转换完成数据预处理;
S3:通过对模型结构进行初始化操作,生成初始化模型,对初始化模型处理后获得处理模型和处理数据,完成推理引擎模型;
S4:通过容器化工具部署推理加速服务,使得模型结构、数据预处理和推理引擎模型在容器执行。
进一步地,转换模型,进一步包括:
训练模型根据格式模型的格式进行转换,转换模型的格式为格式模型的格式,具体地,在本实施例中,在训练模型导入阶段,首先将训练模型从Pytorch模型导出并转换为为ONNX格式,训练模型的计算图被转换为包含了训练模型的计算和操作的ONNX静态图,转换过程使用Pytorch模型提供的导出工具或库。
优选地,Pytorch模型使用torch.onnx.export()函数导出,该函数需要指定以下内容:输入模型;输入示例,即一个包含输入数据的示例张量,用于确定训练模型输入的形状和数据类型;指定导出的ONNX模型保存的文件名,该文件包含模型结构,权重与操作。
更优地,ONNX规范支持各种操作,但并非所有PyTorch操作都能直接转换为ONNX操作,在导出过程中,PyTorch会尝试将模型的操作映射到ONNX操作,如果遇到不支持的操作,可能需要进行操作转换或自定义操作,此外,PyTorch会对训练模型进行一些图级别的优化,例如融合相邻的操作、减少冗余操作等。这些优化旨在减小转换后的ONNX模型的大小和复杂度。
进一步地,步骤S1,进一步包括:
将模型结构使用验证工具验证输出的模型结构、以及输入信息和输出信息是否正确,具体地,在本实施例中,训练模型转换为转换模型后,可以使用ONNX工具库中的验证工具验证导出的ONNX模型是否正确,包括检查模型结构、输入输出信息等。
进一步地,模型网络,进一步包括:
S21:解析转换模型的结构,查看转换模型的输入信息和输出信息,在模型网络创建输入节点和输出节点;
S22:根据转换模型的结构在模型网络建立网络层和连接,确保输入信息和输出信息的正确传递。
进一步地,网络层和连接的建立,进一步包括:
通过解析转换模型中的参数值,在网络层设置网络层参数,根据转换模型的连接的关系,将网络层进行连接起来,具体地,在本实施例中,解析ONNX模型的结构,查看模型的输入和输出节点的信息,每个节点包括名称、数据类型和维度信息,根据上述信息在模型网络中创建相应的输入和输出节点,以便模型网络可以正确接受输入数据并生成输出结果,此外,上述信息将生成一个规范性配置文件,用于后续的模型部署环节,根据ONNX模型的结构,确定模型中包含哪些层,以及这些层之间的连接关系,根据这些信息,在模型网络中创建相应的网络层和连接。
更优地,ONNX模型中的参数信息包括各个层的权重、卷积核、偏置等,通过解析ONNX模型中的参数值并将其应用到创建的网络层中来将这些参数设置到相应的网络层中,此外,根据ONNX模型的连接信息,将网络层按照正确的连接关系连接起来,以确保信息正确传递。
进一步地,量化操作,进一步包括:
通过在模型网络的输入节点和输出节点***量化伪节点后,对模型网络的权重和激活值进行量化,对量化模型进行量化推理后,***一个反量化伪节点,最终输出量化模型,具体地,在本实施例中,模型网络推理不需要计算梯度和更新模型参数,可以通过量化来加速,量化过程将网络模型中的权重和激活值从高精度(例如32位浮点数)转换为低精度(例如8位整数或浮点数)。引入根据ONNX模型的结构构建的模型;使用torch.quantization.QuantStub()在模型网络的输入节点和输出节点之间***一个量化伪节点;设置model.qconfig来选择量化配置;进行正常的训练过程;在训练完成后,使用torch.quantization.convert将网络模型中的权重和激活值量化;使用torch.jit.script将模型转换为torch脚本以支持量化推理;进行量化推理,输入数据经过模型量化计算得到量化输出;使用torch.quantization.DeQuantStub()***一个反量化伪节点,将量化输出反量化为原始的浮点数输出;进行正常的推理过程,获取最终的量化模型输出。
进一步地,剪枝操作,进一步包括:
通过对量化模型进行剪枝操作后,移除剪枝操作后产生的冗余参数,对移除后的量化模型进行微调后输出模型结构,具体地,在本实施例中,模型剪枝通过减少模型中的冗余参数和连接来减小模型的大小和计算量,引入量化后的模型;使用torch.nn.utils.prune模块中的函数定义剪枝策略,包括剪枝范围(选择目标网络和对应的参数),剪枝方法和剪枝比例;执行剪枝,调用prune.remove函数来移除剪枝操作后产生的冗余参数;剪枝后对模型进行微调以恢复模型性能。
更优地,该技术集中于模型推理参数的精度量化,从而最小化模型结构的剪枝对精度造成的影响,通过精细的精度量化策略,可以将浮点参数精确地映射到较低位数的整数表示,从而降低了模型计算和内存开销。同时,为了确保模型的性能和准确性,这项技术将根据模型的特点和任务的需求,选择合适的量化方法和参数,以确保模型的精度损失在可接受的范围内。
进一步地,数据预处理,进一步包括:
根据格式模型的数据格式将模型结构的数据进行转换,将转换后的数据作为输入信息传递给推理引擎模型,具体地,在本实施例中,通过预处理部分完成数据类型转换,数据格式转换、图像预处理(缩放,裁剪,通道调整,归一化)。
优选地,本实施例可提供多模态模型推理加速服务,大模型推理前的数据预处理过程是深度学习模型推理的重要一步,它确保输入数据符合模型的要求,并在模型推理之前进行必要的数据变换和归一化。
在推理前,首先需要将模型结构的数据转换为推理引擎模型能够处理的数据类型,通常,深度学习模型在推理时需要特定类型的数据,如浮点数,如果输入数据的数据类型与模型期望的数据类型不匹配,就需要进行数据类型转换,深度学习模型通常期望特定的数据格式作为输入,例如图片模型可能需要输入为图像的张量,因此,需要模型结构的数据转换为推理引擎模型期望的数据格式,如果推理引擎模型是图像相关的,图像预处理是一个关键步骤。
这包括以下常见操作:缩放:将图像的尺寸调整为模型期望的输入尺寸,这是因为模型的输入尺寸通常是固定的,所以需要将输入图像进行缩放,以符合模型的要求;裁剪:在某些情况下,可以对图像进行裁剪,以提取感兴趣的区域;通道调整:图像的颜色通道以不同的顺序(RGB或BGR)存在,在预处理过程中,需要将图像的通道顺序调整为模型所需的顺序;归一化:将图像像素的值映射到固定的范围[0,1]或[-1,1],归一化可以帮助模型更好地进行训练和推理;数据增强:在一些情况下,可以在推理前对图像数据进行数据增强操作,如随机旋转、翻转、加噪声等。数据增强有助于提高模型的泛化能力,使模型对于输入的变化更具有鲁棒性,优选地,完成上述预处理步骤后,数据就可以作为输入数据传递给模型进行推理了。预处理过程确保了输入数据与模型的期望输入相匹配,为模型提供了适当的输入,从而获得准确的推理结果。
进一步地,对初始化模型处理,进一步包括:
遍历输入的请求,对请求获取输入文本,对文本进行Pipeline的数据的前处理,使用文本模型进行Pipeline的前向处理,前向处理主要对文本进行编码解码操作,编码解码操作产生的数据进行数据格式转换获得Pipeline的数据后处理,数据后处理即处理数据,具体地,在本实施例中,以加速模型stable diffusion推理为例描述模型推理引擎Pipeline生成方法。在这个过程中我们使用了triton推理库函数。
优选地,使用initialize方法初始化模型类实例。具体为:通过self.output_dtype获取输出数据类型;初始化CLIPTokenizer实例作为文本处理工具;初始化LMSDiscreteScheduler实例,用于调度模型运行的步数;初始化UNet2DConditionModel实例,用于图像生成。使用execute方法完成推理核心部分。在这个方法中,遍历输入的请求(requests),每个请求包含一个输入prompt(即输入的文本提示)。对于每个请求获取输入文本,进行分词处理,获得tokenized_text(条件文本)和tokenized_text_uncond(无条件文本)。随后,构建一个InferenceRequest,使用text_encoder模型处理输入的tokenized_text,获取文本的编码向量text_embeddings。上述过程完成后,运行scheduler(调度器),在一系列时间步长内调整噪声向量,生成latent vectors(潜在向量)。潜在向量将被用于图像生成。通过latent_sample向量和vae模型进行解码,生成生成的图像decoded_image。对生成的图像进行后处理,包括对图像进行归一化和转换,将图像转换为NumPy数组,以及对图像进行数据类型转换。将处理后的结果封装为InferenceResponse格式,包含生成的图像数据。
优选地,该技术引入了pipeline化推理,将推理过程分解为多个独立的阶段,使得在模型加载的同时可以进行其他预处理操作,例如数据格式转换、数据增强等。通过这种方式,不仅优化了推理过程中缓存的有效利用,还实现了对多个模型请求的高效统一管理。这样的分阶段设计不仅提升了整体推理速度,也使得在不同阶段间可以更好地并行处理,从而进一步提高了模型推理的效率。
参考图3所示,容器化工具部署推理加速服务,进一步包括:
通过将模型结构、数据预处理和推理引擎模型放入容器,对容器进行包括镜像、监控***、日志机制在内的配置、建立请求的客户端,通过容器配置实现容器间的通信和数据共享,具体地,在本实施例中,推理加速服务部署与执行是在强异构性的边缘网络环境中灵活便捷地部署推理加速服务,我们使用容器来封装推理加速程序。模型结构、数据预处理和推理引擎模型三个部分的操作均在容器中进行,推理服务部署分为两种环境,具体为:
(1)在单机环境上使用docker部署模型推理加速服务,包括
编写一个Dockerfile描述如何构建docker容器;Dockerfile中的内容通常包含基础镜像、工作目录、依赖库、模型路径(模型仓库)与推理服务脚本路径、服务端口和推理服务运行命令;规范化放置模型与配置文件,使用模型网络的模型配置文件,模型推理文件和配置文件在仓库中的存放结构参考图4所示;使用Dockerfile运行模型推理请求服务端,首先,进入Dockerfile所在目录,使用docker build命令构建docker镜像;使用构建好的镜像,开启推理请求端口,挂载模型仓库文件夹映射进容器,配置上述选项后,运行容器;构建模型推理请求客户端,测试请求,在上述环境下部署了stable diffusion v1-5模型,通过脚本构建客户端形式来请求推理。
(2)在边缘网络架构上使用kubernetes部署模型推理加速服务,包括:
使用Kubernetes是单机环境的扩展,我们需要设置一个Kubernetes集群,该集群可以包含多个边缘设备,每个设备可以是一个Kubernetes节点,确保集群的规模和配置适合你的推理需求;使用在上述单机环境下生成的镜像,创建一个Kubernetes部署描述文件(yaml格式),用于定义模型推理服务的部署规范,描述文件中指定使用的生成镜像,并指定资源分配、环境变量配置,使用kubectl命令运行描述文件部署到Kubernetes集群中,在集群中自动创建相应的Pod和容器实例;使用Service对象创建负载均衡器,并将其与部署的模型推理服务关联。这可以确保推理请求在集群中的各个节点上得到均匀分发,并提供了服务发现机制,让其他服务能够轻松找到模型推理服务的位置;通过配置Kubernetes的资源限制,你可以为每个模型推理服务指定CPU、内存等资源的使用限制,以避免资源竞争和性能问题。此外设置亲和性规则,将模型推理服务与特定类型的节点进行亲和性绑定,以满足特定的硬件需求;使用Service Discovery或者配置ConfigMap和Persistent Volume等机制实现容器之间的通信和数据共享;配置适当的安全策略,限制对模型推理服务的访问,并使用身份验证和授权机制,以保护模型和数据的安全;配置监控***和日志机制,以实时监测模型推理服务的性能、运行状态和资源使用情况,迅速识别和排除潜在的问题,并根据监控指标设置自动伸缩规则,以便根据负载的变化自动调整部署的副本数量。
更优地,本实施例通过引入容器化工具来部署推理服务,这一技术突破将模型推理的部署门槛大大降低,容器化技术使得将推理服务及其依赖环境打包成独立的容器成为可能,从而实现了在不同环境中一致部署,这不仅简化了配置和部署的过程,还增加了部署的灵活性,适应了不同硬件平台和场景的需求,尤其对于边缘计算环境中的异构服务器架构而言,具有显著的优势。
综上所述,该技术在模型推理中支持多模态模型,使得不同类型的数据(例如图像和文本)能够被联合处理。通过有效地将多模态数据输入到模型中,该技术突破进一步提高了模型的数据处理能力。在多模态模型推理加速测试条件下,这一技术表现出领先的性能,能够更好地满足现实世界中多模态数据处理的需求。这项能力不仅有助于提高模型的综合性能,还能够更全面地捕捉数据之间的关联和信息。
最后应说明的是:以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种容器化部署的边缘侧模型推理加速方法,其特征在于,包括以下步骤:
S1:通过将训练模型根据格式模型进行转换后输出转换模型,根据所述转换模型的结构建立模型网络,对所述模型网络的所述转换模型进行量化操作和剪枝操作输出模型结构;
S2:对所述模型结构通过数据类型转换和数据格式转换完成数据预处理;
S3:通过对所述模型结构进行初始化操作,生成初始化模型,对所述初始化模型处理后获得处理模型和处理数据,完成推理引擎模型;
S4:通过容器化工具部署推理加速服务,使得所述模型结构、所述数据预处理和所述推理引擎模型在所述容器执行。
2.根据权利要求1所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述转换模型,进一步包括:
所述训练模型根据格式模型的格式进行转换,所述转换模型的格式为所述格式模型的格式。
3.根据权利要求1所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述步骤S1,进一步包括:
将所述模型结构使用验证工具验证输出的所述模型结构、以及输入信息和输出信息是否正确。
4.根据权利要求2所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述模型网络,进一步包括:
S21:解析所述转换模型的结构,查看所述转换模型的所述输入信息和所述输出信息,在所述模型网络创建输入节点和输出节点;
S22:根据所述转换模型的结构在所述模型网络建立网络层和连接,确保所述输入信息和输出信息的正确传递。
5.根据权利要求4所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述网络层和连接的建立,进一步包括:
通过解析所述转换模型中的参数值,在所述网络层设置所述网络层参数,根据所述转换模型的所述连接的关系,将所述网络层进行连接起来。
6.根据权利要求4所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述量化操作,进一步包括:
通过在所述模型网络的输入节点和所述输出节点***量化伪节点后,对所述模型网络的权重和激活值进行量化,对所述量化模型进行量化推理后,***一个反量化伪节点,最终输出量化模型。
7.根据权利要求6所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述剪枝操作,进一步包括:
通过对所述量化模型进行剪枝操作后,移除所述剪枝操作后产生的冗余参数,对所述移除后的量化模型进行微调后输出模型结构。
8.根据权利要求6所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述数据预处理,进一步包括:
根据格式模型的数据格式将所述模型结构的数据进行转换,将转换后的数据作为输入信息传递给所述推理引擎模型。
9.根据权利要求1和8所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述推理引擎模型,进一步包括:
遍历所述输入的请求,对所述请求获取输入文本,对所述文本进行Pipeline的数据的前处理,使用文本模型进行Pipeline的前向处理,所述前向处理主要对所述文本进行编码解码操作,所述编码解码操作产生的数据进行所述数据格式转换获得Pipeline的数据后处理,所述数据后处理即处理数据。
10.根据权利要求1所述的一种容器化部署的边缘侧模型推理加速方法,其特征在于,所述容器化工具部署推理加速服务,进一步包括:
通过将所述模型结构、所述数据预处理和所述推理引擎模型放入所述容器,对所述容器进行包括镜像、监控***、日志机制在内的配置、建立所述请求的客户端,通过容器配置实现容器间的通信和数据共享。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311201460.6A CN117196000A (zh) | 2023-09-18 | 2023-09-18 | 一种容器化部署的边缘侧模型推理加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311201460.6A CN117196000A (zh) | 2023-09-18 | 2023-09-18 | 一种容器化部署的边缘侧模型推理加速方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117196000A true CN117196000A (zh) | 2023-12-08 |
Family
ID=89001374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311201460.6A Pending CN117196000A (zh) | 2023-09-18 | 2023-09-18 | 一种容器化部署的边缘侧模型推理加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117196000A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992078A (zh) * | 2024-04-03 | 2024-05-07 | 山东浪潮科学研究院有限公司 | 一种基于TensorRT-LLM模型推理加速服务的自动化部署方法 |
-
2023
- 2023-09-18 CN CN202311201460.6A patent/CN117196000A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992078A (zh) * | 2024-04-03 | 2024-05-07 | 山东浪潮科学研究院有限公司 | 一种基于TensorRT-LLM模型推理加速服务的自动化部署方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111178517B (zh) | 模型部署方法、***、芯片、电子设备及介质 | |
CN114035937A (zh) | 一种基于人工智能的分布式训练和推理方法、***、设备和可读存储介质 | |
US11580671B2 (en) | Hash-based attribute prediction for point cloud coding | |
CN111191789B (zh) | 模型优化部署***、芯片、电子设备及介质 | |
CN117196000A (zh) | 一种容器化部署的边缘侧模型推理加速方法 | |
CN111369430B (zh) | 基于移动深度学习引擎的移动端人像智能背景替换方法 | |
CN113570030A (zh) | 数据处理方法、装置、设备以及存储介质 | |
US20240161474A1 (en) | Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium | |
US20240013445A1 (en) | Coding of multiple-component attributes for point cloud coding | |
US20230252294A1 (en) | Data processing method, apparatus, and device, and computer-readable storage medium | |
KR20220143792A (ko) | 콘볼루션 신경망 양자화 추론 장치 및 방법 | |
CN115934275A (zh) | 任务处理方法及对话任务处理方法 | |
CN115186305B (zh) | 一种构建数据元件模型并生产数据元件的方法 | |
CN116644180A (zh) | 文本匹配模型的训练方法、训练***和文本标签确定方法 | |
CN115496181A (zh) | 深度学习模型的芯片适配方法、装置、芯片及介质 | |
EP4042677A1 (en) | Multi-quality video super resolution with micro-structured masks | |
CN116755714B (zh) | 深度神经网络模型的运行方法、装置、设备和存储介质 | |
CN116051964B (zh) | 深度学习网络确定方法、图像分类方法及设备 | |
CN115480745B (zh) | 基于配置文件的代码生成方法及装置 | |
CN116980423B (zh) | 模型调度方法、装置、计算***、设备及可读存储介质 | |
US20240143414A1 (en) | Load testing and performance benchmarking for large language models using a cloud computing platform | |
EP4220501A1 (en) | Runtime predictors for computation reduction in dependent computations | |
Geerhart et al. | Deep learning acceleration at the resource-constrained tactical edge | |
CN118378005A (zh) | 混合精度权重的处理方法、装置、设备及计算机程序产品 | |
US20150089471A1 (en) | Input filters and filter-driven input processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |