Skip to main content
SkyPilot is an orchestration framework that launches AI workloads on Kubernetes clusters and across clouds from a single task file, so you don’t write pod specs or manage scheduling details yourself. SkyPilot also monitors your jobs and lets you cancel them. This guide connects SkyPilot to a Together GPU cluster and launches a training task on its GPUs.

Requirements

Install SkyPilot with the Kubernetes extra:

Connect SkyPilot to the cluster

To give SkyPilot access to the cluster, download the cluster’s credentials with the Together CLI. The command merges them into your local ~/.kube/config and makes the cluster’s context current:
Verify that SkyPilot can reach the cluster:
You should see Kubernetes enabled, with your cluster’s context under Allowed contexts:
List the GPUs SkyPilot can schedule on the cluster:

Launch a training task

Create a SkyPilot task file that runs your training script, train.py. Set accelerators to a GPU type and count from the sky gpus list output:
task.yaml
Launch the task from the directory that contains train.py:
SkyPilot provisions the pods, runs the setup commands, and streams the run output to your terminal. When the task finishes, take down its pods to free their GPUs:

Fine-tune GPT-OSS

For a complete fine-tuning example, run SkyPilot’s GPT-OSS recipe, which fine-tunes GPT-OSS 20B with a low-rank adapter (LoRA). Clone the SkyPilot repository and launch the recipe from its directory. The task mounts the recipe’s local sft/ folder, so downloading the YAML file alone isn’t enough:

Next steps

Run workloads on Kubernetes

Deploy pods with persistent storage and run GPU workloads directly.

Gang-schedule GPU jobs with Volcano

Schedule all of a distributed job’s pods together, or none of them.