Menjalankan LLM Lokal dengan Ollama: Panduan Awal

Belakangan ini banyak developer mulai penasaran menjalankan LLM di mesin sendiri, bukan lewat API pihak ketiga. Alasannya macam-macam: soal privasi data (apalagi kalau kerja di lingkungan yang sensitif seperti sistem kesehatan), biar tidak tergantung koneksi internet, atau sekadar ingin bereksperimen tanpa mikir biaya per token. Ollama jadi salah satu cara paling praktis buat mulai, karena membungkus proses yang tadinya ribet — download model, atur runtime, kelola memori — jadi beberapa perintah saja. Di tulisan ini saya mau bahas dasarnya: cara memilih model, cara menjalankannya, dan yang paling sering diremehkan orang, ekspektasi hardware yang realistis.

Memilih Model yang Sesuai

Godaan pertama biasanya langsung cari model paling besar dan paling "pintar". Padahal untuk kebutuhan sehari-hari, model kecil-menengah sering lebih masuk akal. Beberapa hal yang saya pertimbangkan saat memilih model:

  • Ukuran parameter — model dengan parameter lebih besar umumnya lebih baik dalam menalar dan mengikuti instruksi kompleks, tapi juga lebih berat di memori dan lebih lambat responnya.
  • Kuantisasi — model yang dikuantisasi (misalnya versi 4-bit) jauh lebih hemat memori dibanding versi presisi penuh, dengan trade-off penurunan kualitas yang biasanya masih bisa diterima untuk kebutuhan umum.
  • Tujuan pemakaian — model general-purpose cocok untuk chat dan ringkasan; kalau kebutuhannya spesifik seperti coding atau ekstraksi data terstruktur, ada varian model yang di-tuning khusus untuk itu.

Prinsip yang saya pegang: mulai dari model kecil yang muat nyaman di hardware yang ada, baru naik ukuran kalau memang kualitasnya belum cukup untuk kasus yang dikerjakan.

Instalasi dan Menjalankan Model Pertama

Setelah Ollama terpasang, alurnya sederhana. Menarik model dari registry:

ollama pull nama-model

Lalu menjalankannya secara interaktif:

ollama run nama-model

Ollama juga membuka endpoint HTTP lokal secara default, sehingga model bisa dipanggil dari kode seperti memanggil API biasa — ini yang bikin gampang diintegrasikan ke aplikasi, misalnya lewat HTTP client dari backend Laravel, tanpa harus mengurus proses inferensi sendiri. Untuk kebutuhan produksi, saya biasanya memisahkan proses Ollama ini di container atau service tersendiri, supaya siklus hidupnya (restart, resource limit, monitoring) bisa dikelola terpisah dari aplikasi utama.

Ekspektasi Kebutuhan Hardware

Ini bagian yang paling sering bikin orang kaget. Beberapa prinsip umum yang perlu dipegang:

  • RAM/VRAM adalah batasan utama — kasarnya, model perlu memori yang sepadan dengan ukurannya (setelah kuantisasi). Kalau memori tidak cukup, model bisa gagal dimuat atau berjalan sangat lambat karena harus swap ke disk.
  • GPU mempercepat, tapi bukan syarat mutlak — banyak model kecil-menengah tetap bisa jalan di CPU saja, hanya saja responnya lebih lambat. Untuk model besar atau kebutuhan latensi rendah, GPU dengan VRAM memadai jelas sangat membantu.
  • Unified memory di Apple Silicon juga cukup relevan dibahas — arsitektur ini memungkinkan CPU dan GPU berbagi pool memori yang sama, jadi mesin dengan memori besar bisa menjalankan model yang lumayan besar meski bukan mesin "gaming" berdedicated GPU.
  • Disk juga perlu diperhitungkan — file model bisa cukup besar, jadi kalau berencana coba-coba banyak model, siapkan ruang penyimpanan yang lapang.

Sebagai ilustrasi saja (bukan hasil pengukuran spesifik): model kecil biasanya nyaman dijalankan di laptop dengan memori standar, sedangkan model yang jauh lebih besar baru terasa nyaman di mesin dengan memori jauh lebih besar. Jadi sebelum eksperimen, cek dulu spesifikasi model yang ingin dicoba, lalu sesuaikan dengan mesin yang tersedia — daripada langsung unduh model besar dan berakhir menunggu lama atau kehabisan memori.

Takeaway

Menjalankan LLM lokal sekarang jauh lebih mudah diakses berkat tools seperti Ollama, tapi keberhasilannya tetap bergantung pada ekspektasi yang realistis: pilih model sesuai kebutuhan dan kapasitas mesin, jangan langsung lompat ke model terbesar, dan perlakukan proses inferensinya sebagai service yang perlu dikelola siklus hidupnya sendiri kalau mau dipakai serius, bukan sekadar coba-coba di terminal.