Downloads ยท 30 days
0
ruwwww/faruq-alignment-models
faruq-alignment-models is a text generation model from ruwwww. Use it when you need the model to write or continue text. The card lists the license as apache-2.0.
Koleksi checkpoint model dan LoRA adapters untuk penalaran hukum pidana Indonesia berbasis putusan peradilan tingkat pertama Mahkamah Agung Republik Indonesia. Proyek riset ini mengevaluasi adaptasi domain peradilan (โฆ
Downloads ยท 30 days
0
Access
Public
Updated Oct 2, 2026
Repo size
19.5 GB
Likes
1
Public
Click a slice to open those files.
.safetensors20.4 GB ยท 76%
From the Hugging Face model README
Koleksi checkpoint model dan LoRA adapters untuk penalaran hukum pidana Indonesia berbasis putusan peradilan tingkat pertama Mahkamah Agung Republik Indonesia. Proyek riset ini mengevaluasi adaptasi domain peradilan (Supervised Fine-Tuning & QLoRA) dari model berskala ringan (1.5B/3B) hingga skala besar (12B, 27B, dan 31B) untuk menyusun pertimbangan hukum (ratio decidendi) dan amar putusan (dictum) yang setia pada fakta persidangan dan patuh pada asas pembuktian Pasal 184 KUHAP.
Repository ini diorganisasikan sebagai satu project induk bertingkat (multi-folder model repository), di mana setiap arsitektur model, checkpoint per-epoch, dan artefak evaluasi dikelompokkan ke dalam subdirektori masing-masing.
๐ Source Code & Research Repository: ADDI-LAW/faruq-project (GitHub)
| Subfolder Model | Arsitektur Basis | Metode & Precision | Epochs | Train Loss | Eval Loss | Hasil Uji 52 Kasus |
|---|---|---|---|---|---|---|
models/sft-v2-gemma4-31b-5epoch | Google Gemma 4 31B It | 4-bit QLoRA (NF4) | 5 ep | 0.6541 | 0.6427 (best 0.6361) | 100% Pertimbangan | 94.2% Amar |
models/sft-v2-qwen38-27b-5epoch | Qwen 3.8 27B | 4-bit QLoRA (NF4) | 5 ep | 0.7156 | 0.6246 | Evaluated (Internal CoT Reasoning) |
models/sft-v2-gemma4-12b-5epoch | Google Gemma 4 12B It | 4-bit QLoRA (NF4) | 5 ep | 0.7632 | 0.6980 (best 0.6965) | 98.1% Pertimbangan | 92.3% Amar |
models/sft-v2-qwen35-9b-5epoch | Qwen 3.5 9B | LoRA (BF16) | 5 ep | 0.6865 | 0.6288 | Checkpoints ready |
models/sft-v2-3b-5epoch | Qwen 2.5 3B | LoRA (BF16) | 5 ep | 0.5478 | 0.5752 | Baseline 3B Canonical |
models/sft-v2-5epoch | Qwen 2.5 1.5B | LoRA (BF16) | 5 ep | 0.5520 | 0.5520 | Baseline 1.5B Canonical |
Catatan Checkpoint Per-Epoch:
Setiap model menyimpan checkpoint intermediate lengkap per epoch di subfoldercheckpoints/epoch-1sampaiepoch-5(termasuk bobot adapter, resep YAML, dan file metrics).
Evaluasi formal dilakukan terhadap 52 kasus uji yuridis yang belum pernah dilihat model (artifacts/sft_v2/test.jsonl), mencakup dakwaan lengkap dan fakta persidangan riil. Model dievaluasi kemampuannya dalam memproduksi dua komponen mutlak putusan hakim:
[PERTIMBANGAN HUKUM]: Telaah fakta persidangan, pemenuhan unsur dakwaan, dan pembuktian barang bukti.[AMAR PUTUSAN]: Diktum putusan (Menyatakan Terdakwa terbukti/tidak, penjatuhan pidana, pengurangan masa tahanan, status barang bukti, dan beban biaya perkara).๐ Unduh Hasil Evaluasi Gemma 4 31B:
Gunakan library transformers dan peft dengan menyertakan argumen subfolder:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
repo_id = "ruwwww/faruq-alignment-models"
base_model_id = "google/gemma-4-31B-it"
subfolder = "models/sft-v2-gemma4-31b-5epoch"
# 1. Kuantisasi 4-bit BitsAndBytes (Hanya butuh ~18 GB VRAM)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.bfloat16
)
tokenizer = AutoTokenizer.from_pretrained(base_model_id, padding_side="left")
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
quantization_config=bnb_config,
device_map="auto"
)
# 2. Pasang LoRA Adapter dari Subfolder HF
model = PeftModel.from_pretrained(base_model, repo_id, subfolder=subfolder)
model.eval()
# 3. Format Prompt Hukum
messages = [
{
"role": "system",
"content": (
"Anda adalah asisten hukum Indonesia. Gunakan hanya dakwaan dan fakta persidangan yang diberikan. "
"Susun pertimbangan hukum yang ringkas dan amar putusan secara setia pada sumber."
),
},
{
"role": "user",
"content": (
"[SURAT DAKWAAN]\n"
"Bahwa terdakwa didakwa melanggar Pasal 372 KUHP tentang Penggelapan karena telah memindahtangankan "
"sepeda motor sewaan tanpa seizin pemiliknya.\n\n"
"[FAKTA PERSIDANGAN & ALAT BUKTI]\n"
"Saksi korban menerangkan terdakwa menyewa motor selama 3 hari namun tidak dikembalikan dan digadaikan. "
"Terdakwa mengakui uang gadai digunakan untuk kepentingan pribadi."
),
},
]
chat_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(chat_prompt, return_tensors="pt").to(model.device)
# 4. Generate Pertimbangan & Amar Putusan
with torch.inference_mode():
outputs = model.generate(
**inputs,
max_new_tokens=1536,
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.05,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=[tokenizer.eos_token_id, 106], # ID 106 = <turn|>
)
completion = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print(completion)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
repo_id = "ruwwww/faruq-alignment-models"
base_model_id = "Qwen/Qwen3.8-27B"
subfolder = "models/sft-v2-qwen38-27b-5epoch"
tokenizer = AutoTokenizer.from_pretrained(repo_id, subfolder=subfolder)
base_model = AutoModelForCausalLM.from_pretrained(
base_model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
model = PeftModel.from_pretrained(base_model, repo_id, subfolder=subfolder)
model.eval()
Pelatihan dilaksanakan di atas GPU cluster NVIDIA A100-SXM4-40GB:
[PERTIMBANGAN HUKUM] dan [AMAR PUTUSAN]), tidak menghafal teks prompt.[q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj]@misc{faruq2026indolaw,
author = {Faruq and contributors},
title = {IndoLaw Alignment: Supervised Fine-Tuning and Preference Alignment on Indonesian Supreme Court Decisions},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/ruwwww/faruq-alignment-models}}
}