CoolFace
Modelpublic

daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth

sourceHugging Facegemmaupdated 3mo agoView on Hugging Face
1likes
Model Card

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):

  1. 1.Phase 1: Supervised Fine-Tuning (SFT) menggunakan LoRA dengan framework Unsloth pada dataset multi-task.
  2. 2.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:

  1. 1.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).
  2. 2.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:

Loss & Perplexity Chart

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:

NLG Metrics Chart

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 pemanggilan tokenizer.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:

  1. 1.merged_bf16: Model presisi bfloat16 utuh (~15 GB)
  2. 2.quantized_4bit: Model ringan terkuantisasi NF4 (~5 GB)

Cara 1: Menggunakan Model Kuantisasi 4-bit (NF4 - Direkomendasikan untuk Hemat VRAM)

python
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)

python
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)

ParameterNilai Fase SFTNilai Fase ORPO
Base Modelgoogle/t5gemma-2-4b-4bSFT Checkpoint 1000
Dataset Configchat_sft + indoqa_sftchat_orpo
LoRA Rank (r)256256
LoRA Alpha (ฮฑ)512512
Target Modulesq_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_projq_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
LoRA Dropout0.20.2
Epochs42
OptimizerGrokAdEMAMixGrokAdEMAMix
Learning Rate1e-5 (Cosine decay, 200 warmup steps)1e-5 (Cosine decay, 200 warmup steps)
Batch Size2 per device ร— 64 grad accumulation2 per device ร— 64 grad accumulation
Label Smoothing0.10.0
NEFTune Alpha5.05.0
ORPO Beta (ฮฒ)-0.1
Max Context LengthSource: 16384 / Target: 2048Source: 16384 / Target: 2048

๐Ÿ—๏ธ 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

  1. 1.T5Gemma 2: Seeing, Reading, and Understanding Longer
  2. 2.Biao Zhang, et al. (Google DeepMind, 2025).
  3. 3.arXiv: arXiv:2512.14856
  1. 1.ORPO: Easy Harmless Alignment with Odds Ratio Preference Optimization
  2. 2.Hongye Hong, et al. (2024).
  3. 3.arXiv: arXiv:2403.07691
  1. 1.Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (T5)
  2. 2.Colin Raffel, et al. (2020).
  3. 3.arXiv: arXiv:1910.10683
  1. 1.Return of the Encoder: Maximizing Parameter Efficiency for SLMs
  2. 2.Mohamed Elfeki, et al. (Microsoft, 2025).
  3. 3.arXiv: arXiv:2501.16273
  1. 1.The AdEMAMix Optimizer: Better, Faster, Older
  2. 2.Matteo Pagliardini, Pierre Ablin, and David Grangier (2024).
  3. 3.arXiv: arXiv:2409.03137
  1. 1.Gemma 3 Technical Report
  2. 2.Google DeepMind (2025).
  3. 3.arXiv: arXiv:2503.19786
  1. 1.Cendol: Open Instruction-tuned Generative Large Language Models for Indonesian Languages
  2. 2.Fajri Koto, et al. (2024).
  3. 3.arXiv: arXiv:2404.06138

Sitasi BibTeX

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}
}