Lewati ke konten utama

Merampingkan Alur Kerja Machine Learning Anda dengan MLflow

Telusuri secara mendalam apa itu MLflow dan bagaimana Anda dapat memanfaatkan platform open-source ini untuk melacak dan menerapkan eksperimen machine learning Anda.
Diperbarui 28 Sep 2026  · 12 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

MLOps adalah bagian penting dari machine learning karena membantu mengotomatisasi pelatihan dan penerapan model machine learning. Otomatisasi ini dapat mempercepat proses pengembangan dan penerapan model machine learning serta membantu memastikan model diterapkan dengan benar. MLOps juga dapat membantu memantau kinerja model machine learning dan secara proaktif mengidentifikasi masalah yang mungkin perlu ditangani di lingkungan produksi.

Lanskap MLOps pada 2022 terdiri atas berbagai alat dan layanan yang membantu organisasi mengotomatisasi proses membangun, melatih, dan menerapkan model machine learning. Alat dan layanan ini dirancang untuk saling melengkapi agar proses MLOps lebih efisien dan mudah dikelola. MLflow adalah salah satu alat penting yang akan kita bahas dalam artikel blog ini.

MLflow adalah platform open-source untuk siklus hidup machine learning end-to-end. Platform ini memungkinkan data scientist melacak eksperimen, mereproduksi run, dan menyajikan model mereka sebagai endpoint. Dalam artikel ini, kita akan mengulas secara mendalam apa itu MLflow dan bagaimana Anda dapat memanfaatkan platform open-source yang luar biasa ini untuk melacak dan menerapkan eksperimen machine learning Anda.

Jika Anda ingin melihat lebih dekat tentang MLOps, lihat Tutorial Machine Learning, Pipelines, Deployment, dan MLOps kami.

Apa itu MLflow

MLflow adalah platform open-source untuk mengelola siklus hidup machine learning end-to-end. Platform ini menyediakan tempat terpusat untuk melacak eksperimen, berbagi kode dan model, serta menerapkan model ke produksi. MLflow juga menyertakan sejumlah algoritme dan paket bawaan untuk toolkit ML populer. MLflow memiliki empat fungsi utama:

  • MLflow Tracking. Melacak eksperimen machine learning untuk mencatat, menganalisis, dan membandingkan hasil serta parameter.
  • MLflow Projects. Mengemas kode machine learning ke dalam bentuk yang dapat digunakan ulang dan direproduksi untuk dibagikan kepada data scientist lain atau dipindahkan ke lingkungan produksi.
  • MLflow Models. Mengelola dan menerapkan model yang bersumber dari berbagai pustaka machine learning ke sejumlah platform penyajian model dan inferensi seperti Amazon Sagemaker.
  • MLflow Model Registry. Menyediakan repositori model terpusat untuk secara kolaboratif mengelola seluruh siklus hidup model MLflow, termasuk versioning model, transisi tahap, dan anotasi.

Komponen MLflow

Sumber Gambar: https://www.databricks.com/wp-content/uploads/2021/02/mlflow-components2.png

MLflow tidak terikat pada satu pustaka tertentu. Karena semua fungsi dapat diakses melalui REST API dan antarmuka baris perintah, Anda dapat menggunakannya dengan pustaka machine learning apa pun dan dalam bahasa pemrograman apa pun. Proyek ini telah menyertakan API Python, API R, dan API Java untuk kenyamanan Anda.

Konsep kunci di MLflow

MLflow Tracking

Saat Anda menjalankan kode machine learning, komponen MLflow Tracking menyediakan API dan antarmuka pengguna (UI) untuk mencatat parameter, versi kode, metrik, dan file keluaran. Setelah itu, Anda dapat memvisualisasikan hasil pencatatan. Anda juga dapat mencatat dan melakukan kueri eksperimen menggunakan API Python, REST, R, dan Java berkat MLflow Tracking.

MLflow Tracking diatur berdasarkan konsep run. Setiap run mencatat informasi kunci dan metadata seperti waktu mulai dan selesai, file sumber, parameter, artefak, metrik, tag, dan sebagainya. 

Anda dapat merekam run menggunakan API Python, R, atau Java MLflow dari lokasi mana pun, terlepas dari tempat kode Anda dieksekusi. Misalnya, Anda bisa merekamnya dalam program mandiri, di mesin cloud jarak jauh, atau di notebook interaktif. 

