Qwen2.5-0.5B-Instruct Legal Alpaca Indonesia (Fine-Tuned)
Model ini merupakan hasil fine-tuning dari base model Qwen/Qwen2.5-0.5B-Instruct menggunakan dataset instruksi hukum dan regulasi ketenagakerjaan Indonesia (Ichsan2895/alpaca-gpt4-indonesian).
Proyek Akhir Kelas Pengembangan Generative AI berbasis LLM (Dicoding Academy 857).
Detail Eksperimen & Hyperparameter (Skilled Criteria)
Model dilatih menggunakan SFTTrainer (TRL) dengan teknik QLoRA 4-bit (Double Quantization). Dua eksperimen hyperparameter telah dilakukan:
- Eksperimen 1: LoRA r=16, alpha=32, lr=2e-4, linear scheduler (800 steps). Final Val Loss: 0.9150
- Eksperimen 2 (Best): LoRA r=32, alpha=64, lr=1e-4, cosine scheduler (800 steps). Final Val Loss: 0.8210
Target Modules:
- Multi-Head Attention:
q_proj,k_proj,v_proj,o_proj - Feed-Forward Network:
gate_proj,up_proj,down_proj
Penggunaan
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "MDWT/qwen2.5-0.5b-legal-alpaca-id"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.float16,
device_map="auto"
)
prompt = "Jelaskan perbedaan antara PKWT dan PKWTT menurut hukum ketenagakerjaan Indonesia."
messages = [
{"role": "system", "content": "Anda adalah Asisten Hukum dan Regulasi Ketenagakerjaan AI internal yang profesional, akurat, dan patuh pada undang-undang Republik Indonesia."},
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))