Menjalankan model open-weight di infrastruktur sendiri: Ollama untuk eksperimen lokal, vLLM untuk serving produksi ber-throughput tinggi, quantization (GGUF/AWQ), dan kebutuhan GPU. Episode ini juga memandu deploy model lokal dan mengintegrasikannya ke aplikasi.

Hingga episode 12, kalian selalu memanggil model sebagai layanan (API pihak ketiga atau fine-tune di cloud). Episode ini membaliknya: menjalankan model di mesin kalian sendiri. Self-hosting adalah salah satu keputusan arsitektur paling strategis di 2026 — karena model open-weight (Llama, Qwen, Gemma, DeepSeek) kini setara dengan model closed untuk banyak task, dan membawa keuntungan besar: data tidak keluar dari perimeter, biaya prediktif, dan kontrol penuh.
Mengapa penting? Tiga alasan nyata di dunia kerja: privasi (data pelanggan tidak boleh dikirim ke pihak ketiga), biaya (beban tinggi / skala besar sering lebih murah self-host), dan ketahanan (tidak bergantung uptime vendor). Tapi self-hosting bukan gratis — ada GPU, operasional, dan tuning. Episode ini mengajarkan kapan dan bagaimana melakukannya dengan benar.
| Tool | Jenis | Cocok Untuk |
|---|---|---|
| Ollama | Server lokal sederhana | Eksperimen, desktop, prototipe, model ~1-32B |
| vLLM | Inference engine produksi | Throughput tinggi, batch request, GPU server |
| TGI (Hugging Face) | Inference server produksi | Integrasi HF, optimasi tensor-parallel |
Aturan praktis: Ollama untuk belajar & pengembangan, vLLM untuk produksi. Ollama mengelola model dan API secara ringkas; vLLM mengoptimalkan throughput dengan teknik seperti continuous batching dan paged attention.
Sebelum deploy, hitung kebutuhan GPU. Faktor penentunya: ukuran model, quantization, dan konteks yang dipakai.
# bobot model (GB) ≈ parameter (miliar) × bytes per parameter
# FP16 → 2 byte/param; INT8 → 1 byte; INT4 → 0.5 byte
# contoh: 7B model FP16 ≈ 14GB; INT4 ≈ 4-5GB + overhead konteksTabel praktis:
| Model | Ukuran Kira-kira | GPU Minimal |
|---|---|---|
| Qwen 1.5B / Gemma 2B (Q4) | ~1-2 GB | CPU saja / GPU 4GB |
| Llama 3.1 8B (Q4) | ~5-6 GB | 8GB |
| Qwen 2.5 14B (Q4) | ~9 GB | 12-16GB |
| Llama 3.1 70B (Q4) | ~40 GB | 2×48GB atau 1×80GB |
Angka ini menjelaskan mengapa quantization begitu penting — ia membuat model besar muat di GPU yang jauh lebih murah, dengan penurunan kualitas yang sering kali tidak signifikan.
Quantization memadatkan bobot model dari 16-bit menjadi 8/4-bit. Dua format dominan:
ollama pull qwen2.5:7b # default (Q4_K_M)
ollama pull qwen2.5:14b-instruct # versi 14BPrinsipnya: mulai dari Q4_K_M (standar emas GGUF) — keseimbangan kualitas/ukuran terbaik untuk kebanyakan kasus. Naikkan ke Q8 hanya jika butuh kualitas maksimal dan VRAM cukup.
Install dan jalankan model pertama:
curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen2.5:7b
ollama run qwen2.5:7b "Jelaskan RAG dalam 2 kalimat"Ollama menyediakan OpenAI-compatible endpoint — dari episode 5 kita bisa langsung memakainya tanpa mengubah kode:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # bebas, hanya placeholder
)
resp = client.chat.completions.create(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "Apa itu agent?"}],
)
print(resp.choices[0].message.content)Perhatikan: satu baris konfigurasi memindahkan aplikasi dari API cloud ke lokal — bukti nyata kekuatan OpenAI-compatible API yang kita bahas di episode 5.
Untuk produksi dengan banyak request paralel, gunakan vLLM:
pip install vllm
python3 -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2.5-7B-Instruct \
--quantization awq --dtype float16 \
--max-model-len 32768 \
--port 8000vLLM mengekspos endpoint OpenAI-compatible di port 8000 — aplikasi kalian cukup mengganti base_url seperti pada contoh Ollama. Bedanya, vLLM menangani:
Tip
Untuk memilih antara Ollama dan vLLM: kalau lalu lintasmu puluhan request per detik atau lebih, vLLM. Kalau masih eksperimen, prototipe, atau internal dengan volume kecil — Ollama lebih sederhana dan cukup. Jangan over-engineer serving sejak hari pertama.
Pola deployment produksi yang umum:
--gpus all).services:
vllm:
image: vllm/vllm-openai:latest
command:
- "--model"
- "Qwen/Qwen2.5-7B-Instruct"
- "--quantization"
- "awq"
ports:
- "8000:8000"
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]max_model_len default besar menghabiskan VRAM; set sesuai kebutuhan.Inti yang harus dibawa pulang:
Di episode 14 selanjutnya kita akan membahas Multimodal: Image, Audio & Video — text-to-image (Stable Diffusion 3.5, FLUX.1), TTS/STT (Whisper), vision (VLM), plus pipeline multimodal: input gambar → deskripsi → voice output. Sampai jumpa di episode 14!