Install

Install the CLI

pip install cortex

You must have Docker installed to run Cortex locally or to create a cluster on AWS.

See here to install Cortex CLI without the Python Client.

Deploy an example

# clone the Cortex repository
git clone -b 0.22 https://github.com/cortexlabs/cortex.git
# navigate to the Pytorch text generator example
cd cortex/examples/pytorch/text-generator

Using the CLI

# deploy the model as a realtime api
cortex deploy
# view the status of the api
cortex get --watch
# stream logs from the api
cortex logs text-generator
# get the api's endpoint
cortex get text-generator
# generate text
curl <API endpoint> \
-X POST -H "Content-Type: application/json" \
-d '{"text": "machine learning is"}'
# delete the api
cortex delete text-generator

In Python

import cortex
import requests
local_client = cortex.client("local")
# deploy the model as a realtime api and wait for it to become active
deployments = local_client.deploy("./cortex.yaml", wait=True)
# get the api's endpoint
url = deployments[0]["api"]["endpoint"]
# generate text
print(requests.post(url, json={"text": "machine learning is"}).text)
# delete the api
local_client.delete_api("text-generator")

Running at scale on AWS

Run the command below to create a cluster with basic configuration, or see cluster configuration to learn how you can customize your cluster with cluster.yaml.

See EC2 instances for an overview of several EC2 instance types. To use GPU nodes, you may need to subscribe to the EKS-optimized AMI with GPU Support and file an AWS support ticket to increase the limit for your desired instance type.

# create a Cortex cluster on your AWS account
cortex cluster up
# set the default CLI environment (optional)
cortex env default aws

You can now run the same commands shown above to deploy the text generator to AWS (if you didn't set the default CLI environment, add --env aws to the cortex commands).

Next steps