BAB 05
Estimasi Waktu: 50 menit
Level: Advanced
Di era Machine Learning klasik, MLOps berfokus pada melatih model secara berkala dan memantau penyimpangan data (data drift).
Di era LLM/GenAI, fokus bergeser ke LLMOps: bagaimana melayani (serving) model raksasa dengan latensi rendah, efisiensi GPU, penanganan input-output yang aman (guardrails), dan optimalisasi biaya operasional (inference cost).
Menjalankan LLM menggunakan library PyTorch standar (transformers pipeline) di produksi adalah kesalahan fatal karena model hanya bisa memproses sedikit request secara berurutan dan boros VRAM.
Industri menggunakan vLLM (versatile LLM), sebuah engine serving berkinerja tinggi yang memiliki teknologi PagedAttention. PagedAttention mengelola memori KV-Cache (memori konteks LLM) secara dinamis mirip virtual memory di OS, mengurangi pemborosan memori hingga 96% dan melipatgandakan throughput pemrosesan request.
┌─────────────────────────────────────────────────────────────┐
│ vLLM SERVER │
│ │
│ Incoming Requests ──► [ Continuous Batching ] │
│ │ │
│ ▼ │
│ [ PagedAttention ] │
│ │ │
│ ▼ │
│ [ GPU KV Cache ] │
└─────────────────────────────────────────────────────────────┘
Alternatif serving engine:
GGUF).Model LLM mentah biasanya disimpan dalam format presisi FP16 (16-bit float) atau BF16. Model 8 miliar parameter (8B) membutuhkan sekitar 16 GB VRAM hanya untuk dimuat ke memori.
Kuantisasi (Quantization) memetakan angka float presisi tinggi tersebut ke format presisi lebih rendah (misal 8-bit, 4-bit, bahkan 2-bit integer) dengan penurunan akurasi yang minimal.
| Format Kuantisasi | Penggunaan Utama | Efek Memori |
|---|---|---|
| GGUF | Menjalankan model di CPU/Mac M1/M2/M3 (lokal) via Llama.cpp/Ollama. | Sangat hemat, bisa dibagi antara RAM & VRAM. |
| AWQ / GPTQ | Menjalankan model secara optimal di kartu GPU NVIDIA Enterprise. | Mengurangi memori GPU hingga 75% tanpa kehilangan penalaran. |
LLM memproses teks secara bertahap. Ketika Anda mengirim dokumen panjang (misal 50.000 token RAG) dan terus bertanya berulang kali, LLM biasanya memproses ulang seluruh dokumen tersebut.
Engine modern (seperti vLLM, Anthropic API, DeepSeek API) mendukung Prompt Caching. Konsep ini menyimpan representasi komputasi dari dokumen awal di memori. Request berikutnya yang menggunakan dokumen awal yang sama hanya akan dikenai biaya pemrosesan yang sangat murah (potongan harga hingga 90%) dan respons instan karena model tidak perlu membaca ulang dokumen dari nol.
Semua engine serving dan kode integrasi aplikasi harus dibungkus menggunakan Docker agar bisa berjalan secara identik di lokal maupun server cloud (AWS, GCP, Cloudflare).
FROM python:3.10-slim
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
build-essential \
curl \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Di tingkat produksi besar, container Docker ini diorkestrasi menggunakan Kubernetes dengan node pool khusus GPU, memanfaatkan scheduler GPU Nvidia (nvidia.com/gpu) untuk membagi resource kartu grafis secara efisien.
Ollama di komputer Anda.curl untuk mengirim request API ke server Ollama lokal tersebut pada port 11434.GGUF menggunakan modul script Python bawaan dari repository Llama.cpp.Target: Memahami bagaimana meminimalkan resource hardware untuk menjalankan model besar secara efisien di level produksi.