Memanfaatkan LLM lokal untuk coding berbasis agen
(blog.alexewerlof.com)- Di tengah lonjakan tajam harga model flagship cloud, dirangkum cara memanfaatkan model lokal agar pekerjaan coding bisa terus berjalan tanpa beban biaya
- Model lokal memang belum menyamai performa model SOTA, tetapi rasio harga terhadap performa serta penguatan dengan deterministic harness dapat meningkatkan kualitas hingga 6 kali lipat
- Untuk coding, Gemma 4 punya keseimbangan yang baik antara tugas umum dan pembuatan kode, serta cocok untuk integrasi dengan VS Code berkat dukungan Tools Use·Vision·Reasoning
- Disediakan prosedur konfigurasi lengkap untuk menjalankan server model dengan LM Studio lalu menghubungkannya ke endpoint kustom VS Code Copilot·Pi
- Jika perangkat keras kurang memadai, model gratis OpenRouter bisa dipakai sebagai alternatif, sementara model lokal tetap unggul dari sisi offline dan privasi
Latar belakang kenaikan harga
- GitHub Copilot beralih dari model kredit ke penagihan berbasis penggunaan, dan model gratis yang sebelumnya tersedia kini tidak lagi gratis
- Karena GitHub adalah reseller token, dampak kenaikan harga terasa lebih besar. Model flagship dirilis ketika laju peningkatan performa tidak mampu mengejar laju kenaikan harga
- Google Flash 3.5 3 kali lebih mahal dibanding Flash 2.5
- GPT 5.5 3 kali lebih mahal dibanding GPT 5
- Claude justru menurunkan harga karena sejak awal sudah terlalu mahal
Realitas dan keunggulan model lokal
- Model lokal memang belum setara dengan performa model SOTA seperti Claude, GPT, dan Gemini, tetapi ada beberapa nuansa penting
- Rasio harga/performa: pada model cloud, biaya meningkat secara eksponensial dibanding kenaikan performanya
- Deterministic harness: tooling dan instruksi yang lebih baik dapat meningkatkan kualitas model yang lebih lemah hingga 6 kali lipat
- Jebakan benchmark: sulit mereduksi model menjadi satu angka tunggal, dan tiap lab AI cenderung fokus pada benchmark yang menguntungkan dirinya sendiri, sehingga perlu dievaluasi langsung pada workload Anda sendiri
- Efek geopolitik: yang dirilis gratis oleh lab AS bukanlah level terbaik. gpt-oss-20b sudah terlalu lama, dan Anthropic tidak merilis open weights. Gemma 4 menjadi satu-satunya model yang benar-benar serius, sementara model kuat dari lab Tiongkok seperti Qwen, Kimi, dan GLM juga patut diperhatikan
- Dari sudut pandang fenomena "brain rot", model yang lebih lemah justru menuntut lebih banyak campur tangan pengguna sehingga baik untuk kesehatan otak
- Rasanya lebih lambat seperti bersepeda, tetapi lebih sehat. Dalam kerja berbasis pengetahuan, "lambat itu cepat"
- Tujuannya bukan memaksimalkan otomatisasi dengan menyerahkan seluruh proses berpikir pada mesin. Jangan mengorbankan nilai diri (relevance) di masa depan demi kecepatan jangka pendek
- Teknik untuk menangani model lemah juga berlaku pada model besar. Menggunakan model lemah itu seperti bermain di hard mode, dan jika sudah dikuasai, alat yang lebih besar akan bisa dimanfaatkan dengan lebih efektif
Memilih model — Gemma 4
- Untuk coding, model Tiongkok mendominasi puncak leaderboard Huggingface, dengan opsi seperti Qwen, DeepSeek, Kimi, Llama, dan Gemma
- Gemma 4 terdiri dari beberapa versi
- E2B: huruf "E" berarti edge. Dengan 2B parameter, model ini dapat berjalan di sebagian besar perangkat keras, tetapi risiko halusinasi atau tugas tidak selesai lebih tinggi
- E4B: ukurannya dua kali E2B. Biaya unduh dan setel rendah sehingga direkomendasikan untuk memulai
- 12B: tanpa decoder, model ini memahami gambar secara native, sehingga lebih cepat untuk frontend dan coding visual. Audio juga didukung secara native, meski kurang penting untuk workload coding
- 26B A4B: arsitektur MoE (mixture of experts) dengan 4B aktif dari total 26B parameter. Lebih cerdas daripada E4B dan cocok untuk GPU dengan VRAM 8~12GB (model favorit penulis)
- 31B: model open weights terbesar dari Google. Bukan MoE, sehingga membutuhkan VRAM besar. Pada AMD APU kecepatannya hanya 1~2 TPS, praktis tidak layak dipakai
- Varian QAT (misalnya E4B QAT) memakai memori lebih sedikit sambil mempertahankan kualitas yang hampir sama. Unsloth sedang mengerjakan optimasi tambahan
Komponen yang dibutuhkan untuk menjalankan model lokal
- Untuk menjalankan model lokal dibutuhkan harness, model, runtime, dan model manager
- Harness: seperti VS Code Copilot, Copilot CLI, dan Pi. Ini adalah komponen deterministik (kode tradisional) yang membungkus model dengan elemen probabilistik
- Model: file bobot jaringan saraf dalam. Quantization (Q8, Q4, dll.) mirip konsep resolusi gambar, sedangkan format dibedakan menjadi GGUF, MLX, dan lain-lain
-
Runtime (mesin inferensi)
- Llama.cpp: runtime open-source paling populer yang bisa memuat GGUF dan MLX. Tidak berhubungan dengan model Llama milik Meta, dan dipakai secara internal oleh LM Studio
- MLX: runtime Apple. Digunakan pada Mac seperti M1 dan M2
- ONNX Runtime: berbasis transformers.js, dapat berjalan di browser melalui WebGPU, serta mendukung iOS dan Android
- vLLM: open-source dari UC Berkeley, umumnya untuk server berkinerja tinggi, tetapi konfigurasi lebih sulit
-
Model manager
- Ollama: berawal dari CLI terminal lalu menambahkan GUI ringan. Wrapper Go di atas Llama.cpp. Open-source
- LM Studio: gratis tetapi bukan open-source. Menyediakan SDK (Python/TypeScript) dan REST API, serta bisa mengendalikan fitur khas model lokal seperti dynamic loading
- Jan: alternatif mirip LM Studio yang gratis dan open-source, tetapi fiturnya tidak sekaya itu
- Dukungan API kompatibel OpenAI adalah fitur kunci, karena banyak aplikasi AI bekerja dengan standar de facto ini
Konfigurasi server LM Studio
- Jalankan server dengan toggle pada tombol "Developer". Jika berjalan di mesin atau container lain, aktifkan Serve on Local Network, dan untuk akses web app aktifkan Enable CORS
- LM Studio menggunakan JIT (Just In Time) loading yang memuat model saat ada permintaan. Pengaturan TTL dapat dipakai untuk mengontrol berapa lama model tetap berada di memori
- Cold start: jika model belum dimuat, permintaan pertama memerlukan tambahan sekitar 10~30 detik, mirip cold start pada AWS Lambda. Ini memengaruhi metrik TTFT (Time To First Token)
- Context window pendek: dengan pengaturan default, context window bisa hanya 4k, sehingga perlu diperbesar secara manual. Sebagian besar model VS Code Copilot memiliki 200~400k
-
Pengaturan panjang konteks dan memori
- Kebutuhan VRAM menurut panjang konteks: 262144 (maksimum) = 25.74GB, 4096 (default) = 18.16GB, 150000 (preferensi penulis) = 22.45GB
- Untuk coding, system prompt memakan 20~40k token, sehingga perlu memuat minimal 100k token
- Jika konteks terlalu besar, kecepatan pembuatan token akan menurun. Titik optimal ada saat harness mengompresi konteks secara otomatis
- Idealnya semua layer model dijalankan di GPU dan disarankan memaksimalkan slider "GPU Offload". Menjalankan layer di CPU memerlukan penyalinan data CPU-GPU, kecuali pada Apple Silicon (UMA)
-
Trik quantization KV cache
- Atur K Cache Quantization Type ke
Q8_0, dan V Cache Quantization Type keQ4_0 - Pendekatan ini mempertahankan key pada resolusi lebih tinggi daripada value. Dengan pengaturan ini, kebutuhan memori GPU turun dari 28.75GB menjadi 22.45GB
- Pengaturan wajib disimpan. Jika tidak disimpan, saat model berikutnya dimuat nilainya akan kembali ke default
- VS Code Copilot tidak memiliki konsep permintaan custom context window, sehingga LM Studio harus mengingat pengaturannya saat menerima panggilan REST API
- Atur K Cache Quantization Type ke
- Jika TPS di bawah 10, penggunaan untuk coding akan sulit ditoleransi. Waktu lebih banyak habis menunggu model
Menghubungkan endpoint kustom Copilot
- Diperlukan VS Code terbaru (saat penulisan 1.122.1). Tambahkan melalui jalur pemilih model → roda gigi → "Add Models" → "Custom Endpoint"
- Beri nama (misalnya "Local LM Studio"), masukkan API Key (tekan enter jika tidak diatur), lalu pilih bentuk API inferensi
- Dari 3 jenis API, hanya Chat Completions yang berjalan lancar
- Di pengaturan JSON, tentukan secara manual
url,maxInputTokens,maxOutputTokens, dan sebagainya- Atur opsi
thinkingdengan benar (didukung oleh Gemma 4) - Array
supportsReasoningEffortberbeda untuk tiap model, dan versi 26B mendukung kontrol yang lebih rinci dibanding E4B - Untuk 4B, setel maxInputTokens 64000/maxOutputTokens 16000; untuk 26B MoE, setel 100000/50000
- Atur opsi
- Pada prompt pertama, Copilot mengirim system prompt besar dan definisi tool sehingga interaksi pertama tertunda 2~5 menit. Pemuatan model memakan 30 detik, lalu pemrosesan input prompt sekitar 5 menit
- Ini hanya terjadi sekali per sesi dan LM Studio menerapkan prompt caching. Pi tidak mengalami masalah ini karena system prompt-nya kecil
-
Pengujian cepat dan lingkungan
- Tanpa AGENTS.md atau SKILL, game snake dibuat dengan prompt one-shot untuk mendemonstrasikan performa Gemma 4 26B A4B
- Lingkungan penggunaan: Lenovo Thinkpad L16 Gen 2, AMD Ryzen 7 PRO 250 APU, 64GB DDR5 (5,600MT/s), Aurora Linux. Penulis menilai 32GB pun sudah cukup
Konfigurasi Pi
- Menghubungkan server LM Studio lokal itu sederhana, dan pengaturan
contextWindowlebih cocok dengan cara konfigurasi LM Studio - Atur
baseUrlkehttp://host.containers.internal:1234/v1, danapikeopenai-completions- Untuk 4B, setel contextWindow 64000/maxTokens 16000; untuk 26B MoE, setel 150000/50000 dan tentukan pemetaan
thinkingLevelMap
- Untuk 4B, setel contextWindow 64000/maxTokens 16000; untuk 26B MoE, setel 150000/50000 dan tentukan pemetaan
Ringkasan kelebihan dan kekurangan model lokal
- Kelebihan: berjalan offline, privasi tinggi, dan respons cepat tergantung perangkat keras, workflow, model, serta konfigurasi
- Kekurangan
- Model open weights tidak sepintar model flagship tertutup, tetapi akurasi coding dapat ditingkatkan secara signifikan dengan harness yang memiliki guardrail memadai (lint, test, AGENTS.md)
- Menjalankan LLM pada mesin yang sama dapat menyebabkan penurunan kecepatan karena beban perangkat keras
- Ada cold start, pemrosesan input prompt pertama (cache miss), dan biaya investasi perangkat keras awal yang tinggi
- Setelah terbiasa dengan LM Studio, penggunaan langsung Llama.cpp tanpa GUI juga memungkinkan. Sebagian besar harness mendukung endpoint kustom sehingga bisa dihubungkan dengan LLM lokal
Alternatif model gratis OpenRouter
- OpenRouter adalah layanan API dan routing terpadu yang mengekspos ratusan model melalui satu endpoint dan satu akun
- Copilot, Zed, dan Pi semuanya mendukung OpenRouter secara native, cukup dengan membuat token API lalu menghubungkannya
- Untuk mencegah biaya membengkak, buat guardrail kustom dengan batas $1/bulan lalu tambahkan hanya model gratis ke daftar izin
- Saat membuat API key baru, disarankan mengatur max credit ke 0
- Kekurangan: prompt dan data bisa dipakai untuk pelatihan (ada pengaturan ZDR), membutuhkan koneksi internet, dan ada kemungkinan OpenRouter menghentikan penyediaan model gratis
- Kelebihan: tidak perlu unduh dan setel lokal, serta tidak memperlambat komputer saat digunakan
-
Pembaruan 2026-06-09
- Mengadopsi Deepseek V4 Pro. Performanya hampir setara dengan Claude Opus 4.8, dengan context window 5 kali lebih besar dan harga sekitar 17~86 kali lebih murah
- Harga antara Pi dan OpenRouter sempat berbeda sekitar 3 kali, karena OpenRouter mengirim permintaan ke endpoint yang lebih mahal (GMICloud)
- Untuk pekerjaan kompleks, akun Deepseek dibuka langsung dan digunakan secara terpisah. Untuk tugas sederhana, memahami perilaku sistem, atau saat privasi diutamakan, model lokal tetap menjadi pilihan pertama
3 komentar
Pada akhirnya, kesimpulannya jadi beralih ke deepseek v4 pro setelah sempat memakai model lokal.
Tidak mudah juga harus gonta-ganti model setiap kali bekerja, jadi kebijakan untuk memakai lokal hanya untuk tugas sederhana ternyata sulit diterapkan.
Tidak harus local; ada banyak alternatif langganan murah seperti opencode, ollama, dan cursor.
Di era LLM besar, saya menggunakan plugin yang saya buat sendiri. Saya juga pernah memperkenalkannya sekali di GN SHOW, dan sepertinya membuat serta memakainya sesuai kebutuhan seperti ini juga bisa menjadi salah satu cara.
https://github.com/hang-in/tunaLlama