首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何将机器学习任务卸载到可编程数据平面(SmartNIC、可编程交换机等)

如何将机器学习任务卸载到可编程数据平面(SmartNIC、可编程交换机等)

作者头像
霞姐聊IT
发布2025-07-24 18:00:54
发布2025-07-24 18:00:54
1560
举报

最近,我对AI和DPU如何结合比较感兴趣,然后我发现了2023年的ACM文章《Offloading Machine Learning to Programmable Data Planes: A Systematic Survey》进行了这方面的综述,现将文章要点分享给大家。

想看原文的同学可以从下面链接下载:

https://www.researchgate.net/publication/371681043_Offloading_Machine_Learning_to_Programmable_Data_Planes_A_Systematic_Survey

随着机器学习的模型规模以及训练数据量的增大,模型训练、推理都需要更高效的技术。

那么是否能够利用SmartNIC以及可编程交换机的处理能力,将机器学习应用的部分计算迁移到网络上呢?

两者结合存在一些问题,比如:

a.可编程交换机内存小,且ALU操作有限,且通常不提供浮点计算

b.计算由可编程设备承接会影响延迟和吞吐量

解决这些问题需要ML和可编程数据平面两个领域的专业知识,因此非常困难。

下面简要介绍下这两个领域的背景知识:

一、背景知识

1.机器学习方法

根据模型的输入输出类型,机器学习可分监督学习、无监督学习、强化学习三类。

(1)监督学习

监督学习的训练数据带标签(标签可能表示一个类别)。

训练阶段,结合训练数据集和定义的超参(学习率、批量大小等),多次训练调整后生成ML模型。

推理阶段,ML模型接收输入并进行推理预测。

代表算法有:决策树、神经网络NNs、朴素贝叶斯和kNN。

算法常被应用于分类中。

(2)无监督学习

无监督学习的输入没有标签,因此需要从输入中学习自然模式。

比如kMeans聚类算法,输入是一组无标签的数据点,需要根据相似性被聚类成k(k是超参)个簇。

除kMeans外,代表算法还有主成分分析和自动编码器。

无监督学习应用广泛,可应用于异常检测、图像分类分割中。

(3)强化学习

强化学习中,模型并非从输入输出数据中学习,而是通过和环境交互来学习实现目标。

代表性的算法有Q-learning和State–action–reward–state–action (SARSA)。

强化学习可用于构建机器人控制模型和能够玩电脑游戏的智能体。

2.分布式机器学习

有一些大型模型无法装入单台机器的内存中,或者训练/推理数据量很大导致资源过载,引发可扩展性问题,这时就需要采用分布式机器学习方法将数据和模型分布在多台机器上。

(1)分布式训练

(a)数据并行

工作节点接收一部分数据,并对完整的机器学习模型进行操作。

该方式广泛使用于数据中心部署(此时工作节点位于本地集群机器上)和广域网上运行的联邦学习(此时工作节点位于边缘设备上)。

每个工作节点使用不同的训练数据子集训练一个本地学习模型。

每次迭代结束时,工作节点同步其本地模型,将它们聚合成一个全局模型。

经过几个epoch重复后,可收敛到一个高精度的机器学习模型。

传统上有两种不同的方式来执行聚合:TensorFlow和Caffe采用的参数服务器(Parameter Server PS)方式和Horovod采用的集合通信 Collective Communication方式。

(b)模型并行

当模型太大而无法在单台机器上处理时,通常会采用模型并行方法,将机器学习的不同层分布在分布式系统的不同节点上。

这种模式下,每个节点执行相同的输入集,但后续层通常在前一层执行之后执行。

(c)流水线并行

将机器学习模型分为多个阶段,每个工作节点负责依次执行一个阶段,从而形成一个流水线。流水线并行能够同时为不同数量的小批量数据处理不同的层,从而提升训练的效率和扩展性,但可能存在部分层处于空闲stale的情况。

(2)分布式推理

