Skip to content

Create Finetune Job

POST
/v1/finetune
curl --request POST \
--url https://example.com/v1/finetune \
--header 'Content-Type: application/json' \
--data '{ "project_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "model_id": "lerobot/smolvla_base", "vla_type": "act", "dataset_id": "lerobot/pusht", "hours": 1, "instance_type": "example", "region": "example", "batch_size": 32, "name": "example", "camera_mappings": { "cam_1": "observation.images.top", "cam_2": "observation.images.wrist", "cam_3": "observation.images.front" }, "vla_hyper_spec": {}, "use_rabc": false, "sarm_reward_model_path": "example", "rabc_head_mode": "sparse", "sarm_image_observation_key": "example", "job_type": "vla" }'

Start a new finetune job.

Creates a training job for fine-tuning a VLA model on the specified dataset. Camera mappings must map model camera slots to valid dataset image keys. Use GET /v1/datasets/{dataset_id}/image-keys to discover available keys.

x-api-key
string | null
Media type application/json
FinetuneRequest

Request to start a finetune job.

object
project_id
required

Project ID to associate the job with

string format: uuid
model_id

HuggingFace model ID to finetune. Required for smolvla, pi0, pi05. Must NOT be provided for act, gr00t_n1_5.

string | null
vla_type
required
VLAType

VLA model type (determines camera slot configuration)

string
Allowed values: act smolvla pi0 pi05 gr00t_n1_5 gr00t_n1_6 sarm wall_oss xvla
dataset_id
required

HuggingFace dataset ID

string
hours
required

Training duration in hours

number
> 0 <= 168
instance_type

GPU instance type (from /v1/instances). If not specified, cheapest available is used.

string | null
region

Cloud region. If not specified, best available is selected.

string | null
batch_size

Training batch size

integer
default: 32 >= 1 <= 512
name

Job name/description. Defaults to ‘SDK Job - {vla_type}’

string | null
<= 255 characters
camera_mappings
required

Camera mappings from model camera slots to dataset image keys.

object
key
additional properties
string
Example
{
"cam_1": "observation.images.top",
"cam_2": "observation.images.wrist",
"cam_3": "observation.images.front"
}
vla_hyper_spec

Advanced hyperparameters for VLA models. Use GET /v1/finetune/hyperparams/defaults to get defaults.

object
key
additional properties
any
use_rabc

Whether to use SARM Reward-Aware Behavior Cloning (RA-BC) for training

boolean
sarm_reward_model_path

HuggingFace path to trained SARM reward model (required if use_rabc=True)

string | null
rabc_head_mode

SARM head mode to use: ‘sparse’, ‘dense’, or ‘both’

string
default: sparse
Allowed values: sparse dense both
sarm_image_observation_key

Image key from camera_mappings for SARM reward annotations (required if use_rabc=True)

string | null
job_type
JobType

Type of fine-tuning job: ‘vla’, ‘reward’, or ‘vla_w_reward’

string
default: vla
Allowed values: vla reward vla_w_reward

Finetune job created successfully

Media type application/json
FinetuneResponse

Response after creating a finetune job.

object
job_id
required

Unique job identifier

string format: uuid
status
required

Current job status

string
message

Status message

string | null
Example generated
{
"job_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"status": "example",
"message": "example"
}

Invalid camera mappings or request parameters

Media type application/json
ErrorResponse

Standard error response.

object
detail
required

Error message describing what went wrong

string
Example generated
{
"detail": "example"
}

Invalid or missing API key

Media type application/json
ErrorResponse

Standard error response.

object
detail
required

Error message describing what went wrong

string
Example generated
{
"detail": "example"
}

Validation error