Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation

# Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation ClearML adalah platform MLOps open-source yang menyediakan solusi lengkap untuk experiment tracking, d...

By Ruby Abdullah · · tutorial
ClearMLMLOpsExperiment TrackingPipelinePython

Tutorial ClearML: Platform MLOps Open-Source untuk Experiment Tracking dan Pipeline Automation

ClearML adalah platform MLOps open-source yang menyediakan solusi lengkap untuk experiment tracking, data management, orchestration, dan deployment model machine learning. Dengan ClearML, tim data science dapat mengelola seluruh lifecycle ML project dari eksperimen awal hingga production deployment dalam satu platform terintegrasi.

Dalam tutorial ini, kita akan mempelajari cara menggunakan ClearML mulai dari instalasi, experiment tracking dasar, dataset management, hingga pipeline automation. Semua contoh kode dapat langsung dipraktekkan di environment lokal Anda.

Mengapa ClearML?

Sebelum masuk ke implementasi, ada beberapa alasan mengapa ClearML layak dipertimbangkan untuk workflow MLOps Anda:

  • Fully Open-Source: ClearML Server dapat di-deploy sendiri tanpa biaya lisensi, dengan opsi hosted solution untuk tim yang tidak ingin mengelola infrastruktur.
  • Minimal Code Changes: Cukup tambahkan 2 baris kode untuk mulai tracking eksperimen, tanpa perlu mengubah struktur project yang sudah ada.
  • Auto-Logging: ClearML secara otomatis menangkap metrics, hyperparameters, artifacts, dan bahkan output console dari framework populer seperti PyTorch, TensorFlow, scikit-learn, dan XGBoost.
  • Pipeline Orchestration: Kemampuan untuk membuat dan menjalankan ML pipeline yang reproducible dengan dependency management otomatis.
  • Data Management: Fitur dataset versioning yang memungkinkan tracking perubahan data secara efisien.
  • Instalasi

    Instalasi ClearML SDK

    Instal ClearML Python SDK menggunakan pip:

    pip install clearml
    

    Untuk fitur tambahan, Anda bisa menginstal dengan extras:

    pip install clearml[s3]
    

    pip install clearml[gs]

    pip install clearml[azure]

    Setup ClearML Server

    Ada dua opsi untuk ClearML Server:

    Opsi 1: ClearML Hosted (Gratis untuk individu)

    Daftar akun gratis di app.clear.ml, lalu jalankan:

    clearml-init
    

    Masukkan credentials (API key, secret, dan host) yang bisa didapatkan dari Settings > Workspace di dashboard ClearML.

    Opsi 2: Self-Hosted dengan Docker
    mkdir -p /opt/clearml && cd /opt/clearml
    
    

    curl -o docker-compose.yml https://raw.githubusercontent.com/allegroai/clearml-server/master/docker/docker-compose.yml

    docker-compose up -d

    Setelah server berjalan, akses dashboard di http://localhost:8080 dan buat credentials baru.

    Konfigurasi

    Setelah menjalankan clearml-init, file konfigurasi akan tersimpan di ~/clearml.conf:

    api {
    

    webserver: https://app.clear.ml

    apiserver: https://api.clear.ml

    filesserver: https://files.clear.ml

    credentials {

    "accesskey" = "YOURACCESSKEY"

    "secretkey" = "YOURSECRETKEY"

    }

    }

    Basic Usage: Experiment Tracking

    Tracking Eksperimen Pertama

    Cara paling sederhana untuk memulai ClearML adalah menambahkan dua baris kode ke script training Anda:

    from clearml import Task
    
    

    task = Task.init(projectname="Tutorial ClearML", taskname="Eksperimen Pertama")

    import numpy as np

    from sklearn.ensemble import RandomForestClassifier

    from sklearn.datasets import makeclassification

    from sklearn.modelselection import traintestsplit

    from sklearn.metrics import accuracyscore, f1score

    X, y = makeclassification(

    nsamples=1000,

    nfeatures=20,

    ninformative=10,

    nclasses=2,

    randomstate=42

    )

    Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.2, randomstate=42)

    params = {

    "nestimators": 100,

    "maxdepth": 10,

    "minsamplessplit": 5,

    "randomstate": 42

    }

    task.connect(params)

    model = RandomForestClassifier(*params)

    model.fit(Xtrain, ytrain)

    ypred = model.predict(Xtest)

    accuracy = accuracyscore(ytest, ypred)

    f1 = f1score(ytest, ypred)

    logger = task.getlogger()

    logger.reportscalar("metrics", "accuracy", value=accuracy, iteration=1)

    Artikel Terkait

    Tutorial Metaflow: Framework MLOps dari Netflix untuk Data Science

    Tutorial Metaflow: Framework MLOps dari Netflix untuk Data Science Metaflow adalah framework open-source yang dikembangk...

    Tutorial Kedro: Pipeline Data Science yang Reproducible dan Terstruktur

    Kedro: Pipeline Data Science yang Reproducible dan Mudah Dirawat Sebagian besar proyek data science dimulai dari satu no...

    ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic

    ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic Pendahuluan Membangun model machine learning yang akurat...

    Tutorial Integrasi Azure MLflow: Experiment Tracking di Azure

    Tutorial Lengkap Azure MLflow Integration: Experiment Tracking dan Model Management Azure Machine Learning menyediakan i...