Gemma 4 punya thinking mode bawaan yang memungkinkan model "bernalar dengan keras" sebelum memberimu jawaban. Ini seperti meminta seseorang menunjukkan pekerjaannya pada soal matematika — langkah ekstra sering mengarah ke jawaban yang lebih baik.
Tapi ini tidak selalu sepadan dengan trade-off-nya. Mari kita uraikan kapan menggunakannya dan kapan melewatinya.
Apa Itu Thinking Mode?
Dalam thinking mode, Gemma 4 menghasilkan rantai penalaran sebelum memproduksi jawaban akhir. Model pada dasarnya punya scratchpad internal di mana ia mengerjakan masalah langkah demi langkah.
Tanpa thinking:
User: Berapa 17 × 23?
Gemma 4: 391Dengan thinking:
User: Berapa 17 × 23?
Gemma 4: <think>
17 × 23
= 17 × 20 + 17 × 3
= 340 + 51
= 391
</think>
391Thinking terjadi di dalam tag <think>. Aplikasimu bisa menampilkan reasoning ini ke user atau menghapusnya dan hanya menggunakan jawaban akhir.
Cara Mengaktifkan Thinking Mode
Dengan Ollama
# Gunakan varian thinking dari model
ollama run gemma4:26b-thinkingAtau via API dengan parameter budget token:
import requests
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [
{"role": "user", "content": "Selesaikan: Jika 3x + 7 = 22, berapa x?"}
],
"options": {
"num_predict": 2048, # Izinkan cukup token untuk thinking
},
"stream": False,
})
print(response.json()["message"]["content"])Dengan System Prompt
Kamu juga bisa memicu perilaku thinking melalui system prompt:
messages = [
{
"role": "system",
"content": "Pikirkan langkah demi langkah sebelum menjawab. Tunjukkan reasoning-mu dalam tag <think>, lalu berikan jawaban akhir."
},
{
"role": "user",
"content": "Kereta berangkat Chicago jam 9 pagi dengan kecepatan 60 mph. Yang lain berangkat New York jam 10 pagi dengan kecepatan 80 mph menuju Chicago. Jaraknya 800 mil. Kapan mereka bertemu?"
}
]Budget Token
Beberapa implementasi memungkinkan kamu mengontrol berapa banyak thinking yang dilakukan model dengan budget:
# Lebih banyak budget = lebih banyak thinking = lebih lambat tapi lebih baik
response = requests.post("http://localhost:11434/api/chat", json={
"model": "gemma4:26b",
"messages": [{"role": "user", "content": "Tugas reasoning kompleks di sini..."}],
"options": {
"num_predict": 4096, # Budget lebih tinggi untuk ruang thinking lebih banyak
},
})Kapan Thinking Mode Membantu
Thinking mode bersinar di tugas yang membutuhkan reasoning multi-langkah:
Masalah matematika dan logika:
Tanpa thinking: "Jawabannya 42" (kadang salah)
Dengan thinking: Pekerjaan langkah-demi-langkah → jawaban benarCoding kompleks:
Tanpa thinking: Menghasilkan kode yang terlihat benar tapi punya bug halus
Dengan thinking: Bernalar tentang edge case, aliran data, lalu menghasilkan kode lebih bersihAnalisis dan perbandingan:
Tanpa thinking: Jawaban tingkat permukaan
Dengan thinking: Mempertimbangkan berbagai sudut, menimbang trade-offBerikut perbandingan praktis pada masalah yang sama:
| Tipe Masalah | Tanpa Thinking | Dengan Thinking | Peningkatan |
|---|---|---|---|
| Matematika dasar (2+2) | Benar | Benar | Tidak ada |
| Matematika multi-langkah | ~70% benar | ~90% benar | Signifikan |
| Teka-teki logika | ~50% benar | ~80% benar | Besar |
| Debug kode | Menemukan bug jelas | Menemukan bug halus | Signifikan |
| Q&A sederhana | Cepat, benar | Lebih lambat, benar | Tidak ada (lebih buruk: lebih lambat) |
| Terjemahan | Bagus | Kualitas sama | Tidak ada |
| Penulisan kreatif | Alur natural | Bisa terasa terlalu dipikirkan | Lebih buruk |
Kapan Melewati Thinking Mode
Jangan gunakan thinking mode untuk:
- Q&A sederhana: "Apa ibu kota Prancis?" tidak butuh chain of thought
- Terjemahan: Thinking mode menambah latensi tanpa meningkatkan kualitas terjemahan
- Penulisan kreatif: Reasoning ekstra bisa membuat output terasa kaku dan terlalu direncanakan
- Percakapan chat: Bolak-balik natural tidak mendapat manfaat dari reasoning formal
- Ekstraksi data: Menarik nama, tanggal, dan angka dari teks adalah pattern matching, bukan reasoning
- Aplikasi throughput tinggi: Jika kamu memproses ribuan permintaan, perlambatan 2-3x penting. Lihat panduan batch processing kami.
Dampak Performa
Thinking mode punya biaya nyata:
| Metrik | Tanpa Thinking | Dengan Thinking |
|---|---|---|
| Token yang dihasilkan | 100-500 | 300-2000 |
| Waktu ke jawaban | 1-5 detik | 3-15 detik |
| Penggunaan VRAM | Baseline | Sama (sedikit lebih banyak KV cache) |
| Kualitas jawaban (reasoning) | Bagus | Lebih baik |
| Kualitas jawaban (sederhana) | Bagus | Sama |
Model menghasilkan 2-5x lebih banyak token dalam thinking mode karena menulis reasoning-nya. Di Mac dengan Apple Silicon, ini berarti:
- M2 Pro 16GB: Jawaban sederhana dalam 2 dtk → Jawaban thinking dalam 6-8 dtk
- M4 Max 64GB: Jawaban sederhana dalam 1 dtk → Jawaban thinking dalam 3-4 dtk
Untuk chat interaktif, delay-nya terasa. Untuk batch processing, bisa menggandakan atau melipatgandakan waktu pemrosesan.
Contoh Praktis: Dengan vs Tanpa
Mari lihat masalah nyata:
Prompt: "Saya punya 3 bola merah, 5 bola biru, dan 2 bola hijau di tas. Jika saya mengambil 2 bola tanpa pengembalian, berapa probabilitas keduanya biru?"
Tanpa thinking:
Probabilitasnya adalah 5/10 × 4/9 = 20/90 = 2/9 ≈ 0.222Benar, tapi jika masalahnya lebih sulit, model mungkin melewatkan langkah dan salah.
Dengan thinking:
<think>
Total bola: 3 + 5 + 2 = 10
Bola biru: 5
Probabilitas bola pertama biru: 5/10
Setelah mengambil satu bola biru:
- Bola tersisa: 9
- Biru tersisa: 4
Probabilitas bola kedua biru: 4/9
Probabilitas gabungan: 5/10 × 4/9 = 20/90 = 2/9
</think>
Probabilitas mengambil 2 bola biru adalah 2/9, atau sekitar 22.2%.Jawaban sama, tapi versi thinking lebih mungkin menangkap error pada masalah yang lebih sulit karena secara eksplisit melacak state pada setiap langkah.
Menggabungkan Thinking dengan Fitur Lain
Thinking + JSON output: Gunakan thinking mode untuk reasoning, lalu output JSON terstruktur:
messages = [
{
"role": "system",
"content": """Pikirkan masalahnya dalam tag <think>.
Lalu output jawaban akhir sebagai JSON (tanpa teks lain setelah JSON):
{"answer": number, "confidence": number, "reasoning_summary": string}"""
},
{"role": "user", "content": "Masalah kompleks di sini..."}
]Untuk lebih banyak tentang structured output, lihat panduan JSON output kami.
Thinking + model fine-tuned: Jika kamu telah fine-tune Gemma 4 untuk domain spesifik, thinking mode masih bisa meningkatkan kualitas reasoning pada masalah domain-spesifik kompleks.
Langkah Selanjutnya
- Coba thinking mode dengan model berbeda: panduan pemilihan model
- Gabungkan dengan structured output: panduan JSON output
- Jalankan thinking mode secara lokal: panduan setup Ollama
- Lihat performa di hardware-mu: panduan performa Mac
Stop reading. Start building.
~/gemma4 $ Get hands-on with the models discussed in this guide. No deployment, no friction, 100% free playground.
Launch Playground />


