【AI系统】推理流程全景

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 本文概述了神经网络模型在云侧和边缘侧部署的特点与挑战。云侧部署凭借强大的计算能力和集中的数据管理,适合高吞吐量应用,但面临高成本、网络延迟等问题;边缘侧部署则通过模型优化和硬件加速降低延迟和能耗,适用于资源受限的环境,但存在算力限制、数据分散等挑战。两种方式各有优劣,需根据实际需求选择。

本文介绍神经网络模型在部署态中的两种方式:云侧部署和边缘侧部署。其中,云侧部署适用于云服务器等具备强大计算能力和存储空间的环境,可以实现高吞吐量和集中的数据管理,但可能面临高成本、网络延迟和数据隐私等挑战。

边缘侧部署适用于边缘设备和移动设备等资源受限的环境,可以通过模型优化、硬件加速和分布式计算等方式降低延迟和能耗,但也面临有限算力、数据分散和安全性风险等挑战。两种部署方式都有自己的优势和局限性,需要根据具体应用场景来选择合适的部署方式。

部署态

模型的生命周期包含训练态和部署态,分别指的是 AI 模型在训练过程中的学习状态和在实际应用中的状态,它们代表了 AI 生命周期中的两个不同阶段,各自具有独特的目标、过程、环境和关注点。

部署态中的 AI 模型已经完成了训练阶段,被部署到实际应用环境中,如云端服务器、边缘设备、移动应用等,用于实时或近实时地进行推理预测的过程。此时,AI 模型不再处于学习状态,而是作为服务的一部分,接受输入数据并输出预测结果。

云端部署的推理系统更像传统 Web 服务,在边缘侧部署的模型更像手机应用和 IOT 应用系统。通常指互联网上的数据中心、云服务平台或远程服务器集群,其特点是拥有强大计算能力、海量存储空间、高带宽网络连接以及丰富的管理服务。

边缘端是指靠近数据生成源或用户终端的计算与网络设备,其目的是减少数据传输延迟、节省带宽、保护隐私或确保服务在离线或网络不稳定情况下的可用性。边缘端部署的设备主要包括:

  1. 边缘服务器:小型化、低功耗的服务器,如微型服务器、嵌入式服务器,用于在靠近数据源处处理计算密集型任务。这类服务器可能配备较低功耗的 CPU、适量内存和存储,并可能集成特定领域的加速硬件。

  2. 物联网网关:作为连接传感器、设备与云端的桥梁,物联网网关负责数据采集、初步处理、协议转换和安全传输。它们可能具备一定的计算能力以支持本地数据分析和简单推理。

  3. 嵌入式设备:包括各种单板计算机(如 Raspberry Pi、Arduino)、微控制器(MCU)、智能模组等,这些设备通常具有低功耗、小体积等特点,常用于智能家居、工业控制、自动驾驶等场景中的数据采集、控制输出和本地推理。

  4. 移动设备:如智能手机、平板电脑、智能穿戴设备等,它们内置处理器、内存和操作系统,能够运行轻量级推理应用,实现基于 AI 的个性化服务、实时分析或设备自主决策。

  5. 专用硬件加速器:如 AI 加速卡(如 Intel Movidius、NVIDIA Jetson 系列)、视觉处理单元(VPU)、现场可编程门阵列(FPGA)等,用于在边缘设备上高效执行特定的 AI 算法,如神经网络推理。

  6. 网络设备:在边缘场景中,可能还包括无线接入点(WAP)、LoRa 网关、NB-IoT 基站等,提供无线连接,支持物联网设备接入和数据传输。

深度学习在边缘设备和云上执行

云侧部署特点与挑战

云端部署推理系统,即在云端(如云服务器、云平台)上运行的神经网络模型推理服务,相比边缘侧可以达到更高的推理吞吐量。以下详述云端部署态的特点及其带来的挑战:

