Lewati ke konten utama

Membangun dan Mendeploy Pipeline Machine Learning

Pelajari semua yang perlu Anda ketahui tentang Kubeflow dan jelajahi cara membangun serta mendeploy Pipeline Machine Learning
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Header Tutorial Kubeflow

Pendahuluan

Saat membangun model machine learning, Anda mungkin lupa mempertimbangkan infrastruktur yang dibutuhkan untuk melatih dan menyajikan model di produksi. Untuk alur kerja machine learning ujung ke ujung, mengelola seluruh pertimbangan aplikasi, platform, dan sumber daya bisa menjadi tantangan. 

Dibandingkan dengan deployment web konvensional, aplikasi machine learning memiliki karakteristik yang berbeda. Misalnya, fase pelatihan boros sumber daya, sedangkan fase inferensi ringan dan cepat. Anda juga akan memerlukan alat dan kerangka kerja untuk menjalankan semua bagian tersebut. Salah satu kerangka kerja open-source yang sangat populer yang dapat digunakan untuk mengembangkan standar penyampaian aplikasi machine learning ujung ke ujung adalah Kubeflow.

Apa itu Kubeflow?

Kubeflow adalah proyek open-source yang berisi kumpulan alat dan kerangka kerja terkurasi. Tujuan utama Kubeflow adalah mempermudah pengembangan, deployment, dan pengelolaan alur kerja 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 merupakan kunci cara Kubeflow beroperasi. Kubeflow dirancang agar Kubernetes melakukan hal yang menjadi keunggulannya, sehingga Anda dapat fokus mendefinisikan dan menjalankan alur kerja ML, termasuk mengelola data, menjalankan notebook, melatih model, dan menyajikannya. 

Kubeflow berevolusi dari proyek internal Google bernama TensorFlow Extended. Awalnya hanya cara yang lebih sederhana untuk menjalankan job TensorFlow di Kubernetes, namun sejak itu berkembang menjadi kerangka kerja multiarsitektur dan multicloud untuk menjalankan alur kerja machine learning ujung ke ujung. 

Kubeflow dan Alur Kerja Machine Learning

Kubeflow adalah platform bagi data scientist dan machine learning engineer yang memadukan fungsi terbaik dari keduanya. Data scientist dapat menggunakan Kubeflow untuk bereksperimen dengan model ML dan mengorkestrasi eksperimen mereka di Kubernetes secara efisien. 

Machine learning engineer dapat menggunakan Kubeflow untuk mendeploy sistem ML ke berbagai lingkungan untuk pengembangan, pengujian, dan produksi.

Diagram di bawah ini adalah contoh dua fase yang berbeda dalam proyek machine learning: (i) Fase Eksperimental dan (ii) Fase Produksi. 

Kubeflow memiliki banyak komponen berbeda untuk mendukung hampir semua langkah dalam pipeline di bawah ini. Misalnya, untuk menyetel hyperparameter model, Kubeflow memiliki komponen bernama “Katib.” Kita akan membahas komponen-komponen kunci Kubeflow nanti dalam tutorial ini.

Alur kerja machine learning

Kubeflow - Alur Kerja Machine Learning

Memasang Kubeflow

Ada dua cara untuk mulai menggunakan Kubeflow:

  1. Memasangnya dengan distribusi paket (sederhana dan langsung).
  2. Memasangnya dengan manifest (lanjutan).

Distribusi paket dikembangkan dan didukung oleh maintainer masing-masing. Misalnya, Kubeflow di Azure dikelola oleh Microsoft. Lihat daftar lengkap distribusi pada tabel di bawah:

Distribusi Paket Kubeflow

Distribusi Paket Kubeflow

Tiga Prinsip Kubeflow

Komposabilitas

Komposabilitas adalah prinsip desain sistem untuk menangani keterkaitan antar komponen. Kubeflow sangat komposabel, sehingga Anda dapat dengan mudah menggunakan versi TensorFlow yang berbeda untuk bagian-bagian berbeda dari pipeline machine learning Anda jika diperlukan. 

Portabilitas

Portabilitas berarti Anda dapat menjalankan seluruh proyek machine learning di mana pun Anda menjalankan Kubeflow. Ia agnostik platform dan menyembunyikan berbagai kesulitan bagi pengguna. Anda cukup menulis kode sekali, dan Kubeflow akan menangani abstraksinya sehingga Anda bisa menjalankan kode di laptop atau pada kluster di cloud.

Skalabilitas

Skalabilitas berarti proyek Anda dapat mengakses sumber daya lebih banyak ketika dibutuhkan dan melepaskannya ketika tidak. Setiap lingkungan dapat memiliki sumber daya komputasi yang berbeda seperti CPU, GPU, dan TPU.

