Collective Mind (CM) is a very lightweight Python-based framework featuring a unified CLI, Python API, and minimal dependencies. It is available through PYPI.
CM is designed for creating and managing portable and technology-agnostic automations for MLOps, DevOps and ResearchOps. It aims to assist researchers and engineers in automating their repetitive, tedious and time-consuming tasks to build, run, benchmark and optimize various applications across diverse and continuously changing models, data, software and hardware.
Collective Mind is a part of Collective Knowledge (CK) - an educational community project to learn how to run AI, ML and other emerging workloads in the most efficient and cost-effective way across diverse and ever-evolving systems using the MLPerf benchmarking methodology.
CMX - the next evolution of the Collective Mind framework designed to enhance simplicity, flexibility, and extensibility of automations based on user feedback. It is backwards compatible with CM, released along with CM in the cmind package and can serve as drop-in replacement for CM.
The CM/CMX architecture diagram is available for viewing here.
The diagram below illustrates the primary classes, functions, and internal automations within the Collective Mind framework:
The CM API documentation is available here.
Collective Mind is continuously enhanced through public and private Git repositories, which serve as the unified interface for various collections of reusable automations and artifacts.
The most notable projects and repositories powered by CM are:
CM4MLOPS repository powered by CM - a collection of portable, extensible and technology-agnostic automation recipes with a common CLI and Python API (CM scripts) to unify and automate all the manual steps required to compose, run, benchmark and optimize complex ML/AI applications on diverse platforms with any software and hardware.
The two key automations are *script" and cache: see online catalog at CK playground, online MLCommons catalog.
CM scripts extend the concept of cmake
with simple Python automations, native scripts
and JSON/YAML meta descriptions. They require Python 3.7+ with minimal dependencies and are
continuously extended by the community and MLCommons members
to run natively on Ubuntu, MacOS, Windows, RHEL, Debian, Amazon Linux
and any other operating system, in a cloud or inside automatically generated containers
while keeping backward compatibility.
CM scripts were originally developed based on the following requirements from the MLCommons members to help them automatically compose and optimize complex MLPerf benchmarks, applications and systems across diverse and continuously changing models, data sets, software and hardware from Nvidia, Intel, AMD, Google, Qualcomm, Amazon and other vendors:
- must work out of the box with the default options and without the need to edit some paths, environment variables and configuration files;
- must be non-intrusive, easy to debug and must reuse existing user scripts and automation tools (such as cmake, make, ML workflows, python poetry and containers) rather than substituting them;
- must have a very simple and human-friendly command line with a Python API and minimal dependencies;
- must require minimal or zero learning curve by using plain Python, native scripts, environment variables and simple JSON/YAML descriptions instead of inventing new workflow languages;
- must have the same interface to run all automations natively, in a cloud or inside containers.
See the online documentation at MLCommons to run MLPerf inference benchmarks across diverse systems using CM.
CM4ABTF repository powered by CM - a collection of portable automations and CM scripts to run the upcoming automotive MLPerf benchmark across different models, data sets, software and hardware from different vendors.
CM4MLPerf-results powered by CM - a simplified and unified representation of the past MLPerf results in the CM format for further visualization and analysis using CK graphs.
CM4Research repository powered by CM - a unified interface designed to streamline the preparation, execution, and reproduction of experiments in research projects.
Collective Knowledge Playground - a unified and open-source platform designed to index all CM scripts similar to PYPI, assist users in preparing CM commands to:
- run MLPerf benchmarks
- aggregate, process, visualize, and compare benchmarking results for AI and ML systems
- organize open, reproducible optimization challenges and tournaments.
These initiatives aim to help academia and industry collaboratively enhance the efficiency and cost-effectiveness of AI systems.
Artifact Evaluation automation - a community-driven initiative leveraging the Collective Mind framework to automate artifact evaluation and support reproducibility efforts at ML and systems conferences.
CM scripts extend the concept of cmake
with simple Python automations, native scripts
and JSON/YAML meta descriptions. They require Python 3.7+ with minimal dependencies and are
continuously extended by the community and MLCommons members
to run natively on Ubuntu, MacOS, Windows, RHEL, Debian, Amazon Linux
and any other operating system, in a cloud or inside automatically generated containers
while keeping backward compatibility.
CM scripts were originally developed based on the following requirements from the MLCommons members to help them automatically compose and optimize complex MLPerf benchmarks, applications and systems across diverse and continuously changing models, data sets, software and hardware from Nvidia, Intel, AMD, Google, Qualcomm, Amazon and other vendors:
- must work out of the box with the default options and without the need to edit some paths, environment variables and configuration files;
- must be non-intrusive, easy to debug and must reuse existing user scripts and automation tools (such as cmake, make, ML workflows, python poetry and containers) rather than substituting them;
- must have a very simple and human-friendly command line with a Python API and minimal dependencies;
- must require minimal or zero learning curve by using plain Python, native scripts, environment variables and simple JSON/YAML descriptions instead of inventing new workflow languages;
- must have the same interface to run all automations natively, in a cloud or inside containers.
- Grigori Fursin (FlexAI, cTuning)
-
CM4MLOPS / CM4MLPerf - a collection of portable, extensible and technology-agnostic automation recipes with a common CLI and Python API (CM scripts) to unify and automate all the manual steps required to compose, run, benchmark and optimize complex ML/AI applications on diverse platforms with any software and hardware: see online catalog at CK playground, online MLCommons catalog
-
CM4ABTF - a unified CM interface and automation recipes to run automotive benchmark across different models, data sets, software and hardware from different vendors.
-
CM4Research - a unified CM interface an automation recipes to make it easier to reproduce results from published research papers.
- CM v2.x (2022-cur) (stable): installation on Linux, Windows, MacOS ; docs ; popular commands ; getting started guide
- CM v3.x aka CMX (2024-cur) (stable): docs
- MLPerf inference benchmark automated via CM
- Examples of modular containers and GitHub actions with CM commands:
If you found CM automations help, please cite this article: [ ArXiv ], [ BibTex ].
History: CM and CM automations for MLOps and MLPerf.
You can learn more about the motivation behind these projects from the following presentations:
- "Enabling more efficient and cost-effective AI/ML systems with Collective Mind, virtualized MLOps, MLPerf, Collective Knowledge Playground and reproducible optimization tournaments": [ ArXiv ]
- ACM REP'23 keynote about the MLCommons CM automation framework: [ slides ]
- ACM TechTalk'21 about Collective Knowledge project: [ YouTube ] [ slides ]
Collective Mind (CM) was originally developed by Grigori Fursin, as a part of the Collective Knowledge educational initiative, sponsored by cTuning.org and cKnowledge.org, and contributed to MLCommons for the benefit of all.
This open-source technology, including CM4MLOps and MLPerf automations, CM4ABTF, CM4Research, and more, is a collaborative project supported by MLCommons, FlexAI, cTuning and our amazing volunteers, collaborators, and contributors!