本文的主要作者包括 Guorui Xie、Qing Li、Yutao Dong、Guanglin Duan、Yong Jiang 和 Jingpu Duan。作者分属多个研究机构,包括国际研究生学院(清华大学深圳分校)、鹏城实验室以及南方科技大学。本研究成果发表在 IEEE INFOCOM 2022,大会论文编号为 9796936。
近年来,机器学习算法广泛应用于多种网络优化场景,例如路由性能提升、流量分类以及恶意流量检测等。然而,目前主流的实现方式是基于虚拟网络功能(Virtual Network Function,VNF)的 x86 服务器,这些方法在处理延迟与容量方面难以令人满意。因此,研究如何将学习模型直接部署在网络设备上,特别是可编程交换机上,用以实现高速分布式数据处理,成为一个迫切需要解决的难题。
可编程交换机,尤其是基于 P4(Programming Protocol-independent Packet Processors)语言的交换机,提供了对数据平面的自定义编程能力,能够以 Tbps 的吞吐量处理数据包。然而,由于硬件架构(主要是协议独立交换架构 PISA)的限制,复杂的计算操作,例如乘法、浮点运算等,无法直接实现。因此,尽管像决策树(Decision Tree, DT)这种简单的基于规则学习分类器得以在交换机硬件上实现,但其仍然面临可扩展性不足、硬件资源消耗过大的问题。为了应对这些挑战,作者提出了“Mousika”,一个基于知识蒸馏(Knowledge Distillation)的嵌入式网络智能框架。本研究旨在充分利用复杂学习模型的学习能力,同时避免其直接部署在交换机上的硬件瓶颈。
Mousika 的研究分为以下几个主要步骤: 1. 新的二元决策树(Binary Decision Tree,BDT)设计:通过重新设计传统的决策树,提出了一种基于二进制规则的分类方法,使其更适合匹配硬件设备的限制。 2. 知识蒸馏方法引入:利用“教师-学生”结构将复杂模型的学习能力转化为二元决策树,使得 Mousika 能同时结合学习能力与硬件适配性。 3. P4 程序实现:设计了一个轻量级的 P4 程序,在交换机硬件中以最少资源实现 BDT 的分类规则。
Mousika 修改了传统决策树(DT)的结构,使其更加高效并符合可编程交换机的限制。相比传统 DT: - BDT 的分支以比特位为基础,显著降低了搜索空间和计算复杂度。例如,Gini 指数的计算复杂度从 DT 的 O(2^m) 降至 BDT 的 O(m)。 - BDT 的分类规则是由 0 和 1 组成的路径序列,可以直接编码为硬件支持的三态匹配(Ternary Match)表项,而避免了硬件不广泛支持的范围匹配(Range Match)。
通过知识蒸馏机制,Mousika 将复杂模型(例如深度学习模型或集成学习模型)的“知识”转化为 BDT 的规则。在此架构中: 1. 复杂模型(教师模型)生成每个输入样本的类概率分布(即软标签)。 2. 使用这些软标签指导 BDT 的训练,使得其能够与教师模型的性能接近甚至超过。 3. 此过程不仅增强了 BDT 的学习能力,还减少了分类规则的数量,提高了树结构的简洁性。
例如,在实验中,随机森林(Random Forest, RF)模型作为教师,指导 BDT 学习后,其规则数量减少了约 4.9 倍,且准确率提高了约 3%。
作者开发了一款约 100 行代码的 P4 程序,通过以下步骤实现 BDT 规则的硬件部署: 1. 解析阶段(Parser):选取若干关键数据包特征(如 IP 类型、TTL 及长度),并存储为包头向量(Packet Header Vector, PHV)内的比特。 2. 特征初始化:以 BDT 分类规则为依据,将特定比特划分至三态匹配表。 3. 分类与转发:表项匹配到的分类结果被转换为交换机的转发端口号,实现实时的线速分类与转发。
研究进行了三个典型网络任务的实验验证: 1. 流量大小预测(Flow Size Prediction):基于数据流分类预测是否为“大象流”。 2. 流量类型分类(Traffic Type Classification):将流量类型分为 VoIP、P2P 等六类。 3. 恶意流量检测(Malware Detection):识别正常流量与恶意攻击流量。
结果表明: - 在准确率方面,知识蒸馏后的 BDT 通常比 DT 更优。例如,在流量大小预测任务中,蒸馏 BDT 的准确率达 94.95%,比普通 DT 提升约 3 个百分点。 - 训练时间显著缩短。以流量预测任务为例,普通 DT 训练耗时约 43170 秒,而蒸馏 BDT 仅需 276 秒。 - 分类规则数量大幅缩减。例如,在流量分类任务中,蒸馏 BDT 的规则数为 1216,而普通 BDT 为 5948。
在硬件评估中,Mousika 的 P4 程序部署于 Edgecore Wedge 100BF-65X 交换机,其高效性表现为: 1. 吞吐量:在 40Gbps 与 100Gbps 测试流量下,交换机均保持零丢包,且运行速率达线速。 2. 资源占用:P4 程序仅占用两个表和两个硬件流水级,比传统方法(如 iisy)节省超过 10 倍资源。
与传统框架 iisy 相比,Mousika 表现出显著优越性: - 程序资源占用:Mousika 使用 2 个表及 2 个流水级,而 iisy 需 11 个表和 10 个流水级。 - 内存与计算资源:通过 ternary match 替代 range match,Mousika 的 TCAM 使用量显著降低,占用约 1.7%,而 iisy 高达 63.5%。
Mousika 提供了一种创新的网络内智能实现方式,结合 BDT 和知识蒸馏技术,既提升了学习能力,又实现了高效硬件适配。其科学价值在于扩展了网络内学习的理论边界;应用价值体现在其可广泛应用于多种实时网络管理任务,助力下一代智能网络发展。
尽管 Mousika 已展示出良好的性能,但其仍面临一些局限: - 数据特征局限:目前仅支持使用 PHV 比特开发 BD,未能直接支持更复杂的流特征。 - 模型选择依赖:特定任务对教师模型的选择性较强,需进一步优化。
研发团队将 Mousika 框架已开源,详细信息可参考其 GitHub 仓库:https://github.com/xgr19/mousika。