Tutorial LitServe: Framework Serving Model AI yang Cepat dan Mudah
Pendahuluan
LitServe adalah framework open-source dari Lightning AI yang dirancang untuk menyajikan (serving) model AI/ML dengan performa tinggi dan kemudahan penggunaan. Dibangun di atas FastAPI, LitServe menyediakan fitur-fitur enterprise seperti batching, streaming, GPU autoscaling, dan multi-model endpoints tanpa memerlukan konfigurasi yang rumit.
Berbeda dengan framework serving lainnya yang memerlukan banyak boilerplate code dan konfigurasi infrastruktur, LitServe memungkinkan Anda mengubah model AI menjadi API production-ready hanya dengan beberapa baris kode. Framework ini mendukung semua jenis model termasuk LLM, computer vision, NLP, audio, dan model klasik scikit-learn.
Dalam tutorial ini, kita akan mempelajari cara menggunakan LitServe mulai dari instalasi, membuat API sederhana, hingga fitur-fitur lanjutan seperti batching, streaming, dan authentication.
Mengapa LitServe?
Sebelum masuk ke implementasi, berikut alasan mengapa LitServe layak dipertimbangkan:
- Performa Tinggi: Hingga 2x lebih cepat dibanding FastAPI biasa berkat optimasi internal
- Minimal Boilerplate: Cukup definisikan
setup(),decoderequest(),predict(), danencoderesponse() - Batching Otomatis: Menggabungkan multiple request untuk throughput lebih tinggi pada GPU
- Streaming Response: Dukungan native untuk streaming output (cocok untuk LLM)
- Multi-Model: Satu server bisa melayani beberapa model sekaligus
- GPU Management: Otomatis menangani alokasi GPU dan multi-worker
- OpenAPI Docs: Otomatis menghasilkan dokumentasi API (Swagger UI)
Instalasi
Prasyarat
Pastikan Anda memiliki Python 3.8 atau lebih baru. Disarankan menggunakan virtual environment.
python -m venv litserve-env
source litserve-env/bin/activate # Linux/Mac
atau
litserve-env\Scripts\activate # Windows
Install LitServe
pip install litserve
Untuk fitur tambahan, Anda bisa menginstall dependensi opsional:
# Untuk dukungan semua fitur
pip install litserve[all]
Untuk model PyTorch
pip install torch torchvision
Untuk model Hugging Face
pip install transformers
Untuk model scikit-learn
pip install scikit-learn
Verifikasi instalasi:
import litserve as ls
print(ls.version)
Basic Usage: Membuat API Pertama
Konsep Dasar: LitAPI
Inti dari LitServe adalah class LitAPI. Anda perlu mengimplementasikan minimal 4 method:
setup(device) - Inisialisasi model dan resource (dipanggil sekali saat server start)decoderequest(request) - Mengubah HTTP request menjadi input modelpredict(x) - Menjalankan inferensi modelencoderesponse(output) - Mengubah output model menjadi HTTP responseContoh 1: API Sederhana dengan Scikit-Learn
Mari buat API untuk model klasifikasi iris menggunakan scikit-learn.
# server.py
import litserve as ls
from sklearn.datasets import loadiris
from sklearn.ensemble import RandomForestClassifier
import numpy as np
class IrisAPI(ls.LitAPI):
def setup(self, device):
"""Load dan train model saat server startup."""
iris = loadiris()
self.model = RandomForestClassifier(nestimators=100, randomstate=42)
self.model.fit(iris.data, iris.target)
self.classnames = iris.targetnames.tolist()
def decoderequest(self, request):
"""Parse input dari HTTP request."""
return np.array(request["features"]).reshape(1, -1)
def predict(self, x):
"""Jalankan prediksi."""
prediction = self.model.predict(x)
probability = self.model.predictproba(x)
return {
"classidx": int(prediction[0]),
"probabilities": probability[0].tolist()
}
def encoderesponse(self, output):
"""Format response untuk client."""
return {