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 hanyalah sebagian kecil dari tantangan dalam produksi ML. Tantangan sesu...

By Ruby Abdullah · · tutorial
ZenMLMLOpsPipelineOrchestrationPython

ZenML: Framework Pipeline MLOps yang Modular dan Cloud-Agnostic

Pendahuluan

Membangun model machine learning yang akurat hanyalah sebagian kecil dari tantangan dalam produksi ML. Tantangan sesungguhnya terletak pada bagaimana membuat pipeline yang reproducible, scalable, dan mudah di-maintain. ZenML hadir sebagai framework MLOps open-source yang dirancang untuk mengatasi masalah ini dengan pendekatan yang modular dan cloud-agnostic.

ZenML memungkinkan data scientist dan ML engineer untuk mendefinisikan pipeline ML menggunakan Python decorator yang sederhana, sambil tetap memberikan fleksibilitas penuh untuk mengintegrasikan berbagai tool dan platform cloud. Dengan konsep "stacks" yang unik, Anda bisa berpindah dari local development ke production di cloud tanpa mengubah kode pipeline.

Dalam tutorial ini, kita akan mempelajari ZenML dari dasar hingga membangun pipeline end-to-end yang mencakup data ingestion, preprocessing, training, evaluation, dan deployment.

Prasyarat

Sebelum memulai, pastikan Anda memiliki:

  • Python 3.8 atau lebih baru
  • pip package manager
  • Pemahaman dasar tentang machine learning
  • Familiar dengan scikit-learn atau framework ML lainnya

Instalasi ZenML

Instalasi ZenML sangat mudah menggunakan pip:

pip install zenml

Untuk instalasi dengan integrasi tambahan:

pip install "zenml[server]"

Setelah instalasi, inisialisasi ZenML repository di project Anda:

zenml init

Jalankan ZenML dashboard secara lokal:

zenml login --local

Dashboard akan tersedia di http://127.0.0.1:8237 dan memberikan visualisasi lengkap pipeline, artifacts, dan stacks Anda.

Konsep Dasar: Steps dan Pipelines

Mendefinisikan Steps dengan @step

Step adalah unit kerja terkecil dalam ZenML. Setiap step adalah sebuah fungsi Python yang di-dekorasi dengan @step:

from zenml import step

import pandas as pd

@step

def loaddata() -> pd.DataFrame:

"""Memuat dataset dari sumber data."""

df = pd.readcsv("data/trainingdata.csv")

return df

@step

def preprocessdata(df: pd.DataFrame) -> pd.DataFrame:

"""Membersihkan dan memproses data."""

df = df.dropna()

df = df.dropduplicates()

return df

ZenML secara otomatis melakukan type checking dan serialization pada input/output setiap step berdasarkan type hints yang Anda berikan.

Mendefinisikan Pipeline dengan @pipeline

Pipeline menghubungkan beberapa steps menjadi alur kerja yang terstruktur:

from zenml import pipeline

@pipeline

def trainingpipeline():

"""Pipeline untuk training model ML."""

data = loaddata()

processeddata = preprocessdata(data)

model = trainmodel(processeddata)

metrics = evaluatemodel(model, processeddata)

return metrics

Menjalankan pipeline semudah memanggil fungsi:

if name == "main":

trainingpipeline()

Parameterisasi Steps

Anda bisa membuat steps yang menerima parameter konfigurasi:

from zenml import step

from pydantic import BaseModel

class TrainingConfig(BaseModel):

learningrate: float = 0.01

nestimators: int = 100

maxdepth: int = 5

@step

def trainmodel(

data: pd.DataFrame,

config: TrainingConfig = TrainingConfig()

) -> object:

"""Melatih model dengan konfigurasi yang dapat disesuaikan."""

from sklearn.ensemble import RandomForestClassifier

X = data.drop("target", axis=1)

y = data["target"]

model = RandomForestClassifier(

nestimators=config.nestimators,

maxdepth=config.maxdepth

)

model.fit(X, y)

return model

Artifacts dan Materializers

Memahami Artifacts

Setiap output dari step secara otomatis disimpan sebagai artifact. Artifact adalah data yang dihasilkan dan dikonsumsi oleh steps dalam pipeline. ZenML melacak setiap artifact dengan metadata lengkap termasuk versi, tipe, dan lineage.

Artikel Terkait

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...

Tutorial Lengkap Apache Airflow: Workflow Orchestration untuk Data Pipelines

Tutorial Lengkap Apache Airflow: Workflow Orchestration untuk Data Pipelines Apache Airflow adalah platform open-source ...

Tutorial Ray Train & Ray Tune: Training Terdistribusi dan Tuning Hyperparameter

Ray Train & Ray Tune: Pelatihan Terdistribusi dan Penyetelan Hiperparameter Sebagian besar proyek machine learning dimul...

Tutorial PySpark untuk Machine Learning: Big Data ML Pipeline

PySpark untuk Machine Learning Daftar Isi Pendahuluan Prasyarat Dasar Spark dan SparkSession Operasi DataFrame