首先来看一下云端部署态的特点:

  • 对功耗(Power Consumption)、温度还有模型大小是没有太严格的限制的。

  • 强大硬件支持。因为云端的资源非常的丰富的,通常配备高性能 CPU、GPU、TPU 等硬件加速器,能够高效处理大规模、复杂度高的推理任务。

  • 集中的数据管理。在云侧有集中的数据管理,数据管理是训练环节中的一个很大的挑战,因为数据不仅是数据库的数据,而且更多的是一些非结构化的数据。同时云端提供了近乎无限的存储空间,便于存储大规模训练数据集、模型文件、中间结果及日志等。这对于需要频繁访问大数据或存储大量模型版本的应用尤为重要。

  • 模型更容易在云端得到保护。云服务商通常具备完善的安全防护机制,如防火墙、身份验证、加密技术等,有助于保护数据安全和满足合规性要求。同时,云端部署有利于实施集中式安全策略和审计。

  • 神经网络模型的执行平台和 AI 框架统一。云端环境通常提供标准化的基础设施和服务,支持广泛使用的 AI 框架(如 TensorFlow、PyTorch、MXNet 等)。开发者可以利用这些通用平台,无需顾虑底层硬件差异,直接部署训练好的模型,实现模型执行平台和 AI 框架的高度统一。这种一致性不仅简化了模型迁移和部署流程,还促进了跨团队、跨课程的协作与资源共享。

云端部署推理系统的确具备诸多显著优点,使其成为众多企业和课程首选的部署方式。然而,云端部署并非万能解决方案,也伴随着一些特定的挑战。

  • AI 的服务成本非常高昂。因为需要云端的服务你就需要大量的机器,大量的容灾,大量的各种设备维护机房,所以它整体的成本是很高的。

  • 推理服务对网络的依赖高。用户请求需要通过网络传输到云端进行处理,再返回结果,可能导致一定延迟。对于对实时性要求极高的应用(如实时语音识别、远程操控),网络延迟可能成为关键瓶颈。

  • 数据隐私问题。在某些应用场景下,数据可能包含敏感信息,直接上传至云端进行推理可能引发隐私问题或不符合数据保护法规的要求。此时,可能需要采用加密、差分隐私等技术,或考虑边缘端推理以减少数据外传。

  • 数据传输成本。当推理过程中涉及大量数据传输(如高清视频流分析)时,可能会产生较高的带宽费用,尤其是在大规模部署和高并发情况下。数据传输成本不仅是网络带宽使用费,也可能包括因数据传输而产生的电力消耗、硬件磨损等间接成本。

  • 难以定制化模型。云端一般都会做一些通用的模型,很难定制化模型。

边缘侧部署特点与挑战

部署态的另外一面就是边缘侧部署,边缘侧部署是一种可行的解决方案,可以满足前面描述的延迟、数据传输、安全性挑战。在边缘侧部署中,计算资源的精细化网格提供了接近于终端设备的计算能力。然而,边缘环境也具有其特有的限制与挑战,下面详细阐述其特点与挑战:

边缘侧部署推理系统的流程

首先在端侧部署会遇到的挑战:

  • 严格约束功耗、热量、模型尺寸小于设备内存:边缘设备,特别是移动设备,如智能手机、物联网传感器等,通常受到严格的电池续航和散热条件限制。部署推理系统时必须精细管理能源消耗,避免过热导致性能下降或设备损坏。这要求模型在设计时考虑低功耗特性,使用高效的计算图执行策略,并可能需要配合动态电压频率调整(DVFS)等硬件节能技术来平衡性能与能耗。

  • 有限的硬件算力:边缘设备的计算能力相比云端服务器通常相差悬殊。即使是高端移动设备,其 CPU、GPU 或专用 AI 处理器的算力对于复杂的神经网络模型来说仍可能显得捉襟见肘。因此,部署在边缘的模型必须高度精简,或者通过异步计算、模型拆分(如 Edgent 框架所提出的 DNN 分区)等方式,将部分计算任务卸载到边缘服务器或云端,以减轻设备端的计算压力。

  • 数据分散且难以训练:边缘设备产生的数据高度分散,分布在网络边缘的各个节点,且由于隐私、带宽、法规等因素,这些数据往往难以集中用于模型训练。这要求采用分布式或联邦学习等技术,允许在数据不出本地的前提下进行模型更新,或者设计能够在有限样本下进行有效学习和适应的在线学习算法。

  • 安全性风险增加:由于边缘设备更接近物理世界,直接面对用户或攻击者,其上的推理系统更容易受到恶意攻击,如模型窃取、对抗样本攻击、侧信道攻击等。保障边缘推理的安全性需要强化模型加密、完整性验证、反逆向工程等防护措施,以及实施实时监控与异常检测机制。

  • 平台多样性与缺乏通用解决方案:边缘设备类型繁多,操作系统各异,硬件架构差异明显,导致没有一种通用的 DNN 平台或解决方案能无缝适配所有设备。开发者需要面对跨平台兼容性问题,可能需要为不同设备定制化模型编译与优化过程,增加了部署与维护成本。