Entitas Konseptual Kubeflow

Entitas Konseptual Kubeflow

Komponen Kubeflow

Komponen Kubeflow adalah blok logis yang bersama-sama membentuk Kubeflow. Umumnya, Anda akan menggunakan satu atau lebih komponen dalam sebuah proyek machine learning.

Dasbor

Di atas semuanya, Central Dashboard memberikan akses cepat ke komponen Kubeflow lainnya. Beberapa komponen yang berguna adalah:

  • Notebooks: Untuk mengelola server Notebook.
  • Pipelines: Untuk mengelola pipeline Kubeflow.
  • Experiments: Untuk mengelola eksperimen Katib.

Tampilan UI Dasbor Kubeflow

Tampilan UI Dasbor Kubeflow

Notebooks

Kubeflow hadir dengan lingkungan notebook Jupyter terintegrasi. Notebook bermanfaat untuk melakukan uji cepat, mengembangkan model, dan bahkan menulis aplikasi ML. 

Bukan hal aneh jika ML engineer dan data scientist menjalankan notebook secara lokal dan terbatasi oleh sumber daya. Menempatkan notebook di kluster memudahkan menjalankan job di mana sumber daya dapat diskalakan secara dinamis. 

Notebook Kubeflow

Notebook Kubeflow

Pipelines

Kubeflow Pipelines adalah komponen Kubeflow yang andal untuk membangun pipeline machine learning yang portabel dan dapat diskalakan dari ujung ke ujung berbasis container Docker. 

Pipeline Machine Learning adalah serangkaian langkah yang mampu menangani semuanya mulai dari pengumpulan data hingga menyajikan model machine learning. Setiap langkah dalam pipeline adalah container Docker, sehingga portabel dan skalabel. Setiap langkah dalam pipeline bersifat independen, memungkinkan Anda menggunakan kembali komponen pipeline. 

UI Kubeflow Pipelines

UI Kubeflow Pipelines

Dalam tutorial ini, kita akan menelusuri komponen Kubeflow Pipelines secara detail dan melihat contoh kode tentang cara membangun dan mengeksekusi pipeline machine learning menggunakan Kubeflow.

Katib

Katib adalah komponen Kubeflow yang dirancang untuk penyetelan hyperparameter otomatis dalam skala besar. Penyetelan hyperparameter berperan besar dalam mengembangkan model yang baik, karena pencarian manual pada ruang hyperparameter dapat memakan banyak usaha. 

Katib membantu Anda mengoptimalkan nilai hyperparameter di sekitar metrik tertentu (seperti AUC atau RMSE). Ini adalah cara yang membantu untuk menemukan dan memvisualisasikan konfigurasi optimum guna menyiapkan model Anda untuk produksi. 

UI Kubeflow Katib

UI Kubeflow Katib

Kubeflow Pipelines

Alur kerja machine learning dapat melibatkan banyak langkah, dari penyiapan data hingga pelatihan model, evaluasi model, dan lainnya. Sulit melacak semua ini secara ad hoc. 

Pencatatan eksperimen dan pelacakan versi model tanpa alat yang tepat adalah tantangan lain bagi data scientist. Kubeflow Pipelines memungkinkan data scientist mengembangkan alur kerja machine learning menggunakan standar yang komposabel, dapat dibagikan, dan dapat direproduksi.

Kubeflow adalah solusi native Kubernetes yang membantu data scientist mengadopsi pola pikir pipeline yang disiplin saat mengembangkan kode machine learning dan menskalakannya ke cloud. Tujuan utama Kubeflow Pipelines adalah untuk:

  • Menyederhanakan Orkestrasi Pipeline Machine Learning dalam skala besar 
  • Memungkinkan Eksperimen yang Lebih Cepat, Reproduksibilitas, dan Kolaborasi melalui Multi-tenancy. UI Kubeflow dapat digunakan untuk membuat grup dan menambahkan pengguna ke grup dengan kontrol akses.
  • Dapat digunakan ulang dan menawarkan standardisasi berbagai komponen ML (langkah dalam pipeline).

Dengan Kubeflow, Anda dapat membuat solusi machine learning ujung ke ujung tanpa harus membangun ulang setiap kali, layaknya balok bangunan. Kubeflow juga mendukung beberapa hal lain seperti pemantauan eksekusi, penjadwalan alur kerja, pencatatan metadata, dan versioning.

Gambaran arsitektur

Gambaran Arsitektur Kubeflow

Konsep Penting dalam Kubeflow Pipelines

Pipeline

