Training
Train YOLO models locally against a dataset version. Jobs run in a background thread inside the oneopen serve process.
Requirements
# Ultralytics (CV / YOLO)
pip install "oneopen-ml-studio[yolo]"
# Face + Torchvision detectors (MTCNN-style, RetinaNet, Faster R-CNN, SSD)
pip install "oneopen-ml-studio[detectors]"
# Tabular + classical text/audio label baselines
pip install "oneopen-ml-studio[tabular]"
# Hugging Face prepare extras
pip install "oneopen-ml-studio[nlp]"
# Optional alternate YOLO backend
pip install "oneopen-ml-studio[libreyolo]"
Training by modality
Modality |
What you get |
|---|---|
Image detection |
YOLO, LibreYOLO, MTCNN-style, RetinaFace-style, Faster R-CNN, RetinaNet, SSD-Lite |
Image classification |
YOLO-Cls (v8/11/26) + ResNet, EfficientNet, MobileNetV3, ConvNeXt, ViT, DenseNet, Swin, MaxViT |
Image segmentation |
YOLO-Seg (v8/11/26) + Mask R-CNN, DeepLabV3, FCN, LR-ASPP |
Tabular |
sklearn LogisticRegression / Ridge |
Text |
TF-IDF classifier (fit) + Hugging Face JSONL prepare |
Audio |
Audio-label baseline (fit) + Whisper/ASR prepare JSONL |
Video |
Video-label baseline (fit) + action-recognition prepare |
LLM |
SFT / DPO / RAG packages for TRL, Axolotl, Unsloth |
Open Train / Fine-tune on any project — options are filtered to that task via GET /api/projects/{id}/train/options.
For a screenshot walkthrough of data prep + training per project type, see Data prep & training by task (with screenshots).
Plugin manager (auto-install)
Missing backends are installed on demand when you train or run Label Assist / SAM:
Trigger |
Extra installed |
|---|---|
YOLO train / Label Assist |
|
LibreYOLO |
|
Torchvision detect / cls / seg |
|
sklearn / TF-IDF / audio-video fit |
|
HF / LLM prepare |
|
SAM assist |
|
Disable with ONEOPEN_AUTO_INSTALL_PLUGINS=false. Status APIs: GET /api/plugins/manager/status, POST /api/plugins/ensure, POST /api/plugins/extras/{extra}/install.
Before you train
Annotation and the project pipeline (tabs, export formats, Generate vs Package) follow project type — detection uses boxes + Generate; classification assigns an image class; text/audio/video/LLM use sample labeling without CV Generate.
Label enough samples for your task.
For image detection/seg/classification: assign splits and generate a version when the Generate tab is shown.
Open Train / Export and pick a backend for that modality.
Create a dataset version.
Prefer a GPU when available (
GET /api/system/devicereports CUDA).
Start a job (UI)
On the project page Train panel, pick a model family:
Family |
Examples |
Extra |
|---|---|---|
YOLO (Ultralytics) |
YOLOv8 → YOLO26 |
|
LibreYOLO |
LibreYOLO9 |
|
Face |
MTCNN (SSD-Lite face/OD), RetinaFace-style RetinaNet |
|
Torchvision |
Faster R-CNN, RetinaNet, SSD-Lite |
same |
Optional pretrained MTCNN proposals for assist: pip install "oneopen-ml-studio[face]".
Then set:
Setting |
Notes |
|---|---|
Version |
Required dataset version |
Model |
Catalog entry or custom weights |
Epochs / imgsz / batch |
Standard YOLO knobs |
Device |
Auto (GPU if available), GPU, or CPU |
Live stats update while training: mAP, precision/recall, losses, DFL, fitness, it/s, img/s, ETA, elapsed.
On success, best.pt is registered for later Label Assist / fine-tuning.
API
Check device:
GET /api/system/device
Start train:
POST /api/projects/{project_id}/train
{
"version_id": 1,
"model": "yolov8n.pt",
"epochs": 50,
"imgsz": 640,
"batch": 16,
"device": "auto"
}
Poll status:
GET /api/projects/{project_id}/train/status
GET /api/train/jobs/{job_id}
Device values
Value |
Behavior |
|---|---|
|
CUDA GPU if available, else CPU |
|
Force GPU |
|
Force CPU |
other |
Passed through to Ultralytics device string |
Windows note
On Windows, training forces DataLoader workers=0. This avoids the common “DataLoader worker exited unexpectedly” crash under spawn. Unix defaults to 4 workers.
Limitations
One active training job per project.
Jobs are in-process threads — stopping
oneopen servestops training.Job JSON under
~/.oneopen/training_jobs/may remain after an interrupted run.Early epochs often show mAP 0.000 until the model starts detecting; that can be normal.
Troubleshooting
See Troubleshooting for OOM, missing extras, empty labels, and worker errors.