模型复杂度的增加,可能导致推理的计算成本变得过高。为了降低计算成本,业界有压缩、量化、自适应推理等技术降低模型的复杂度,但这也会带来准确性的降低。

另外一种方法是模型分区,该方法类似于分布式训练中的模型并行,通过将每一层部署到分布式设备上,实现各层执行的并行化。

还有一种方法是数据并行化。该方法会部署同一训练模型的多个实例,输入会在各个实例之间进行均衡分配,通过并行处理不同的输入来提高推理吞吐量。

3.可编程数据平面

(1)可编程交换机

交换机功能通常使用特定上下文语言来表述,然后定制为抽象数据平面模型。生成的代码随后被编译成支持该数据平面模型的数据包处理架构。

比如下图所示的PISA(协议无关交换架构),它对可重构匹配表RMT模型进行了概括,并提供了基本的线速数据包处理功能。

数据包经过一个数据包解析器,该解析器实例化用户定义的协议。解析器处理完数据包后,会进入一系列控制流和匹配+动作表。匹配+动作表可以在TCAM或SRAM上运行,动作通过ALU实现,并且必须能够以线速运行。最后,数据包头部由一个解包器发出。

(2)可编程网卡(SmartNICs)

SmartNIC支持自定义数据包处理,与可编程交换机不同的是,SmartNIC可以用通用编程语言进行编程。

SmartNIC包括计算单元、内存、流量管理、DMA引擎、发送/接收端口以及多个数据包处理加速器。

SmartNIC分为on-path和off-path两类:

on-path网卡位于数据包通信路径上,能够处理每个传入的数据包。

off-path配备网卡交换机,该交换机可拦截数据包,并根据转发规则将其转发给主机。

这两种网卡和主机都不共享任何内存或者一致性域,而是通过PCIe插槽上的DMA引擎进行通信。

4.网络内计算INC

INC用于描述将部分功能卸载到网络设备可编程数据平面的系统。

通过向网络卸载的策略,可以通过在网络设备的数据平面拦截和处理数据包,而不是将数据包发往终端服务器进行处理,从而减少延迟和带宽使用。

当前研究人员在INC中已经探索了机器学习聚合和推理、KV存储以及锁管理等应用。

下图是用于ML聚合的INC系统示例。

工作节点将其梯度发往负责聚合的交换机(无需中央服务器),生成的梯度被封装到数据包中并发送回工作节点以更新其本地模型。

ML聚合具有一些共同的特征,适合卸载到可编程数据平面。这样可以减少交换的数据量,降低网络利用率;

同时可编程数据平面设备更靠近Worker且以线速运行,生成的梯度可以更快的计算出来;

另外大多数操作是可交换和可结合的,适合在可编程硬件上以高并发速率处理数据包。

二、现有研究综述

1.训练

下表汇总了如何将机器学习模型训练阶段的聚合操作卸载到可编程网络设备上,从而提高训练阶段效率的研究文献。

将上表中关于智能网卡的研究摘录出来,展开叙述如下:

(1)Itsubo等人基于FPGA的交换机中实现了NN的网络内梯度聚合和参数优化

作者在数据平面直接实现了几种参数优化算法:随机梯度下降、Adagrad、Adam和SMORMS3。

参数优化完全在FPGA中执行,从而降低了CPU和GPU的负载;但优化完成后仍需要CPU。

另外,作者没有详述内存使用或管理方面的内容。

(2)Tanaka等人在基于FPGA的智能网卡内执行聚合操作,以通过All-Redue机制加快聚合速度

智能网卡可直接对GPU和CPU进行访问,从而减轻CPU负载。

聚合操作在环形网络中执行,通过在网卡硬件中运行聚合操作提高了性能,避免了CPU的参与。

另外,由于网卡可以高效的实现用于聚合的浮点运算,因此不会损失精度。

该方案的局限在于不处理多租户问题,并且只考虑同步聚合。

(3)Ma等人出了一种基于FPGA的智能网卡,它能够直接在数据平面执行NN梯度的聚合

