Collective Knowledge: organizing research projects as a database of reusable components and portable workflows with common APIs
This article provides the motivation and overview of the Collective Knowledge framework (CK or cKnowledge). The CK concept is to decompose research projects into reusable components that encapsulate research artifacts and provide unified APIs, CLI, meta descriptions, and common automation actions for related artifacts. The CK framework is used to organize and manage research projects as a database of such components.Inspired by the USB "plug and play" approach for hardware, CK also helps to
... mble portable workflows that can automatically plug in compatible components from different users and vendors (models, datasets, frameworks, compilers, tools). Such workflows can build and run algorithms on different platforms and environments in a unified way using the universal CK program pipeline with software detection plugins and the automatic installation of missing packages.This article presents several industrial projects where the modular CK approach was successfully validated to automate benchmarking, auto-tuning, and co-design of efficient software and hardware for ML and AI in terms of speed, accuracy, energy, size, and various costs. The CK framework also helped to automate the artifact evaluation process at several computer science conferences and make it easier to reproduce, compare, and reuse research techniques from published papers, deploy them in production, and automatically adapt them to continuously changing datasets, models, and systems.The long-term goal is to accelerate innovation by connecting researchers and practitioners to share and reuse all their knowledge, best practices, artifacts, workflows, and experimental results in a common, portable, and reproducible format at cKnowledge.io.