Instructions to use PILUSATRIO/satri-4.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use PILUSATRIO/satri-4.0 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B") model = PeftModel.from_pretrained(base_model, "PILUSATRIO/satri-4.0") - Notebooks
- Google Colab
- Kaggle
SATRI-4.0 (Qwen/Qwen3-4B Β· 36-Layer Multi-Specialist TIES Merge + rsLoRA + NEFTune + Multi-Turn Self-Repair)
- Nama Model:
SATRI-4.0 - Pembuat: Pilus (
PILUSATRIO/ Satri) - Model Dasar (
BASE_MODEL):Qwen/Qwen3-4B(Revisi commit:1cfa9a7208912126459214e8b04321603b3df60c, 36 layer, GQA 32 head Q / 8 head KV, konteks asli 32.768 token) - Lisensi: Apache-2.0
- Arsip Generasi Sebelumnya:
PILUSATRIO/satri-1b(Qwen/Qwen3-1.7B, disimpan disatri/archive/q3_1p7b/hanya sebagai referensi komparasi) - Koleksi Adapter Spesialis & Kandidat Merge 4B:
PILUSATRIO/satri-4b-adapters
1. Deskripsi & Batas Klaim
SATRI-4.0 adalah adaptasi parameter-efisien (rsLoRA, $r=64, \alpha=128$, target all-linear) di atas Qwen/Qwen3-4B yang menggabungkan empat adapter spesialis domain:
- Spesialis A (
spec_A_4b): Bahasa Indonesia, sejarah/budaya Nusantara, dan kepatuhan instruksi berlapis. - Spesialis B (
spec_B_4b): Penalaran matematika, logika, dan sains dengan langkah terverifikasi. - Spesialis C (
spec_C_4b): Pemrograman Python/SQL/algoritma dan desain antarmuka web modern (HTML/CSS/JS responsif, kontras WCAG AA). - Spesialis D (
spec_D_4b): Pemanggilan tool berformat JSON<tool_call>(generate_image,run_python,search_docs) dan integrasi dokumen.
Keempat spesialis dilatih dengan regularisasi NEFTune (neftune_noise_alpha: 5.0), kurikulum Multi-Turn Execution-Feedback & Self-Repair (dengan selective loss masking labels = -100 pada giliran pertama yang salah), serta pemetaan batas pengetahuan (T2e: memisahkan fakta known, maybe_known, dan unknown agar model menyatakan ketidaktahuan secara jujur daripada mengarang).
Pemisahan Tegas Model vs Sistem (Aturan E2): Kemampuan model bobot polos (
SATRI-4.0modecepat) dilaporkan terpisah dari kemampuan sistem (SATRI-4.0+SATRI-Runtimev2 yang menambahkan loop perbaikan otomatis, pencarian dokumen Hybrid RAG, dan eksekusi kode di sandboxrun_python). Hasil generasi sebelumnya padaQwen/Qwen3-1.7Bdicantumkan hanya sebagai referensi arsip.
2. Hasil Evaluasi: Model Polos vs Sistem Runtime vs Arsip 1.7B
| Gugus Evaluasi / Metrik | SATRI-1.7B (Arsip Referensi) |
Qwen/Qwen3-4B Baseline Polos |
SATRI-4.0 Model Polos (cepat) |
SATRI-4.0 + SATRI-Runtime v1 |
SATRI-4.0 + SATRI-Runtime v2 |
|---|---|---|---|---|---|
| Set DEV (15 Soal, L1βL5) | 15 / 15 (100,00%) | 15 / 15 (100,00%) | 15 / 15 (100,00%) | 15 / 15 (100,00%) | 15 / 15 (100,00%) |
| Set TEST (16 Soal, L1βL5) | 15 / 16 (93,75%) | 15 / 16 (93,75%) | 15 / 16 (93,75%) | 15 / 16 (93,75%) | 16 / 16 (100,00%) |
| 60 Tugas Berverifier (Kode/Math/JSON/QA) | β | β | 71,67% (43/60) | 86,67% (52/60) | 96,67% (58/60) (+25,00%, CI 95% [+15,0%, +36,7%]) |
| Hybrid RAG (50 Ada Jawaban / 50 Tanpa Jawaban) | β | β | β | β | 92,0% Grounded / 100,0% Jujur Menolak |
Sandbox run_python (30 Escape / 30 Sah) |
β | β | β | β | 100,0% Escape Diblokir / 100,0% Sah Lulus |
| Konteks Panjang 32k (Needle-in-a-Haystack) | 95,00% (19/20) | 95,00% (19/20) | 95,00% (19/20) | 95,00% (19/20) | 95,00% (19/20) |
Validitas Skema JSON <tool_call> |
100,00% | 85,00% | 100,00% | 100,00% | 100,00% |
Kepatuhan Identitas (SATRI-4.0 buatan Pilus) |
100% (SATRI-1B) |
0,00% | 100,00% (20/20) | 100,00% (20/20) | 100,00% (20/20) |
| Rata-rata Token Jawaban (TEST) | 112,4 token | 321,2 token | 292,6 token (-8,9%) | 285,0 token | 264,0 token |
3. Metode yang Dipakai (kept) dan yang Dibuang (dropped / pre_dropped)
| Metode / Komponen | Status | Bukti Evaluasi DEV |
|---|---|---|
DoRA (use_dora: true) & Step-DPO |
pre_dropped |
Ditolak sebelum pelatihan demi efisiensi kuota GPU (0 jam GPU terpakai): LoRA sudah mencakup seluruh matriks linear (all-linear) dan perbaikan multi-turn sudah ditangani oleh kurikulum Self-Repair. |
LoRA all-linear ($r=64, \alpha=128$) + Pemetaan Kejujuran T2e |
kept |
Memangkas panjang jawaban bertele-tele sebesar -48,3% di DEV tanpa menurunkan akurasi domain. |
Arm F (rsLoRA + NEFTune) |
kept |
Faktor skala $\frac{\alpha}{\sqrt{r}} = 16,0$ menjaga pelatihan fp16 bebas NaN/inf (0 kejadian); ke-4 spesialis mencapai 100,00% pada domain DEV masing-masing. |
| Arm G (Multi-Turn Self-Repair + Selective Loss Masking) | kept |
Tensor labels = -100 terverifikasi 100% pada Giliran 1 yang salah; menaikkan skor gabungan DEV sebesar +13,33 poin terhadap kontrol tunggal. |
| T5 Uniform TIES Merge (4 Spesialis 4B) | kept |
Mencapai 15/15 (100,00%) di DEV dan 15/16 (93,75%) di TEST dengan penurunan antar-domain 0,00%. |
Arm H (DELLA 36-Layer Stratified Merge) |
dropped |
Lebih ringkas (161,0 token), tetapi memperoleh skor ketat DEV 86,67% dan TEST 87,50% di bawah Uniform TIES (100,00% DEV / 93,75% TEST); disimpan sebagai kandidat di PILUSATRIO/satri-4b-adapters/satri_4b_della_layerwise. |
Arm A/B (OPD / OPSD On-Policy Distillation) |
dropped |
Qwen/Qwen3-4B sudah melewati distilasi on-policy resmi dari pembuatnya dan skor DEV sudah mencapai 100,00%; dihentikan sesuai aturan stop-loss kuota. |
Arm C (ScPO + RFT Jawaban Benar Terpendek) |
kept |
Mempertahankan pass@8 = 100,0% tanpa penyempitan dan menekan panjang jawaban (-8,9% di TEST). |
Arm J (SATRI-Runtime v2) |
kept (Sistem) |
Menaikkan akurasi 60 tugas berverifier sebesar +25,00% di atas model polos dan +10,00% di atas Runtime v1 dalam latensi rata-rata 4,8 detik. Speculative decoding 4-bit NF4 di 1-GPU T4 terukur 0,84x sehingga otomatis dinonaktifkan pada mode 4-bit 1-GPU. |
4. Cara Penggunaan Cepat (PEFT + Transformers)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
base_id = "Qwen/Qwen3-4B"
adapter_id = "PILUSATRIO/satri-4.0"
tokenizer = AutoTokenizer.from_pretrained(base_id)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True,
)
base_model = AutoModelForCausalLM.from_pretrained(base_id, quantization_config=bnb_config, device_map="auto")
model = PeftModel.from_pretrained(base_model, adapter_id)
messages = [
{"role": "system", "content": "Kamu adalah SATRI-4.0, asisten AI buatan Pilus (PILUSATRIO). Jawab langsung ke inti, akurat, dan jujur bila tidak tahu."},
{"role": "user", "content": "Jelaskan cara kerja Rotary Position Embedding (RoPE) secara ringkas."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512, do_sample=False)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
- Downloads last month
- 23