这避免CPU的参与,为ML模型本身的训练释放资源。

智能网卡在通过网络传输梯度之前,对梯度应用块浮点压缩,可以减少带宽使用。

但该方案对整体带宽使用方面没有改进。

训练相关的研究的要点总结如下:

传统分布式训练框架能支持多个同时进行的任务,并能训练具有复杂需求和超参数设置的复杂模型。由于采用了丰富的硬件资源和通用架构,这些框架具有高度的通用性。

但可编程交换机存在局限性,要在网络内聚合解决方案中复现传统机器学习工具的相同功能,非常有挑战。

与传统分布式训练工具相比,可编程交换机的性能受到极大限制,这往往导致其功能集有所缩减。

网络内解决方案必须在可编程交换机的限制范围内运行,因此在支持具有复杂需求和超参数设置的复杂模型时,常常会遇到困难。

(1)多个大型模型。

支持更大模型的一种方法是将梯度划分为更小的片段,并在交换机中逐步聚合。

但如果需要同时聚合多个模型的梯度,因为交换机可能没有足够的内存来处理所有梯度,所以这种方法可能并不可行。

应对方法:

(a)去中心化聚合:在网络中使用多个交换机,或者采用结合基于交换机和基于参数服务器的混合设计。

(b)优先级划分:离工作节点较近的交换机可以存储和聚合高优先级模型的梯度,而参数服务器则处理其他模型的梯度。这可以看作是一种缓存替换系统,离工作节点最近的交换机优先处理某些模型,而参数服务器则管理其余模型。

(2)可靠性。

传统的分布式训练工具会提供多种容错机制,以确保训练过程能够可靠运行。例如,参数服务器会采用容错技术,即便自身发生故障,也能保证训练继续进行。同样,当在数据平面中进行梯度聚合时,也需要能够应对交换机故障的容错机制。

(a)交换机故障:交换机在训练过程中故障的话,它将丢失当时正在计算的所有梯度,导致这些梯度无法用于后续训练。实际部署网络内聚合时,需要具备处理交换机故障的机制。

(b)数据包丢失:网络内聚合会影响端到端协议(如TCP)检测和处理数据包丢失的能力。为解决这些问题,网络内系统会采用替代方法来检测和重传丢失的数据包,并防止重复数据包的处理。这一问题尤其具有挑战性,因为网络内聚合会“消耗”部分数据包,因此需要采用除确认机制之外的其他方法来应对数据包丢失。

(c)拥塞控制:在涉及交换机间通信的场景中,拥塞控制至关重要,尤其是在多个任务同时运行时。在这种情况下,网络内聚合需要实施有效的拥塞控制机制。其中一种机制是使用显式拥塞标记,还可以通过调整向网络发送梯度的窗口大小来补充这一机制。现有研究已对这些技术见解进行了探讨。

(3)非RMT硬件。

RMT交换机存在可用内存量少、缺乏浮点运算能力的局限性。对此,研究人员开始在其他替代平台上研究聚合构建模块:

Net-FPGAs:与PISA设备不同,Net-FPGAs通过在高度并行且通用的CPU上运行指令,提供了更大的内存容量并支持浮点运算。

但与PISA相比,Net-FPGAs的处理时间可能存在差异。

此外,Net-FPGAs通常端口数量较少,这会限制用于训练模型的工作节点数量。

虽然少数端口足以应对小型任务,但这种方式无法扩展到更大规模的训练任务。相比之下,交换机拥有数十个端口(通常为32至64个),能够支持更多工作节点,从而可处理更大规模的训练任务。

dRMT架构:该架构通过通用线程实现更灵活的聚合。dRMT架构将内存和计算资源与可编程交换机分离,并将它们分配给一组处理器。这使得处理任务能够以更不受限制的方式执行,从而实现更具弹性的聚合操作。

2.推理

下表汇总了推理这块的相关研究成果。

