本文介绍神经网络模型在部署态中的两种方式:云侧部署和边缘侧部署。其中,云侧部署适用于云服务器等具备强大计算能力和存储空间的环境,可以实现高吞吐量和集中的数据管理,但可能面临高成本、网络延迟和数据隐私等挑战。
边缘侧部署适用于边缘设备和移动设备等资源受限的环境,可以通过模型优化、硬件加速和分布式计算等方式降低延迟和能耗,但也面临有限算力、数据分散和安全性风险等挑战。两种部署方式都有自己的优势和局限性,需要根据具体应用场景来选择合适的部署方式。
部署态
模型的生命周期包含训练态和部署态,分别指的是 AI 模型在训练过程中的学习状态和在实际应用中的状态,它们代表了 AI 生命周期中的两个不同阶段,各自具有独特的目标、过程、环境和关注点。
部署态中的 AI 模型已经完成了训练阶段,被部署到实际应用环境中,如云端服务器、边缘设备、移动应用等,用于实时或近实时地进行推理预测的过程。此时,AI 模型不再处于学习状态,而是作为服务的一部分,接受输入数据并输出预测结果。
云端部署的推理系统更像传统 Web 服务,在边缘侧部署的模型更像手机应用和 IOT 应用系统。通常指互联网上的数据中心、云服务平台或远程服务器集群,其特点是拥有强大计算能力、海量存储空间、高带宽网络连接以及丰富的管理服务。
边缘端是指靠近数据生成源或用户终端的计算与网络设备,其目的是减少数据传输延迟、节省带宽、保护隐私或确保服务在离线或网络不稳定情况下的可用性。边缘端部署的设备主要包括:
云侧部署特点与挑战
云端部署推理系统,即在云端(如云服务器、云平台)上运行的神经网络模型推理服务,相比边缘侧可以达到更高的推理吞吐量。以下详述云端部署态的特点及其带来的挑战:
首先来看一下云端部署态的特点:
云端部署推理系统的确具备诸多显著优点,使其成为众多企业和课程首选的部署方式。然而,云端部署并非万能解决方案,也伴随着一些特定的挑战。
边缘侧部署特点与挑战
部署态的另外一面就是边缘侧部署,边缘侧部署是一种可行的解决方案,可以满足前面描述的延迟、数据传输、安全性挑战。在边缘侧部署中,计算资源的精细化网格提供了接近于终端设备的计算能力。然而,边缘环境也具有其特有的限制与挑战,下面详细阐述其特点与挑战:
首先在端侧部署会遇到的挑战:
其次就是在边缘部署要做的工作:
总结来说,边缘设备上的推理系统具备应用层算法优化、高效率模型设计、丰富的移动端框架与芯片支持等优点,但同时也面临着严格的功耗与热量约束、有限的硬件算力、数据分散与训练困难、安全性风险增加以及平台多样性带来的挑战。解决这些挑战需要持续的技术创新与跨学科合作,以推动边缘智能的广泛应用与健康发展。
云测与边缘部署区别
了解了部署态在云侧与边缘侧的特点与挑战后,我们分开算力、时间、网络能耗等方面对两者进行对比。
云端部署端侧部署算力算力强大(TFLOPS,行可扩展),适合训练和推理阶段计算算力有限,水平扩展性差,更适合推理阶段前向计算时延主要的时延来自网络传输和计算开销本地计算无网络开销或者开销很低,实时响应要求高网络依赖强依赖弱依赖能耗百瓦以上几十瓦,能耗比高系统架构开放,高度集中封闭,架构分散多样性标准化程度高,CPU/GPU/NPU多样性芯片架构,SOC 多研发成本配套完善,可移植性高配套不完善,可移植性受限
云侧部署和推理方式
推理系统在云侧可能会做很多的请求,监控、调度还有推力引擎,更多的是模型的管理这些相关的工作。如图所示,推理系统中常常涉及相应模块并完成相应功能,我们将在后面文章中逐步展开。首先从流程上来看,推理系统完成以下处理并涉及以下系统设计问题:
综上所述,云侧推理和部署的全流程涵盖了模型全生命周期管理、服务接口设计、请求处理与调度、推理执行、系统监控以及硬件优化等多个环节,旨在构建一个高效、稳定、可扩展的云上 AI 服务环境。
边缘部署和推理方式
除了云端的部署,神经网络模型的另一大场景就是边缘(Edge)部署,随着越来越多的物联网设备智能化,越来越多的移动端系统中开始部署神经网络模型。移动端部署应用常常有以下场景:智能设备,智慧城市,智能工业互联网,智慧办公室等。
边缘部署和推理方式常见的为以下几种:
方式一:边缘设备计算
第一种就是纯粹在边缘里面去做一个推理的,包括在手机、耳机还有手环上面,去做一个简单的推理,如下图所示。许多研究工作都集中在如何减少深度学习在资源受限的设备上执行时的延迟。
在这里,我们描述了在高效硬件和 DNN 模型设计方面的主要优化:
方式二:安全计算 + 卸载云端
将模型部署于数据中心,边缘侧通过安全通信协议将请求发送到云端,云端推理返回结果,相当于将计算卸载(Offloading)到云端。这种方式好处是利用云端运行提升模型安全性,适合部署端侧无法部署的大模型。完全卸载到云端有可能违背实时性的需求。过渡方法是可以将模型切片,移动端和边缘端各有部分模型切片。
方式三:边缘设备 + 云端服务器
卸载方式是利用深度学习的结构特点,将一部分层切分放置在设备端进行计算,其他放置在云端,这种方式也被称作深度学习切片。这种方式一定程度上能够比方式二降低延迟,由于其利用了边缘设备的算力,但是与云端通信和计算还是会带来额外开销。这种方式的动机是,经过前几层的计算后,中间结果变得非常少。
使用这种方式部署很多时候是由于有一些数据是不出端的,用户对这些数据的隐私的保护要求非常严格。例如相册的推荐,华为相册中对人像、事物、美食做了归类,这种归类数据是不出端的,用户对这些数据的隐私要求非常高。这个时候会做一个小模型,在端内做一个简单的决策,这个小模型会通过大模型对大量的数据进行训练,训练完之后再推过来。
方式四:分布式计算
上述方法主要考虑将计算从终端设备卸载到其他更强大的设备(如边缘服务器或云)。另一种工作是从分布式计算的角度考虑问题。此类工作从分布式系统角度抽象问题,AI 计算在多个辅助边缘设备上切片,例如,MoDNN[17] 和 DeepThings[18] 通过细粒度的切片策略,将模型切片部署在设备,例如,树莓派和安卓手机,进行执行。切片策略根据设备计算能力,内存约束。在运行期,DeepThings 输入数据通过负载均衡策略进行调度,MoDNN 抽象了一层类 MapReduce 计算模型进行调度。
方式五:跨设备卸载
最后一种方式是利用 DNN 独特的层的结构,让一些层在边缘设备上计算,一些层由边缘服务器或云端计算。这种方法可以通过利用其他边缘设备的计算周期来潜在地提供延迟减少,但是还需要注意的是,在 DNN 分区点传递中间结果的延迟会影响总体的收益。
如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~
转载自:
【AI系统】推理流程全景 - ZOMI酱的文章 - 知乎