diff --git a/README.md b/README.md index ce453b53..e4e192d9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# MLCube™ +# MLCube [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) @@ -6,11 +6,11 @@ [![PyPI MLCube Docker Runner](https://img.shields.io/pypi/v/mlcube-docker.svg?label="pypi%20(Docker%20Runner)")](https://pypi.org/project/mlcube-docker) [![PyPI MLCube Singularity Runner](https://img.shields.io/pypi/v/mlcube-singularity.svg?label="pypi%20(Singularity%20Runner)")](https://pypi.org/project/mlcube-singularity) -MLCube brings the concept of interchangeable parts to the world of machine learning models. It is the shipping container that enables researchers and developers to easily share the software that powers machine learning. +MLCube® brings the concept of interchangeable parts to the world of machine learning models. It is the shipping container that enables researchers and developers to easily share the software that powers machine learning. MLCube is a set of common conventions for creating ML software that can just "plug-and-play" on many systems. MLCube makes it easier for researchers to share innovative ML models, for a developer to experiment with many models, and for software companies to create infrastructure for models. It creates opportunities by putting ML in the hands of more people. -MLCube isn’t a new framework or service; MLCube is a consistent interface to machine learning models in containers like Docker. Models published with the MLCube interface can be run on local machines, on a variety of major clouds, or in Kubernetes clusters - all using the same code. MLCommons provides open source “runners” for each of these environments that make training a model in an MLCube™ a single command. +MLCube isn’t a new framework or service; MLCube is a consistent interface to machine learning models in containers like Docker. Models published with the MLCube interface can be run on local machines, on a variety of major clouds, or in Kubernetes clusters - all using the same code. MLCommons provides open source “runners” for each of these environments that make training a model in an MLCube a single command. *Note: This project is still in the very early stages and under active development, some parts may have unexpected/inconsistent behaviours.* diff --git a/docs/getting-started/concepts.md b/docs/getting-started/concepts.md index 0c5005e4..207bc570 100644 --- a/docs/getting-started/concepts.md +++ b/docs/getting-started/concepts.md @@ -1,7 +1,7 @@ # MLCube concepts ### Command Line Arguments -MLCube runtime and MLCube runners accept multiple command line arguments. They can be classified into two categories: +MLCube® runtime and MLCube runners accept multiple command line arguments. They can be classified into two categories: - Fixed command-specific parameters such as `--mlcube`, `--platform` and `--task` for the MLCube's `run` command, or `create_platform` and `rename_platform` for the `config` command. diff --git a/docs/getting-started/hello-world.md b/docs/getting-started/hello-world.md index dcfc1f83..a7a5c9de 100644 --- a/docs/getting-started/hello-world.md +++ b/docs/getting-started/hello-world.md @@ -1,5 +1,5 @@ # Hello World -Hello World MLCube is an example of a Docker-based MLCube. +Hello World MLCube® is an example of a Docker-based MLCube. ## QuickStart diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 7cb7edbf..bfe6503f 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -1,6 +1,6 @@ # Installation -Here is the step-by-step guide to install MLCube library and run simple MLCube cubes. +Here is the step-by-step guide to install MLCube® library and run simple MLCube cubes. ## Create a python environment diff --git a/docs/getting-started/mlcube-configuration.md b/docs/getting-started/mlcube-configuration.md index 5da6bc5b..050fbdb1 100644 --- a/docs/getting-started/mlcube-configuration.md +++ b/docs/getting-started/mlcube-configuration.md @@ -1,6 +1,6 @@ # MLCube Configuration -MLCube configuration provides information about MLCube's authors, requirements and +MLCube® configuration provides information about MLCube's authors, requirements and [tasks](https://mlcommons.github.io/mlcube/getting-started/concepts/#task). This is example configuration for the [MNIST MLCube](https://github.com/mlcommons/mlcube_examples/tree/master/mnist): diff --git a/docs/getting-started/mnist.md b/docs/getting-started/mnist.md index c9554ec4..12f39e82 100644 --- a/docs/getting-started/mnist.md +++ b/docs/getting-started/mnist.md @@ -1,6 +1,6 @@ # MNIST The [MNIST dataset](http://yann.lecun.com/exdb/mnist/) is a collection of 60,000 handwritten digits widely used for -training statistical, Machine Learning (ML) and Deep Learning (DL) models. The MNIST MLCube example demonstrates +training statistical, Machine Learning (ML) and Deep Learning (DL) models. The MNIST MLCube® example demonstrates how data scientists, ML and DL researchers and developers can distribute their ML projects (including training, validation and inference code) as MLCube cubes. MLCube establishes a standard to package user workloads, and provides unified command line interface. In addition, MLCube provides a number of reference diff --git a/docs/getting-started/system-settings.md b/docs/getting-started/system-settings.md index 48b526a2..bb58ed98 100644 --- a/docs/getting-started/system-settings.md +++ b/docs/getting-started/system-settings.md @@ -1,7 +1,7 @@ # MLCube System Settings -MLCube system settings configure MLCube and MLCube runners at a system level. The term `system level` here implies that -these settings are not tied to particular MLCubes (MLCube compliant ML projects). Instead, these settings are used by -MLCube runners on every machine where MLCube runtime is configured to use these settings. +MLCube® system settings configure MLCube and MLCube runners at a system level. The term `system level` here implies +that these settings are not tied to particular MLCubes (MLCube compliant ML projects). Instead, these settings are used +by MLCube runners on every machine where MLCube runtime is configured to use these settings. ## Introduction When MLCube runners run MLCubes, they need to know not only the content of MLCubes (tasks that MLCubes provide), but diff --git a/docs/index.md b/docs/index.md index ba3a0f37..87254f1c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,6 @@ # MLCube -MLCube is a project that reduces friction for machine learning by ensuring that models are easily portable and +MLCube® is a project that reduces friction for machine learning by ensuring that models are easily portable and reproducible, e.g., between different stacks such as different clouds, between cloud and on-prem, etc. Interested in getting started with MLCube? Follow the diff --git a/docs/runners/docker-runner.md b/docs/runners/docker-runner.md index 3229fce4..2f9ab307 100644 --- a/docs/runners/docker-runner.md +++ b/docs/runners/docker-runner.md @@ -1,5 +1,5 @@ # Docker Runner -Docker runner uses docker/nvidia-docker/podman to run MLCube cubes. It supports two mandatory commands - `configure` and +Docker runner uses docker/nvidia-docker/podman to run MLCube® cubes. It supports two mandatory commands - `configure` and `run` with standard arguments - `mlcube`, `platform` and `task`. Users can configure docker runner in MLCube configuration file, system setting file, and override parameters on a command line. diff --git a/docs/runners/gcp-runner.md b/docs/runners/gcp-runner.md index f12c5464..03f33945 100644 --- a/docs/runners/gcp-runner.md +++ b/docs/runners/gcp-runner.md @@ -1,7 +1,7 @@ # Google Compute Platform (GCP) Runner !!! attention - MLCube is under active development. Allocating and using instances in clouds are associated with costs. Users of + MLCube® is under active development. Allocating and using instances in clouds are associated with costs. Users of GCP runners should be aware about it, especially, taking into account capability of GCP runners to automatically create and start remote instances. GCP RUNNERS in current implementation DO NOT stop/destroy remote instances. Users are encouraged to visit web consoles to identify what virtual instances exist and run. diff --git a/docs/runners/index.md b/docs/runners/index.md index f69621bf..b356faab 100644 --- a/docs/runners/index.md +++ b/docs/runners/index.md @@ -1,5 +1,5 @@ # Runners -MLCube runners run MLCube cubes on one or multiple platforms. Examples of platforms are Docker and Singularity +MLCube® runners run MLCube cubes on one or multiple platforms. Examples of platforms are Docker and Singularity containers, Kubernetes, remote hosts, virtual machines in the cloud, etc. Every runner has a fixed set of configuration parameters that users can change to configure MLCubes and runners for their environments. Concretely, runners can take information from three different sources: diff --git a/docs/runners/kubeflow.md b/docs/runners/kubeflow.md index 0ad344de..65c7e530 100644 --- a/docs/runners/kubeflow.md +++ b/docs/runners/kubeflow.md @@ -1,7 +1,7 @@ # Kubeflow Runner !!! warning - Work in progress. Some functionality described below may not be available. + MLCube® Kubeflow runner is work in progress. Some functionality described below may not be available. Kubeflow supports two mandatory commands - `configure` and `run` with standard arguments - `mlcube`, `platform` and `task`. Users can configure SSH runner in system setting file, and override parameters on a command line. diff --git a/docs/runners/kubernetes.md b/docs/runners/kubernetes.md index fa3df9c3..5a464cbc 100644 --- a/docs/runners/kubernetes.md +++ b/docs/runners/kubernetes.md @@ -3,7 +3,7 @@ !!! warning Work in progress. Some functionality described below may not be available. -The Kubernetes Runner runs a MLCube on a Kubernetes cluster. +The Kubernetes Runner runs a MLCube® on a Kubernetes cluster. ## Why Kubernetes? diff --git a/docs/runners/singularity-runner.md b/docs/runners/singularity-runner.md index dac0194c..3924ce08 100644 --- a/docs/runners/singularity-runner.md +++ b/docs/runners/singularity-runner.md @@ -1,5 +1,5 @@ # Singularity Runner -Singularity runner uses singularity to run MLCube cubes. It supports two mandatory commands - `configure` and +Singularity runner uses singularity to run MLCube® cubes. It supports two mandatory commands - `configure` and `run` with standard arguments - `mlcube`, `platform` and `task`. Users can configure Singularity runner in MLCube configuration file, system setting file, and override parameters on a command line. diff --git a/docs/runners/ssh-runner.md b/docs/runners/ssh-runner.md index 78abee86..9d6a9642 100644 --- a/docs/runners/ssh-runner.md +++ b/docs/runners/ssh-runner.md @@ -3,7 +3,7 @@ !!! warning Work in progress. Some functionality described below may not be available. -SSH runner uses other runners to run MLCube cubes on remote hosts. It uses `ssh` and `rsync` internally. It +SSH runner uses other runners to run MLCube® cubes on remote hosts. It uses `ssh` and `rsync` internally. It supports two mandatory commands - `configure` and `run` with standard arguments - `mlcube`, `platform` and `task`. Users can configure SSH runner in system setting file, and override parameters on a command line. diff --git a/docs/tutorials/create-mlcube.md b/docs/tutorials/create-mlcube.md index 2280cd0e..ae8d3606 100644 --- a/docs/tutorials/create-mlcube.md +++ b/docs/tutorials/create-mlcube.md @@ -1,5 +1,5 @@ # Tutorial: Create an MLCube -Interested in getting started with MLCube? Follow the instructions in this tutorial. +Interested in getting started with MLCube®? Follow the instructions in this tutorial. ## Step 1: Setup Get MLCube, MLCube examples and MLCube Templates, and CREATE a Python environment. ```shell diff --git a/mlcube/mlcube/__main__.py b/mlcube/mlcube/__main__.py index 4c6e4178..6458fb03 100644 --- a/mlcube/mlcube/__main__.py +++ b/mlcube/mlcube/__main__.py @@ -129,7 +129,7 @@ def parser_process(value: str, state: click.parser.ParsingState): @Options.loglevel @Options.help def cli(log_level: t.Optional[str]): - """MLCube 📦 is a tool for packaging, distributing and running Machine Learning (ML) projects and models. + """MLCube® is a tool for packaging, distributing and running Machine Learning (ML) projects and models. \b - GitHub: https://github.com/mlcommons/mlcube diff --git a/release_tests/README.md b/release_tests/README.md index 91da994c..1ca6f08d 100644 --- a/release_tests/README.md +++ b/release_tests/README.md @@ -1,6 +1,6 @@ # MLCube Release process -To run MLCube and MLCuber runners unitests, run the following command in the root directory of the project: +To run MLCube® and MLCube runners unittests, run the following command in the root directory of the project: ```shell conda create -n mlcube python=3.6 conda activate mlcube diff --git a/runners/mlcube_docker/README.md b/runners/mlcube_docker/README.md index 6fd60ca3..b8a2825d 100644 --- a/runners/mlcube_docker/README.md +++ b/runners/mlcube_docker/README.md @@ -1,5 +1,5 @@ # MLCube Docker Runner -MLCube Docker Runner runs cubes (packaged Machine Learning (ML) workloads) in the docker environment. +MLCube® Docker Runner runs cubes (packaged Machine Learning (ML) workloads) in the docker environment. 1. Create MLCube system settings file. It should be located in a user home directory: `${HOME}/mlcube.yaml`. If this is not possible or not convenient, this file can be placed in any location given that environment variable diff --git a/runners/mlcube_k8s/README.md b/runners/mlcube_k8s/README.md index afd05b69..6fca50bf 100644 --- a/runners/mlcube_k8s/README.md +++ b/runners/mlcube_k8s/README.md @@ -1,6 +1,6 @@ # Kubernetes Runner -1. Create MLCube system settings file. It should be located in a user home directory: `${HOME}/mlcube.yaml`. If this +1. Create MLCube® system settings file. It should be located in a user home directory: `${HOME}/mlcube.yaml`. If this is not possible or not convenient, this file can be placed in any location given that environment variable `MLCUBE_SYSTEM_SETTINGS` points to this file. 2. Put the following in this file: diff --git a/runners/mlcube_kubeflow/README.md b/runners/mlcube_kubeflow/README.md index f6066791..4dcd1971 100644 --- a/runners/mlcube_kubeflow/README.md +++ b/runners/mlcube_kubeflow/README.md @@ -1,6 +1,6 @@ # Kubeflow Runner -1. Create MLCube system settings file. It should be located in a user home directory: `${HOME}/mlcube.yaml`. If this +1. Create MLCube® system settings file. It should be located in a user home directory: `${HOME}/mlcube.yaml`. If this is not possible or not convenient, this file can be placed in any location given that environment variable `MLCUBE_SYSTEM_SETTINGS` points to this file. 2. Put the following in this file: diff --git a/runners/mlcube_singularity/README.md b/runners/mlcube_singularity/README.md index b5632ba9..67667bc3 100644 --- a/runners/mlcube_singularity/README.md +++ b/runners/mlcube_singularity/README.md @@ -1,4 +1,4 @@ # MLCube Singularity Runner -MLCube Singularity Runner runs cubes (packaged Machine Learning (ML) workloads) in the singularity environment. +MLCube® Singularity Runner runs cubes (packaged Machine Learning (ML) workloads) in the singularity environment. Read Singularity Runner documentation [here](../../docs/runners/singularity-runner.md). \ No newline at end of file diff --git a/runners/mlcube_ssh/README.md b/runners/mlcube_ssh/README.md index 3ddaf890..e64aa3fb 100644 --- a/runners/mlcube_ssh/README.md +++ b/runners/mlcube_ssh/README.md @@ -1,3 +1,3 @@ # MLCube SSH Runner -MLCube SSH Runner runs cubes (packaged Machine Learning (ML) workloads) in the remote environment. Read +MLCube® SSH Runner runs cubes (packaged Machine Learning (ML) workloads) in the remote environment. Read SSH Runner documentation [here](../../docs/runners/ssh-runner.md). \ No newline at end of file