Banyak perusahaan tertarik memakai AI, tapi ragu mengirim dokumen internal ke layanan pihak ketiga. Private LLM menjawab kekhawatiran itu: modelnya berjalan di server Anda sendiri, jadi prompt dan dokumen tidak keluar dari jaringan perusahaan. Dengan model open-weight seperti Gemma, Qwen, Llama, dan DeepSeek, ditambah Ollama untuk menjalankannya, demo pertama bisa jalan dalam satu sore. Yang butuh waktu lebih lama adalah membuatnya layak dipakai sehari-hari, dan artikel ini membahas keputusan-keputusan yang biasanya muncul di tahap itu.
Kapan Perlu Private LLM, Kapan Cukup Pakai API
Self-hosting tidak selalu lebih baik. API seperti Claude, GPT, atau Gemini umumnya lebih pintar untuk soal yang rumit, tidak perlu beli GPU, dan paling cepat untuk proof of concept. Private LLM baru masuk akal kalau setidaknya satu dari tiga kondisi ini berlaku: datanya memang tidak boleh keluar dari perusahaan, pemakaiannya tinggi dan stabil sehingga tagihan per token jadi besar, atau sistemnya harus tetap jalan tanpa internet.
| Faktor | LLM self-hosted | API |
|---|---|---|
| Lokasi data | Tetap di server milik Anda | Dikirim ke penyedia, umumnya dengan ketentuan zero-retention |
| Kualitas jawaban | Bagus untuk tugas yang jelas batasannya, seperti ekstraksi, klasifikasi, dan tanya jawab dari dokumen | Paling kuat untuk pertanyaan yang rumit dan terbuka |
| Biaya | Beli atau sewa GPU di awal, biaya bulanan relatif tetap | Bayar per token, naik seiring pemakaian |
| Operasional | Tim Anda yang menjalankan, meng-update, dan memantau | Kapasitas dan uptime diurus penyedia |
| Cocok untuk | Data yang diatur regulasi, dokumen internal, volume tinggi yang stabil | Prototipe, volume kecil, tugas yang butuh jawaban paling akurat |
Dalam praktiknya, banyak sistem memakai keduanya. Dokumen sensitif diproses model di server sendiri, sementara tugas lain yang butuh jawaban lebih kuat dikirim ke API. Pembagian seperti ini jauh lebih mudah dirancang di awal daripada ditambahkan belakangan.
Berapa Memori GPU yang Dibutuhkan
Untuk LLM, yang pertama kali jadi batasan biasanya memori GPU (VRAM). Seluruh model harus muat di VRAM supaya responsnya cukup cepat. Selain untuk bobot model, VRAM juga terpakai untuk KV cache, yang makin besar seiring panjang prompt dan jumlah request yang diproses bersamaan. Karena itu, kebanyakan deployment self-hosted memakai kuantisasi 4-bit. Ukuran modelnya jauh lebih kecil, dan untuk kebutuhan bisnis pada umumnya penurunan kualitasnya hampir tidak terasa.
| Ukuran model | Perkiraan bobot pada 4-bit | Hardware umum | Biasanya dipakai untuk |
|---|---|---|---|
| 7-8B parameter | Sekitar 5 GB | Satu GPU dengan VRAM 12-16 GB | Klasifikasi, ekstraksi, tanya jawab internal sederhana |
| 12-14B parameter | Sekitar 8-10 GB | Satu GPU dengan VRAM 16-24 GB | RAG untuk dokumen internal, ringkasan |
| 27-32B parameter | Sekitar 18-20 GB | GPU 24 GB untuk pemakaian ringan, 48 GB supaya lebih lega | Jawaban yang lebih berkualitas, dokumen yang lebih panjang |
| 70B parameter | Sekitar 40 GB atau lebih | Dua GPU atau satu GPU data center 80 GB | Tugas berat ketika data tidak boleh dikirim ke API |
Angka di tabel hanya untuk bobot model. Sisakan ruang untuk KV cache, apalagi kalau Anda memakai RAG: setiap request membawa beberapa potongan dokumen, jadi prompt cepat sekali memanjang. Model yang lancar saat dicoba dengan pertanyaan pendek bisa mendadak lambat atau error begitu dipakai dengan dokumen sungguhan.
Cara cepat mengeceknya: siapkan prompt terpanjang yang realistis, lalu kirim beberapa request sekaligus sesuai perkiraan jumlah pengguna. Kalau VRAM masih cukup dan waktu responsnya masih bisa diterima, ukuran GPU-nya aman.
Ollama atau vLLM?
Ollama sudah mengurus download model, versi terkuantisasi, dan HTTP API dalam satu aplikasi. Ini cara paling cepat untuk mulai, dan sudah cukup untuk development, tool internal, atau aplikasi dengan trafik sedang. Ollama juga menyediakan endpoint yang kompatibel dengan API OpenAI, jadi aplikasi bisa pindah dari model lokal ke API, atau sebaliknya, tanpa banyak mengubah kode.
vLLM dibuat untuk melayani banyak request sekaligus. Dengan continuous batching dan PagedAttention, satu GPU bisa menangani jauh lebih banyak pengguna bersamaan. Ini mulai terasa penting ketika chatbot atau pipeline dokumen dipakai satu perusahaan. vLLM juga punya server yang kompatibel dengan OpenAI, sehingga pola yang umum adalah membuat prototipe dengan Ollama, lalu pindah ke vLLM ketika penggunanya bertambah. Kode aplikasinya hampir tidak perlu diubah.
- Ollama cocok kalau prioritasnya setup cepat dan perawatan minim, untuk satu tim atau satu aplikasi yang penggunanya tidak terlalu banyak.
- vLLM cocok kalau banyak pengguna atau batch job mengakses model bersamaan, dan utilisasi GPU berpengaruh langsung ke biaya.
- Apa pun pilihannya, panggil model lewat client yang kompatibel dengan OpenAI. Kalau nanti ingin ganti server atau penyedia model, perubahannya kecil.
- Kunci nama model dan level kuantisasinya di konfigurasi. Hindari tag latest, supaya update model selalu disengaja dan bisa diuji dulu.
Jangan Lupa Atur Panjang Konteks
Ollama menjalankan model dengan panjang konteks default yang cukup kecil untuk menghemat memori. Untuk chat biasa ini tidak masalah. Untuk RAG, prompt berisi instruksi, riwayat percakapan, dan beberapa potongan dokumen, sehingga batasnya cepat terlampaui. Masalahnya, aplikasi tidak menerima error apa pun. Bagian awal prompt dipotong begitu saja, dan yang sering terpotong justru instruksi sistemnya. Gejalanya, jawaban tiba-tiba melenceng tanpa sebab yang jelas. Atur panjang konteks untuk setiap model lewat parameter num_ctx atau Modelfile, lalu cek lagi pemakaian memorinya di GPU yang dipakai.
Mengamankan API Ollama
Secara default, Ollama hanya bisa diakses dari localhost dan API-nya tidak punya autentikasi. Di laptop developer ini aman. Tapi begitu alamatnya dibuka supaya bisa diakses dari server lain, siapa pun yang bisa menjangkau port itu bisa mengirim prompt, mengunduh model, dan memakai GPU Anda.
- Taruh server model di jaringan privat, di belakang reverse proxy atau API gateway yang punya autentikasi dan TLS.
- Buka aksesnya hanya untuk aplikasi yang memang membutuhkan, jangan untuk seluruh jaringan.
- Pasang rate limit per client. Satu batch job yang jalan tanpa kendali bisa membuat pengguna lain menunggu lama.
- Catat metadata setiap request: siapa yang memanggil, model apa, berapa token, dan berapa lama. Untuk isi prompt, putuskan dulu apakah perlu dicatat, karena prompt bisa saja berisi data yang justru ingin Anda lindungi.
- Perlakukan file model seperti dependency lain: unduh dari sumber resmi, catat versinya, dan ubah lewat proses rilis yang sama dengan kode aplikasi.
Uji dengan Data Sendiri
Skor benchmark publik tidak banyak bercerita tentang performa model untuk dokumen, istilah, dan bahasa di perusahaan Anda, termasuk bahasa Indonesia atau campuran Indonesia-Inggris. Sebelum memilih model, kumpulkan 50 sampai 100 pertanyaan atau dokumen nyata, lengkap dengan jawaban yang menurut orang yang paham bidangnya benar. Jalankan setiap kandidat model dengan data ini, beri nilai, dan catat waktu responsnya di hardware yang akan dipakai.
Data uji yang sama bisa dipakai lagi setiap kali ada perubahan, entah ganti model, kuantisasi, prompt, atau pengaturan retrieval. Tanpa data uji, tim tidak punya cara untuk tahu apakah perubahan membuat jawaban lebih baik atau malah lebih buruk, dan biasanya penggunalah yang pertama kali menyadarinya.
Langkah Implementasi Private LLM
- 1Tentukan use case dan data apa saja yang terlibat. Lalu putuskan: boleh tidak data ini dikirim ke API eksternal? Jawabannya menentukan apakah self-hosting wajib atau hanya salah satu pilihan.
- 2Susun data uji dari pertanyaan dan dokumen nyata, dengan jawaban yang sudah dicek orang yang paham bidangnya.
- 3Coba dua atau tiga model open-weight dengan ukuran berbeda di Ollama. Bandingkan kualitas dan kecepatannya, lalu pilih model terkecil yang hasilnya sudah memenuhi standar.
- 4Hitung kebutuhan GPU berdasarkan model yang dipilih, panjang konteks, dan jumlah pengguna bersamaan. Sisakan ruang untuk pertumbuhan.
- 5Deploy di jaringan privat dengan autentikasi, panjang konteks yang sudah diatur, versi model yang dikunci, dan rate limit.
- 6Pasang monitoring untuk memori GPU, waktu respons, error rate, dan throughput token. Jalankan ulang data uji setiap kali model atau prompt berubah.
Setelah Go-Live
Model open-weight baru rilis hampir setiap bulan, dan model yang Anda pakai hari ini kemungkinan besar akan diganti dalam setahun. Karena itu, investasi yang paling awet ada di luar modelnya: data uji, lapisan retrieval, pengamanan akses, dan monitoring. Kalau keempatnya sudah rapi, mengganti model cukup dengan menjalankan data uji, membandingkan hasilnya, lalu merilisnya seperti perubahan biasa.
Poin penting
- Pilih self-hosting kalau data tidak boleh keluar dari perusahaan atau pemakaiannya tinggi dan stabil. Di luar itu, API biasanya jalan yang lebih cepat.
- Hitung VRAM untuk bobot model ditambah KV cache, dengan prompt terpanjang dan jumlah pengguna yang realistis.
- Mulai dengan Ollama, pindah ke vLLM saat penggunanya bertambah, dan pakai client yang kompatibel dengan OpenAI supaya perpindahannya mudah.
- Jangan buka API Ollama langsung ke jaringan. Pasang autentikasi, rate limit, dan logging di depannya.
- Pilih dan update model berdasarkan data uji dari pertanyaan dan dokumen Anda sendiri.


