--- license: apache-2.0 base_model: unsloth/gemma-3-4b-it tags: - unsloth - gemma-3 - sft - cpt - paite language: - pck - en pipeline_tag: text-generation --- # Sensix Paite 4B Instruction (16-bit) This model is a fine-tuned version of Gemma 3 4B developed through a two-stage training pipeline: Continued Pre-Training (CPT) for vocabulary acquisition and Supervised Fine-Tuning (SFT) for instruction following. It is optimized for native Paite linguistic reasoning. ## Model Details - **Base Model:** unsloth/gemma-3-4b-it - **Target Language:** Paite (pck) - **Precision:** 16-bit bfloat16 (Full Precision) - **Training Method:** LoRA with Hard Merge - **Framework:** Unsloth, TRL, and PEFT ## Training Procedure ### Stage 1: Continued Pre-Training (CPT) Knowledge injection was performed using the `PERFECT_PAITE_DATA.jsonl` dataset (articles, news, and long-form paragraphs). - **Learning Rate:** 2e-4 - **LoRA Config:** r=64, alpha=128 - **Focus:** Modern Paite vocabulary expansion, excluding repetitive scriptural fragments. ### Stage 2: Supervised Fine-Tuning (SFT) The model was refined on `mixed_alpaca_paite_2026-04-09.jsonl` to establish instruction-following logic. - **Learning Rate:** 2e-5 - **Epochs:** 3 - **Data Packing:** Enabled - **Prompt Format:** Gemma 3 Chat Template (Messaging Format) ## Technical Implementation: Hard Merge Strategy To prevent the common weight-scrambling issue (known as the "Calcium/Blades" gibberish bug) found in Gemma 3/4 merges, this model was fused using an official Hard Merge (PEFT `merge_and_unload`) rather than simple weight averaging. This ensures 100% stability and preserves the model's reasoning logic. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_id = "sensix-zo/sensix-paite-4b-instruction-16bit" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto" ) # Example Prompt messages = [ {"role": "user", "content": "Paite pau hi bangchiah in a poimoh hiam?"} ] inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` Limitations This model is optimized for the Paite language. While it retains English capabilities, users should verify complex technical outputs for accuracy.