其次就是在边缘部署要做的工作:

  • 应用的算法优化。边缘设备推理系统的特点在于对应用层算法的高度优化,以适应有限的硬件资源。这通常涉及使用轻量级模型结构、知识蒸馏、模型量化、剪枝等技术,减小模型尺寸,降低计算复杂度,确保模型能够在设备内存中完整加载。此外,针对移动端特定的应用场景,开发人员会设计并训练专门的 AI 模型,这些模型在保持较高精度的同时,显著减少参数数量和运算需求。

  • 高效率的模型的设计。通过模型压缩,量化,神经网络结构搜索(NAS)等技术,提升移动端的模型效率。

  • 移动端是有非常多的推理引擎的。移动端专用的推理引擎如 TensorFlow Lite、MACE、Core ML、ONNX Runtime Mobile 等,通过优化编译器、运行时库以及硬件加速器接口,进一步提升模型推理速度,降低能耗,确保在资源受限的边缘设备上流畅运行。

  • 丰富的移动端芯片支持。各类专为边缘推理优化的芯片(如 ARM Cortex-A 系列、 Qualcomm Snapdragon、Apple Bionic、华为 HiSilicon Kirin 等)集成硬件加速单元(如 GPU、DSP、NPU),增强本地计算性能,为边缘设备上的推理任务提供硬件支撑。

总结来说,边缘设备上的推理系统具备应用层算法优化、高效率模型设计、丰富的移动端框架与芯片支持等优点,但同时也面临着严格的功耗与热量约束、有限的硬件算力、数据分散与训练困难、安全性风险增加以及平台多样性带来的挑战。解决这些挑战需要持续的技术创新与跨学科合作,以推动边缘智能的广泛应用与健康发展。

云测与边缘部署区别

了解了部署态在云侧与边缘侧的特点与挑战后,我们分开算力、时间、网络能耗等方面对两者进行对比。

云端部署 端侧部署
算力 算力强大(TFLOPS,行可扩展),适合训练和推理阶段计算 算力有限,水平扩展性差,更适合推理阶段前向计算
时延 主要的时延来自网络传输和计算开销 本地计算无网络开销或者开销很低,实时响应要求高
网络依赖 强依赖 弱依赖
能耗 百瓦以上 几十瓦,能耗比高
系统架构 开放,高度集中 封闭,架构分散
多样性 标准化程度高,CPU/GPU/NPU 多样性芯片架构,SOC 多
研发成本 配套完善,可移植性高 配套不完善,可移植性受限

云侧部署和推理方式

推理系统在云侧可能会做很多的请求,监控、调度还有推力引擎,更多的是模型的管理这些相关的工作。如图所示,推理系统中常常涉及相应模块并完成相应功能,我们将在后面文章中逐步展开。首先从流程上来看,推理系统完成以下处理并涉及以下系统设计问题:

云侧部署推理系统

  1. 请求与响应处理:请求与响应处理的模块主要是为了实现一个低延迟高吞吐的系统。系统需要序列化与反序列化请求,并通过后端高效执行,满足一定的响应延迟。相比传统的 web 服务,推理系统常常需要接受图像、文本、音频等非结构化数据,单请求或响应数据量一般更大,这就需要对这类数据有高效的传输,序列化,压缩和解压缩机制。

  2. 请求调度:系统可以根据后端资源利用率,动态调整整批尺寸,模型的资源分配,进而提升资源利用率,吞吐量。同时如果是通过加速器进行的加速推理,还要考虑主存与加速器内存之间的数据拷贝,通过调度或预取等策略在计算的间歇做好数据的准备。

  3. 推理引擎执行:推理引擎将请求映射到模型作为输入,并在运行时调度神经网络模型的内核进行多阶段的处理。如果是部署在异构硬件或多样化的环境,还可以利用编译器进行代码生成与内核算子优化,让模型自动化转换为高效的特定平台的可执行机器码。

  4. 模型版本管理:在云端算法工程师不断验证和开发新的版本模型,需要有一定的协议保证版本更新与回滚。定期或满足一定条件的新模型不断上线替换线上模型,以提升推理服务的效果,但是由于有些指标只能线上测试,有可能线上测试效果较差还需要支持回滚机制,让模型能回滚到稳定的旧版本模型。

  5. 健康监控:云端的服务系统应该是可观测的,才能让服务端工程师监控,报警和修复服务,保证服务的稳定性和 SLA。例如,一段时间内响应变慢,通过可观测的日志,运维工程师能诊断是哪个环节成为瓶颈,进而可以快速定位,应用策略,防止整个服务突发性无法响应(例如,OOM 造成服务程序崩溃)。

  6. 推理硬件:在边缘端等场景会面对更多样的硬件,驱动和开发库,需要通过编译器进行一定代码生成让模型可以跨设备高效运行,并通过编译器实现性能优化。

  7. 推理系统和训练系统间可以通过模型库与上线的协议建立起联系,一般训练系统有一套完整的 DevOps 流水线,也被称作 MLOps。算法工程师不断在训练流水线中提交模型设计与算法调优的实验,待满足一定的精度需求后,模型进入模型库并触发上线动作。之后就是模型被压缩优化或加载进推理系统了。

