Resep Masakan Indonesia Gemma 4
A fine-tune of google/gemma-4-e2b-it that writes Indonesian recipes the way Indonesian home cooks actually write them — short, structured, and with the right bumbu.
What this model is for
Give it a dish title in Bahasa Indonesia, get back a recipe in the standard Indonesian home-cook format:
Bahan:
- 500 gr ikan kering
- 5 siung bawang merah
- 3 siung bawang putih
- 1 buah tomat
- ...
Langkah:
1. Goreng ikan kering hingga matang dan kering.
2. Tumis bumbu halus hingga harum...
6. Sajikan hangat.
What it does better than the base Gemma 4 E2B
I fine-tuned the base model on 66K real Indonesian recipes (mainly home cooking — ayam, sapi, ikan, kambing, tahu, tempe, telur, udang). Compared to the stock google/gemma-4-e2b-it:
| Stock Gemma 4 E2B | This model | |
|---|---|---|
| Recipe format consistency | Mostly OK | Always Bahan + Langkah |
| Recipe length vs real recipes | ~50% too long, rambles | Matches real recipes — concise |
Knows Indonesian recipe vocabulary (tumis, koreksi rasa, Sajikan) |
Sometimes uses unnatural phrasing | Uses the natural words home cooks use |
| Common Indonesian dishes (Rendang, Pepes, Tumis, Sambal) | Often misses key ingredients | Better ingredient profiles for common dishes |
| Indonesian fluency | Good (5/5) | Good (~4.6/5 — small artifact rate) |
Overall on a 50-recipe blind eval against real home-cook references: +12% quality vs the stock base.
What it does NOT do well
Be honest with yourself about what to expect:
- Regional / less-common dishes (e.g. Tahu Thek, Sosis Solo, Tempe Mendoan, Cabe Gendot) — the model will give you a generic recipe that ignores the specific dish identity. The training data didn't have enough examples.
- Special diet modifiers (MPASI baby food, DEBM low-carb diet, etc.) — it ignores these qualifiers and gives a normal recipe.
- Defining secret ingredients — Padang dishes might be missing santan; "kuning" dishes might miss kunyit/asam jawa.
For these cases the base Gemma 4 isn't better either — they're hard problems that need either a much larger model or a curated specialty dataset.
How to use
This model needs one important inference setting to work properly: no_repeat_ngram_size=6. Without it, the model can get stuck repeating ingredient lines on long recipes. This setting is a single inference-time argument; everything else works like any standard Gemma chat model.
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "junwatu/gemma-4-e2b-resep-id" # adjust to actual repo
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [{
"role": "user",
"content": (
'Tulis resep masakan Indonesia berjudul: "Tumis Kangkung Tempe".\n'
"Format jawaban:\n"
"Bahan:\n- (daftar bahan, satu per baris)\n\n"
"Langkah:\n1. (langkah pertama)\n2. (langkah kedua)\n...\n"
"Gunakan Bahasa Indonesia."
),
}]
inputs = tok.apply_chat_template(
messages, add_generation_prompt=True,
return_tensors="pt", return_dict=True,
).to(model.device)
out = model.generate(
**inputs,
max_new_tokens=1024,
do_sample=False,
repetition_penalty=1.05,
no_repeat_ngram_size=6, # ← important
pad_token_id=tok.eos_token_id,
)
print(tok.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Training summary (for the curious)
- Base:
google/gemma-4-e2b-it(4.6B effective params, vision/audio paths frozen during training) - Data: ~66K Indonesian home recipes (HF parquet)
- Method: Supervised fine-tune, prompt + completion format, 1 epoch
- Compute: AMD MI300X (192 GB HBM3), ~1.5 hours, bf16
- Final eval loss: 1.26
Full technical details in the project repo.
Limitations & honest disclosures
- This is a single-epoch run on a budget. Quality could be higher with more compute and better data curation.
- Model occasionally produces odd fraction notation like
1/n sdt— these are minor inference-time glitches from the n-gram repetition guard. Easy to clean up if you're using the output programmatically. - Some recipes will be plausible but not authentic to a specific region. Use it as a starting point, not a definitive cookbook.
- License: inherits the Gemma Terms of Use from the base model.
Acknowledgements
- Base model: google/gemma-4-e2b-it
- Dataset: Indonesian home recipe corpus (cleaned/curated)
- Compute: AMD Instinct MI300X
If you find this useful or have suggestions, open an issue on the model page.
- Downloads last month
- -