The Collective Knowledge project: making ML models more portable and reproducible with open APIs, reusable best practices and MLOps
This addresses the challenge of reproducibility and deployment inefficiencies in ML research and production for researchers and practitioners, though it is incremental as it builds on existing DevOps and MLOps principles.
The Collective Knowledge project tackles the problem of making ML models more portable and reproducible by decomposing complex systems into reusable components with unified APIs, enabling automatic workflow optimization across platforms. It was validated with industrial partners to co-design and optimize object detection systems for improved speed, accuracy, energy efficiency, and size.
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.