Dipublikasikan 13 Juni 2026
Dependensi penuh pada API cloud untuk coding agent mulai terasa riskan saat koneksi internet bermasalah atau kuota API menipis. Untungnya, kemajuan model lokal seperti Gemma 4 dari Google kini memungkinkan kita menjalankan coding agent sepenuhnya offline dengan performa yang masih nyaman digunakan. Artikel ini adalah panduan lengkap untuk membangun local coding agent di macOS menggunakan Gemma 4 26B-A4B yang dijalankan melalui llama.cpp dengan Metal acceleration.
Setup yang dibahas di sini diuji pada Apple M1 Max dengan 64 GB unified memory, menjalankan macOS 15.7.7. Meski demikian, langkah-langkahnya dapat diadaptasi untuk Mac dengan spesifikasi berbeda asalkan memiliki RAM yang cukup besar untuk menampung model sekitar 17 GB.
Gemma 4 hadir dengan fitur Multi-Token Prediction (MTP) yang memungkinkan model memprediksi beberapa token sekaligus, mengurangi latency secara signifikan. Ketika dikombinasikan dengan llama.cpp yang sudah dioptimasi untuk Metal, hasilnya adalah generation speed sekitar 72 token per detik: cukup responsif untuk coding agent yang sering melakukan tool calls berulang kali.
Benchmark dari pengujian menunjukkan perbandingan yang menarik antara berbagai runtime di Mac:
llama.cpp Metal + MTP: 72.2 token/s
llama.cpp Metal saja: 58.2 token/s
MLX-LM 4-bit: 45.8 token/s
MLX-LM OptiQ 4-bit: 38.1 token/s
Hasil ini menunjukkan bahwa llama.cpp dengan MTP draft model adalah pilihan terbaik saat ini untuk Mac, bahkan mengungguli MLX yang secara khusus dioptimasi untuk Apple Silicon.
Pertama, install dependency yang diperlukan melalui Homebrew. Anda membutuhkan cmake, git, tmux, dan Python 3.11 untuk menjalankan server dan download model.
brew install cmake git tmux python@3.11Kemudian clone repositori llama.cpp dan build dengan Metal serta Accelerate framework aktif. Pastikan direktori kerja sudah disiapkan:
mkdir -p ~/Developer/ML-Models/Gemma4/repos
cd ~/Developer/ML-Models/Gemma4
git clone https://github.com/ggml-org/llama.cpp repos/llama.cpp
cd repos/llama.cpp
cmake -B build \n -DCMAKE_BUILD_TYPE=Release \n -DGGML_METAL=ON \n -DGGML_ACCELERATE=ON
cmake --build build --config Release -jBuild dengan Metal ON akan memastikan sebagian besar komputasi model dijalankan di GPU Apple Silicon, bukan di CPU yang jauh lebih lambat.
Buat virtual environment Python dan install huggingface_hub untuk mengunduh model:
cd ~/Developer/ML-Models/Gemma4
python3.11 -m venv .venv
source .venv/bin/activate
pip install -U huggingface_hub hf_xetDownload tiga file utama: model utama, multimodal projector, dan MTP draft model. Model utama yang direkomendasikan adalah gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf dengan ukuran sekitar 16 GB. Dengan projector dan draft model, total folder akan mencapai sekitar 17 GB:
mkdir -p models/unsloth-gemma-4-26B-A4B-it-GGUF
huggingface-cli download unsloth/gemma-4-26B-A4B-it-GGUF \n gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \n mmproj-BF16.gguf \n MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf \n --local-dir models/unsloth-gemma-4-26B-A4B-it-GGUFStruktur folder yang dihasilkan:
models/unsloth-gemma-4-26B-A4B-it-GGUF/
gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf
mmproj-BF16.gguf
MTP/gemma-4-26B-A4B-it-Q8_0-MTP.ggufIni adalah perintah server final yang mengaktifkan MTP speculative decoding. Parameter --spec-draft-n-max 3 adalah sweet spot untuk M1 Max, tapi Anda bisa bereksperimen dari 1 hingga 6 untuk menemukan nilai optimal per hardware:
repos/llama.cpp/build/bin/llama-server \n -m models/unsloth-gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf \n --model-draft models/unsloth-gemma-4-26B-A4B-it-GGUF/MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf \n --mmproj models/unsloth-gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf \n --spec-type draft-mtp \n --spec-draft-n-max 3 \n -ngl 999 \n -fa on \n -c 65536 \n --parallel 1 \n --host 127.0.0.1 \n --port 8080Server ini menyediakan endpoint OpenAI-compatible di http://127.0.0.1:8080/v1, sehingga kompatibel dengan berbagai coding agent seperti Pi, Claude Code, atau Continue.dev.
Untuk kemudahan, buat wrapper script start_server.sh yang menjalankan server dalam sesi tmux:
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=""
SESSION_NAME="gemma4-server"
LLAMA_SERVER="/repos/llama.cpp/build/bin/llama-server"
MODEL="/models/unsloth-gemma-4-26B-A4B-it-GGUF/gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf"
DRAFT_MODEL="/models/unsloth-gemma-4-26B-A4B-it-GGUF/MTP/gemma-4-26B-A4B-it-Q8_0-MTP.gguf"
MMPROJ="/models/unsloth-gemma-4-26B-A4B-it-GGUF/mmproj-BF16.gguf"
LOG_FILE="/logs/llama-server-mtp.log"
mkdir -p "/logs"
tmux new-session -d -s "" -c "" \n " \n -m \n --model-draft \n --mmproj \n --spec-type draft-mtp \n --spec-draft-n-max 3 \n -ngl 999 \n -fa on \n -c 65536 \n --parallel 1 \n --host 127.0.0.1 \n --port 8080 \n 2>&1 | tee -a "
chmod +x start_server.sh
./start_server.shTidak semua Mac merespons parameter MTP dengan cara yang sama. Tabel berikut menunjukkan hasil pengujian --spec-draft-n-max dari 1 sampai 6 pada M1 Max:
1: 68.4 token/s
2: 72.0 token/s
3: 72.2 token/s (tercepat)
4: 70.7 token/s
5: 63.7 token/s
6: 61.2 token/s
Dari data ini, nilai 3 adalah optimal untuk M1 Max, tapi nilai 2 sudah cukup dekat. Nilai di atas 4 justru menurunkan performa karena overhead speculative decoding melebihi keuntungannya.
Salah satu kelebihan Gemma 4 adalah kemampuan multimodal. Dengan projector mmproj-BF16.gguf yang sudah dimuat, model dapat menerima input gambar seperti screenshot. Ini berguna ketika coding agent perlu melihat tampilan aplikasi yang sedang dibangun.
Untuk mengaktifkan image support, pastikan model entry di coding agent dideklarasikan sebagai multimodal. Misalnya di Pi, ubah konfigurasi dari input: [text] menjadi input: [text, image]. Server llama.cpp akan otomatis mengadvertise kemampuan multimodal ketika --mmproj aktif.
Uji coba menunjukkan bahwa memuat projector tidak menurunkan speed text generation (tetap 72.2 token/s), jadi tidak ada downside mengaktifkannya.
Dengan kombinasi llama.cpp + Gemma 4 + MTP draft model, Mac Anda dapat menjadi workstation AI yang mandiri tanpa ketergantungan API cloud. Total investasi storage sekitar 17 GB, tapi hasilnya adalah coding agent yang responsif, multimodal, dan bebas biaya subscription. Setup ini ideal untuk developer yang sering bekerja di lokasi dengan koneksi terbatas atau yang ingin menjaga privasi kode tetap lokal.
Untuk detail lebih lanjut, Anda dapat merujuk ke repositori llama.cpp dan model Gemma 4 GGUF di Hugging Face.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu