声明:笔记是做项目时根据B站博主视频学习时自己编写,请勿随意转载!
温馨提示:对于我的电脑没有Nvidia的独显,只有Intel的集显,最后导出时无法识别Nvidia显卡设备!!就没成功!! 如果你的torch与我一样之前安装的CPU版本,那么很可能最后与我一样!
一、模型部署概述
算法要落地到实际应用,这就叫模型部署!
模型部署是将训练好的机器学习或深度学习模型集成到实际应用中,使其能够对外提供服务的过程。只有将模型部署到实际应用中,才能发挥其作用,为企业或个人带来实际效益。
主要包括在线部署和离线部署两种。
- 在线部署:是指将训练好的模型直接部署到实时应用场景中,以实时处理和预测数据。其主要优势在于实时性和高效性。其算法原理是将训练好的模型加载到内存中,然后通过输入数据流进行处理和预测。
具体步骤:①加载训练好的模型文件、②将输入数据流转换为模型所需的格式、③通过模型进行处理和预测,④输出预测结果。
- 离线部署:则是将训练好的模型部署到非实时应用场景中,以批量处理和预测数据。它的主要优势在于数据安全和计算资源利用率。离线部署的算法原理是将训练好的模型保存到磁盘中,然后通过批量输入数据进行处理和预测。
具体步骤包括:①训练好的模型保存到磁盘中、②将批量输入数据加载到内存中、③通过模型进行处理和预测,④将预测结果保存到磁盘中。
大模型和小模型的部署方式区别:
- 大模型通常参数较多、层数较深,因此具有更强的表达能力和更高的准确度。但是,这也意味着大模型需要更多的计算资源和时间来训练和推理。在部署大模型时,往往需要考虑到服务器的性能、内存和存储等要求。
常见的部署方式包括将模型部署为Web服务,或者将模型打包成Docker镜像后部署到云服务器上。这些方式可以充分利用云端的强大计算资源,满足大模型对性能的需求。
- 小模型通常参数较少、层数较浅,具有轻量级、高效率、易于部署等优点。这些模型适用于数据量较小、计算资源有限的场景,例如移动端应用、嵌入式设备等。
在部署小模型时,可以考虑将模型直接部署到这些设备上,或者使用一些轻量级的框架来实现。这样既可以节省计算资源,又可以实现快速响应和实时处理。
训练框架和推理引擎的不同角色:
- 训练框架主要用于模型的训练阶段,它提供了构建、训练和验证机器学习模型的工具和方法。训练框架通常包含了大量的优化算法和技巧,以及丰富的数据处理和模型调优功能,帮助研究人员和开发者更高效地训练出高质量的模型。
- 当模型训练完成后,需要将其部署到实际应用中进行推理时,就需要使用推理引擎了。
推理引擎是实施问题求解的核心执行机构,它主要负责在设备端高效地运行模型,进行前向推理。与训练框架相比,推理引擎更关注于模型的执行效率和性能优化,以满足实际应用中对于实时性、准确性和资源消耗等方面的要求。
二、TensorRT推理引擎
TensorRT是NVIDIA开发的一种高性能深度学习推理优化器和运行时加速库(引擎),主要用于加速深度学习应用在生产环境中的部署。
目标是为深度学习应用提供低延迟、高吞吐率的部署推理。TensorRT可以支持TensorF