Tutorial SkyPilot: Menjalankan Workload ML di Cloud Mana Saja

# SkyPilot: Menjalankan Beban Kerja ML dan AI di Cloud Apa Pun Melatih dan menyajikan model machine learning sering kali berarti menghadapi dua persoalan sekaligus: mencari GPU yang benar-benar terse...

By Ruby Abdullah · · tutorial
SkyPilotCloudMLOpsGPUMulti-CloudInfrastructure

SkyPilot: Menjalankan Beban Kerja ML dan AI di Cloud Apa Pun

Melatih dan menyajikan model machine learning sering kali berarti menghadapi dua persoalan sekaligus: mencari GPU yang benar-benar tersedia, dan menghindari tagihan cloud yang membengkak tanpa diduga. SkyPilot adalah framework open-source yang berada di atas AWS, GCP, Azure, Kubernetes, dan mesin milik Anda sendiri, sehingga Anda cukup mendeskripsikan sebuah pekerjaan satu kali lalu menjalankannya di tempat yang paling murah dan tersedia. Tutorial ini membahas konsep, format YAML, CLI, managed spot job, dan penyajian model — lengkap dengan contoh praktis yang dapat Anda adaptasi.

Apa Itu SkyPilot dan Masalah yang Diselesaikannya

SkyPilot adalah lapisan yang menyediakan dan mengelola komputasi pada backend mana pun yang Anda pilih, lalu menjalankan beban kerja Anda di atasnya. Anda menulis deskripsi deklaratif tentang apa yang Anda butuhkan (sebuah akselerator, sejumlah CPU, skrip setup, perintah run) dan SkyPilot menentukan di mana menempatkannya.

Ia menangani beberapa masalah yang berulang dalam infrastruktur ML:

  • Kelangkaan GPU. Tipe GPU tertentu sering kehabisan kapasitas di satu region padahal tersedia di region lain. SkyPilot mencari kapasitas lintas region dan cloud, alih-alih membiarkan Anda mencoba ulang secara manual.
  • Biaya. Akselerator yang sama bisa berbeda harga jauh antar penyedia dan region. Optimizer SkyPilot membandingkan opsi dan memilih yang termurah yang memenuhi batasan Anda.
  • Ketergantungan pada satu cloud (lock-in). Tim sering menstandarkan satu penyedia bukan karena ia paling baik, melainkan karena menulis ulang infrastruktur itu merepotkan. SkyPilot memakai definisi tugas yang sama di mana saja, sehingga memindahkan pekerjaan dari AWS ke GCP cukup dengan mengubah flag, bukan menulis ulang.
  • Pengelolaan cluster secara manual. Menyalakan VM, memasang driver, menyinkronkan kode, dan ingat untuk mematikan semuanya itu melelahkan dan rawan kesalahan. SkyPilot mengotomatiskan provisioning, sinkronisasi kode, dan — yang penting — menghentikan cluster yang menganggur otomatis sehingga Anda berhenti membayar mesin yang terlupakan.

Ia bukan pengganti akun cloud Anda; ia memakai kredensial dan kuota Anda sendiri. Anggaplah ia sebagai lapisan orkestrasi, bukan layanan hosting terkelola.

Cara Kerjanya

Secara garis besar, saat Anda meluncurkan sebuah tugas, SkyPilot melakukan hal berikut:

  • Membaca definisi tugas Anda (file YAML atau panggilan Python) yang menjelaskan resources dan perintah.
  • Menjalankan optimizer, yang menanyakan harga dan ketersediaan di seluruh cloud yang Anda aktifkan, lalu memeringkat kandidat kombinasi (cloud, region, tipe instance).
  • Menyediakan cluster pada opsi pemenang memakai kredensial cloud Anda, dan mencoba region atau cloud lain bila kapasitas tidak tersedia.
  • Menyinkronkan direktori kerja lokal dan file apa pun yang di-mount ke cluster.
  • Menjalankan perintah setup Anda satu kali, lalu perintah run.
  • Mengalirkan log kembali ke terminal Anda dan, bila diatur, menghentikan cluster otomatis setelah periode tidak aktif.
  • Cluster tersebut adalah sekumpulan VM biasa (atau pod Kubernetes) di akun Anda. Anda dapat SSH ke dalamnya, menjalankan perintah tambahan, menghentikannya, atau menghapusnya kapan saja.

    Instalasi dan Penyiapan Cloud

    SkyPilot dipasang dengan pip. Anda memilih backend mana yang diaktifkan melalui extras:

    pip install "skypilot[aws,gcp,kubernetes]"
    

    Tambah atau kurangi extras sesuai lingkungan Anda — misalnya skypilot[azure], skypilot[lambda], atau skypilot[all]. Sebaiknya pasang di dalam virtual environment khusus:

    python -m venv .venv
    

    source .venv/bin/activate

    pip install "skypilot[aws,gcp,kubernetes]"

    Selanjutnya, konfigurasikan kredensial untuk setiap cloud yang akan Anda gunakan. SkyPilot mengandalkan mekanisme kredensial standar masing-masing penyedia, jadi bila CLI Anda sudah berfungsi, SkyPilot biasanya juga berfungsi.

    # AWS: konfigurasikan access key atau SSO
    

    aws configure

    GCP: autentikasi dan tetapkan project

    gcloud auth login

    gcloud auth application-default login

    gcloud config set project YOURPROJECTID

    Kubernetes: arahkan SkyPilot ke konteks kubeconfig yang berfungsi

    kubectl config current-context

    Terakhir, verifikasi apa yang dapat dilihat SkyPilot dengan sky check:

    sky check
    

    Artikel Terkait

    Tutorial Lengkap Terraform untuk ML: Infrastructure as Code untuk Machine Learning

    Tutorial Lengkap Terraform untuk ML: Infrastructure as Code untuk Machine Learning Terraform adalah tool Infrastructure ...

    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 Hydra: Manajemen Konfigurasi yang Elegan untuk ML

    Hydra: Manajemen Konfigurasi yang Rapi untuk Aplikasi ML dan Python Kebanyakan proyek machine learning dimulai dari satu...

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