Demikian pula, Anda dapat mengelompokkan run individual ke dalam eksperimen, yaitu kumpulan run yang dikelompokkan untuk tujuan tertentu. Antarmuka baris perintah (CLI), metode mlflow.create experiment() atau REST API adalah beberapa opsi untuk memulai pembuatan eksperimen. Pengguna juga dapat membuat eksperimen melalui UI MLflow.

Jika diperlukan, Anda dapat menyimpan rekaman run MLflow secara lokal ke file, mengunggahnya ke database yang kompatibel dengan SQLAlchemy, atau mengunggahnya secara jarak jauh ke server pelacakan. API Python MLflow mencatat run secara lokal ke file di direktori mlruns pada lokasi tempat program Anda dijalankan. Perilaku ini adalah default. Setelah itu, Anda dapat melihat run yang tercatat dengan menjalankan aplikasi mlflow ui.

Contoh arsitektur penggunaan MLflow secara lokal

Sumber Gambar: https://mlflow.org/docs/latest/_images/scenario_1.png

MLflow Projects

MLflow Projects adalah cara untuk menata kode machine learning Anda agar dapat digunakan ulang dan direproduksi. Anda dapat menggunakan project dengan pustaka dan lingkungan pengembangan machine learning apa pun. Setiap project terdiri atas sebuah direktori yang berisi file MLproject, yang menjelaskan lingkungan dan parameter project, serta sekumpulan file yang berisi kode machine learning.

Saat ini MLflow mendukung jenis lingkungan project berikut:

  • Lingkungan Conda, 
  • Lingkungan Virtualenv, 
  • Container Docker, 
  • Lingkungan sistem.

Dengan menambahkan file MLProject, yang pada dasarnya adalah file YAML, Anda dapat memperoleh kontrol yang lebih terperinci atas project MLflow. Berikut adalah contoh file MLProject:

File MLProject

Sumber: https://mlflow.org/docs/latest/projects.html#overview

Ketika project tidak berisi file MLproject, ada beberapa konvensi default yang akan diasumsikan MLflow, seperti:

  • Nama project adalah nama direktori.
  • Lingkungan Conda digunakan dan ditentukan dalam file conda.yaml, yang harus berada di direktori yang sama.
  • File .py atau .sh apa pun dapat menjadi entry point.
  • Secara default, entry point tidak memiliki parameter.

Arsitektur MLflow projects

Sumber Gambar

MLflow Models

MLflow Model adalah format baku untuk mengemas model machine learning yang kemudian dapat dimanfaatkan oleh berbagai alat di tahap selanjutnya dalam pipeline. Ini dapat mencakup penyajian real-time melalui REST API atau proses inferensi batch. MLflow Model adalah salah satu komponen kunci MLflow. Komponen ini menentukan protokol yang memungkinkan penyimpanan model dalam sejumlah "flavor" berbeda, yang masing-masing dapat dipahami oleh sekumpulan alat hilir yang berbeda.

Setiap MLflow Model sebenarnya adalah sebuah direktori yang menyimpan file apa pun bersama dengan file MLmodel yang berada di dasar direktori dan dapat mendefinisikan beberapa flavor tempat model dapat ditafsirkan. Kumpulan file ini secara kolektif disebut sebagai MLflow Model.

Gagasan inti di balik kekuatan MLflow Models adalah penggunaan flavor, yang berfungsi sebagai standar bagi alat deployment untuk memahami model. Ini memungkinkan pengembang membuat alat yang dapat berinteraksi dengan model dari pustaka ML mana pun tanpa harus mengintegrasikan setiap alat dengan setiap pustaka. Salah satu flavor "standar" yang didukung oleh semua alat deployment bawaan MLflow adalah "Python Function," yang menjabarkan cara menjalankan model sebagai fungsi Python.

Contoh direktori MLflow Models menggunakan flavor Scikit-learn:

Contoh direktori MLflow Models

Sumber Gambar: https://mlflow.org/docs/latest/models.html

MLflow mendukung pustaka berikut (sebagai flavor model) secara bawaan:

  • Scikit-learn
  • TensorFlow
  • PyTorch
  • Keras
  • Spark MLlib
  • XGBoost
  • LightGBM
  • CatBoost
  • Spacy
  • Fastai
  • Statsmodels
  • Prophet
  • Fungsi Python (generik)
  • Fungsi R (generik)
  • Lihat daftar lengkapnya di sini

