Training overview
Labelty training fine-tunes or trains a model on your project’s approved labeled assets using managed compute (AWS SageMaker). You can drive it from the web training wizard or the REST API.
Why train inside Labelty?
Section titled “Why train inside Labelty?”- Dataset selection reuses your labeling statuses and label filters
- Compute tiers and memory budgets are suggested for you
- Live metrics stream back into the product while the job runs
- After success, a build step creates an inference package you can auto-label with or attach to a workflow
End-to-end flow
Section titled “End-to-end flow”Diagram: Training pipeline — preview → pick base model → choose GPU → create run → poll → build → auto-label / workflow
1. Preview dataset (counts, readiness, train/val/test split)2. Pick a base model that already has weights (status SUCCESS)3. Choose compute tier + hyperparameters4. Create training run → SageMaker job starts5. Poll run until SUCCEEDED (or FAILED / STOPPED_EARLY)6. Build inference package + activate output model7. Use the model for auto-label or workflowsRun statuses
Section titled “Run statuses”| Status | Meaning |
|---|---|
QUEUED |
Waiting to start |
RUNNING |
SageMaker job in progress |
SUCCEEDED |
Weights produced; build may still be required |
FAILED |
Job failed (see error fields / logs) |
STOPPED_EARLY |
Stopped because the prepaid wallet ran out; may be resumable after top-up |
After step 5 succeeds, the output model usually has:
output_ml_model_idsetis_active: falseoutput_inference_built: false
Step 6 (build) is required before auto-label. Build does not rename the model — the registry name and version come from the create-run fields name and output_model_version.
Prerequisites
Section titled “Prerequisites”- A project with a label schema
- Enough approved labeled images (readiness requires at least 2 labeled images for the default split so validation is non-empty)
- A base model in the registry with weights (
GET …/models?status=SUCCESS) - Permission
ml.model.train(model list may only needproject.read) - Active subscription / wallet budget for the selected GPU tier
- Auth: Clerk session or project API key
Dataset selection modes
Section titled “Dataset selection modes”When previewing or creating a run, selection / dataset_selection supports:
| Mode | Meaning |
|---|---|
all_approved |
All approved assets in project scope |
filtered |
Same filters as the asset list API |
asset_ids |
Explicit list of asset UUIDs |
Only approved annotations with a label_id are exported.
With filters.label_ids, only those classes are trained (an asset matches if it has any of the selected labels). With filters.exclude_label_ids, assets that have any excluded label are dropped (exclude wins).
Train / validation / test split
Section titled “Train / validation / test split”Default: 70% / 20% / 10%.
Constraints:
- Percentages must sum to 100
- At least one of
val_percentortest_percentmust be greater than 0
Allocation is deterministic (largest-remainder on labeled images sorted by asset UUID).
GPU tiers
Section titled “GPU tiers”| Tier | Instance | Notes |
|---|---|---|
medium |
ml.t3.large |
CPU |
large |
ml.m5.large |
CPU |
xlarge |
ml.g4dn.xlarge |
T4 16GB |
g5 |
ml.g5.xlarge |
A10G 24GB |
Default trainer plugin: ultralytics_yolo.
Next step
Section titled “Next step”Walk through preview → create run: Start a training run.