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:
setup Anda satu kali, lalu perintah run.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