Pipeline adalah urutan langkah yang didefinisikan dengan jelas dalam alur kerja machine learning (ML). Pipeline harus memiliki definisi input (parameter) yang diperlukan untuk menjalankan pipeline serta input dan output setiap komponen. Setiap komponen dalam pipeline menerima input, memprosesnya, dan memberikan output ke komponen berikutnya.

Satu konsep yang sangat penting dipahami di sini adalah setiap langkah (komponen) dalam pipeline Kubeflow pada dasarnya adalah container Docker. Ketika Anda mengeksekusi pipeline, Kubeflow meluncurkan satu atau lebih Pod Kubernetes yang sesuai dengan komponen dalam pipeline. Pod tersebut kemudian menjalankan container docker yang pada gilirannya mengeksekusi kode yang Anda tulis dalam komponen.

Komponen

Komponen pipeline adalah kode berdiri sendiri yang melakukan satu langkah dalam alur kerja machine learning, seperti imputasi nilai hilang, penskalaan data, atau pemodelan machine learning.

Komponen dalam pipeline Kubeflow mirip dengan fungsi. Karena itu, setiap komponen memiliki nama, parameter input, dan output. 

Setiap komponen dalam pipeline harus dikemas sebagai image Docker agar setiap langkah pipeline independen dari yang lain, dan Anda dapat mencampuradukkan kerangka kerja serta alat yang berbeda di bagian-bagian berbeda dari alur kerja ML Anda.

Eksperimen

Eksperimen memungkinkan Anda menjalankan konfigurasi berbeda dari pipeline yang sama dan membandingkan serta menganalisis hasilnya. Biasanya dalam machine learning, Anda harus mencoba parameter yang berbeda untuk melihat mana yang paling baik. Eksperimen Pipeline Kubeflow dirancang untuk mencapai hal itu.

Graf

Graf adalah penyajian visual dalam UI Kubeflow. Graf menunjukkan langkah-langkah yang telah atau sedang dieksekusi oleh sebuah run pipeline, dengan panah yang menunjukkan hubungan induk/anak antar komponen pipeline yang diwakili oleh setiap langkah. 

Tiga cara membangun pipeline di Kubeflow 

Semoga kini jelas apa itu pipeline Kubeflow dan apa manfaat menggunakan kerangka kerja ini untuk merancang dan mendeploy alur kerja machine learning di produksi. Mari kita tinjau cepat tiga cara Anda dapat menggunakan Kubeflow untuk membangun dan mendeploy pipeline.

Antarmuka Pengguna (UI)

Anda dapat menggunakan UI Kubeflow untuk menjalankan pipeline, mengunggah pipeline yang dibagikan kepada Anda, melihat artefak dan output run, serta menjadwalkan run otomatis. Berikut tampilan Pipeline UI:

Kubeflow Pipelines

Antarmuka Kubeflow Pipeline

SDK Python Resmi

Kubeflow menyediakan sekumpulan pustaka Python yang dapat Anda gunakan untuk secara terprogram mengembangkan dan mengeksekusi pipeline ML. Ini adalah cara penggunaan paling umum untuk pipeline Kubeflow.

REST API

Kubeflow juga menyediakan REST API untuk sistem continuous integration/deployment. Bayangkan kasus penggunaan ketika Anda ingin mengintegrasikan salah satu fungsi Kubeflow Pipeline ke dalam sistem atau proses enterprise hilir.

Tutorial Kubeflow Pipeline

Cara termudah untuk memulai dengan Kubeflow adalah menggunakan distribusi paket, yang pada dasarnya seperti layanan terkelola di cloud. Di sini, kami menggunakan layanan Kubeflow di GCP. Anda dapat mengikuti panduan resmi ini untuk mempelajari cara mendeploy layanan di GCP. 

Setelah deployment berhasil, Anda dapat mengakses dasbor ini dari endpoint GCP Anda.

Dasbor Kubeflow

Dasbor Kubeflow - Deployment di GCP

Kubeflow Pipelines hadir dengan beberapa pipeline contoh. Mari coba pipeline praproses data dasar dalam Python. Klik pipeline pada toolbar sisi kiri.

Antarmuka Kubeflow Pipeline

Kubeflow Pipelines - Deployment di GCP

Klik create experiment: 

Kubeflow Pipelines-GCP

Kubeflow Pipelines - Deployment di GCP

Ikuti petunjuk lalu klik tombol start pada layar run untuk menjalankan pipeline.

Kubeflow Pipelines - Deployment di GCP

Kubeflow Pipelines - Deployment di GCP

Eksperimen akan muncul di dasbor:

Kubeflow Pipelines- Eksperimen Pertama

