daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth
T5-Gemma-2-4B-4B-Instruct-Chat-Indo-v4 (Unsloth)
Model ini merupakan fine-tuned merged model dari google/t5gemma-2-4b-4b yang dilatih secara berurutan (sequential):
- Phase 1: Supervised Fine-Tuning (SFT) menggunakan LoRA dengan framework Unsloth pada dataset multi-task.
- Phase 2: Odds Ratio Preference Optimization (ORPO) langsung di atas checkpoint SFT terbaik (Step 1000).
Model ini dioptimalkan khusus untuk pemahaman instruksi, kemampuan dialog multi-turn, serta pemecahan masalah secara natural dalam Bahasa Indonesia dan Bahasa Inggris.
Catatan Penting: Ini adalah model encoder-decoder (Seq2Seq), bukan decoder-only. Model dilengkapi dengan subfolder khusus untuk model utuh hasil penggabungan presisi penuh (merged_bf16) dan model ringan terkuantisasi (quantized_4bit).
๐ Hasil Evaluasi & Grafik Training Komprehensif
Proses pelatihan dilakukan dalam dua tahap terpisah secara berurutan:
- Phase 1: SFT (Supervised Fine-Tuning) berjalan selama 4 epoch (~1232 step). Performa puncak metrik text generation dicapai pada Step 1000 (ditandai ikon bintang kuning).
- Phase 2: ORPO (Odds Ratio Preference Optimization) dijalankan di atas SFT Checkpoint 1000 selama 2 epoch (~16 step) untuk menyelaraskan model dengan preferensi manusia.
Berikut adalah grafik komparasi lengkap dari fase SFT, jalur overfitting SFT (step 1000 ke 1200 - garis abu-abu putus-putus), serta cabang peningkatan optimal setelah ORPO step 16 (garis warna orange/merah):
1. Grafik Evaluasi Loss & Perplexity (PPL)
Grafik di bawah ini membandingkan penurunan Loss dan Perplexity (PPL) antara SFT dan ORPO:

2. Grafik Evaluasi Kualitas Generasi Teks (NLG Metrics)
Grafik di bawah ini membandingkan metrik kualitas generasi (ROUGE-L, ROUGE-1, dan Exact Match) antara SFT dan ORPO:

