- Studi kasus menjalankan Gemma 4 di lingkungan Codex CLI lokal alih-alih cloud untuk memverifikasi performa dan stabilitas pemanggilan alat, sekaligus mengonfirmasi keunggulan biaya dan privasi dibanding GPT-5.4
- Di Mac (M4 Pro) 24GB dengan 26B MoE dan NVIDIA GB10 128GB dengan 31B Dense, tugas generasi kode yang sama dijalankan masing-masing memakai llama.cpp dan Ollama, lalu dibandingkan performanya berdasarkan perbedaan konfigurasi
- Tingkat keberhasilan pemanggilan alat meningkat dari 6.6% menjadi 86.4%, membuktikan kelayakan praktis model lokal, dan pada lingkungan GB10 berhasil mencapai generasi kode penuh
- Mac menunjukkan kecepatan generasi token 5.1x lebih cepat, tetapi karena keterbatasan memori dan pengaturan kuantisasi, dibutuhkan beberapa percobaan ulang; GB10 lebih lambat tetapi berhasil pada percobaan pertama
- Kesimpulannya, model lokal juga mampu menghasilkan kode pada tingkat kerja nyata, dan direkomendasikan pendekatan hibrida yang menggabungkan pemrosesan lokal berfokus privasi dengan perpindahan ke cloud untuk tugas kompleks
Alasan beralih ke model lokal
- Masalah biaya, karena Codex CLI dijalankan dalam banyak sesi per hari, kadang paralel, sehingga biaya API terus menumpuk
- Kebutuhan privasi, karena sebagian codebase tidak boleh dikirim ke server eksternal
- Perlu keandalan, sebab API cloud memiliki risiko throttling, gangguan, dan perubahan harga
- Alasan sebelumnya tidak mencoba model lokal adalah karena tidak mendukung tool calling, padahal nilai utama Codex CLI terletak pada kemampuan model untuk membaca file, menulis kode, menjalankan tes, dan menerapkan patch
- Generasi Gemma sebelumnya hanya mencatat 6.6% pada benchmark pemanggilan fungsi tau2-bench (gagal 93 dari 100 kali), tetapi Gemma 4 31B melonjak ke 86.4%, sehingga layak diuji
Proses pengaturan Mac
- Mulai dengan Ollama, tetapi pada v0.20.3 terjadi bug streaming di mana respons pemanggilan alat Gemma 4 salah diarahkan ke reasoning output alih-alih array
tool_calls
- Saat menggunakan Gemma 4 di Apple Silicon, terjadi freeze Flash Attention pada prompt sekitar 500 token atau lebih; karena system prompt Codex CLI sekitar 27.000 token, praktis tidak bisa digunakan
- Setelah beralih ke llama.cpp, instalasi dilakukan lewat Homebrew, dan perintah server yang berfungsi memerlukan 6 flag inti
-np 1: membatasi ke 1 slot; multi-slot melipatgandakan penggunaan memori cache KV
-ctk q8_0 -ctv q8_0: kuantisasi cache KV yang menurunkan penggunaan dari 940MB menjadi 499MB
--jinja: wajib untuk template pemanggilan alat Gemma 4
- Perlu menunjuk path GGUF langsung di
-m; jika memakai flag -hf, vision projector 1.1GB akan terunduh otomatis dan memicu crash OOM
- Dalam konfigurasi Codex CLI,
web_search = "disabled" wajib, karena Codex CLI mengirim tipe alat web_search_preview yang ditolak oleh llama.cpp
Proses pengaturan GB10
- vLLM 0.19.0 dikompilasi berbasis PyTorch 2.10.0, tetapi PyTorch berdukungan CUDA untuk aarch64 Blackwell (compute capability sm_121) hanya tersedia di 2.11.0+cu128, sehingga muncul
ImportError karena ketidakcocokan ABI
- Jika llama.cpp dibangun dari source dengan CUDA, kompilasi dan benchmark lolos, tetapi tipe alat non-fungsi yang dikirim
wire_api = "responses" dari Codex CLI ditolak oleh llama.cpp
- Berhasil di Ollama v0.20.5, dan bug streaming yang muncul di Apple Silicon tidak terulang di NVIDIA
- Jalankan
ollama pull gemma4:31b, lalu forward port 11434 ke Mac melalui SSH tunnel (karena mode --oss Codex CLI hanya memeriksa localhost)
- Dengan
codex --oss -m gemma4:31b, baik generasi teks maupun pemanggilan alat berjalan pada percobaan pertama
- Pengaturan Mac memakan hampir sepanjang sore, sedangkan GB10 memakan sekitar 1 jam termasuk waktu unduh model
Hasil benchmark
- Ketiga konfigurasi diberi tugas yang sama: memakai
codex exec --full-auto untuk menulis fungsi Python parse_csv_summary, termasuk penanganan error, serta menulis dan menjalankan tes
- GPT-5.4 (cloud): menghasilkan kode dengan type hints, exception chaining yang tepat, deteksi tipe boolean, dan helper function yang rapi; 5 tes lolos pada percobaan pertama; selesai dalam 65 detik; tidak perlu perapian lanjutan
- GB10 31B Dense: tanpa type hints atau deteksi boolean, tetapi dengan penanganan error yang kokoh, tanpa dead code, dan 5 tes lolos pada percobaan pertama lewat 3 kali pemanggilan alat; memakan 7 menit
- Mac 26B MoE: masih menyisakan dead code di implementasi; menulis loop inferensi tipe lalu meninggalkannya, kemudian menulis ulang di bawah dengan komentar
Actually, let's simplify; perlu 5 percobaan untuk menulis file tes
- Tiap kali muncul error heredoc yang berbeda:
filerypt → file_path, encoding=' 'utf-8' (spasi tersisip), fileint(file_path), dll.
- Tugas yang selesai di GB10 dalam 3 kali pemanggilan alat membutuhkan 10 kali pemanggilan alat di sini
- Hasil ini berasal dari lingkungan Codex CLI
Q4_K_M 24GB, dan bukan penilaian umum untuk Gemma 4 di Apple Silicon secara keseluruhan
Analisis kecepatan: mengapa Mac lebih cepat dari perkiraan
- Dengan llama-bench pada panjang konteks yang sama, Mac mengukur generasi token 5.1x lebih cepat daripada GB10
- Kedua mesin sama-sama memiliki bandwidth memori 273 GB/s LPDDR5X, sementara generasi token adalah pekerjaan yang dibatasi bandwidth memori
- 31B Dense membaca seluruh 31,2 miliar parameter pada setiap token (sekitar 17.4GB)
- 26B MoE hanya mengaktifkan 3,8 miliar parameter per token (sekitar 1.9GB)
- Pada bandwidth yang sama, Mac mencatat 52 tok/s, GB10 10 tok/s
- Kecepatan pemrosesan prompt juga lebih baik dari perkiraan di Mac: pada konteks 8K, Mac 531 tok/s vs GB10 548 tok/s, menunjukkan aktivasi sparse MoE juga menguntungkan untuk pemrosesan prompt
Pelajaran utama: tingkat keberhasilan percobaan pertama lebih penting daripada kecepatan token
- Mac memang 5.1x lebih cepat dalam generasi token, tetapi waktu penyelesaian akhir hanya 30% lebih singkat (4 menit 42 detik vs 6 menit 59 detik)
- Penyebab selisih waktu adalah percobaan ulang: 10 kali pemanggilan alat vs 3 kali, 5 kali gagal menulis tes, dan dead code yang tidak dibersihkan model
- Model cloud membuktikannya lebih jelas lagi: paling cepat, penggunaan token paling sedikit, tidak perlu repair pass, dan selesai 5/5 dalam 65 detik
- Namun, lokal tetap praktis, karena kedua mesin berhasil menghasilkan kode kerja yang lolos tes
- Lompatan kualitas dari Gemma 3 (tool calling 6.6%) ke Gemma 4 (86.4%) menjadi titik balik utama; transisi dari “tidak bekerja” ke “bekerja” inilah yang membuat agentic coding lokal menjadi praktis
- Catatan untuk hasil Mac:
Q4_K_M adalah kuantisasi tertinggi yang muat di mesin 24GB, dan hasilnya bisa berbeda bila dijalankan ulang dengan kuantisasi lebih tinggi di Apple Silicon yang memorinya lebih lega
- Pendekatan hibrida juga memungkinkan: gunakan
codex --profile local untuk tugas berulang dan sensitif privasi, lalu gunakan default cloud untuk tugas kompleks; sistem profil Codex CLI memungkinkan perpindahan hanya dengan satu flag
Tips praktis saat melakukan pengaturan
- Apple Silicon: Ollama tidak bisa dipakai untuk Gemma 4, jadi disarankan memakai llama.cpp +
--jinja
- Atur
web_search = "disabled" di profil Codex CLI
- Tunjuk path GGUF langsung dengan
-m, jangan gunakan -hf
- Atur konteks ke 32,768 (system prompt Codex CLI memerlukan minimal 27.000 token)
- Kuantisasi cache KV:
-ctk q8_0 -ctv q8_0
- NVIDIA GB10: Ollama v0.20.5 adalah jalur pertama yang bekerja stabil; gunakan
codex --oss -m gemma4:31b, dan bila mesinnya remote, buat SSH tunnel untuk port 11434
- Di pengaturan provider,
stream_idle_timeout_ms perlu disetel setidaknya ke 1,800,000, karena satu siklus pemanggilan alat di Mac memakan 1 menit 39 detik sehingga sesi akan berakhir dengan timeout default
- Disarankan mengunci versi llama.cpp, karena pernah dilaporkan ada penurunan performa 3.3x antar-build, sehingga benchmark bisa berubah drastis hanya dalam semalam
6 komentar
Saya sempat menjalankan Gemma4-31B di perusahaan dengan 2 kartu H100.
Secara umum, kalau menginginkan model yang kecil dan gesit, Gemma4 sepertinya sudah lebih dari cukup. Saya sempat mengganti dari GPT-OSS-120B → Qwen3.5-35B-A3B, lalu sekarang menetap di Gemma4-31B, dan saya cukup puas. Sepertinya akan terus saya pakai.
Wah, ternyata tidak bisa pakai pencarian web! Bahkan kalau sudah mengonfigurasi searxng juga tetap tidak bisa dipakai?
https://github.com/ysm-dev/skills/blob/main/skills/web-search/SKILL.md
Coba pakai ini sebagai pengganti skill tersebut hehe
Saya juga ingin mengecek apakah bahasa Korea didukung dengan baik.
Komentar Hacker News
Gemma 4 26B menunjukkan performa yang benar-benar luar biasa di antara model dengan skala parameter serupa
Dalam benchmark internal, nilainya mirip GPT 5.2 dan Gemini 3 Pro Preview, tetapi lemah dalam area coding berbasis agen dan pengambilan keputusan non-coding
Skornya turun pada penggunaan tool, perbaikan iteratif, dan pengelolaan konteks besar, bahkan performanya justru lebih rendah saat berada dalam situasi yang memerlukan tool
Kemungkinan model ini overfitting pada harness atau benchmark yang umum. Meski begitu, kecepatannya di Macbook seri M sangat mengejutkan
Benchmark bisa dilihat di gertlabs.com
Soalnya adalah “buat kalkulator 1D bin fitting dalam satu halaman web”; Qwen3.5, Nematron, Step 3.5, dan gpt-oss lolos, tetapi Gemma gagal
Namun di M5 saya, model ini lebih sering membuat kesalahan coding sederhana dibanding GPT-OSS. Meski begitu, secara umum levelnya tetap cukup dekat
Ada yang bilang hasil bahwa “kualitas model lebih penting daripada kecepatan token” itu mengejutkan
Sebenarnya terdengar cukup masuk akal. Alih-alih membatasi konteks ke 32k, operasi MoE juga bisa di-offload ke CPU dengan opsi
--cpu-moeJika hanya kecepatan token yang cepat, pada akhirnya ‘AI slop codebase’ akan meledak jumlahnya
Saat ini saya menjalankan
google/gemma-4-26b-a4bdi M3 Ultra (RAM 48GB) dengan LM Studio dan OpencodeSaya memang harus menaikkan konteks ke 65536, tetapi berjalan dengan baik. Integrasi dengan Zed dan ACP juga mudah
Saya terutama memakainya untuk code review sederhana atau pembuatan kode frontend
Karena system prompt dan overhead tool-nya kurang dari 2k token, latensi prefill jauh lebih pendek
Kecepatannya sekitar 100t/s jadi nyaris instan, dan saya semakin jarang memakai Claude Code
Sebagai chatbot masih oke, tetapi tidak cocok untuk integrasi XCode
Saat ini saya memanfaatkan 1500 request gratis per hari melalui Google API
Sebelum update LM Studio 0.4.11+1, tool calling tidak berfungsi, tetapi sekarang Codex dan Opencode sama-sama berjalan baik
Pernyataan bahwa “model lokal tidak bisa melakukan tool calling” itu salah
Saya sudah melakukan tool calling secara lokal sejak 2 tahun lalu, dan angka keberhasilan tool calling Gemma3 yang cuma 7% itu tidak masuk akal
Di Llama3.3 pun setidaknya angkanya mencapai 75%
Model yang terlalu dikuantisasi seperti Gemma 4 gguf Q4 (16GB) memang performanya turun banyak
Jika punya perangkat GB10, saya merekomendasikan setup spark-vllm-docker atau versi optimisasi Qwen 3.5 122B A10B. Kecepatannya cukup tinggi, sekitar 50tk/s
Saya upgrade dari M4 Pro (24GB) ke M5 Pro (48GB), dan Gemma 4 MoE (Q4) yang sama menunjukkan t/s 8 kali lebih cepat
Kecepatan loading dari disk ke memori juga meningkat 2 kali lipat
Pastikan memakai versi MLX. Versi kuantisasi komunitas mlx-lm baru-baru ini sudah diperbaiki
Di Macbook M1 16GB saya memang berat, tetapi di AMD Framework 13 dengan RAM 64GB, bahkan dengan CPU saja modelnya tetap cukup cepat
Fitur prompt cache berguna saat menyisipkan system prompt yang besar
Ada usulan ide harness yang menjalankan hardware lokal 24/7 untuk mengotomatisasi eksperimen dengan model seperti Gemma 4, lalu menyerahkan keputusan besar kepada Claude Opus
Strukturnya adalah model lokal menangani eksperimen kecil dan POC, lalu jika buntu meminta bantuan ke Opus
Dengan cara ini, prompt caching bisa dikendalikan sepenuhnya sehingga biayanya nyaris nol
Bisa lihat video demo dan repositori pi-model-switch
Untuk coding, kuantisasi di bawah Q6_K tidak ada gunanya
Pada kuantisasi yang lebih rendah, tingkat error kode naik sangat tajam
Selama memori memungkinkan, lebih baik gunakan kuantisasi setinggi mungkin
Akan bagus jika ada perbandingan kualitas berdasarkan metode kuantisasi seperti Q4_K_M, Q8_0, dan Q6_K. Rasanya itu akan lebih berguna daripada sekadar angka tok/s
Saya penasaran dengan perbandingan Qwen3.5 dan Gemma 4
Khususnya model Qwen3.5-27B-Claude-4.6-Opus yang dioptimalkan untuk tool calling dan sudah diunduh lebih dari 500 ribu kali
Model Qwen sering meminta perbaikan error saat orkestrasi, sehingga produktivitas turun
Saya menjalankannya dengan bobot untuk Ollama
Versi terbarunya adalah Qwopus3.5-27B-v3
Saya sudah memakai Gemma 4 selama beberapa hari, dan model ini cepat serta pintar, tetapi masalah penggunaan tool masih tetap ada
Produktivitas dibatasi bukan oleh kecepatan, melainkan oleh batas kecerdasannya. Model ini cukup sering masuk ke loop
Akan bagus jika situasi seperti ini bisa dideteksi lalu “meminta bantuan” ke model yang lebih pintar
Sekarang rasanya saya bekerja bukan lagi sebagai coder, melainkan orkestrator agen. Perannya adalah mengelola banyak agen yang berjalan paralel
chat_template.jinjadantokenizer_config.jsonuntuk gemma-4-31B-itKatanya masalah terkait tool calling sudah diperbaiki, jadi sebaiknya modelnya diupdate
Memang mudah menyiapkan LLM lokal dengan ollama, tetapi katanya kemungkinan pemanggilan tool gagal cukup tinggi tergantung model open source yang dipakai. Konon hal ini karena kombinasi aturan yang longgar di internal ollama dan masalah parser pemanggilan tool yang berbeda-beda untuk tiap model.
Masalah paling mendasar dari Local LLM justru adalah bahwa untuk menjalankan model menengah hingga besar dibutuhkan hardware yang mahal. MAC Studio 32GB harganya sekitar pertengahan 3 juta won, sedangkan GB10 sekitar 5~6 juta won, jadi cukup memberatkan jika dibeli perorangan hanya untuk hobi (?). Untuk Local LLM, pilihannya adalah model kecil, sementara untuk model menengah hingga besar pada akhirnya selain Cloud memang tidak banyak opsi.