Kubeflow Pipelines - Deployment di GCP

Klik eksperimen untuk melihat output setelah run selesai:

Run pertama Pipelines

Kubeflow Pipelines - Deployment di GCP

Sekarang Anda tahu cara mengeksekusi pipeline menggunakan UI Kubeflow. Setiap komponen dalam pipeline di atas hanyalah skrip Python sederhana yang terisolasi. Pada contoh di atas, langkah-langkahnya sederhana seperti “Print Text” atau “Sum Numbers.” 

Mari melihat contoh yang lebih kompleks tentang cara Anda dapat menulis kode dan mengompilasi komponen-komponen ini dalam Python.

Membangun Kubeflow Pipeline melalui Python SDK

Dalam contoh ini, kita akan membuat pipeline Kubeflow dengan dua komponen: 

  • Mengunduh file tar terkompresi berdasarkan url yang diberikan sebagai input,
  • Mengekstrak semua file csv dan membuat satu dataframe pandas menggunakan fungsi `pd.concat`. 

Secara teoretis, alih-alih memecah pipeline ini menjadi dua langkah, kita juga bisa membuat satu fungsi yang menerima url, mengunduh file terkompresi, lalu menggabungkan semua file csv menjadi satu file tunggal. 

Namun, keuntungan melakukannya dalam dua langkah adalah Anda dapat membuat satu langkah untuk mengunduh file terkompresi, lalu menggunakannya kembali di proyek lain juga. 

Di Kubeflow, Anda dapat mendefinisikan komponen sebagai file yaml dan menggunakan fungsi `kfp.components.load_component_from_url` untuk memuat komponen langsung dari url. 

Untuk langkah pertama, mari memuat komponen dari url open-source ini.

```

web_downloader_op = kfp.components.load_component_from_url(

    'https://raw.githubusercontent.com/kubeflow/pipelines/master/components/web/Download/component-sdk-v2.yaml')

```

Untuk langkah kedua, kita akan mendefinisikan fungsi Python:

```

@component(

    packages_to_install=['pandas==1.1.4'],

    output_component_file='component.yaml'

)

def merge_csv(tar_data: Input[Artifact], output_csv: Output[Dataset]):

  import glob

  import pandas as pd

  import tarfile




  tarfile.open(name=tar_data.path, mode="r|gz").extractall('data')

  df = pd.concat(

      [pd.read_csv(csv_file, header=None) 

       for csv_file in glob.glob('data/*.csv')])

  df.to_csv(output_csv.path, index=False, header=False)




```

Seperti yang Anda lihat, fungsi tersebut diberi dekorator anotasi `kfp.dsl.component`. Kita dapat menggunakan anotasi ini untuk mendefinisikan image container, dependensi paket apa pun (dalam contoh ini pandas[1.1.4]), dan lokasi untuk menyimpan spesifikasi komponen (component.yaml)

Sekarang Anda dapat mengaitkan kedua komponen ini dalam sebuah pipeline menggunakan operator `pipeline`.  

Definisikan pipeline dan buat task dari sebuah komponen:

@dsl.pipeline(

    name='my-pipeline',

    # You can optionally specify your own pipeline_root

    # pipeline_root='gs://my-pipeline-root/example-pipeline',

)

def my_pipeline(url: str):

  web_downloader_task = web_downloader_op(url=url)

  merge_csv_task = merge_csv(tar_data=web_downloader_task.outputs['data'])

  # The outputs of the merge_csv_task can be referenced using the

  # merge_csv_task.outputs dictionary: merge_csv_task.outputs['output_csv']

```

Setelah pipeline didefinisikan, kita dapat mengompilasinya. Ada dua cara untuk mengompilasinya. Yang pertama melalui UI Kubeflow.

```

kfp.compiler.Compiler(mode=kfp.dsl.PipelineExecutionMode.V2_COMPATIBLE).compile(

    pipeline_func=my_pipeline,

    package_path='pipeline.yaml')

```

Sekarang kita dapat mengunggah dan menjalankan file `pipeline.yaml` ini menggunakan antarmuka pengguna Kubeflow Pipeline. Atau, kita dapat menjalankan pipeline menggunakan klien SDK Kubeflow Pipeline.

```

client = kfp.Client()




client.create_run_from_pipeline_func(

    my_pipeline,

    mode=kfp.dsl.PipelineExecutionMode.V2_COMPATIBLE,

    # You can optionally override your pipeline_root when submitting the run too:

    # pipeline_root='gs://my-pipeline-root/example-pipeline',

    arguments={

        'url': 'https://storage.googleapis.com/ml-pipeline-playground/iris-csv-files.tar.gz'

    })