MLflow Model Registry

MLflow Model Registry adalah repositori pusat untuk menyimpan dan melakukan versioning model ML. Registry ini menyediakan cara untuk melacak garis keturunan model, membandingkan model, dan menerapkan model.

Komponen MLflow Model Registry adalah sekumpulan API dan antarmuka pengguna untuk secara kolaboratif mengelola seluruh siklus hidup sebuah MLflow Model.

Mengakses model registry melalui antarmuka pengguna (UI) atau application programming interface (API) memerlukan penggunaan backend store berbasis database jika Anda ingin menggunakan Model Registry.

Mendaftarkan model menggunakan MLflow UI:

Mendaftarkan model menggunakan MLflow UI
Sumber Gambar: https://mlflow.org/docs/latest/model-registry.html#concepts

MLflow Pipelines (eksperimental)

MLflow Pipelines adalah kapabilitas baru dan masih dalam mode eksperimental.

Pengembangan dan produksi aplikasi machine learning menjadi lebih mudah dan terstandarisasi dengan menggunakan MLflow Pipelines, sebuah kerangka kerja berpendapat untuk menata workflow MLOps. Data scientist kini memiliki lebih banyak waktu untuk menciptakan model berkualitas tinggi berkat MLflow Pipelines, yang memudahkan mereka mengikuti standar industri saat membangun deliverable machine learning siap produksi. 

MLflow Pipelines juga memungkinkan machine learning engineer dan tim DevOps untuk menanamkan model ini ke dalam aplikasi dan merilisnya ke produksi secara mulus.

MLflow Pipelines menawarkan templat pipeline berkualitas produksi untuk tipe masalah machine learning yang umum, seperti regresi dan klasifikasi, serta operasi MLOps seperti batch scoring. Pipeline ditata sebagai repositori git dengan file konfigurasi berbasis YAML dan kode Python. Ini memberikan pendekatan deklaratif bagi pengembang untuk membangun aplikasi ML, yang mengurangi jumlah kode boilerplate.

MLflow Pipelines juga mengimplementasikan eksekutor yang peka cache untuk langkah-langkah pipeline. Ini memastikan bahwa langkah hanya dijalankan ketika ada perubahan pada kode atau konfigurasi terkait. Karena itu, data scientist, machine learning engineer, dan tim DevOps dapat beriterasi sangat cepat dalam bidang spesialisasinya masing-masing. Selain itu, eksekusi pipeline dan pemeriksaan keluarannya dapat dilakukan melalui API dan antarmuka baris perintah (CLI) yang disediakan oleh MLflow.

Menerapkan model machine learning di produksi tampak mudah dengan alat modern, tetapi sering kali berujung pada kekecewaan karena model berkinerja lebih buruk di produksi dibandingkan saat pengembangan. 


Jika Anda ingin mempelajari cara merancang workflow machine learning di Python yang tahan uji waktu, lihat kursus kami Designing Machine Learning Workflows in Python.

MLflow vs. Kubeflow

Sekarang setelah Anda memahami apa itu MLflow, mari jawab pertanyaan yang sangat umum di bidang ini; apa perbedaan antara MLflow dan Kubeflow?

Pertama, apa itu Kubeflow?

Kubeflow adalah proyek open-source yang berisi himpunan alat dan kerangka kerja terkurasi. Tujuan utama Kubeflow adalah memudahkan pengembangan, penerapan, dan pengelolaan workflow machine learning yang portabel dan dapat diskalakan. 

Kubeflow dibangun di atas Kubernetes, platform open-source untuk menjalankan dan mengorkestrasi container. Kubernetes dirancang untuk berjalan secara konsisten di berbagai lingkungan, yang menjadi kunci cara Kubeflow beroperasi. 

Untuk mempelajari lebih lanjut tentang Kubeflow, baca tutorial mendalam kami tentang Kubeflow.

