--- base_model: timothydillan/gemma4-e2b-balinese-cpt library_name: peft pipeline_tag: text-generation license: gemma language: - ban - id - en tags: - base_model:adapter:timothydillan/gemma4-e2b-balinese-cpt - balinese - indonesian - assistant - instruction-tuned - low-resource - lora - peft - unsloth - research --- # Gemma 4 E2B Balinese Assistant v9 LoRA Research LoRA adapter for `timothydillan/gemma4-e2b-balinese-cpt`, trained to improve lightweight Balinese and Indonesian assistant behavior. This is not a merged model. Load it as a PEFT adapter on top of `timothydillan/gemma4-e2b-balinese-cpt`. ## Intended Use - Private research and evaluation for Balinese / Indonesian conversational assistants. - Lightweight instruction-following experiments for regional-language model catalog work. - Further supervised fine-tuning, preference tuning, or native-speaker review workflows. Do not treat this checkpoint as production-ready, medically/legal/religiously authoritative, or native-speaker certified. Curated examples were written for repair and coverage, but remain pending native review. ## Training Summary - Base model: `timothydillan/gemma4-e2b-balinese-cpt` - Training job: Kaggle kernel `timothydillan/oim-balinese-gemma4-e2b-v0`, version 16 - Dataset: `data/processed/llm/sft_train_assistant_v9.jsonl` - Examples: 2,724 - Context length: 1,024 - Epochs: 2.0 - Steps: 682 - Learning rate: 2e-5 - LoRA rank / alpha: 16 / 16 - Batch / gradient accumulation: 2 / 4 - Final training loss: 0.4613 - Training runtime: about 2,449 seconds ### Data Mix | Source | Examples | |---|---:| | `gemini-3.1-flash-lite-grounded-balinese` | 650 | | `oim-curated-v7-behavior-repair-pending-native-review` | 317 | | `oim-curated-v9-language-switch-and-eval-repair-pending-native-review` | 107 | | `indonlp/NusaX-MT` | 360 | | `deepseek-grounded-balinese` | 10 | | `oim-curated-direct-v6-pending-native-review` | 343 | | `oim-curated-v8-dialogue-factuality-repair-pending-native-review` | 166 | | `biznetgio/alpaca-clean-balinese` | 260 | | `ChavyvAkvar/aya_collection_language_split-balinese-Converted` | 120 | | `biznetgio/oasst2-balinese` | 180 | | `akoksal/muri-it-language-split-ban` | 140 | | `pradanaadn/IndonesianNMT-balinese-refined` | 60 | | `deepseek-v4-flash-grounded-balinese` | 10 | | `nusa-dialogue-ban-summ` | 1 | v9 specifically targets the remaining v8 failure: clean Indonesian language switching. It keeps the v8 dialogue and Bali/Denpasar factuality repair rows, then adds focused rows for Indonesian definitions of `suksma`, `Om Swastiastu`, and `canang sari`, stronger uncertainty behavior, and negated Bali capital answers. ## Evaluation Status This upload is the trained adapter. Hardened smoke evaluation is tracked in the Open Indonesia Models repository and should be treated as the source of truth for current quality claims. Expected checks include: - identity stability - Balinese food / cultural prompt handling - canang sari explanation - short dialogue completeness - Bali / Denpasar factuality - Indonesian language-switch behavior - uncertainty and refusal handling - loop / forbidden-phrase / malformed-salutation checks ## Known Limits - Low-resource Balinese coverage remains narrow. - Native-speaker review has not been completed. - The model may still hallucinate, mix registers, or produce awkward Balinese. - Evaluation is smoke-test level unless a downstream report says otherwise. - Dataset licenses and provenance should be reviewed before any public/commercial release beyond research experiments. ## Loading ```python from peft import PeftModel from transformers import AutoModelForCausalLM, AutoProcessor base_id = "timothydillan/gemma4-e2b-balinese-cpt" adapter_id = "timothydillan/gemma4-e2b-balinese-assistant-v9" processor = AutoProcessor.from_pretrained(adapter_id) base = AutoModelForCausalLM.from_pretrained(base_id, device_map="auto") model = PeftModel.from_pretrained(base, adapter_id) ``` Use the Gemma chat template and keep generation conservative while evaluating.