将上表中关于智能网卡的研究展开叙述如下:

(1)BaNaNa Split

它的设计源于一个重要发现:数据平面设备本就处于数据传输路径上,将神经网络计算迁移到这些设备中,能显著降低端到端延迟。

这种方法在需要将数据从一处传输到另一处进行推理的场景中,尤其有用。

当接收到NN模型后,该系统会对NN模型进行拆分:一部分模型由服务器的 CPU 处理,另一部分则经过量化处理,集成到可编程网络设备中。

在运行时,数据会先由 CPU 上的模型层进行推理,接着交由智能网卡处理,最后由可编程交换机完成处理。

最终,网络数据会被封装在数据包的头部,发送至最终目的地。

不过,该系统仍依赖量化处理,所以会降低模型的准确性。

(2)N3IC(NIC上的神经网络)

它是一种将轻量级神经网络的推理任务卸载到通用网卡上以进行流量分类的解决方案。N3IC的核心发现是,通过PCIe与CPU通信的成本往往高于推理本身的成本,这会导致延迟增加。

因此,N3IC建议直接在网卡上进行推理,这样可以消除通信开销,显著降低推理延迟。

这种卸载方案依赖量化技术,将神经网络转换为更小、更简单的二值化神经网络(BNN)。此过程用更简单的运算替代了乘法运算,从而使N3IC能够适应网卡的限制。但这一过程会降低模型的准确性。

目前,N3IC已在两种网卡上实现:一种是基于SoC的网卡,另一种是支持P4的FPGA。对于FPGA,该系统还考虑到P4语言的结构特点,提供了将神经网络代码转换为P4代码的方法。

但N3IC对其支持的NN存在限制。如果网卡中的大型NN的执行时间超过了PCIe的传输时间,那么使用主机CPU进行推理会更合适,这种情况下,N3IC的性能可能会大幅下降。

(3)Xavier等人

他们提出了一个能够将机器学习分类模型部署到可编程数据平面的框架。

该框架包含一个编译器,能够用if-else语句链来表示决策树。这些if-else语句链会被添加到P4程序中。

部署完成后,每当有新数据包到达时,决策树所需的特征会被实例化为用户元数据。

之后,这些元数据可以被组合起来,生成不同的特征,例如某一流量的总数据包数或总字节数。

接着,通过哈希表识别流量,并利用if-else语句链对其进行分类。

最后,流量类别会存储在交换机流水线中,可用于将数据包转发至控制平面策略。

然而,if-else语句链的长度会受到流水线长度的限制,这也因此制约了该框架所能支持的决策树深度。

(4)OPaL(路径上学习)

它在智能网卡的可编程数据平面中完整实现了一个强化学习智能体。

OPaL 专注于那些不需要批量输入就能稳定学习的算法,例如 Sarsa。

OPaL 利用多个智能网卡核心来计算动作,并利用奖励来更新智能体的策略。该系统将学习过程放在芯片上,但置于转发路径之外,以保证吞吐量,这样就能在不增加转发开销的情况下更新策略。

不过,该系统使用定点运算来计算奖励和更新策略,这会降低算法的准确性。

推理相关的研究的要点:部署机器学习推理模型时,需要克服这些挑战:可编程数据平面设备中硬件的局限性,特定机器学习模型的部署问题等。

(1)模型复杂性。由于硬件限制,在网络数据平面部署网络内推理模型是一项重大挑战。

有些机器学习模型需要对每个数据包进行计算,而当前的硬件可能不支持这种操作。

例如,交换机的算术逻辑单元(ALU)可能缺少某些运算功能,如浮点运算或除法运算,这就迫使开发人员使用依赖更基础运算的替代算法。

此外,数据平面设备的内存有限,而机器学习模型可能庞大且复杂,难以存储在数据平面设备有限的内存中。所以得采用模型简化或分布技术,使模型大小适合网络设备。

(a)模型分布。处理大型模型的一种方法是将其分布在多个设备上。

