Skip to content

Commit

Permalink
Merge branch 'master' into TheKanter-patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
sergey-serebryakov authored Jul 26, 2023
2 parents 3a5bda9 + f678a73 commit 541a71d
Show file tree
Hide file tree
Showing 52 changed files with 1,308 additions and 510 deletions.
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# These owners will be the default owners for everything in the repo.
# Unless a later match takes precedence,they will be requested for review when someone opens a pull request.
* @mlcommons/wg-best-practices
2 changes: 2 additions & 0 deletions .github/workflows/docs-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
- '.github/workflows/docs-site.yml'
- 'docs/**'
- 'mkdocs.yml'
- 'mlcube/mlcube/__main__.py'
- 'mlcube/mlcube/cli.py'

jobs:
docs:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# MLCube
# MLCube

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

[![PyPI MLCube](https://img.shields.io/pypi/v/mlcube.svg?label="pypi%20(MLCube)")](https://pypi.org/project/mlcube)
[![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.*

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/concepts.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/hello-world.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/index.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/mlcube-configuration.md
Original file line number Diff line number Diff line change
@@ -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):

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/mnist.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
6 changes: 3 additions & 3 deletions docs/getting-started/system-settings.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
6 changes: 5 additions & 1 deletion docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
mkdocs>=1.0.4

# This slightly updated version respects Click's help feature to skip everything that comes after the \f symbol.
# mkdocs-click
mkdocs-click @ git+https://github.com/sergey-serebryakov/mkdocs-click@feature/respect-ff-escape-char

mkdocs-material>=4.4.0
mkdocs-click
pymdown-extensions>=7.1
-r ../mlcube/requirements.txt
2 changes: 1 addition & 1 deletion docs/runners/docker-runner.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
2 changes: 1 addition & 1 deletion docs/runners/gcp-runner.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/runners/index.md
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
2 changes: 1 addition & 1 deletion docs/runners/kubeflow.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 1 addition & 1 deletion docs/runners/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -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?

Expand Down
2 changes: 1 addition & 1 deletion docs/runners/singularity-runner.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
2 changes: 1 addition & 1 deletion docs/runners/ssh-runner.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
2 changes: 1 addition & 1 deletion docs/tutorials/create-mlcube.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading

0 comments on commit 541a71d

Please sign in to comment.