Home Knowledge Base ClearML

ClearML is the open-source end-to-end MLOps platform that tightly integrates experiment tracking, remote execution, and data management — providing a self-hosted alternative to W&B and MLflow that combines all MLOps functions (experiment tracking, pipeline orchestration, data versioning, and model serving) into a single platform with automatic experiment logging and a unique ability to clone and re-run any experiment on remote GPU workers.

What Is ClearML?

Why ClearML Matters for AI

ClearML Core Components and API

Task Initialization (Auto-Logging): from clearml import Task import torch from transformers import Trainer, TrainingArguments

task = Task.init( project_name="LLM Fine-tuning", task_name="Llama-3-8B-LoRA-v4", tags=["llama", "lora", "alpaca"] )

ClearML auto-captures: matplotlib figures, TensorBoard logs,

argparse parameters, PyTorch model structure

training_args = TrainingArguments( output_dir="./output", learning_rate=2e-4, num_train_epochs=3, report_to="tensorboard" # ClearML intercepts TensorBoard ) trainer = Trainer(model=model, args=training_args) trainer.train() task.close()

Manual Logging: logger = task.get_logger()

for epoch in range(epochs): logger.report_scalar("Loss/train", "train", iteration=epoch, value=train_loss) logger.report_scalar("Loss/val", "val", iteration=epoch, value=val_loss) logger.report_histogram("weight_distribution", "weights", iteration=epoch, values=weights)

ClearML Data (Dataset Versioning): from clearml import Dataset

dataset = Dataset.create(dataset_name="alpaca-clean", project_name="datasets") dataset.add_files(path="./data/alpaca_clean_52k.json") dataset.upload() dataset.finalize() print(dataset.id) # Pin this ID for reproducibility

In training script:

dataset = Dataset.get(dataset_id="abc123") data_path = dataset.get_local_copy()

ClearML Pipelines: from clearml.automation.controller import PipelineDecorator

@PipelineDecorator.component(return_values=["dataset_id"]) def stage_preprocess(raw_path: str) -> str: # Preprocessing code — runs as separate ClearML task return create_dataset(raw_path)

@PipelineDecorator.component(return_values=["model_id"]) def stage_train(dataset_id: str, lr: float) -> str: dataset = Dataset.get(dataset_id=dataset_id) return train_model(dataset.get_local_copy(), lr)

@PipelineDecorator.pipeline(name="ML Pipeline", project="LLM") def ml_pipeline(raw_path: str): dataset_id = stage_preprocess(raw_path) model_id = stage_train(dataset_id, lr=2e-4) return model_id

ClearML Agent (Remote Execution):

Install agent on GPU worker:

clearml-agent daemon --queue gpu-queue

Enqueue experiment from UI or API:

task.execute_remotely(queue_name="gpu-queue")

ClearML vs Alternatives

AspectClearMLMLflowW&B
Open SourceYes (full stack)YesNo
Self-HostingFreeFreePaid
Remote ExecutionBuilt-inNoNo
Data VersioningBuilt-inVia pluginsArtifacts only
Auto-Logging DepthExcellentGoodExcellent
Pipeline OrchestrationBuilt-inExternalNo

ClearML is the open-source MLOps platform that delivers experiment tracking, remote execution, and data versioning in one integrated self-hosted system — by enabling teams to clone, modify, and re-run any experiment on remote GPU workers from a browser while keeping all data on-premises, ClearML provides the full commercial MLOps experience without per-seat licensing costs or data residency compromises.

clearmlmlopsend to end

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.