[论文解读] The Collective Knowledge project: making ML models more portable and reproducible with open APIs, reusable best practices and MLOps
Collective Knowledge (CK) 项目通过开放 API、可重用组件和受 DevOps 启发的工作流程,引入了一个统一框架,使机器学习和系统研究更加可移植、可复现和可重用。通过将代码、模型、数据和配置打包为带有 JSON 元数据和 CLI/Python 接口的标准化、版本化组件,CK 实现了自动化基准测试、跨平台部署以及在不同硬件和软件堆栈上的协作优化,已在高效目标检测系统联合设计中得到成功验证。
This article provides an overview of the Collective Knowledge technology (CK or cKnowledge). CK attempts to make it easier to reproduce ML&systems research, deploy ML models in production, and adapt them to continuously changing data sets, models, research techniques, software, and hardware. The CK concept is to decompose complex systems and ad-hoc research projects into reusable sub-components with unified APIs, CLI, and JSON meta description. Such components can be connected into portable workflows using DevOps principles combined with reusable automation actions, software detection plugins, meta packages, and exposed optimization parameters. CK workflows can automatically plug in different models, data and tools from different vendors while building, running and benchmarking research code in a unified way across diverse platforms and environments. Such workflows also help to perform whole system optimization, reproduce results, and compare them using public or private scoreboards on the CK platform (https://cKnowledge.io). For example, the modular CK approach was successfully validated with industrial partners to automatically co-design and optimize software, hardware, and machine learning models for reproducible and efficient object detection in terms of speed, accuracy, energy, size, and other characteristics. The long-term goal is to simplify and accelerate the development and deployment of ML models and systems by helping researchers and practitioners to share and reuse their knowledge, experience, best practices, artifacts, and techniques using open CK APIs.
研究动机与目标
- 解决由于软件、硬件不断演进以及临时实验设置导致的机器学习和系统研究中可复现性的关键挑战。
- 通过标准化成果物和工作流程,减少复现研究成果和将模型部署到生产环境所需的时间与精力。
- 通过具有统一接口的可重用、版本化组件,实现在异构平台上的协作基准测试与优化。
- 支持从代码和数据获取到配置、基准测试以及与生产系统集成的端到端自动化模型部署。
- 通过提供可移植、可扩展的框架,支持软件、硬件和模型的联合设计,以在速度、精度、能效和大小之间进行性能权衡分析。
提出的方法
- 将机器学习和系统研究分解为带有标准化 JSON 元数据、CLI 和 Python API 的可重用组件,以实现可移植性和互操作性。
- 使用统一的配置和依赖管理,自动检测并安装跨平台所需的软件、硬件、模型和数据集。
- 实现可移植的工作流,动态组合组件并适应不同环境,包括 CPU、GPU、移动设备和云平台。
- 集成 DevOps 和 MLOps 原则,以一致、版本化的方式自动化 ML 系统的构建、测试、基准测试和部署。
- 公开优化参数并利用 cKnowledge.io 上的公共和私有排行榜,自动探索性能权衡的帕累托前沿。
- 支持与实时仪表板和基于 Web 的接口(例如,浏览器摄像头实时推理)集成,以支持实时协作与验证。
实验结果
研究问题
- RQ1如何使机器学习和系统研究在不断演进的软件、硬件和数据环境中更具可复现性?
- RQ2哪些机制能够实现跨多样化平台和部署目标的机器学习模型、数据集和工具的无缝重用与组合?
- RQ3统一框架在多大程度上能够降低将新工具、模型和基准测试集成到现有研究和生产工作流中的开销?
- RQ4如何在保持可复现性的前提下,自动化异构系统之间的协作基准测试与优化?
- RQ5基于组件、API 驱动的方法在多大程度上能够实现软件、硬件和模型的联合设计,以实现最优系统性能?
主要发现
- CK 框架成功实现了在包括 Linux、macOS、Windows、Android 和 GPU 服务器在内的多种平台上的自动化、可复现和可移植的目标检测模型部署。
- 工业合作伙伴验证了模块化 CK 方法在联合设计高效目标检测系统中的有效性,实现了在速度、精度、能效和模型大小方面的优化权衡。
- 通过使用标准化的 JSON 元数据和开放的 CK API,实现了来自不同供应商的模型、数据和工具无缝集成到单一、统一的工作流中。
- 用户可使用 cKnowledge.io 平台对其系统进行基准测试,并实时与官方 MLPerf 分数和社区贡献结果进行比较。
- 该框架通过自动化软件检测、依赖管理以及预处理/后处理脚本的生成,减少了手动配置和重复设置的工作。
- CK 工作流与实时仪表板及基于 Web 的接口(例如,实时摄像头推理)的集成,展示了其在类似生产环境中的实际部署潜力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。