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:
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 Dockermkdir -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)