Modal: Serverless GPU Cloud untuk Deploy Model ML

# Modal: Serverless GPU Cloud untuk Deploy Model ML Salah satu tantangan terbesar dalam machine learning bukan membuat model, melainkan **men-deploy**-nya ke production. Anda perlu mengelola server,...

By Ruby Abdullah · · tutorial
ModalServerlessGPUCloud ComputingPython

Modal: Serverless GPU Cloud untuk Deploy Model ML

Salah satu tantangan terbesar dalam machine learning bukan membuat model, melainkan men-deploy-nya ke production. Anda perlu mengelola server, mengkonfigurasi GPU driver, mengatur auto-scaling, dan banyak lagi. Modal hadir untuk menghilangkan semua kompleksitas tersebut.

Modal adalah platform serverless cloud yang memungkinkan Anda menjalankan kode Python di cloud dengan akses GPU, tanpa perlu mengelola infrastruktur sama sekali. Cukup tulis fungsi Python biasa, tambahkan decorator, dan Modal akan mengurus sisanya.

Mengapa Modal?

Perbandingan dengan pendekatan tradisional:

Tanpa Modal (Tradisional):
  • Setup server EC2/GCE dengan GPU
  • Install CUDA, cuDNN, driver
  • Konfigurasi Docker, Kubernetes
  • Setup load balancer, auto-scaling
  • Monitoring, logging, alerting
  • Total waktu setup: berhari-hari hingga berminggu-minggu

Dengan Modal:
  • Tulis fungsi Python
  • Tambahkan decorator @app.function(gpu="A100")
  • Deploy dengan modal deploy
  • Total waktu: hitungan menit

Modal menawarkan pricing pay-per-second, artinya Anda hanya membayar saat kode benar-benar berjalan. Tidak ada biaya idle.

Instalasi dan Autentikasi

Install Modal

pip install modal

Setup Autentikasi

modal setup

Perintah ini akan membuka browser untuk login dan mengkonfigurasi token API secara otomatis. Setelah selesai, Anda bisa langsung menggunakan Modal dari terminal.

Verifikasi instalasi:

modal --version

Basic Functions dengan @app.function

Konsep dasar Modal sangat sederhana: Anda mendefinisikan fungsi Python biasa dan menandainya dengan decorator agar berjalan di cloud.

import modal

app = modal.App("hello-modal")

@app.function()

def hello(name: str) -> str:

return f"Hello, {name}! This is running on Modal cloud."

@app.localentrypoint()

def main():

# Memanggil fungsi yang berjalan di cloud

result = hello.remote("World")

print(result)

Jalankan dengan:

modal run helloapp.py

Fungsi hello akan dieksekusi di cloud Modal, bukan di mesin lokal Anda. Decorator @app.localentrypoint() menandai fungsi yang berjalan secara lokal sebagai entry point.

GPU Selection

Kekuatan utama Modal adalah kemudahan mengakses GPU. Anda tinggal menentukan tipe GPU yang diinginkan:

import modal

app = modal.App("gpu-example")

Menggunakan NVIDIA T4 (budget-friendly, inferensi)

@app.function(gpu="T4")

def inferencet4():

import torch

print(f"GPU available: {torch.cuda.isavailable()}")

print(f"GPU name: {torch.cuda.getdevicename(0)}")

return "T4 inference complete"

Menggunakan NVIDIA A10G (balance performa/harga)

@app.function(gpu="A10G")

def traina10g():

import torch

print(f"GPU: {torch.cuda.getdevicename(0)}")

print(f"Memory: {torch.cuda.getdeviceproperties(0).totalmem / 1e9:.1f} GB")

return "A10G training complete"

Menggunakan NVIDIA A100 (high-performance training)

@app.function(gpu="A100")

def traina100():

import torch

print(f"GPU: {torch.cuda.getdevicename(0)}")

return "A100 training complete"

Menggunakan NVIDIA H100 (cutting-edge, LLM training)

@app.function(gpu="H100")

def trainh100():

import torch

print(f"GPU: {torch.cuda.getdevicename(0)}")

return "H100 training complete"

Multiple GPU

@app.function(gpu=modal.gpu.A100(count=2))

def multigputraining():

import torch

print(f"Number of GPUs: {torch.cuda.devicecount()}")

return "Multi-GPU training complete"

Pilih GPU berdasarkan kebutuhan:

  • T4: Inferensi, model kecil-menengah, paling hemat biaya
  • A10G: Balance antara performa dan biaya, fine-tuning
  • A100: Training model besar, fine-tuning LLM
  • H100: Performa tertinggi, training LLM skala besar

Artikel Terkait

Tutorial Lengkap vLLM: High-Performance LLM Serving

Tutorial Lengkap vLLM: High-Performance LLM Serving vLLM adalah library Python untuk inference dan serving LLM dengan pe...

Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...