例如,在数据平面部署NN的解决方案通常会将NN的各层分布在多个设备上。

但是,分布部署神经网络可能会消耗大量资源,导致成本增加。

此外,数据在多个设备之间传输会给整个系统带来显著的延迟。

(b)简化模型。当前最先进的可编程交换机缺乏对浮点运算的支持,为解决这一问题,许多解决方案采用二值化NN,简化实现NN所需的运算。

尽管存在这些挑战,但在数据平面运行推理模型已被证明对多种应用有益,包括用于检测流量大户的流量分类、识别恶意攻击以及计算机视觉中的图像分类等。

(c)更简单的算法。决策树、聚类和支持向量机(SVM)等算法通常可以在可编程交换机上运行。虽然更简单的算法需要更少的资源,但算法的具体实现方式在很大程度上会影响所需资源的总量。

(2)模型部署。将机器学习模型部署到可编程数据平面设备中并非易事。部署过程必须考虑到设备的硬件特性,以及所部署模型的特定需求。

(a)选择部署设备。

每种可编程数据平面设备都有其特定的优势和局限性。虽然可以采用模型二值化的方法来解决RMT交换机缺乏浮点运算的问题,但使用二值化神经网络可能会损害机器学习模型的准确性。

为减轻这些问题,另一种解决方案是使用智能网卡(SmartNIC),而非将整个神经网络迁移到交换机上。最先进的智能网卡具备先进的硬件性能,相比二值化神经网络,能够支持更高精度的模型。

但智能网卡的处理吞吐量可能低于交换机。这有可能会影响网络流量的分类,并对整体网络性能造成影响。

(b)优化资源

实现方式的选择会极大地影响运行算法所需的资源。

例如,决策树可以通过多种方式实现,比如使用匹配-动作表存储树节点,或者使用简单的if-else语句定义树的分支。

需要找到一种高效且节省资源的实现方式,使这些算法能够在数据平面中可行地运行。

(c)自动化部署

手动在交换机源代码中编写机器学习模型并不现实。多项研究工作已探索了将一系列机器学习算法自动映射到一系列可编程网络设备的技术。

(d)更多与网络无关的解决方案

虽然相当一部分研究工作侧重于为特定的网络应用场景(例如,用于流量分类的决策树)自动化部署机器学习模型,但更多与应用无关的技术能够催生新的应用场景,这些场景不仅局限于网络流量分析,比如股票市场预测。

三、研究挑战

本节将简述为促进网络内机器学习部署的广泛应用所必须克服的重要挑战,以及对应的技术方法。

1.训练中的挑战

下图中灰框代表挑战,而对应的白框代表可应对此挑战的技术。下文将一一展开阐述。

(1)挑战一:多种聚合函数

有多个机器学习框架支持使用用户定义的聚合函数。然而,大多数网络内机器学习训练系统无法轻松重新定义在数据平面中实现的聚合函数。

当同一台交换机内运行多个任务时,因为确定新的聚合函数需要修改交换机代码,这必然会中断其他任务的聚合过程。

因此,网络内聚合需要能够快速重新配置用户定义的聚合函数,且不会停止不同机器学习任务的训练。

(a)方案一:迁移数据平面功能

将当前的聚合值和配置(例如同步参数)迁移到另一台交换机。

这样在第一台交换机重新配置新聚合函数时,训练仍能不间断地进行。

(b)方案二:采用虚拟化方法来实现聚合函数的动态重新配置。

(c)方案三:提供更灵活的硬件架构,使其能够支持利用新的硬件功能来重新配置交换机

(d)方案四:提供为新任务动态分配内存的能力,可使交换机在隔离其他机器学习任务的情况下对某个任务进行聚合。

(2)挑战二:处理滞后节点。

滞后节点的存在会对分布式训练的性能产生负面影响。滞后节点的延迟更新可能导致速度较快的工作节点暂停训练。

因此,识别并缓解滞后节点问题是分布式训练的一项关键功能。