```

Jika kita harus memperluas pipeline ini untuk memasukkan model machine learning, kita akan membuat fungsi Python yang menerima `Input[Dataset]` dan melatih model menggunakan kerangka apa pun yang kita inginkan, misalnya sklearn, Tensorflow, atau PyTorch. 

Setelah fungsi dibuat, kita harus mengedit fungsi `my_pipeline` untuk memasukkan task ketiga dan kemudian mengompilasi ulang pipeline baik menggunakan `kfp.Client` maupun UI.

Tutorial Direproduksi dari Kubeflow Resmi.

Kesimpulan

Bereksperimen di Jupyter Notebook dengan beberapa juta baris data adalah satu hal. Melatih model machine learning pada miliaran baris secara jarak jauh di cloud adalah hal lain. Machine Learning menjadi sangat sulit ketika harus melatih model besar dalam lingkungan yang terdistribusi dan dapat diskalakan. 

Kubernetes adalah salah satu kerangka orkestrasi paling populer dan banyak digunakan untuk job machine learning; dan Kubeflow adalah kerangka kerja yang dibangun di atas Kubernetes untuk menyederhanakan banyak detail sulit bagi pengguna. Namun, penting diketahui bahwa ini bukan satu-satunya opsi. Seperti halnya yang lain, ada alternatifnya. 

Salah satu contoh platform semacam ini adalah Databricks. Ia memiliki mesin orkestrasi proprieter (berbeda dengan Kubernetes) dan hadir dengan UI yang menarik yang mendukung Notebook, Pencatatan Eksperimen, Model Registry, Penjadwalan Job, dan Pemantauan. 

Amazon Sagemaker adalah contoh lain alternatif untuk Kubernetes / Kubeflow. Amazon SageMaker adalah layanan machine learning terkelola penuh yang dapat digunakan data scientist dan developer untuk dengan cepat dan mudah membangun serta melatih model machine learning dan langsung mendeploynya ke lingkungan hosted yang siap produksi. Layanan ini menyediakan lingkungan Jupyter Notebook terintegrasi untuk eksplorasi dan analisis.

Apakah Anda merasa kewalahan oleh semua konsep rekayasa yang terus berkembang? Jangan khawatir, Datacamp menawarkan kursus Understanding Data Engineering . Dalam kursus ini, Anda akan mempelajari tanggung jawab inti seorang data engineer, bagaimana mereka berbeda dari data scientist dan memfasilitasi aliran data melalui sebuah organisasi. Selain itu, Anda akan mempelajari bagaimana data engineer meletakkan dasar yang memungkinkan data scientist melakukan data science. Tanpa pengkodean!

FAQ Kubeflow

Apa perbedaan antara Kubeflow dan Kubernetes?

Kubernetes adalah sistem orkestrasi container open-source untuk mengotomatiskan deployment, penskalaan, dan pengelolaan perangkat lunak. Sementara itu, Kubeflow adalah proyek open-source yang berisi kumpulan alat dan kerangka kerja terkurasi untuk mempermudah pengembangan, deployment, dan pengelolaan alur kerja machine learning yang portabel dan skalabel di Kubernetes. Kubeflow dibangun di atas Kubernetes.

Apakah Kubeflow bagian dari Kubernetes?

Bukan, Kubeflow adalah pustaka terpisah. Anda dapat memasangnya seperti pustaka Python lainnya menggunakan pip install.

Apakah Kubeflow merupakan kerangka kerja open-source?

Ya, Kubeflow sepenuhnya open source, tersedia untuk digunakan di bawah lisensi Apache-2.0.

Apa perbedaan antara Airflow dan Kubeflow?

Apache Airflow adalah platform orkestrasi tugas yang bersifat generik, sedangkan Kubeflow berfokus pada tugas-tugas machine learning. Kedua alat memungkinkan Anda mendefinisikan tugas menggunakan Python, tetapi Kubeflow terutama menjalankan tugas di Kubernetes.

Apa perbedaan antara Kubeflow dan MLFlow?

Keduanya adalah kerangka kerja open-source yang sangat berbeda. Kubeflow adalah sistem orkestrasi container yang mempermudah pengembangan, deployment, dan pengelolaan alur kerja machine learning yang portabel dan skalabel di Kubernetes; sedangkan MLFlow adalah pustaka untuk pelacakan eksperimen dan versioning model.

Topik
Machine Learning
Data Science
Python

Kursus untuk Python dan Machine Learning

Kursus

Pengantar Python

4 jam
7.1M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
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

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

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

Lihat SelengkapnyaLihat Selengkapnya