综上所述,云侧推理和部署的全流程涵盖了模型全生命周期管理、服务接口设计、请求处理与调度、推理执行、系统监控以及硬件优化等多个环节,旨在构建一个高效、稳定、可扩展的云上 AI 服务环境。

边缘部署和推理方式

除了云端的部署,神经网络模型的另一大场景就是边缘(Edge)部署,随着越来越多的物联网设备智能化,越来越多的移动端系统中开始部署神经网络模型。移动端部署应用常常有以下场景:智能设备,智慧城市,智能工业互联网,智慧办公室等。

边缘部署和推理方式常见的为以下几种:

边缘设备上的计算

方式一:边缘设备计算

第一种就是纯粹在边缘里面去做一个推理的,包括在手机、耳机还有手环上面,去做一个简单的推理,如下图所示。许多研究工作都集中在如何减少深度学习在资源受限的设备上执行时的延迟。

在这里,我们描述了在高效硬件和 DNN 模型设计方面的主要优化:

  1. 模型设计:在为资源受限的设备设计 DNN 模型时,机器学习研究人员往往侧重于设计 DNN 模型中参数量较少的模型,从而减少内存和执行延迟,同时保持较高的准确性。这些模型包括 MobileNets, SqueezeNet 等。

  2. 模型压缩:通过模型量化、剪枝和知识蒸馏等压缩手段对模型进行压缩。

  3. 硬件:设计针对神经网络的专用芯片。

方式二:安全计算 + 卸载云端

将模型部署于数据中心,边缘侧通过安全通信协议将请求发送到云端,云端推理返回结果,相当于将计算卸载(Offloading)到云端。这种方式好处是利用云端运行提升模型安全性,适合部署端侧无法部署的大模型。完全卸载到云端有可能违背实时性的需求。过渡方法是可以将模型切片,移动端和边缘端各有部分模型切片。

方式三:边缘设备 + 云端服务器

卸载方式是利用深度学习的结构特点,将一部分层切分放置在设备端进行计算,其他放置在云端,这种方式也被称作深度学习切片。这种方式一定程度上能够比方式二降低延迟,由于其利用了边缘设备的算力,但是与云端通信和计算还是会带来额外开销。这种方式的动机是,经过前几层的计算后,中间结果变得非常少。

使用这种方式部署很多时候是由于有一些数据是不出端的,用户对这些数据的隐私的保护要求非常严格。例如相册的推荐,华为相册中对人像、事物、美食做了归类,这种归类数据是不出端的,用户对这些数据的隐私要求非常高。这个时候会做一个小模型,在端内做一个简单的决策,这个小模型会通过大模型对大量的数据进行训练,训练完之后再推过来。

方式四:分布式计算

上述方法主要考虑将计算从终端设备卸载到其他更强大的设备(如边缘服务器或云)。另一种工作是从分布式计算的角度考虑问题。此类工作从分布式系统角度抽象问题,AI 计算在多个辅助边缘设备上切片,例如,MoDNN[17] 和 DeepThings[18] 通过细粒度的切片策略,将模型切片部署在设备,例如,树莓派和安卓手机,进行执行。切片策略根据设备计算能力,内存约束。在运行期,DeepThings 输入数据通过负载均衡策略进行调度,MoDNN 抽象了一层类 MapReduce 计算模型进行调度。

方式五:跨设备卸载

