---
description: Automate from idea to production
---

# Overview

{% hint style="info" %}
This section of the documentation was for the **Worlflows (BETA)**. For the latest info on training in Gradient go to [Workflows](https://docs.paperspace.com/gradient/explore-train-deploy/workflows).
{% endhint %}

![](https://1320806315-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LHZRFUkajubOAmgu6Rd%2F-MUz4i9dmqNS87854pc0%2F-MUz59DL2XxUvehmpJiG%2FScreen%20Shot%202021-03-04%20at%204.15.25%20PM.png?alt=media\&token=2dea79a9-d5b1-42cc-b65b-9199ebf76966)

Workflows are the newest (and most powerful) way to create machine learning projects. Workflows let you use a [GitHub-action](https://docs.github.com/en/actions) style syntax to easily create powerful automation.

Workflows allow you to build complex, real-world machine learning projects. Note, this is an advanced topic so if you are still early in your ML journey, it might make more sense to start with [notebooks](../tutorials/tutorials-list/getting-started-with-gradient-notebooks) first.

Workflows are based on the [Argo runtime engine](https://argoproj.github.io/projects/argo/) which is a container-native continuous delivery tool for Kubernetes.

## Key Terminology

* **Workflow**:&#x20;
  * a named or unnamed entity that belongs to a team and project
  * named workflows can be re-run with a default `workflow spec`, or be passed a new spec every time
* [**Workflow Spec**](overview/workflow-spec)**:** a JSON or YAML list of jobs that is converted into an Argo template and run on the Gradient distributed runtime engine.
* [**Job**](workflow-spec#jobs)**:** self-contained part of a workflow spec that is similar to an Argo step
  * jobs can define inputs, outputs, and their own environment variables
*
  * jobs can require other jobs via "needs" and collect/pass info between jobs
  * jobs can be implemented with an action via "use"
* [**Action**](overview/gradient-actions)**:** A self-contained, composable set of code building blocks that can perform specific actions within a machine learning project.&#x20;
*
  * actions can receive parameters (e.g. args, image) within the job step via the "with" argument
  * e.g. `container@v1` action = run a container, load inputs, and produce outputs
* [**Workflow Run**](workflow-spec#example-workflow-run-output): the implementation of a workflow
  * the most basic run requires a `workflowId` and `clusterId` - most will also include a workflowSpec and the inputs to be passed into the workflow
  * the workflow run contains everything needed for the workflow to actually be executed; i.e. what (`workflowId`), where (`clusterId`), how (`workflowSpec`) with ([inputs](workflow-spec#inputs), etc.)
