The Collective Knowledge project: making ML models more portable and
  reproducible with open APIs, reusable best practices and MLOps
  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.