最后一种方式是利用 DNN 独特的层的结构,让一些层在边缘设备上计算,一些层由边缘服务器或云端计算。这种方法可以通过利用其他边缘设备的计算周期来潜在地提供延迟减少,但是还需要注意的是,在 DNN 分区点传递中间结果的延迟会影响总体的收益。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/ 或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
目录
相关文章
|
3天前
|
机器学习/深度学习 存储 人工智能
【AI系统】昇思MindSpore并行
本文介绍昇思MindSpore的并行训练技术,包括张量重排布、自动微分等,旨在简化并行策略搜索,提高大规模模型训练效率。文章探讨了大模型带来的挑战及现有框架的局限性,详细说明了MindSpore如何通过技术创新解决这些问题,实现高效的大模型训练。
46 20
【AI系统】昇思MindSpore并行
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
转载:【AI系统】AI的领域、场景与行业应用
本文概述了AI的历史、现状及发展趋势,探讨了AI在计算机视觉、自然语言处理、语音识别等领域的应用,以及在金融、医疗、教育、互联网等行业中的实践案例。随着技术进步,AI模型正从单一走向多样化,从小规模到大规模分布式训练,企业级AI系统设计面临更多挑战,同时也带来了新的研究与工程实践机遇。文中强调了AI基础设施的重要性,并鼓励读者深入了解AI系统的设计原则与研究方法,共同推动AI技术的发展。
转载:【AI系统】AI的领域、场景与行业应用
|
3天前
|
机器学习/深度学习 人工智能 分布式计算
【AI系统】混合并行
混合并行融合了数据并行、模型并行和流水线并行,旨在高效利用计算资源,尤其适合大规模深度学习模型训练。通过将模型和数据合理分配至多个设备,混合并行不仅提升了计算效率,还优化了内存使用,使得在有限的硬件条件下也能处理超大型模型。3D混合并行(DP+PP+TP)是最先进的形式,需至少8个GPU实现。此策略通过拓扑感知3D映射最大化计算效率,减少通信开销,是当前深度学习训练框架如Deepspeed和Colossal AI的核心技术之一。
42 15
【AI系统】混合并行
|
1天前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
24 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
3天前
|
存储 人工智能 PyTorch
【AI系统】张量并行
在大模型训练中,单个设备难以满足需求,模型并行技术应运而生。其中,张量并行(Tensor Parallelism, TP)将模型内部的参数和计算任务拆分到不同设备上,特别适用于大规模模型。本文介绍了张量并行的基本概念、实现方法及其在矩阵乘法、Transformer、Embedding和Cross Entropy Loss等场景中的应用,以及通过PyTorch DeviceMesh实现TP的具体步骤。
30 11
【AI系统】张量并行
|
3天前
|
存储 机器学习/深度学习 人工智能
【AI系统】完全分片数据并行 FSDP
本文深入探讨了AI框架中针对权重数据、优化器数据和梯度数据的分布式并行实现,特别是在PyTorch框架下的具体方案。文章首先回顾了通用数据并行和分布式数据并行的概念,重点讨论了同步与异步数据并行的差异。接着,文章详细介绍了如何在PyTorch中实现弹性数据并行,特别是完全分片数据并行(FSDP)的机制,包括其如何通过分片模型状态和剩余状态来减少内存消耗,提高训练效率。此外,文章还探讨了混合精度训练、损失缩放和内存消耗估算等关键技术,为理解和实施高效的分布式训练提供了全面的指导。
21 9
【AI系统】完全分片数据并行 FSDP
|
3天前
|
机器学习/深度学习 存储 人工智能
【AI系统】流水并行
在大模型训练中,单个设备难以满足计算和存储需求,分布式训练成为必要。模型并行是其中关键技术之一,通过将模型计算任务拆分至不同设备上执行,提高训练效率。模型并行主要包括朴素模型并行、张量并行和流水线并行。流水线并行通过将模型的不同层分配到不同设备上,采用微批次处理,提高设备利用率。Gpipe和PipeDream是两种流行的流水线并行方案,前者通过重叠前向和反向传播提升效率,后者则通过1F1B策略实现交错执行,最大化利用计算资源。
31 15
|
1天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
1天前
|
机器学习/深度学习 人工智能 物联网
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
12月05日,由中国软件行业校园招聘与实习公共服务平台携手阿里魔搭社区共同举办的AI赋能大学计划·大模型技术与产业趋势高校行AIGC项目实战营·电子科技大学站圆满结营。
AI赋能大学计划·大模型技术与应用实战学生训练营——电子科技大学站圆满结营
|
6天前
|
机器学习/深度学习 人工智能 JSON
【实战干货】AI大模型工程应用于车联网场景的实战总结
本文介绍了图像生成技术在AIGC领域的发展历程、关键技术和当前趋势,以及这些技术如何应用于新能源汽车行业的车联网服务中。