Skip to main content
QUICK REVIEW

[论文解读] Machine Learning Systems are Bloated and Vulnerable

Huaifeng Zhang, Fahmi Abdulqadir Ahmed|arXiv (Cornell University)|Dec 16, 2022
Cloud Computing and Resource Management被引用 5
一句话总结

该论文提出了MMLB框架,通过在容器和软件包层面测量未使用的代码和依赖项,分析并量化机器学习容器中的膨胀问题。研究发现,膨胀占容器大小的高达80%,导致部署时间增加370%,漏洞数量增加99%,其中APT软件包和机器学习框架是膨胀和风险的主要来源。

ABSTRACT

Today's software is bloated with both code and features that are not used by most users. This bloat is prevalent across the entire software stack, from operating systems and applications to containers. Containers are lightweight virtualization technologies used to package code and dependencies, providing portable, reproducible and isolated environments. For their ease of use, data scientists often utilize machine learning containers to simplify their workflow. However, this convenience comes at a cost: containers are often bloated with unnecessary code and dependencies, resulting in very large sizes. In this paper, we analyze and quantify bloat in machine learning containers. We develop MMLB, a framework for analyzing bloat in software systems, focusing on machine learning containers. MMLB measures the amount of bloat at both the container and package levels, quantifying the sources of bloat. In addition, MMLB integrates with vulnerability analysis tools and performs package dependency analysis to evaluate the impact of bloat on container vulnerabilities. Through experimentation with 15 machine learning containers from TensorFlow, PyTorch, and Nvidia, we show that bloat accounts for up to 80% of machine learning container sizes, increasing container provisioning times by up to 370% and exacerbating vulnerabilities by up to 99%.

研究动机与目标

  • 调查机器学习容器中膨胀的程度及其来源,这些容器通常以单体、预打包的环境形式部署。
  • 量化膨胀对机器学习工作负载中容器大小、部署时间及安全漏洞的影响。
  • 开发一种系统化框架,用于在机器学习系统中识别、测量和分析容器级与软件包级的膨胀问题。
  • 通过集成漏洞分析与依赖项追踪,评估膨胀对容器安全的影响。
  • 强调需要采用更模块化的机器学习系统和智能容器生态系统,以减少技术债务。

提出的方法

  • 开发了MMLB,一种多层框架,结合容器级分析、软件包级分析和依赖图构建,以识别膨胀源。
  • 使用Cimplifier检测并移除机器学习容器中的膨胀,从而实现原始版本与去膨胀版本的对比。
  • 集成Grype和Trivy进行漏洞扫描,并通过自定义逻辑验证在去膨胀后CVE是否被消除,方法是检查文件是否已被删除。
  • 对来自TensorFlow、PyTorch和NVIDIA的15个真实世界机器学习容器进行了容器大小、部署时间及漏洞分析。
  • 追踪了APT软件包、机器学习框架(如TensorFlow、PyTorch)以及训练和推理流水线中未使用功能对膨胀的贡献。
  • 应用软件包依赖分析,追踪传递依赖如何导致膨胀和攻击面扩大。

实验结果

研究问题

  • RQ1膨胀在多大程度上导致了机器学习容器的尺寸膨胀?
  • RQ2哪些组件——如APT软件包、机器学习框架或未使用功能——是机器学习容器中膨胀的主要来源?
  • RQ3膨胀在多大程度上影响了容器的部署时间和性能开销?
  • RQ4膨胀在多大程度上扩大了机器学习容器中的漏洞攻击面?
  • RQ5现有漏洞扫描工具在检测因去膨胀而被消除的CVE方面有多有效?

主要发现

  • 在某些机器学习容器中,膨胀占总大小的高达80%,表明打包过程中存在巨大的效率低下问题。
  • 由于膨胀,容器部署时间最高增加370%,显著影响了部署效率。
  • 膨胀使漏洞数量最高增加99%,主要原因是未使用依赖项和传递性软件包的引入。
  • APT软件包是膨胀和漏洞的主要来源,主要由于复杂的依赖链。
  • 机器学习框架(如TensorFlow和PyTorch)显著增加了膨胀,尤其是在部署场景不匹配时(例如,在推理容器中包含训练功能)。
  • 尽管存在严重的膨胀和漏洞暴露,但针对机器学习专用软件包的CVE报告却极少,表明安全审查存在明显缺口。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。