AI Tutorials
Gemma 4 Rilis: Tutorial Lengkap AI Open Source Google
Daftar isi
- Apa Itu Gemma 4 dan Kenapa Ini Penting?
- Problem: Kenapa Model AI Open Source Selama Ini Terasa "Kurang"?
- Memilih Ukuran Model yang Tepat: Perbandingan Empat Varian Gemma 4
- Kapan Pakai yang Mana?
- Prasyarat: Apa yang Kamu Butuhin Sebelum Mulai?
- Hardware
- Software
- Pengetahuan Dasar
- Step 1: Install Environment dan Dependencies
- 1.1 Bikin Virtual Environment
- 1.2 Install Library Inti
- 1.3 Verifikasi Instalasi
- Common Error: "CUDA out of memory" saat Load Model
- Step 2: Download Model Gemma 4 dari Hugging Face
- 2.1 Login ke Hugging Face
- 2.2 Download Model Manual (Opsional)
- 2.3 Verifikasi Model Sudah Terdownload
- Step 3: Load Model dan Bikin Inferensi Pertama
- 3.1 Load Model E2B (Paling Ringan)
- 3.2 Load Model 31B dengan Quantization (Untuk GPU Konsumen)
- 3.3 Common Error: "Token indices sequence length is longer than the specified maximum sequence length"
- Step 4: Menggunakan Thinking Variants untuk Reasoning Kompleks
- 4.1 Aktifkan Mode Thinking
- 4.2 Kontrol Output dengan System Instruction
- Step 5: Multimodal — Proses Gambar dan Video
- 5.1 Proses Gambar dengan Gemma 4
- 5.2 Proses Video Frame-by-Frame
- Common Error: "Image size too large" atau OOM saat Proses Video
- Step 6: Function Calling dan Agentic Workflows
- 6.1 Definisikan Tools/Fungsi
- 6.2 Jalankan Agent Loop
Google baru saja merilis Gemma 4, generasi terbaru dari keluarga model AI open source mereka, dan ini bukan rilis biasa. Dibangun dari riset dan teknologi yang sama dengan Gemini 3, Gemma 4 hadir dengan kemampuan penalaran tingkat lanjut, dukungan multimodal, lisensi Apache 2.0 yang benar-benar bebas dipakai komersial, dan bisa dijalankan langsung di laptop atau bahkan HP kamu — tanpa internet. Dalam tutorial ini, MUGHU bakal ajak Teman-Teman kenalan lebih dekat sama Gemma 4, sekaligus praktek langsung mulai dari instalasi sampai bikin aplikasi AI pertama kamu.
Gemma 4 adalah model AI open source dari Google DeepMind yang dibangun dari riset di balik Gemini, dirilis dengan lisensi Apache 2.0, dan tersedia dalam empat ukuran: E2B, E4B, 26B A4B (MoE), dan 31B Dense.
Sejak generasi pertama diluncurkan Februari 2024, model Gemma sudah diunduh lebih dari 400 juta kali dan komunitas sudah bikin lebih dari 100.000 varian. Gemma 4 ini adalah lompatan paling signifikan sejauh ini — bukan cuma update kecil, tapi perombakan arsitektur yang bikin model ini jauh lebih cerdas per parameter dibanding pendahulunya.
Apa Itu Gemma 4 dan Kenapa Ini Penting?
Sederhananya, Gemma 4 adalah keluarga model AI yang bisa kamu unduh, inspeksi, fine-tune, dan deploy di infrastruktur kamu sendiri. Beda sama Gemini yang jadi layanan cloud tertutup, Gemma 4 memberi kamu kendali penuh atas data, model, dan infrastruktur.
MUGHU udah ngikutin perkembangan Gemma sejak generasi pertama tahun 2024. Waktu itu, model 2B dan 7B pertama terasa kayak "mainan" — cukup oke buat eksperimen, tapi belum siap produksi. Gemma 2 naik kelas, Gemma 3 mulai menunjukkan taring, tapi tetap aja ada celah. Gemma 4 ini beda. Ini pertama kalinya MUGHU merasa model open source dari Google benar-benar bisa dipakai serius untuk workflow produksi.
Beberapa hal yang bikin Gemma 4 rilis ini istimewa:
-
Lisensi Apache 2.0 — komersial, bebas royalti, bebas modifikasi. Tidak ada jebakan.
-
Thinking variants — model dilatih buat nalar langkah demi langkah sebelum jawab.
-
Mixture-of-Experts (MoE) — model 26B cuma aktifkan 3.8B parameter per token, jadi cepat tapi tetap pinter.
-
Multimodal native — semua varian bisa proses teks, gambar, dan video. Varian edge (E2B, E4B) juga dukung audio.
-
140+ bahasa — termasuk Bahasa Indonesia.
-
Context window 128K–256K token — cukup buat masukin repositori kode atau dokumen panjang.
Problem: Kenapa Model AI Open Source Selama Ini Terasa "Kurang"?
Jujur, selama ini banyak developer di Indonesia — termasuk MUGHU sendiri — ngalamin masalah yang sama sama berulang: model AI open source yang bagus biasanya butuh hardware mahal, yang ringan biasanya kurang pinter, dan yang lisensinya longgar seringkali performanya nggak kompetitif.
Pain point utama yang sering MUGHU temuin:
-
Model open source ukuran kecil (2B–7B) sering nggak cukup pinter buat task kompleks kayak coding atau reasoning multi-langkah.
-
Model yang pinter (13B ke atas) butuh GPU mahal. Di Indonesia, akses GPU cloud nggak semurah di US.
-
Lisensi yang ambigu — beberapa model "open" ternyata punya batasan komersial tersembunyi.
-
Dukungan bahasa Indonesia yang minim — banyak model cuma pinter di bahasa Inggris.
-
Tidak ada dukungan multimodal native — harus pasang adapter atau model terpisah buat proses gambar/audio.
Gemma 4 mencoba jawab semua ini sekaligus. Dan dari pengalaman MUGHU ngoprek beberapa minggu terakhir, hasilnya lumayan meyakinkan.
Memilih Ukuran Model yang Tepat: Perbandingan Empat Varian Gemma 4
Sebelum mulai ngoprek, kita perlu paham dulu empat varian yang ada. MUGHU bikin tabel perbandingan biar gampang:
Varian | Arsitektur | Parameter Aktif | Target Hardware | Context Window | Multimodal |
|---|---|---|---|---|---|
E2B | Dense | 2B | HP, Raspberry Pi, Jetson Nano | 128K | Teks, Gambar, Video, Audio |
E4B | Dense | 4B | HP flagship, tablet, edge devices | 128K | Teks, Gambar, Video, Audio |
26B A4B | MoE | 3.8B (dari 26B total) | GPU konsumen (RTX 4090, dll) | 256K | Teks, Gambar, Video |
31B | Dense | 31B | 1x H100 80GB atau GPU konsumen (quantized) | 256K | Teks, Gambar, Video |
Kapan Pakai yang Mana?
-
E2B — pas buat aplikasi mobile yang butuh inferensi offline di HP kelas menengah. MUGHU pernah coba jalanin ini di Redmi Note 13 dan lancar tanpa keluhan.
-
E4B — kalau target kamu HP flagship (Pixel, Galaxy S series, iPhone class) atau perangkat IoT yang lebih powerful. Lebih pinter dari E2B, tapi tetap hemat RAM dan baterai.
-
26B A4B — ini sweet spot buat developer lokal di Indonesia yang punya GPU konsumen. MoE-nya bikin inferensi cepat banget karena cuma aktifkan 3.8B parameter, tapi kualitasnya mendekati 31B.
-
31B — kalau kamu butuh kualitas maksimal dan punya akses GPU kelas H100 atau setidaknya RTX 4090 dengan quantization. Ini model dense yang paling pinter di keluarganya.
Untuk sebagian besar developer di Indonesia yang nggak punya akses GPU kelas datacenter, 26B A4B adalah pilihan terbaik. MoE-nya bikin inferensi cepat, kualitasnya hampir setara 31B, dan versi quantized-nya bisa jalan di GPU konsumen.
Prasyarat: Apa yang Kamu Butuhin Sebelum Mulai?
Sebelum kita mulai praktek, pastikan setup kamu udah memenuhi syarat minimum. MUGHU kasih list lengkapnya di sini:
Hardware
-
Untuk E2B/E4B: Laptop dengan minimal 8GB RAM, atau HP Android dengan minimal 6GB RAM (disarankan 8GB+).
-
Untuk 26B A4B (quantized): GPU dengan minimal 12GB VRAM (RTX 3060 12GB bisa, tapi RTX 4090 24GB lebih ideal).
-
Untuk 31B (quantized): GPU dengan 16–24GB VRAM, atau multi-GPU setup.
-
Untuk 31B (unquantized): 1x NVIDIA H100 80GB atau equivalent.
Software
-
Python 3.10 atau lebih baru
-
pip (sudah termasuk di Python installer)
-
Git
-
Untuk GPU NVIDIA: CUDA 12.1+ dan cuDNN
-
Untuk Mac: macOS 13.5+ (untuk MLX)
Pengetahuan Dasar
MUGHU asumsikan Teman-Teman udah sedikit familiar dengan:
-
Command line / terminal
-
Python dasar (bisa baca dan nulis script sederhana)
-
Konsep dasar AI/ML (tahu apa itu model, token, prompt)
Kalau kamu belum pernah ngoding Python sama sekali, nggak perlu khawatir. MUGHU bakal jelasin setiap langkah dengan detail, dan kalau ada yang nggak jelas, tinggal skip dulu bagian yang terlalu teknis dan balik lagi nanti.
Step 1: Install Environment dan Dependencies
Langkah pertama yang paling penting adalah setup environment yang bersih. Jangan asal install di system Python — pakai virtual environment biar nggak bikin berantakan.
1.1 Bikin Virtual Environment
# Bikin folder project
mkdir gemma4-tutorial
cd gemma4-tutorial
# Bikin virtual environment
python -m venv venv
# Aktifkan (Linux/macOS)
source venv/bin/activate
# Aktifkan (Windows)
venv\Scripts\activate
Kenapa ini penting? Virtual environment ngisolasi dependency project kamu dari system Python. Kalau nanti ada konflik versi library, nggak bakal ngaruh ke project lain atau sistem operasi. MUGHU dulu pernah nggak pakai venv dan akhirnya harus reinstall Python di laptop — belajaran mahal.
1.2 Install Library Inti
# Install PyTorch (sesuaikan dengan GPU kamu)
# Untuk NVIDIA GPU dengan CUDA 12.1:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# Untuk Mac (Apple Silicon):
pip install torch torchvision torchaudio
# Untuk CPU-only:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
Lalu install library tambahan:
# Install Hugging Face Transformers dan dependencies
pip install transformers accelerate sentencepiece
# Untuk multimodal (proses gambar/video)
pip install pillow av
# Untuk quantization (hemat VRAM)
pip install bitsandbytes
# Opsional: vLLM untuk inferensi cepat
pip install vllm
1.3 Verifikasi Instalasi
import torch
print(f"PyTorch version: {torch.__version__}")
print(f"CUDA available: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"GPU: {torch.cuda.get_device_name(0)}")
print(f"VRAM: {torch.cuda.get_device_properties(0).total_memory / 1e9:.1f} GB")
Output yang diharapkan (contoh dengan RTX 4090):
PyTorch version: 2.5.1+cu121
CUDA available: True
GPU: NVIDIA GeForce RTX 4090
VRAM: 23.7 GB
Kalau CUDA available: False, berarti PyTorch nggak kedeteksi GPU kamu. Kemungkinan besar versi CUDA di sistem nggak cocok dengan PyTorch yang kamu install. Cek dengan nvidia-smi di terminal buat lihat versi CUDA yang terinstall.
Common Error: "CUDA out of memory" saat Load Model
Ini error paling sering MUGHU temuin, terutama kalau kamu coba load model 31B di GPU kecil. Solusinya:
# Pakai quantization 4-bit
pip install bitsandbytes
Nanti di kode, kita pakai konfigurasi quantization buat ngurangin penggunaan VRAM. MUGHU bahas ini detail di Step 3.
Step 2: Download Model Gemma 4 dari Hugging Face
Gemma 4 tersedia di beberapa platform, tapi yang paling gampang buat developer di Indonesia adalah Hugging Face. Kaggle dan Ollama juga bisa, tapi Hugging Face paling fleksibel buat fine-tuning dan deployment custom.
2.1 Login ke Hugging Face
Beberapa model Gemma 4 butuh autentikasi. Bikin akun gratis di Hugging Face dulu kalau belum punya.
# Install Hugging Face CLI
pip install huggingface-hub
# Login (bakal minta token)
huggingface-cli login
Masukkan token yang bisa kamu dapet dari Settings → Access Tokens di akun Hugging Face kamu. Pilih token dengan permission "Read".
2.2 Download Model Manual (Opsional)
Kalau koneksi internet kamu nggak stabil — dan jujur, di Indonesia ini sering terjadi — download manual lewat git clone bisa lebih reliable:
# Clone model E2B (sekitar 5GB)
git clone https://huggingface.co/google/gemma-4-e2b-it
# Clone model 31B (sekitar 62GB, pastikan disk space cukup)
git clone https://huggingface.co/google/gemma-4-31b-it
Tips untuk koneksi Indonesia: Kalau download lewat git clone sering putus, pakai Git LFS dan set retry count lebih tinggi:
git config --global http.lowSpeedLimit 0dangit config --global http.lowSpeedTime 999999.
2.3 Verifikasi Model Sudah Terdownload
# Cek ukuran folder model
du -sh gemma-4-e2b-it/
# Cek file yang ada
ls -la gemma-4-e2b-it/
Output yang diharapkan:
5.2G gemma-4-e2b-it/
total 48M
-rw-r--r-- config.json
-rw-r--r-- generation_config.json
-rw-r--r-- model-00001-of-00003.safetensors
-rw-r--r-- model-00002-of-00003.safetensors
-rw-r--r-- model-00003-of-00003.safetensors
-rw-r--r-- model.safetensors.index.json
-rw-r--r-- tokenizer.json
-rw-r--r-- tokenizer_config.json
Kalau file .safetensors nggak ada atau ukurannya kecil banget, kemungkinan download belum selesai. Coba ulang atau pakai metode alternatif.
Step 3: Load Model dan Bikin Inferensi Pertama
Sekarang bagian serunya — kita load model dan bikin inferensi pertama. MUGHU mulai dari contoh paling sederhana dulu, lalu naik ke yang lebih kompleks.
3.1 Load Model E2B (Paling Ringan)
Bikin file basic_inference.py:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# Path ke model yang udah didownload (atau pakai nama repo Hugging Face)
model_id = "google/gemma-4-e2b-it"
print("Loading tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(model_id)
print("Loading model...")
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto", # Otomatis pilih device (GPU kalau ada, CPU kalau nggak)
)
print("Model loaded successfully!")
# Bikin prompt sederhana
prompt = "Jelaskan apa itu kecerdasan buatan dengan bahasa sederhana."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
# Generate output
print("Generating response...")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
# Decode dan tampilkan
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("\n" + "="*50)
print("RESPONSE:")
print("="*50)
print(response)
Output yang diharapkan:
Loading tokenizer...
Loading model...
Model loaded successfully!
Generating response...
==================================================
RESPONSE:
==================================================
<bos>Jelaskan apa itu kecerdasan buatan dengan bahasa sederhana.
Kecerdasan buatan (AI) adalah teknologi yang membuat komputer atau mesin bisa meniru kemampuan berpikir manusia. Bayangkan komputer yang bisa belajar dari pengalaman, mengenali pola, dan membuat keputusan — mirip seperti cara kita belajar, tapi jauh lebih cepat dan bisa memproses data dalam jumlah sangat besar.
Ada beberapa jenis AI yang sering kita jumpai sehari-hari...
Kenapa kita pakai bfloat16? Tipe data bfloat16 (Brain Floating Point 16-bit) mengurangi penggunaan memori separuh dari float32, tanpa ngilangin kualitas output yang signifikan. Gemma 4 dilatih dan dioptimalkan dengan bfloat16, jadi ini format native-nya.
3.2 Load Model 31B dengan Quantization (Untuk GPU Konsumen)
Kalau kamu punya RTX 4090 (24GB VRAM) dan mau coba model 31B, kamu butuh quantization 4-bit biar muat:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
# Konfigurasi quantization 4-bit
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_use_double_quant=True,
)
model_id = "google/gemma-4-31b-it"
print("Loading tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(model_id)
print("Loading model with 4-bit quantization...")
model = AutoModelForCausalLM.from_pretrained(
model_id,
quantization_config=quantization_config,
device_map="auto",
)
# Prompt yang lebih kompleks untuk test reasoning
prompt = """<bos><start_of_turn>user
Buatkan function Python untuk menghitung Fibonacci dengan memoization.
Jelaskan kenapa memoization lebih efisien dibanding rekursi biasa.<end_of_turn>
<start_of_turn>model
"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
print("Generating response...")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Catatan VRAM: Dengan quantization 4-bit, model 31B butuh sekitar 18–20GB VRAM. Di RTX 4090 (24GB), ini muat tapi agak sesak. Kalau kamu juga butuh VRAM buat proses gambar, pertimbangkan model 26B A4B yang lebih hemat.
3.3 Common Error: "Token indices sequence length is longer than the specified maximum sequence length"
Error ini muncul kalau prompt kamu lebih panjang dari context window yang di-set. Solusinya:
# Cek max length tokenizer
print(f"Max length: {tokenizer.model_max_length}")
# Kalau perlu, set manual (jangan melebihi context window model)
tokenizer.model_max_length = 128000 # untuk E2B/E4B
# atau
tokenizer.model_max_length = 256000 # untuk 26B/31B
Step 4: Menggunakan Thinking Variants untuk Reasoning Kompleks
Salah satu fitur paling keren di Gemma 4 rilis adalah Thinking variants. Model ini dilatih buat nalar langkah demi langkah sebelum kasih jawaban akhir — mirip kayak konsep chain-of-thought, tapi built-in.
4.1 Aktifkan Mode Thinking
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "google/gemma-4-31b-it" # atau varian lain
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
# Prompt dengan system instruction untuk thinking
system_prompt = """You are a helpful assistant. Before answering, think through the problem step by step. Show your reasoning process."""
user_prompt = "Sebuah toko memberikan diskon 20% untuk semua barang. Jika seorang pelanggan membeli 3 barang dengan harga masing-masing Rp 150.000, Rp 200.000, dan Rp 350.000, berapa total yang harus dibayar setelah diskon?"
# Format chat
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt},
]
# Apply chat template
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
print("Thinking...\n")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=1024,
temperature=0.6,
top_p=0.95,
do_sample=True,
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
Output yang diharapkan:
Thinking...
Let me work through this step by step.
Step 1: Calculate the original total price.
- Item 1: Rp 150.000
- Item 2: Rp 200.000
- Item 3: Rp 350.000
- Total before discount: Rp 150.000 + Rp 200.000 + Rp 350.000 = Rp 700.000
Step 2: Calculate the discount amount.
- Discount rate: 20%
- Discount amount: Rp 700.000 × 0.20 = Rp 140.000
Step 3: Calculate the final price.
- Final price: Rp 700.000 - Rp 140.000 = Rp 560.000
Jadi, total yang harus dibayar setelah diskon adalah Rp 560.000.
Kenapa mode thinking penting? Untuk task yang butuh penalaran — kayak matematika, coding, atau analisis logis — model yang "berpikir" dulu menghasilkan jawaban yang jauh lebih akurat. Benchmark AIME 2026 (soal matematika kompetisi) menunjukkan Gemma 4 31B IT Thinking mencapai 89.2%, sementara Gemma 3 27B IT cuma 20.8%. Bedanya luar biasa.
4.2 Kontrol Output dengan System Instruction
Gemma 4 dukung native system instructions, jadi kamu bisa set "persona" model tanpa prompt engineering yang rumit:
messages = [
{
"role": "system",
"content": "Kamu adalah asisten programming yang berpengalaman. Jawab pertanyaan dengan contoh kode yang lengkap dan runnable. Selalu jelaskan trade-off dari setiap pendekatan."
},
{
"role": "user",
"content": "Bagaimana cara bikin REST API sederhana dengan FastAPI?"
},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=1024,
temperature=0.7,
do_sample=True,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Step 5: Multimodal — Proses Gambar dan Video
Gemma 4 dukung multimodal native. Semua varian bisa proses gambar dan video, dan varian edge (E2B, E4B) juga dukung audio. MUGHU demo yang paling seru: bikin OCR engine lokal yang jalan di laptop tanpa internet.
5.1 Proses Gambar dengan Gemma 4
import torch
from transformers import AutoProcessor, AutoModelForImageTextToText
from PIL import Image
model_id = "google/gemma-4-e4b-it"
print("Loading processor and model...")
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
# Load gambar
image = Image.open("contoh_invoice.jpg")
# Bikin prompt
prompt = "Baca semua teks yang ada di gambar ini dan strukturnya dalam format JSON dengan field: nama_toko, tanggal, items (array), dan total."
# Prepare inputs
inputs = processor(
text=prompt,
images=image,
return_tensors="pt",
).to(model.device)
# Generate
print("Processing image...")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.3, # Suhu rendah untuk output yang lebih konsisten
do_sample=True,
)
response = processor.decode(outputs[0], skip_special_tokens=True)
print(response)
Output yang diharapkan (dengan gambar invoice fiktif):
{
"nama_toko": "Toko Elektronik Maju Jaya",
"tanggal": "2026-03-15",
"items": [
{"nama": "Kabel HDMI 2m", "harga": 75000, "qty": 2},
{"nama": "Mouse Wireless Logitech", "harga": 185000, "qty": 1},
{"nama": "USB Hub 4 Port", "harga": 95000, "qty": 1}
],
"total": 430000
}
Kenapa temperature 0.3? Untuk task kayak OCR atau ekstraksi data terstruktur, kita mau output yang konsisten dan nggak terlalu "kreatif." Temperature rendah bikin model lebih deterministik.
5.2 Proses Video Frame-by-Frame
import torch
import av
from PIL import Image
from transformers import AutoProcessor, AutoModelForImageTextToText
model_id = "google/gemma-4-e4b-it"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
def extract_frames(video_path, max_frames=8):
"""Ekstrak frame dari video dengan interval merata."""
container = av.open(video_path)
total_frames = container.streams.video[0].frames
indices = set([
int(total_frames * i / max_frames)
for i in range(max_frames)
])
frames = []
for i, frame in enumerate(container.decode(video=0)):
if i in indices:
img = frame.to_image()
frames.append(img)
container.close()
return frames
# Ekstrak frame
frames = extract_frames("presentasi_produk.mp4", max_frames=4)
# Bikin prompt
prompt = "Jelaskan apa yang terjadi di video ini berdasarkan frame-frame yang ditampilkan."
# Process
inputs = processor(
text=prompt,
images=frames,
return_tensors="pt",
).to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
do_sample=False, # Greedy decoding untuk deskripsi faktual
)
print(processor.decode(outputs[0], skip_special_tokens=True))
Common Error: "Image size too large" atau OOM saat Proses Video
Model multimodal butuh VRAM ekstra buat proses gambar/video. Kalau kamu kena OOM:
-
Kurangi jumlah frame yang diekstrak (misal dari 8 ke 4 atau 2).
-
Resize gambar sebelum diproses:
image = image.resize((512, 512)). -
Pakai model yang lebih kecil (E2B daripada E4B).
-
Aktifkan gradient checkpointing:
model.gradient_checkpointing_enable().
Step 6: Function Calling dan Agentic Workflows
Ini fitur yang MUGHU paling seru eksplorin. Gemma 4 punya dukungan native buat function calling — model bisa "memanggil" fungsi eksternal, terima hasilnya, dan lanjut proses. Ini bikin kamu bisa bikin AI agent yang beneran otonom.
6.1 Definisikan Tools/Fungsi
import torch
import json
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "google/gemma-4-26b-a4b-it"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
# Definisikan tools yang bisa dipanggil model
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Mendapatkan informasi cuaca untuk kota tertentu",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Nama kota, misal: Jakarta, Bandung, Surabaya"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "Satuan suhu"
}
},
"required": ["city"]
}
}
},
{
"type": "function",
"function": {
"name": "calculate_currency",
"description": "Mengkonversi mata uang dari satu ke lain",
"parameters": {
"type": "object",
"properties": {
"amount": {"type": "number", "description": "Jumlah uang"},
"from_currency": {"type": "string", "description": "Mata uang asal (mis: IDR)"},
"to_currency": {"type": "string", "description": "Mata uang tujuan (mis: USD)"}
},
"required": ["amount", "from_currency", "to_currency"]
}
}
}
]
# Implementasi fungsi-fungsi tersebut
def get_weather(city: str, unit: str = "celsius") -> dict:
"""Simulasi API cuaca (di production, panggil API beneran)."""
weather_data = {
"Jakarta": {"temp": 32, "condition": "Cerah", "humidity": 75},
"Bandung": {"temp": 24, "condition": "Berawan", "humidity": 80},
"Surabaya": {"temp": 34, "condition": "Cerah", "humidity": 70},
}
data = weather_data.get(city, {"temp": 28, "condition": "Tidak diketahui", "humidity": 75})
if unit == "fahrenheit":
data["temp"] = data["temp"] * 9/5 + 32
return data
def calculate_currency(amount: float, from_currency: str, to_currency: str) -> dict:
"""Simulasi konversi mata uang."""
rates = {"IDR_USD": 0.000064, "USD_IDR": 15625, "IDR_SGD": 0.000086}
key = f"{from_currency}_{to_currency}"
rate = rates.get(key, 1)
return {"amount": amount, "from": from_currency, "to": to_currency, "result": round(amount * rate, 2)}
6.2 Jalankan Agent Loop
def run_agent(user_message: str, max_turns: int = 5):
"""Jalankan agent loop dengan function calling."""
messages = [
{"role": "system", "content": "Kamu adalah asisten yang bisa memanggil fungsi untuk membantu pengguna. Gunakan fungsi yang tersedia ketika diperlukan."},
{"role": "user", "content": user_message},
]
for turn in range(max_turns):
# Format prompt dengan tools
prompt = tokenizer.apply_chat_template(
messages,
tools=tools,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.1,
do_sample=True,
)
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
# Cek apakah model mau panggil fungsi
if "tool_call" in response_text.lower() or "
```python
# Cek apakah model mau panggil fungsi
if "tool_call" in response_text.lower() or "
---
Kesimpulan
Gemma 4 membuka pintu yang sangat lebar bagi pengembang Indonesia yang ingin membangun AI agent secara mandiri — tanpa bergantung pada API berbayar yang mahal. Sepanjang artikel ini, kita telah menelusuri bagaimana model open-source dari Google ini bisa diintegrasikan dengan function calling, mulai dari definisi tools seperti `get_weather` dan `calculate_currency`, hingga implementasi agent loop yang memungkinkan model mengambil keputusan secara otomatis. Kombinasi kemampuan reasoning yang mumpuni dan ukuran model yang relatif ramping menjadikannya pilihan praktis untuk skenario produksi maupun eksperimen pribadi.
Yang menarik dari perjalanan implementasi di atas adalah betapa dekatnya jarak antara "membaca dokumentasi" dan "memiliki agent yang berjalan." Dengan beberapa baris Python, tokenizer bawaan, dan template chat yang sudah mendukung tools, kamu sudah bisa menyusun pipeline lengkap — dari menerima input pengguna, memutuskan fungsi mana yang dipanggil, hingga mengembalikan hasil dalam format yang terstruktur. Tentu saja, di lingkungan production sungguhan, kamu perlu mengganti simulasi data dengan API nyata, menambahkan error handling yang lebih ketat, dan menguji edge cases secara menyeluruh. Tapi fondasinya sudah ada di tanganmu sekarang.
Dari sisi perbandingan praktis, Gemma 4 unggul dalam hal transparansi bobot dan fleksibilitas deployment — kamu bisa menjalankannya di mesin lokal, server on-premise, atau cloud dengan kontrol penuh atas data. Ini menjadi pertimbangan serius ketika privasi pengguna dan latensi respons adalah prioritas, terutama untuk aplikasi yang melayani pengguna di Indonesia dengan kebutuhan pemrosesan bahasa yang spesifik. Untuk memperdalam pemahaman tentang arsitektur dan kemampuan penuh Gemma, dokumentasi resmi di [Google AI for Developers](https://ai.google.dev/gemma) menyediakan panduan teknis yang komprehensif.
Sekarang giliranmu untuk beraksi. Ambil kode dari artikel ini, sesuaikan tools-nya dengan kebutuhanmu — entah itu untuk chatbot layanan publik, asisten keuangan pribadi, atau integrasi API lokal — dan mulai bereksperimen. Ekosistem AI open-source bergerak sangat cepat, dan mereka yang mulai membangun hari ini akan berada satu langkah di depan besok. Selamat ngoding, dan jangan ragu untuk berbagi hasil eksperimenmu dengan komunitas pengembang Indonesia.
Referensi
Google AI for Developers. (2026). Rilis Gemma
Google DeepMind. (2026). Gemma 4
Google AI for Developers. (2026). Gemma releases
IDN Times. (2026). Google Rilis Gemma 4, Model AI Open Source Terbaru
Hugging Face. (2026). Gemma 4: Unsloth Collection
Kompas. (2026). Google Rilis Gemma 4, Model AI "Terbuka" dengan Dukungan 140 Bahasa
Google DeepMind. (2026). Gemma 4
Android Developers. (2026). Gemma 4: The new standard for local agentic intelligence on Android
Google. (2026). Gemma 4: Our most capable open models to date
Pikiran Rakyat. (2026). Google Rilis Gemma 4, Model AI Canggih yang Bisa Dipakai Gratis Tanpa Internet
Komentar (0)
Belum ada komentar. Jadilah yang pertama berbagi pendapat!
Tinggalkan komentar