Nilai Metrik Evaluasi pada Setiap Tahap:
- SFT Peak (Step 1000):
- ROUGE-L:
55.51% - Exact Match (EM):
27.33% - Perplexity (PPL):
17.54 - SFT End (Step 1200 - Overfitted/Rejected):
- ROUGE-L:
55.09%(Turun-0.42%) - Exact Match (EM):
25.91%(Turun-1.42%) - Final ORPO (Step 16 - Promoted Model):
- ROUGE-L: `55.56%` (Meningkat dibanding SFT Peak)
- Exact Match (EM): `27.37%` (Meningkat dibanding SFT Peak)
- Perplexity (PPL): `3.62` (Turun fantastis, tingkat keyakinan token sangat tinggi)
- ORPO Eval Loss:
1.2870
โจ Fitur Utama
- ๐ Encoder-Decoder Architecture: Memetakan konteks input secara dua arah (bidirectional) pada encoder untuk menghasilkan response terarah secara autoregresif pada decoder.
- ๐ฌ Custom Chat Template: Dilengkapi Jinja2 chat template (
chat_template.jinja) yang mendukung pemanggilantokenizer.apply_chat_template()secara langsung. - ๐ฎ๐ฉ Bilingual (ID/EN): Memiliki performa natural dalam percakapan Bahasa Indonesia maupun interaksi Bahasa Inggris.
- ๐ฏ Preference Aligned (ORPO): Meminimalkan kecenderungan jawaban yang berulang atau berhalusinasi dengan menekan probabilitas respons yang tidak diinginkan secara matematis.
- ๐ก๏ธ Logit Masking: Menekan probabilitas unused tokens dan vision tokens pada lm_head agar tidak merusak struktur teks keluaran.
๐ Cara Penggunaan (Inference)
Repositori ini menyimpan model yang telah di-merge ke dalam dua subfolder:
merged_bf16: Model presisi bfloat16 utuh (~15 GB)quantized_4bit: Model ringan terkuantisasi NF4 (~5 GB)
Cara 1: Menggunakan Model Kuantisasi 4-bit (NF4 - Direkomendasikan untuk Hemat VRAM)
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_id = "daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth"
# Muat tokenizer dan model dari subfolder quantized_4bit
tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="quantized_4bit")
model = AutoModelForSeq2SeqLM.from_pretrained(
model_id,
subfolder="quantized_4bit",
device_map="auto"
)
messages = [
{"role": "system", "content": "Kamu adalah asisten AI yang helpful, santai, dan ramah. Gunakan Bahasa Indonesia sebagai bahasa utama."},
{"role": "user", "content": "Tolong berikan tips singkat untuk menanam tomat di rumah."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.7,
do_sample=True,
repetition_penalty=1.2,
eos_token_id=[
tokenizer.convert_tokens_to_ids("<end_of_turn>"),
tokenizer.eos_token_id
]
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response.strip())Cara 2: Menggunakan Model Presisi Penuh (bfloat16)
import torch
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
model_id = "daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth"
# Muat dari subfolder merged_bf16
tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="merged_bf16")
model = AutoModelForSeq2SeqLM.from_pretrained(
model_id,
subfolder="merged_bf16",
torch_dtype=torch.bfloat16,
device_map="auto"
)
# ... jalankan generate seperti pada Cara 1 ...๐ง Format Chat Template
Template percakapan ini disesuaikan dengan keluarga model Gemma-2 untuk arsitektur Seq2Seq:
<bos><start_of_turn>user
{system_prompt}
{user_message}<end_of_turn>
<start_of_turn>model
{model_response}<end_of_turn>
<start_of_turn>user
{next_user_message}<end_of_turn>
<start_of_turn>model๐ Spesifikasi & Hyperparameter Pelatihan (V6 Pipeline)
๐๏ธ Arsitektur T5Gemma-2
Model ini menggunakan arsitektur encoder-decoder (Seq2Seq) yang efisien:
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ
โ ENCODER โ โ DECODER โ
โ โ โ โ
โ Conversation โโโโโถโ Response โ
โ Context + System โ โ Generation โ
โ Prompt โ โ (Autoregressive) โ
โ โ โ โ
โ (Bidirectional โ โ (Causal โ
โ Attention) โ โ Attention) โ
โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโ ๏ธ Batasan & Lisensi
- Lisensi: Mengikuti regulasi Gemma License Agreement dari Google.
- Keterbatasan:
- Performa terfokus pada Bahasa Indonesia dan Bahasa Inggris.
- Pada versi repositori ini, model belum di-tuning untuk kemampuan pemrosesan gambar (vision). Namun, model hasil penggabungan pada repositori ini akan digunakan sebagai basis untuk tahapan penyempurnaan berikutnya dalam melatih kemampuan multimodal/vision.
๐ Referensi & Publikasi Ilmiah
Makalah Rujukan Utama
- T5Gemma 2: Seeing, Reading, and Understanding Longer
- Biao Zhang, et al. (Google DeepMind, 2025).
- arXiv: arXiv:2512.14856
- ORPO: Easy Harmless Alignment with Odds Ratio Preference Optimization
- Hongye Hong, et al. (2024).
- arXiv: arXiv:2403.07691
- Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5)
- Colin Raffel, et al. (2020).
- arXiv: arXiv:1910.10683
- Return of the Encoder: Maximizing Parameter Efficiency for SLMs
- Mohamed Elfeki, et al. (Microsoft, 2025).
- arXiv: arXiv:2501.16273
- The AdEMAMix Optimizer: Better, Faster, Older
- Matteo Pagliardini, Pierre Ablin, and David Grangier (2024).
- arXiv: arXiv:2409.03137
- Gemma 3 Technical Report
- Google DeepMind (2025).
- arXiv: arXiv:2503.19786
- Cendol: Open Instruction-tuned Generative Large Language Models for Indonesian Languages
- Fajri Koto, et al. (2024).
- arXiv: arXiv:2404.06138
Sitasi BibTeX
@article{zhang2025t5gemma2,
title={T5Gemma 2: Seeing, Reading, and Understanding Longer},
author={Zhang, Biao and others},
journal={arXiv preprint arXiv:2512.14856},
year={2025}
}
@article{hong2024orpo,
title={ORPO: Easy Harmless Alignment with Odds Ratio Preference Optimization},
author={Hong, Hongye and others},
journal={arXiv preprint arXiv:2403.07691},
year={2024}
}
@article{raffel2020t5,
title={Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer},
author={Raffel, Colin and Shazeer, Noam and Roberts, Adam and Lee, Katherine and Narang, Sharan and Matena, Michael and Zhou, Yanqi and Li, Wei},
journal={Journal of Machine Learning Research},
volume={21},
number={140},
pages={1--67},
year={2020}
}
@article{elfeki2025return,
title={Return of the Encoder: Maximizing Parameter Efficiency for SLMs},
author={Elfeki, Mohamed and others},
journal={arXiv preprint arXiv:2501.16273},
year={2025}
}
@article{pagliardini2024ademamix,
title={The AdEMAMix Optimizer: Better, Faster, Older},
author={Pagliardini, Matteo and Ablin, Pierre and Grangier, David},
journal={arXiv preprint arXiv:2409.03137},
year={2024}
}
@article{gemma3report,
title={Gemma 3 Technical Report},
author={DeepMind, Google},
journal={arXiv preprint arXiv:2503.19786},
year={2025}
}
@article{koto2024cendol,
title={Cendol: Open Instruction-tuned Generative Large Language Models for Indonesian Languages},
author={Koto, Fajri and others},
journal={arXiv preprint arXiv:2404.06138},
year={2024}
}