(a)借鉴传统的机器学习框架的同步技术:例如陈旧同步并行(SSP)或混合同步。

(b)进行负载均衡:在不同设备间镜像节点,以及将任务从滞后节点转移到空闲的工作节点。

(3)挑战三:容错性。

必须应对可能出现的故障问题。例如,网络内聚合系统通常会在交换机中存储与正在训练的机器学习模型相关的数据。如果交换机发生故障,这些丢失的数据就会导致工作节点不得不重复进行模型训练。这会增加总的训练时间,并产生不必要的通信开销。

借助复制或回滚-恢复等容错机制,系统能够防止数据丢失,从而避免不必要的开销。

此外,数据包丢失是网络内聚合中一个不容忽视的问题,因为大多数已提出的系统都采用UDP协议,而该协议无法处理数据包丢失的情况。对于较简单的网络内聚合器而言,一个简单的超时机制可能就足够了,但聚合树则需要更稳健的协议。

最后,处理工作节点故障也是另一个关键方面

(4)作业完成时间(JCT)开销。

作业完成时间(JCT)是机器学习训练的一项关键指标。

确保将任务卸载到网络设备不会造成任何JCT开销颇具挑战性,而当涉及同时管理多个作业时,这一问题会变得更为复杂。

这种复杂性源于执行聚合的网络硬件资源有限,因此可能无法同时聚合所有作业(即硬件仅拥有用于存储有限数量同步梯度的内存)。

多个作业可能具有不同的优先级,例如,可以将低优先级作业或滞后作业调度到较慢的解决方案中,为高优先级的活跃作业释放内存。

然而,当考虑到采用不同同步机制的作业时(尽管存在滞后节点,但这些作业仍在计算来自较快工作节点的梯度),将低优先级作业抢占并分配到较慢解决方案中的操作会变得更为复杂。

另一个可能影响JCT的方面是工作节点和聚合器的放置。理想情况下,可以采用启发式方法,将作业部署在离其相应聚合器较近的位置。此外,也可以采用启发式方法,将聚合器逐步部署在更靠近包含工作节点的服务器的位置,以最大限度地减少作业完成时间。

(5)通信开销。

聚合阶段进行的通信会消耗大量网络资源,从而增加训练时间。

研究界已针对聚合过程中的通信提出了多项改进方案。例如,在聚合前对稀疏数据进行处理,这有助于减少网络资源的使用。

然而,现有方案仍存在局限性:比如是将整个梯度视为稀疏数据,还是将大型梯度拆分为不同的数据块并移除较小的稀疏数据块。

探究这些策略对通信和模型准确性的影响,是未来一个颇具研究价值的方向。

另一个例子基于这样的观察:某些梯度在每个训练迭代中都会重复出现,因此可以对这些元素进行缓存,并提前计算部分聚合结果。这一思路已在现代机器学习应用中得到探索,但对于可编程数据平面而言,仍需进一步研究——因为这类平面需要有办法存储和管理频繁出现的聚合值。

最后,找到放置工作节点和聚合器的最优方式,也能减少通信开销。

(6)精度。

可编程交换机仅限于整数运算,而梯度是浮点数,这对网络内聚合造成了限制。

标准的解决方法是在适配层将浮点数转换为整数,然后使用整数算术运算进行聚合。然而,这会对训练过程的精度产生负面影响。

另一种方法是使用专用硬件,例如Mellanox Quantum交换机或FPGA。也可以通过查表来模拟浮点运算,或者对硬件元件进行改造,以支持传统算术逻辑单元(ALU)不支持的运算。

2.推理中的挑战

下图中灰框代表挑战,而对应的白框代表可应对此挑战的技术。下文将一一展开阐述。

(1)新应用。

已有多项应用被证明能从将机器学习卸载到网络数据平面中获益,例如检测分布式拒绝服务(DDoS)攻击和流量大户。