Saat membandingkan MLflow dan Kubeflow, satu-satunya kesamaan antara kedua proyek ini adalah sama-sama open-source, tetapi melayani kebutuhan yang sama sekali berbeda. Kubeflow adalah sistem orkestrasi container open-source untuk mengembangkan, menerapkan, dan mengelola aplikasi machine learning di Kubernetes. Di sisi lain, MLflow adalah pustaka Python untuk pelacakan eksperimen dan versioning/penerapan model, terlepas dari lingkungan orkestrasi. 

Tutorial MLflow

Menggunakan MLflow sangat mudah. Hanya perlu beberapa baris kode untuk mengintegrasikan pencatatan MLflow ke dalam kode Anda yang sudah ada. Namun terlebih dahulu, Anda harus memasang MLflow menggunakan pip.

# install mlflow

pip install mlflow

Mari buat skrip Python sederhana untuk melatih model regresi logistik dan mencatat metrik serta model menggunakan MLflow. Ini adalah contoh resmi dari MLflow, direproduksi dari sini.

import numpy as np

from sklearn.linear_model import LogisticRegression

import mlflow

import mlflow.sklearn

if __name__ == "__main__":

    X = np.array([-2, -1, 0, 1, 2, 1]).reshape(-1, 1)

    y = np.array([0, 0, 1, 1, 1, 0])

    lr = LogisticRegression()

    lr.fit(X, y)

    score = lr.score(X, y)

    print("Score: %s" % score)

    mlflow.log_metric("score", score)

    mlflow.sklearn.log_model(lr, "model")

    print("Model saved in run %s" % mlflow.active_run().info.run_uuid)

KELUARAN:

>>> Score: 0.6666666666666666

>>> Model saved in run 9def2bd1c55b4f0985aa5c050b8f71cd

Anda dapat memulai UI MLflow dengan mengetik `mlflow ui` pada terminal baris perintah di direktori yang sama dengan file python Anda.

mlflow ui

Kemudian buka https://localhost:5000, dan Anda akan melihat halaman ini:

UI MLflow

Anda dapat melihat hanya ada satu catatan, yaitu model yang kita latih dan catat dalam skrip di atas. Klik namanya, dan Anda akan melihat halaman detail:

UI MLflow terperinci

TINGKATKAN KEMAMPUAN ANDA SEKARANG! 

DAFTAR HARI INI di Machine Learning Scientist with Python 

Kuasai keterampilan esensial untuk mendapatkan pekerjaan sebagai machine learning scientist. Anda akan melengkapi keterampilan pemrograman Python dengan perangkat untuk melakukan supervised, unsupervised, dan deep learning. Anda akan mempelajari:

  • Cara memproses data untuk fitur, 
  • Cara melatih model machine learning, 
  • Penyetelan hiperparameter
  • Natural language processing (NLP)
  • Pemrosesan citra
  • Pustaka populer Spark dan Keras

Kesimpulan

MLflow adalah platform open-source dan alat yang sangat baik untuk mengelola siklus hidup machine learning end-to-end. Platform ini dibuat oleh Databricks, perusahaan di balik platform Apache Spark yang populer, dan dirancang untuk bekerja dengan pustaka, algoritme, atau bahasa machine learning apa pun.

MLflow menawarkan sejumlah manfaat bagi pengembang machine learning dan data scientist. Platform ini menyediakan tempat terpusat untuk melacak eksperimen dan mengelola project machine learning. Ini bisa menjadi alat yang berharga untuk kolaborasi, karena memungkinkan anggota tim yang berbeda melihat apa yang dikerjakan orang lain dan membandingkan hasil. 

MLflow dapat mengotomatisasi workflow machine learning, mulai dari prapemrosesan data hingga pelatihan model hingga penerapan. Ini dapat menghemat waktu dan upaya serta memudahkan reproduksi hasil.

Secara keseluruhan, MLflow adalah alat yang berharga untuk mengelola project machine learning. Alat ini dapat membantu Anda melacak eksperimen, mengotomatisasi workflow, dan mengoptimalkan model. Jika Anda mengerjakan project machine learning, Anda sebaiknya mencoba MLflow.

Jika Anda ingin meningkatkan keterampilan dan memahami dasar-dasar Machine Learning serta penerapannya di dunia bisnis, lihat kursus kami Machine Learning for Business di DataCamp.

Topik
Machine Learning

Kursus Machine Learning

Kursus

Merancang Alur Kerja Machine Learning di Python

4 jam
12.8K
Belajar untuk membangun sistem yang tahan lama.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya