Skip to content

Commit

Permalink
clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
gfursin committed May 24, 2022
1 parent e5e7669 commit b20b2fa
Show file tree
Hide file tree
Showing 63 changed files with 156 additions and 158 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ install:

script:
- ${PYTHON_EXE} -m pip install --ignore-installed --verbose pip setuptools
- cd ck2
- cd cm
- ${PYTHON_EXE} setup.py install
- ${PYTHON_EXE} -m cmind
- cm
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
***April 2022: We've started prototyping the new [CK2 toolkit](https://github.com/mlcommons/ck/tree/master/ck2)
based on your feedback and combined with our practical experience
[reproducing 150+ ML and Systems papers and validating them in the real world](https://www.youtube.com/watch?v=7zpeIVwICa4).
Please [get in touch](https://github.com/mlcommons/ck/tree/master/ck2#contacts) if you are interested to participate in this community effort!***
***We are developing the new [CM toolkit aka CK2](https://github.com/mlcommons/ck/tree/master/cm) based on the community feedback.***

# Collective Knowledge framework (CK)

Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ install:
build: false

test_script:
- cd ck2
- cd cm
- "%PYTHON%\\python.exe setup.py install"
- "%PYTHON%\\python.exe -m cmind"
- "cm"
120 changes: 1 addition & 119 deletions ck2/README.md
Original file line number Diff line number Diff line change
@@ -1,119 +1 @@
# Collective Mind toolkit

[![PyPI version](https://badge.fury.io/py/cmind.svg)](https://pepy.tech/project/cmind)
[![Downloads](https://pepy.tech/badge/cmind)](https://pepy.tech/project/cmind)
[![Python Version](https://img.shields.io/badge/python-3+-blue.svg)](https://github.com/mlcommons/ck/tree/master/ck2)
[![License](https://img.shields.io/badge/License-Apache%202.0-green)](https://github.com/mlcommons/ck/tree/master/ck2)


The Collective Mind toolkit (CM) transforms Git repositories, Docker containers, Jupyter notebooks, zip/tar files
and any local directory into a collective database of reusable artifacts
and automation scripts with a unified interface and extensible meta descriptions.

Our goal is to help researchers and engineers exchange their artifacts, knowledge,
experience and best practices in a more automated, reusable, portable and unified way
across rapidly evolving software and hardware.

CM is motivated by our tedious experience reproducing [150+ ML and Systems papers](https://www.youtube.com/watch?v=7zpeIVwICa4)
when [our colleagues](https://ctuning.org/ae/committee.html) have spent many frustrating months communicating with each other
and trying to understand numerous technical reports, README files, specifications, dependencies,
ad-hoc scripts, tools, APIs, models and data sets of all shared projects
to be able to [validate experimental results](https://cknowledge.io/?q=%22reproduced-papers%22)
and adapt ad-hoc projects to the real world with very diverse
and continuously changing software, hardware, user environments, settings and data.

The Collective Mind toolkit is based on the [Collective Knowledge concept (CK)]( https://arxiv.org/abs/2011.01149 )
that was successfully validated in the past few years to provide a simple, common and extensible format
and API for shared projects and make it easier for researchers and engineers to communicate, collaborate and innovate.
The CK prototype was used to [enable collaborative ML and Systems R&D](https://cKnowledge.org/partners.html),
[connect MLOps and DevOps](https://github.com/mlcommons/ck-mlops) by treating models, datasets and other artifacts as "code" packages,
[automate the MLPerf inference benchmark](https://github.com/mlcommons/ck/tree/master/docs/mlperf-automation),
and [automate the development and deployment of Pareto-efficient ML Systems in the real world](https://www.youtube.com/watch?v=1ldgVZ64hEI).
We are desiging the CM toolkit based on all the feedback we have received from these projects.

See related slides [about our motivation](docs/motivation.md) and a related article
about ["MLOps Is a Mess But That's to be Expected"](https://www.mihaileric.com/posts/mlops-is-a-mess) (March 2022).



# License

Apache 2.0



# Documentation

* [Online docs](https://cknowledge.org/docs/cm)

# Tutorials

* [Converting ad-hoc scripts into intelligent CM components](https://cknowledge.org/docs/cm/tutorial-ic.html)
* [CM concepts](https://cknowledge.org/docs/cm/tutorial-concept.html)

# Community meetings

* [Public notes](meetings/)
* [Regular conf-calls](meetings/conf-calls.md)


# News

* **2022 May 20:** Brainstorming session for CM-powered ["intelligent components"](https://cknowledge.org/docs/cm/tutorial-ic.html) in Seattle, WA.

* **2022 April 20:** MLCommons virutal community meeting.

* **2022 April 3:** We presented our approach to bridge the growing gap between ML Systems research and production
at the HPCA'22 workshop on [benchmarking deep learning systems](https://sites.google.com/g.harvard.edu/mlperf-bench-hpca22/home).

* **2022 March:** We presented our concept to [enable collaborative and reproducible ML Systems R&D](https://meetings.siam.org/sess/dsp_programsess.cfm?SESSIONCODE=73126)
at the SIAM'22 workshop on "Research Challenges and Opportunities within Software Productivity, Sustainability, and Reproducibility"

* **2022 March:** we've released the first prototype of [the Collective Mind toolkit (CK2)](https://github.com/mlcommons/ck/tree/master/ck2)
based on your feedback and our practical experience [reproducing 150+ ML and Systems papers and validating them in the real world](https://www.youtube.com/watch?v=7zpeIVwICa4).




# Development

## CM database

We use [GitHub tickets](https://github.com/mlcommons/ck/issues)
to improve and enhance the CM core that manages shared projects
as a collective database of reusable artifacts and automations.
Please don't hesitate to share your ideas and report encountered issues!



## CM-based projects

### Automating development, optimization and deployment of efficient ML Systems

CM provides a common playground and a common language to help researchers and engineers
discuss and learn how to make benchmarking, optimization, co-design and deployment
of complex ML Systems more deterministic, portable and reproducible across
continusly changing software and hardware stacks.

* Common CM repository to bridge [the growing gap](https://www.mihaileric.com/posts/mlops-is-a-mess)
between ML research and production: [GitHub](https://github.com/mlcommons/ck/tree/master/ck2-repo-mlops)




# Related resources

* [MLOps](docs/KB/MLOps.md)


# Acknowledgments

We thank the [users and partners of the original CK framework](https://cKnowledge.org/partners.html),
[OctoML](https://octoml.ai), [MLCommons](https://mlcommons.org)
and all our colleagues for their valuable feedback and support!


# Contacts

* [Grigori Fursin](https://cKnowledge.io/@gfursin)
* [Arjun Suresh](https://www.linkedin.com/in/arjunsuresh)
*Moved [here](../cm)*
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions ck2/CONTRIBUTING.md → cm/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to CM (CK2)
# Contributing to CM (aka CK2)

* Development website: https://github.com/mlcommons/ck/tree/master/ck2
* Development website: https://github.com/mlcommons/ck/tree/master/cm
* Issues: https://github.com/mlcommons/ck/issues (use [CM] prefix)
* Mailing list: https://groups.google.com/g/collective-knowledge (use [CM] prefix)
* Discord channel: TBA
Expand Down
File renamed without changes.
File renamed without changes.
119 changes: 119 additions & 0 deletions cm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Collective Mind toolkit

[![PyPI version](https://badge.fury.io/py/cmind.svg)](https://pepy.tech/project/cmind)
[![Downloads](https://pepy.tech/badge/cmind)](https://pepy.tech/project/cmind)
[![Python Version](https://img.shields.io/badge/python-3+-blue.svg)](https://github.com/mlcommons/ck/tree/master/cm)
[![License](https://img.shields.io/badge/License-Apache%202.0-green)](https://github.com/mlcommons/ck/tree/master/cm)


The Collective Mind toolkit (CM) transforms Git repositories, Docker containers, Jupyter notebooks, zip/tar files
and any local directory into a collective database of reusable artifacts
and automation scripts with a unified interface and extensible meta descriptions.

Our goal is to help researchers and engineers exchange their artifacts, knowledge,
experience and best practices in a more automated, reusable, portable and unified way
across rapidly evolving software and hardware.

CM is motivated by our tedious experience reproducing [150+ ML and Systems papers](https://www.youtube.com/watch?v=7zpeIVwICa4)
when [our colleagues](https://ctuning.org/ae/committee.html) have spent many frustrating months communicating with each other
and trying to understand numerous technical reports, README files, specifications, dependencies,
ad-hoc scripts, tools, APIs, models and data sets of all shared projects
to be able to [validate experimental results](https://cknowledge.io/?q=%22reproduced-papers%22)
and adapt ad-hoc projects to the real world with very diverse
and continuously changing software, hardware, user environments, settings and data.

The Collective Mind toolkit is based on the [Collective Knowledge concept (CK)]( https://arxiv.org/abs/2011.01149 )
that was successfully validated in the past few years to provide a simple, common and extensible format
and API for shared projects and make it easier for researchers and engineers to communicate, collaborate and innovate.
The CK prototype was used to [enable collaborative ML and Systems R&D](https://cKnowledge.org/partners.html),
[connect MLOps and DevOps](https://github.com/mlcommons/ck-mlops) by treating models, datasets and other artifacts as "code" packages,
[automate the MLPerf inference benchmark](https://github.com/mlcommons/ck/tree/master/docs/mlperf-automation),
and [automate the development and deployment of Pareto-efficient ML Systems in the real world](https://www.youtube.com/watch?v=1ldgVZ64hEI).
We are desiging the CM toolkit based on all the feedback we have received from these projects.

See related slides [about our motivation](docs/motivation.md) and a related article
about ["MLOps Is a Mess But That's to be Expected"](https://www.mihaileric.com/posts/mlops-is-a-mess) (March 2022).



# License

Apache 2.0



# Documentation

* [Online docs](https://cknowledge.org/docs/cm)

# Tutorials

* [Converting ad-hoc scripts into intelligent CM components](https://cknowledge.org/docs/cm/tutorial-ic.html)
* [CM concepts](https://cknowledge.org/docs/cm/tutorial-concept.html)

# Community meetings

* [Public notes](meetings/)
* [Regular conf-calls](meetings/conf-calls.md)


# News

* **2022 May 20:** Brainstorming session for CM-powered ["intelligent components"](https://cknowledge.org/docs/cm/tutorial-ic.html) in Seattle, WA.

* **2022 April 20:** MLCommons virutal community meeting.

* **2022 April 3:** We presented our approach to bridge the growing gap between ML Systems research and production
at the HPCA'22 workshop on [benchmarking deep learning systems](https://sites.google.com/g.harvard.edu/mlperf-bench-hpca22/home).

* **2022 March:** We presented our concept to [enable collaborative and reproducible ML Systems R&D](https://meetings.siam.org/sess/dsp_programsess.cfm?SESSIONCODE=73126)
at the SIAM'22 workshop on "Research Challenges and Opportunities within Software Productivity, Sustainability, and Reproducibility"

* **2022 March:** we've released the first prototype of [the Collective Mind toolkit (aka CK2)](https://github.com/mlcommons/ck/tree/master/cm)
based on your feedback and our practical experience [reproducing 150+ ML and Systems papers and validating them in the real world](https://www.youtube.com/watch?v=7zpeIVwICa4).




# Development

## CM database

We use [GitHub tickets](https://github.com/mlcommons/ck/issues)
to improve and enhance the CM core that manages shared projects
as a collective database of reusable artifacts and automations.
Please don't hesitate to share your ideas and report encountered issues!



## CM-based projects

### Automating development, optimization and deployment of efficient ML Systems

CM provides a common playground and a common language to help researchers and engineers
discuss and learn how to make benchmarking, optimization, co-design and deployment
of complex ML Systems more deterministic, portable and reproducible across
continusly changing software and hardware stacks.

* Common CM repository to bridge [the growing gap](https://www.mihaileric.com/posts/mlops-is-a-mess)
between ML research and production: [GitHub](https://github.com/mlcommons/ck/tree/master/cm-devops)




# Related resources

* [MLOps](docs/KB/MLOps.md)


# Acknowledgments

We thank the [users and partners of the original CK framework](https://cKnowledge.org/partners.html),
[OctoML](https://octoml.ai), [MLCommons](https://mlcommons.org)
and all our colleagues for their valuable feedback and support!


# Contacts

* [Grigori Fursin](https://cKnowledge.io/@gfursin)
* [Arjun Suresh](https://www.linkedin.com/in/arjunsuresh)
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion ck2/cmind/automation.py → cm/cmind/automation.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ def test(self, i):
print ('Path to CM repositories: {}'.format(self.cmind.repos_path))

print ('')
print ('GitHub for CM development: https://github.com/mlcommons/ck/tree/master/ck2')
print ('GitHub for CM development: https://github.com/mlcommons/ck/tree/master/cm')
print ('Reporting issues and ideas: https://github.com/mlcommons/ck/issues')

return {'return':0}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions ck2/cmind/repo/README.md → cm/cmind/repo/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Internal Collective Mind repository

[![CM artifact](https://img.shields.io/badge/Artifact-automated%20and%20reusable-blue)](https://github.com/mlcommons/ck/tree/master/ck2)
[![CM repository](https://img.shields.io/badge/Collective%20Mind-compatible-blue)](https://github.com/mlcommons/ck/tree/master/ck2)
[![CM artifact](https://img.shields.io/badge/Artifact-automated%20and%20reusable-blue)](https://github.com/mlcommons/ck/tree/master/cm)
[![CM repository](https://img.shields.io/badge/Collective%20Mind-compatible-blue)](https://github.com/mlcommons/ck/tree/master/cm)

This internal repository contains CM-compatible artifacts and automations
that were moved to the CM core to ensure their stability
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion ck2/docs/KB/MLOps.md → cm/docs/KB/MLOps.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ Here we collect related notes about MLPerf, MLOps, DevOps, inference engines, co

# ML artifact management

- [CM toolkit](https://github.com/mlcommons/ck/tree/master/ck2)
- [CM toolkit](https://github.com/mlcommons/ck/tree/master/cm)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
4 changes: 2 additions & 2 deletions ck2/docs/conf.py → cm/docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
release=version

edit_on_github_url='https://github.com'
edit_on_github_project = 'mlcommons/ck/tree/master/ck2/docs/'
edit_on_github_project = 'mlcommons/ck/tree/master/cm/docs/'

kernel_file=os.path.join('..', 'cmind', '__init__.py')

Expand Down Expand Up @@ -135,7 +135,7 @@
"display_github": True,
"github_user": "mlcommons",
"github_repo": "ck",
"github_version": "master/ck2/docs/",
"github_version": "master/cm/docs/",
}

html_logo = 'auto/static/logo.png'
Expand Down
2 changes: 1 addition & 1 deletion ck2/docs/enhancements.md → cm/docs/enhancements.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ In the CK1, we used explicit indexing of all entries using .cm directories.
Such mechanism provided a very fast search but it was not very user friendly:
if a user forgot to add .cm to Git or Zip, the search function was broken.

In the CK2 (CM), we decided to simplify the overall architecture and removed
In the CM (aka CK2), we decided to simplify the overall architecture and removed
explicit indexing by default. Now, CM will be searching recursively for entries
based on UID and alias in their meta description (_cm.yaml | _cm.json).

Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions ck2/docs/installation.md → cm/docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

## Prerequisites

The CM toolkit (CK2 framework) requires minimal dependencies: Python 3.x, PIP and Git.
The CM framework (aka CK2) requires minimal dependencies: Python 3.x, PIP and Git.

### Linux

Expand Down Expand Up @@ -85,7 +85,7 @@ Path to CM internal repo: C:\!Progs\Python39\lib\site-packages\cmind\repo

Path to CM repositories: D:\Work1\CM\cm-repos

GitHub for CM development: https://github.com/mlcommons/ck/tree/master/ck2
GitHub for CM development: https://github.com/mlcommons/ck/tree/master/cm
Reporting issues and ideas: https://github.com/mlcommons/ck/issues
```

Expand All @@ -101,7 +101,7 @@ You can use the following environment variables to customize CM installation:
* *%USERPROFILE%\CM* directory on Windows

* 'CM_CONFIG' - provide full path to a JSON or YAML file with the CM configuration.
The content of this file will be merged with the ["cfg" dictionary](https://github.com/mlcommons/ck/blob/master/ck2/cmind/config.py#L23)
The content of this file will be merged with the ["cfg" dictionary](https://github.com/mlcommons/ck/blob/master/cm/cmind/config.py#L23)
from the *config.py*.

* 'CM_DEBUG' - if set to 'yes', turn on internal CM debugging and raise errors
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit b20b2fa

Please sign in to comment.