Build the training Docker image the way you always do. You add no platform script to the image and follow no special output format.

This section covers the training image's outer contract and how to verify it. It does not cover the model algorithm.

Summary

ItemDetails
DeliverableAn image tar made with docker save (+ tag name · sha256)
ExecutionThe platform runs the image's ENTRYPOINT as is. It does not override the command
InputThe platform downloads the training data beforehand and places it in /geo/dataset. You need no download code and no storage credentials
SettingsHyperparameters, task and GPU all come in as environment variables
OutputUpload everything you want to keep to MLflow. The container file system disappears when the run ends
Exitexit 0 = success, anything else = failure

The flow of one training run

One training run executes as one Kubernetes Job (one pod). The platform does ①–③ and ⑧–⑩; the container is involved only in ④–⑦.

Execution sequence of one training run — the roles of the user screen, platform server, MLflow and the training container

  • The MLflow run already exists before the training container starts (①). The platform creates it when the run leaves the queue and starts preparing. The container's mlflow.start_run() takes over that run (④). Even if the container dies without closing the run, the platform settles the final state from the exit code (⑧).
  • Logs and metrics take different paths. Standard output flows only to the live log on screen; the platform reads curves and progress from MLflow (⑤). Numbers you print do not become curves.
  • Data preparation finishes before your training code starts (②). The pod's init container fetches the dataset and places it in /geo/dataset, and only then does your image start.

The six steps the server shows

The Progress steps (진행 단계) on the training detail screen are fixed at six. They move only on facts the platform observes. The trainer does not report steps (and has no way to).

Detail of a training run on an external image — the server shows all six steps, from Queued to Finalize results
#Step keyScreen nameWhat happens in the step
1queueQueued (실행 대기)From submission until a run slot is free
2runtime_preparePrepare training environment (학습 환경 준비)Issuing the run token and image pull credentials, creating the Job, scheduling the pod and pulling the image
3data_stagePrepare dataset (데이터셋 준비)While the init container places the dataset. No progress is shown; it completes when the training container starts
4trainTraining (학습)Your ENTRYPOINT. Progress = MLflow's max(step)+1 / params.epochs
5registerRegister in model registry (모델 레지스트리 등록)If registration was turned on in the review step, registering the logged model as a new version in the registry
6finalizeFinalize results (결과 정리)Closing out the state, revoking the run token

Order of this section

How a training image reaches the wizard: the partner hands over an image tar made with docker build and save, or pushes it, and ① it lands in the container registry. ② After the tenant admin registers it as an external image variant under training runtimes, ③ the AI developer picks it in step 10 (runtime) of the new training wizard

  1. Three things a trainer does — metrics, model logging, exit code
  2. Paths and environment variables inside the container
  3. The full MNIST example — a complete set you copy and swap in your training code
  4. Verify locally first
  5. Upload the image to the platform — tar import or docker push
  6. Make it selectable in the wizard — external-image variant
  7. Catalog registration — new frameworks, models and hyperparameters through an image label or the admin screen
  8. Built-in training runtimes — YOLO · RF-DETR · Pointcept
  9. Pretrained weights
  10. Common failures

Written for the platform as of 2026-10-02.

© MLOps Central Platform