Skip to content
/ ck Public
forked from mlcommons/ck

Collective Knowledge (CK) is a small Python library that helps to decompose complex research projects into reusable and cross-linked components (wrappers for code, data, models and results), automation actions and portable workflows with unified APIs, CLI, and JSON I/O. You can find more info and real-world use cases at the project website:

License

Notifications You must be signed in to change notification settings

dividiti/ck

 
 

Repository files navigation

Collective Knowledge SDK

Downloads PyPI version Python Version DOI

Code license: License Data license: License: CC BY 4.0

Linux/MacOS: Build Status Windows: Windows Build status Coverage: Coverage Status

News

We have successfully completed the prototyping phase of the Collective Knowledge technology to make it easier to reproduce AI&ML and deploy it in production with the help of portable CK workflows, reusable artifacts and MLOps as described in this white paper and the CK presentation. We are now preparing the second phase of this project to make CK simpler to use, more stable and more user friendly - don't hesitate to get in touch with the CK author to know more!

Introduction

You can read about our motivation to create CK at cKnowledge.org

We have developed the Collective Knowledge framework (CK) to help our colleagues, students, researchers and practitioners share their projects and artifacts (code, data, models, scripts, experiments, papers) as a human-readable database (CK repository) with unified API, CLI, JSON input/output/meta descriptions and reusable automation actions.

For example, CK features software detection plugins, meta packages and OS descriptions to automate the detection and installation of all the dependencies including data sets and models required by a given research project to run on any target platform.

Such CK actions and components can be connected into platform-agnostic, portable, customizable and reproducible program pipelines and functional solutions that can be used with Continuous Integration tools, existing/legacy projects, and production systems.

The stable components, portable workflows and solutions are published along with reproduced papers at the open Collective Knowledge platform. They provide a unified way to benchmark, optimize, test and co-design software and hardware for emerging technoligies (AI, ML, quantum, IoT) across diverse hardware, datasets and models using public scoreboards

Our long-term goal is to enable collaborative, reproducible, sustainable and production-ready deep tech research (AI, ML, quantum, IoT). See the real CK use cases from our partners and try our MLPerf automation demo on your platform.

You can learn more about our project in the online documentation and the following presentations and white papers: 2020, 2019, 2018, 2017, 2009.

Even though the CK technology is used in production for more than 5 years, it is still a proof-of-concept prototype requiring further improvements and standardization. Depending on the available resources, we plan to develop a new, backward-compatible and more user-friendly version - please get in touch if you are interested to know more!

Open CK portal

CK use cases

Documentation

Older wiki-based documentation (we gradually move it to the above Sphinx-based documentation):

Installation

Follow this guide to install the CK SDK on your platform.

Check CK-based demo to participate in reproducible MLPerf benchmarking with a public SOTA scoreboard.

CK supports the following platforms:

As a host platform As a target platform
Generic Linux
Linux (Arm)
Raspberry Pi
MacOS ±
Windows
Android ±
iOS TBD TBD

Get involved

  • This is an ongoing community project and there is a lot to be improved - don't hesitate to get in touch using our slack, mailing list, twitter and email if you have any feedback or would like to collaborate.

  • Check this outdated guide to add your workflows and components. We are gradually rewriting this guide with our limited resources and developing cBench to simplify the user experience and provide a CK GUI at the open cKnowledge.io platform.

Acknowledgments

We would like to thank all CK users and partners for fruitful discussions and feedback!

Copyright 2015-2020 Grigori Fursin and the cTuning foundation

About

Collective Knowledge (CK) is a small Python library that helps to decompose complex research projects into reusable and cross-linked components (wrappers for code, data, models and results), automation actions and portable workflows with unified APIs, CLI, and JSON I/O. You can find more info and real-world use cases at the project website:

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.2%
  • PHP 2.2%
  • Other 0.6%