论文标题
HOMUNCULUS:数据中心网络的自动生成有效的数据平面ML管道
Homunculus: Auto-Generating Efficient Data-Plane ML Pipelines for Datacenter Networks
论文作者
论文摘要
在过去的十年中,网络中对机器学习(ML)应用的支持得到了显着改善。公共数据集和可编程切换织物的可用性(包括用于编程它们的低级语言)向程序员提供了用于部署网络内部ML的程序员。但是,涉及的工具的多样性,加上ML模型设计和高参数调整的复杂优化任务,同时遵守网络约束(例如吞吐量和延迟),将责任放在网络操作员上,成为ML,网络设计和可编程硬件的专家。在网络内工具和ML和硬件中的专业知识的这种多方面性质是ML今天成为网络中主流的障碍。 我们提出了Homunculus,这是一个高级框架,它使网络运营商能够以声明性而不是命令方式指定其ML要求。 Homunculus将其作为输入,培训数据和随附的网络约束,并自动生成并在基础交换硬件上安装合适的模型。它将模型设计空间探索,培训和平台代码生成作为编译器阶段,使网络运营商专注于获取高质量的网络数据。我们对现实世界中ML应用程序的评估表明,与手工调整的替代方案相比,Homunculus生成的模型的F1得分高达12%,而平均只需要30行的单标代码。我们进一步展示了生成的模型在每包新兴的ML平台上的性能,以展示其及时和实用的意义。
Support for Machine Learning (ML) applications in networks has significantly improved over the last decade. The availability of public datasets and programmable switching fabrics (including low-level languages to program them) present a full-stack to the programmer for deploying in-network ML. However, the diversity of tools involved, coupled with complex optimization tasks of ML model design and hyperparameter tuning while complying with the network constraints (like throughput and latency), put the onus on the network operator to be an expert in ML, network design, and programmable hardware. This multi-faceted nature of in-network tools and expertise in ML and hardware is a roadblock for ML to become mainstream in networks, today. We present Homunculus, a high-level framework that enables network operators to specify their ML requirements in a declarative, rather than imperative way. Homunculus takes as input, the training data and accompanying network constraints, and automatically generates and installs a suitable model onto the underlying switching hardware. It performs model design-space exploration, training, and platform code-generation as compiler stages, leaving network operators to focus on acquiring high-quality network data. Our evaluations on real-world ML applications show that Homunculus's generated models achieve up to 12% better F1 score compared to hand-tuned alternatives, while requiring only 30 lines of single-script code on average. We further demonstrate the performance of the generated models on emerging per-packet ML platforms to showcase its timely and practical significance.