Views
No views yet
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).


55.51%27.33%17.5455.09% (Turun -0.42%)25.91% (Turun -1.42%)55.56% (Meningkat dibanding SFT Peak)27.37% (Meningkat dibanding SFT Peak)3.62 (Turun fantastis, tingkat keyakinan token sangat tinggi)1.2870chat_template.jinja) yang mendukung pemanggilan tokenizer.apply_chat_template() secara langsung.merged_bf16: Model presisi bfloat16 utuh (~15 GB)quantized_4bit: Model ringan terkuantisasi NF4 (~5 GB)1import torch
2from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
3
4model_id = "daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth"
5
6# Muat tokenizer dan model dari subfolder quantized_4bit
7tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="quantized_4bit")
8model = AutoModelForSeq2SeqLM.from_pretrained(
9 model_id,
10 subfolder="quantized_4bit",
11 device_map="auto"
12)
13
14messages = [
15 {"role": "system", "content": "Kamu adalah asisten AI yang helpful, santai, dan ramah. Gunakan Bahasa Indonesia sebagai bahasa utama."},
16 {"role": "user", "content": "Tolong berikan tips singkat untuk menanam tomat di rumah."}
17]
18
19prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
20inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)
21
22with torch.no_grad():
23 outputs = model.generate(
24 **inputs,
25 max_new_tokens=512,
26 temperature=0.7,
27 do_sample=True,
28 repetition_penalty=1.2,
29 eos_token_id=[
30 tokenizer.convert_tokens_to_ids("<end_of_turn>"),
31 tokenizer.eos_token_id
32 ]
33 )
34
35response = tokenizer.decode(outputs[0], skip_special_tokens=True)
36print(response.strip())1import torch
2from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
3
4model_id = "daruokta/t5gemma-2-4b-4b-instruct-chat-indo-v4-unsloth"
5
6# Muat dari subfolder merged_bf16
7tokenizer = AutoTokenizer.from_pretrained(model_id, subfolder="merged_bf16")
8model = AutoModelForSeq2SeqLM.from_pretrained(
9 model_id,
10 subfolder="merged_bf16",
11 torch_dtype=torch.bfloat16,
12 device_map="auto"
13)
14# ... jalankan generate seperti pada Cara 1 ...<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| Parameter | Nilai Fase SFT | Nilai Fase ORPO |
|---|---|---|
| Base Model | google/t5gemma-2-4b-4b | SFT Checkpoint 1000 |
| Dataset Config | chat_sft + indoqa_sft | chat_orpo |
| LoRA Rank (r) | 256 | 256 |
| LoRA Alpha (α) | 512 | 512 |
| Target Modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| LoRA Dropout | 0.2 | 0.2 |
| Epochs | 4 | 2 |
| Optimizer | GrokAdEMAMix | GrokAdEMAMix |
| Learning Rate | 1e-5 (Cosine decay, 200 warmup steps) | 1e-5 (Cosine decay, 200 warmup steps) |
| Batch Size | 2 per device × 64 grad accumulation | 2 per device × 64 grad accumulation |
| Label Smoothing | 0.1 | 0.0 |
| NEFTune Alpha | 5.0 | 5.0 |
| ORPO Beta (β) | - | 0.1 |
| Max Context Length | Source: 16384 / Target: 2048 | Source: 16384 / Target: 2048 |
┌─────────────────────┐ ┌─────────────────────┐
│ ENCODER │ │ DECODER │
│ │ │ │
│ Conversation │───▶│ Response │
│ Context + System │ │ Generation │
│ Prompt │ │ (Autoregressive) │
│ │ │ │
│ (Bidirectional │ │ (Causal │
│ Attention) │ │ Attention) │
└─────────────────────┘ └─────────────────────┘1@article{zhang2025t5gemma2,
2 title={T5Gemma 2: Seeing, Reading, and Understanding Longer},
3 author={Zhang, Biao and others},
4 journal={arXiv preprint arXiv:2512.14856},
5 year={2025}
6}
7
8@article{hong2024orpo,
9 title={ORPO: Easy Harmless Alignment with Odds Ratio Preference Optimization},
10 author={Hong, Hongye and others},
11 journal={arXiv preprint arXiv:2403.07691},
12 year={2024}
13}
14
15@article{raffel2020t5,
16 title={Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer},
17 author={Raffel, Colin and Shazeer, Noam and Roberts, Adam and Lee, Katherine and Narang, Sharan and Matena, Michael and Zhou, Yanqi and Li, Wei},
18 journal={Journal of Machine Learning Research},
19 volume={21},
20 number={140},
21 pages={1--67},
22 year={2020}
23}
24
25@article{elfeki2025return,
26 title={Return of the Encoder: Maximizing Parameter Efficiency for SLMs},
27 author={Elfeki, Mohamed and others},
28 journal={arXiv preprint arXiv:2501.16273},
29 year={2025}
30}
31
32@article{pagliardini2024ademamix,
33 title={The AdEMAMix Optimizer: Better, Faster, Older},
34 author={Pagliardini, Matteo and Ablin, Pierre and Grangier, David},
35 journal={arXiv preprint arXiv:2409.03137},
36 year={2024}
37}
38
39@article{gemma3report,
40 title={Gemma 3 Technical Report},
41 author={DeepMind, Google},
42 journal={arXiv preprint arXiv:2503.19786},
43 year={2025}
44}
45
46@article{koto2024cendol,
47 title={Cendol: Open Instruction-tuned Generative Large Language Models for Indonesian Languages},
48 author={Koto, Fajri and others},
49 journal={arXiv preprint arXiv:2404.06138},
50 year={2024}
51}