更多类型的应用都能从卸载到可编程网络设备中受益。例如,一份互联网研究任务组(IRTF)草案设想了在计算机视觉、虚拟现实、增强现实(AR)和扩展现实(XR)领域实现改进的可能性。这可能包括远程医疗、自主系统、智慧城市、沉浸式课堂以及机器人控制等应用。

因此,明确这些应用如何从将机器学习卸载到网络设备中获益,可能是一个有趣的研究方向。发现并部署这些应用也是一项开放性挑战,因为每个应用都有其特殊性,需要针对具体应用进行优化。

定义可复用的数据结构有助于在数据平面推广新的机器学习应用。例如,一种可复用的数据结构可以支持特定于应用的特征。这意味着可以使用解析器提取特征信息,并利用可复用的数据结构处理这些特征,再将其存储在交换机的“匹配+动作”流水线中。

(2)新模型。

已有多种机器学习模型被卸载到数据平面,例如NNs、决策树和聚类算法等。

但尚未对许多其他算法进行探索,如主成分分析(PCA)、局部加权学习(LDA)、层次聚类以及进化算法(特别是遗传算法)。

有必要提供一些抽象概念,以便在数据平面中表示这些模型,并将新的推理模型自动转换到可编程数据平面设备中。

因此,每种机器学习模型可能都需要不同的编译策略,以利用这些抽象概念生成数据平面源代码。

由此,我们需要新的方法,使我们能够编写、合成新模型并将其部署到数据平面设备中。要实现这一点,可以借助一个框架:该框架使用高级语言来指定模型,随后以优化的方式将这些模型转换为数据平面代码。

(3)资源开销。

由于成本高且功耗大,数据平面设备的资源十分有限。

此外,网络内应用必须与数据平面中的传统网络功能共存。这就要求机器学习模型高效利用内存和流水线阶段等资源。例如,可以采用消耗更少交换机资源的优化数据结构来表示机器学习模型的特征或元素。

另一个需要考虑的方面是,所采用的数据结构可能因机器学习模型的不同而有所差异。

例如,我们发现有关决策树的研究工作采用了多种替代机制来表示树结构,比如使用表格表示节点和特征、将树展开为硬编码的if-else语句,甚至使用单个表格表示整个树。当考虑将其他机器学习模型卸载到可编程数据平面时,这些现有表示方式可能并不适用,这就需要新的抽象概念和优化的数据结构。

最后,一个研究挑战是尝试对机器学习模型进行分布式部署,以研究其相比(集中式部署)的优势。与集中式方法相比。在这种情况下,可以对多种机器学习模型分布式部署技术进行比较,例如跨多个设备的流水线并行化,或者在一系列设备中部署不同的层级。为了补充模型分布式部署的技术,可以使用共享内存抽象来同步运行在不同数据平面设备中的模型之间的状态。

(4)动态模型。

迄今为止,相关文献仅关注静态模型。一旦将机器学习模型部署到数据平面设备中,若要更新模型,就必须重启数据平面设备。

然而,对于某些需要根据需求逐步更改模型的应用而言,这种情况存在局限性。

因此,可以采用增量编程技术来更新交换机中的模型。

另一种方法是支持数据平面设备的动态重新配置,即无需重启设备即可更新代码。

最后,还需要用于更新模型的一致性抽象机制,以确保输入能通过不同版本的机器学习模型得到一致转发。

(5)通信开销。

本地模型或分区模型可能会受到链路拥塞的影响,进而对推理性能产生负面影响,导致延迟增加。

一种可减少拥塞的方法是推理并行化。并行和分布式方法会在不同位置使用同一机器学习模型的多个实例,这需要采用相应技术在多个实例之间对输入数据进行负载均衡。

当各个实例的负载不均衡(即部分实例过载而其他实例负载不足)时,可采用这种方法。

在这种情况下,还需要优化实例的放置位置,以及制定将请求重定向至推理节点的策略。例如,可以将访问频率较高的机器学习模型放置在更靠近请求源的位置,以减少延迟。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 霞姐聊IT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档