Train YOLO
Overview
Fine-tunes a YOLO model from your workspace registry on an OvalBee train and validation dataset, and registers the result as a new version of that model. The node converts both datasets to YOLO format itself, so no conversion or upload node sits on either side of it.
What the model learns comes from the task type of the model you pick, not from a setting on this node:
- Object detection models train on bounding boxes.
- Instance segmentation models train on masks, exported as YOLO polygon labels.
Classification and pose models aren’t supported. The run’s live report opens from the node, and the Best Loss badge shows the lowest training loss reached.
Pretrained models
The model catalog ships these COCO-pretrained detectors. Copy one into your workspace from the Model picker to use it. OvalBee hosts none of these weights: Ultralytics downloads the checkpoint by name on first use.
These numbers come from the Ultralytics 8.4.33 COCO benchmarks, the same mAP and parameter figures the catalog shows for each model.
They do not guarantee the same performance on an OvalBee worker.
Speed is omitted because YOLOv8 uses A100 results, YOLO11 uses T4 results, and YOLOv9 does not publish speed results.
The catalog has no segmentation checkpoints. For instance segmentation, the workspace needs a YOLO model registered as instance segmentation, such as a -seg checkpoint added with Upload model.
Prerequisites
Exported YOLO dataset structure
The node writes this tree into the task’s own working directory before training:
Instance segmentation runs write the same tree, with polygon label lines instead of boxes. Both datasets are exported in a single pass so the two splits share one class index space. The tree is rebuilt from the datasets on every run and nothing downstream can read it.
How it works
Exports the train and validation datasets to a YOLO-format tree, as boxes or polygons depending on the model’s task type.
FAQ
What happens when I rerun the node?
Every run adds a new version to the model, or to Destination model when one is set. Earlier versions stay in the registry and the source datasets aren’t changed. When Model names the model itself rather than a pinned version, it follows the newest ready version, so a rerun that trains into the same model fine-tunes the previous run’s result. Pick a specific version to start every run from the same weights.
What happens if training fails partway through?
The version is created before training starts and receives the latest best and last checkpoints about every two minutes. A run that fails keeps what it uploaded, and its version is marked failed, so it isn’t offered in the model pickers. If uploading fails five times in a row, the node stops training rather than carry on with no way to save the result.
What does the trained version record?
The version holds best.pt and last.pt (intermediate epoch checkpoints are not kept), the Ultralytics results and plots, your hyperparameters as typed, and the full argument set Ultralytics resolved. It also records the class list, the train and validation datasets, the version training started from, the training report, and the last epoch’s mAP50, mAP50-95, precision, and recall. Segmentation runs add mask mAP50 and mask mAP50-95.
Which classes does the model learn?
When the train dataset is pinned to an ontology, the model learns that ontology’s object classes in its order, and labels of any other class are skipped. Otherwise the classes come from the annotations in the datasets. Tags never become classes.
Which annotations are used for each task type?
Detection trains on boxes: polygons, masks, and other shapes are converted to their bounding boxes. Instance segmentation trains on polygons, with masks converted to polygons. Rectangles are skipped, and a run whose datasets hold only rectangles stops with an error.
How is the Best Loss badge calculated?
For each epoch, the node adds up the box, classification, and distribution focal training losses, plus the segmentation loss on segmentation runs. The badge shows the lowest sum as Loss: value with four decimal places. It stays empty if Ultralytics logged no readable loss rows.
Why does the run stop with a dataset error?
The datasets hold no annotated object classes, so there is nothing to train on. The check uses the datasets’ computed statistics before anything is downloaded, and the export repeats it. For instance segmentation the datasets must also hold polygon or mask annotations. Check the dataset contents, then rerun.
Why does training fail as soon as it starts?
Hyperparameters may not be a YAML mapping, or it may contain an invalid Ultralytics argument. Fix the YAML and check its arguments against the pinned Ultralytics configuration reference.
Why can't the node load the selected model?
The model’s task type must be object detection or instance segmentation. The version must also have weights to start from: a checkpoint in its asset, or a checkpoint name Ultralytics can download. A catalog checkpoint that contradicts the task type, such as a -seg checkpoint on a detection model, is rejected.
Why are the gallery, metrics, plots, or checkpoint widgets empty?
Checkpoint saving or validation may be disabled, or Ultralytics may not have produced the required files. Keep save and val enabled and check the effective training configuration.
Why can't I open the report?
Training continues when the report asset cannot be created. Check the run logs and workspace asset permissions.
Inputs
Dataset to train on. Its assets and annotations are converted to YOLO format for you, so nothing has to convert them first. Key: TRAIN_DATASET.
Dataset held out to measure quality while training runs. Converted together with the training dataset, so both share the same class list. Key: VAL_DATASET.
Model to fine-tune, trained in this workspace or installed from the zoo. Training starts from the weights of the version you pick, and the result is registered as a new version of this model unless Destination model names another one. Key: MODEL.
Model the trained version is registered under, when it should not go to the one being fine-tuned. Leave empty to add the new version to the Model above. Key: DESTINATION_MODEL.
Ultralytics training settings in YAML - number of epochs, image size, batch size and the rest. Dataset paths and the output location are filled in for you and cannot be set here. Key: CONFIG.
Outputs
ID of the asset containing the live YOLO training report. Shown as an artifact. Key: REPORT_ID.
Reference to the registry version this run produced, as <model id>@<version id>. It wires into the Model input of a predict, export or evaluate node and pins it to exactly these weights. Empty when the run could not be registered. Shown as an artifact. Key: MODEL.
Lowest total training loss achieved (shown as a badge). Shown on the node as a badge. Key: BEST_LOSS.
Models and configuration
Model is both what training starts from and where its result is filed: the run adds a version to that model. Set Destination model to file the result elsewhere. The trained version is created there instead, and Model is then only the starting weights. Both pickers list only YOLO models of this workspace, and only their ready versions.
Checkpoint selection details
A version produced by training or registered by upload starts from the checkpoint stored with it, the best one when there are several. A version copied from the catalog hosts no weights of its own, so Ultralytics downloads its checkpoint by name. Either way the new version records the picked version as its starting point.
Default hyperparameters
OvalBee starts with these values in Hyperparameters:
Delete a value to use the pinned Ultralytics default instead.
Configuration
Hyperparameters must be a YAML mapping. The effective configuration follows this order:
- Values present in Hyperparameters override Ultralytics 8.4.33 defaults.
- The selected Model overrides and removes
model. - The node overrides
data,project,name, andexist_okso the exported dataset and the task’s artifacts directory are used. - Other valid Ultralytics training arguments pass through unchanged.
Report
The report appears near the start of training and updates as new metrics and files arrive. It tracks metrics, losses, learning rates, plots, TensorBoard, and checkpoints. A final update after training adds the predictions gallery and a download panel for the trained checkpoints.
Report sections
Runtime
GPU memory use depends on the model, image size, and batch size. OvalBee does not list specific RTX models as supported because the runtime image has no pinned digest or recorded end-to-end hardware matrix.
Details
- Configured image:
cr.internal.supervisely.com/ovalbee-internal/nodes/yolo:0.0.12. - Upstream base:
ultralytics/ultralytics:8.4.33. - Added components: OvalBee SDK, TensorBoard, and the Ultralytics TensorBoard integration.
- Exact CUDA, PyTorch, NVIDIA driver, and GPU compatibility depends on the image digest deployed by the worker.
JSON config
Machine-readable node interface for automation and advanced usage.