Semua artikel

Menjalankan Private LLM dengan Ollama: Panduan Praktis untuk Perusahaan

Panduan menjalankan model AI open-weight di server sendiri dengan Ollama: kapan self-hosting masuk akal, berapa GPU yang dibutuhkan, kapan pindah ke vLLM, cara mengamankan API, sampai cara menguji kualitas jawabannya.

Pengembangan AI|Dipublikasikan |10 menit baca
Rak server di data center yang menjalankan private language model

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.

FaktorLLM self-hostedAPI
Lokasi dataTetap di server milik AndaDikirim ke penyedia, umumnya dengan ketentuan zero-retention
Kualitas jawabanBagus untuk tugas yang jelas batasannya, seperti ekstraksi, klasifikasi, dan tanya jawab dari dokumenPaling kuat untuk pertanyaan yang rumit dan terbuka
BiayaBeli atau sewa GPU di awal, biaya bulanan relatif tetapBayar per token, naik seiring pemakaian
OperasionalTim Anda yang menjalankan, meng-update, dan memantauKapasitas dan uptime diurus penyedia
Cocok untukData yang diatur regulasi, dokumen internal, volume tinggi yang stabilPrototipe, 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 modelPerkiraan bobot pada 4-bitHardware umumBiasanya dipakai untuk
7-8B parameterSekitar 5 GBSatu GPU dengan VRAM 12-16 GBKlasifikasi, ekstraksi, tanya jawab internal sederhana
12-14B parameterSekitar 8-10 GBSatu GPU dengan VRAM 16-24 GBRAG untuk dokumen internal, ringkasan
27-32B parameterSekitar 18-20 GBGPU 24 GB untuk pemakaian ringan, 48 GB supaya lebih legaJawaban yang lebih berkualitas, dokumen yang lebih panjang
70B parameterSekitar 40 GB atau lebihDua GPU atau satu GPU data center 80 GBTugas 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

  1. 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.
  2. 2Susun data uji dari pertanyaan dan dokumen nyata, dengan jawaban yang sudah dicek orang yang paham bidangnya.
  3. 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.
  4. 4Hitung kebutuhan GPU berdasarkan model yang dipilih, panjang konteks, dan jumlah pengguna bersamaan. Sisakan ruang untuk pertumbuhan.
  5. 5Deploy di jaringan privat dengan autentikasi, panjang konteks yang sudah diatur, versi model yang dikunci, dan rate limit.
  6. 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.

Artikel terkait

Artikel lain tentang software development, AI, cloud, dan infrastruktur.

Smartphone yang menampilkan folder berisi aplikasi pesan
Pengembangan AI|

Chatbot AI untuk Bisnis: Manfaat, Contoh Penggunaan, dan Biayanya

Panduan untuk pemilik bisnis yang mempertimbangkan chatbot AI: bedanya dengan chatbot biasa, kapan sepadan, contoh per industri, memilih antara website, Telegram, dan WhatsApp, komponen biaya, dan cara mengukur hasilnya.

Terminal Linux yang menampilkan prompt Ubuntu dengan perintah sudo
Tools Developer|

Setup WSL 2 untuk Development di Windows: Panduan Praktis

Panduan development di Windows dengan WSL 2: instalasi, di mana menyimpan file proyek, VS Code dan Git, membatasi memori lewat .wslconfig, Docker dan systemd, networking, backup, dan solusi masalah yang sering muncul.

Sedang mencari partner untuk pengembangan software?

Ceritakan proyek yang sedang Anda bangun, kebutuhan yang ingin diselesaikan, dan tantangan yang dihadapi. Kami dapat membantu membahas pendekatan teknis, scope, timeline, dan estimasi biaya.

Mulai diskusi