Model Card for avisena/llama3.2-3b-enforcea
A fine-tuned LLaMA 3.2B model on private Indonesian legal Q&A dataset, specifically tailored for tax law cases. This model is optimized to extract relevant legal context and generate structured justifications using Indonesian regulatory references.
Model Details
Model Description
This model builds upon the base unsloth/Llama-3.2-3B-Instruct, and is fine-tuned to handle Indonesian legal consultation-style questions and generate:
- Answer in Bahasa Indonesia
Key features:
Supports questions like "Apa itu PPh Pasal 26 dan bagaimana pengenaan terhadap wajib pajak luar negeri?"
Need to input context in format of array of object, Example: [{'full_text': 'Pajak penghasilan yang terutang atas penghasilan yang diterima atau diperoleh Wajib Pajak luar negeri dari sumber penghasilan di Indonesia, dipotong oleh Pemotong Pajak, kecuali untuk penghasilan sebagaimana dimaksud dalam Pasal 24.', 'name': 'Pasal 26 Undang-Undang Nomor 7 Tahun 1983 tentang Pajak Penghasilan'}, {'full_text': 'Dalam Undang-undang ini, yang dimaksud dengan: Wajib Pajak adalah orang pribadi atau badan yang memiliki kewajiban untuk membayar pajak.', 'name': 'Pasal 1 Undang-Undang Nomor 7 Tahun 1983 tentang Pajak Penghasilan'}, {'full_text': 'Penghasilan yang diterima atau diperoleh Wajib Pajak dari sumber penghasilan di Indonesia, baik dari dalam maupun dari luar negeri, merupakan objek pajak.', 'name': 'Pasal 2 Undang-Undang Nomor 7 Tahun 1983 tentang Pajak Penghasilan'}]
Returns:
- Structured answer
- Legal justifications in a JSON-like array
Model type: Causal LM
Language(s): Indonesian (
id)Finetuned from model:
unsloth/Llama-3.2-3B-InstructLicense: Apache 2.0
Model Sources
Uses
Direct Use
- Answering legal tax questions related to corporate matters
- Extracting structured legal basis from a given question
- Augmenting legal RAG systems in Bahasa Indonesia
Downstream Use
- Chatbot for Indonesian tax law assistance
- Legal compliance document generation
- Internal audit guidance tools
Out-of-Scope Use
- Legal advice for criminal or constitutional law
- English or multilingual use without adaptation
- Real-time legal advice without human verification
Bias, Risks, and Limitations
- The model is trained only on Indonesian legal tax questions โ generalization to other legal domains is not guaranteed.
- Model may hallucinate legal basis if uncertain; verification is recommended.
- Limited to regulations seen during fine-tuning.
Recommendations
- Always verify the answer with an actual legal consultant.
- Do not use this model for high-risk decisions or litigation without professional oversight.
How to Get Started with the Model
pip install transformers accelerate torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("avisena/llama3.2-3b-enforcea")
tokenizer = AutoTokenizer.from_pretrained("avisena/llama3.2-3b-enforcea")
from transformers import LogitsProcessor
import torch
class EOSBiasProcessor(LogitsProcessor):
def __init__(self, eos_token_id, bias=4.32):
self.eos_token_id = eos_token_id
self.bias = bias
def __call__(self, input_ids, scores):
scores[:, self.eos_token_id] += self.bias
return scores
def generate_response(question, context, max_new_tokens=2048):
eos_bias_processor = EOSBiasProcessor(tokenizer.convert_tokens_to_ids("<|eot_id|>"), bias=5.7)
# Prepare prompt
prompt = f"""### Question:\n{question}\n\n### Context:\n{context}"""
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
output = model.generate(
**inputs,
max_new_tokens=max_new_tokens,
do_sample=True,
top_k=50,
top_p=0.65,
temperature=0.2,
repetition_penalty=0.86,
logits_processor=[eos_bias_processor],
eos_token_id=tokenizer.convert_tokens_to_ids("<|eot_id|>"),
)
return (tokenizer.decode(output[0], skip_special_tokens=True), context)
question = "Apa itu Permanent Establishment (BUT) dan bagaimana pajaknya?"
context = [
{
"full_text": "Bentuk Usaha Tetap adalah bentuk usaha yang dipergunakan oleh orang pribadi yang tidak bertempat tinggal di Indonesia, orang pribadi yang berada di Indonesia tidak lebih dari 183 (seratus delapan puluh tiga) hari dalam jangka waktu 12 (dua belas) bulan, dan badan yang tidak didirikan dan tidak bertempat kedudukan di Indonesia untuk menjalankan usaha atau melakukan kegiatan di Indonesia, yang dapat berupa: tempat kedudukan manajemen; cabang perusahaan; kantor perwakilan; gedung kantor; pabrik; bengkel; gudang; ruang untuk promosi dan penjualan; pertambangan dan penggalian sumber alam; wilayah kerja pertambangan minyak dan gas bumi; perikanan, peternakan, pertanian, perkebunan, atau kehutanan; proyek konstruksi, instalasi, atau proyek perakitan; pemberian jasa dalam bentuk apa pun oleh pegawai atau orang lain, sepanjang dilakukan lebih dari 60 (enam puluh) hari dalam jangka waktu 12 (dua belas) bulan; orang atau badan yang bertindak sebagai agen yang kedudukannya tidak bebas; atau agen atau pegawai dari perusahaan asuransi luar negeri yang tidak didirikan dan tidak bertempat kedudukan di Indonesia yang menerima premi atau menanggung risiko di Indonesia.",
"name": "Pasal 2 ayat (5) Undang-Undang Nomor 36 Tahun 2008 tentang Pajak Penghasilan"
},
{
"full_text": "Penghasilan yang diterima atau diperoleh bentuk usaha tetap dari menjalankan usaha atau melakukan kegiatan di Indonesia atau dari harta yang dimiliki atau dikuasai, dikenai pajak yang bersifat final atau tidak final sebagaimana halnya pajak yang dikenakan terhadap wajib pajak dalam negeri.",
"name": "Pasal 26 ayat (4) Undang-Undang Nomor 36 Tahun 2008 tentang Pajak Penghasilan"
}
]
response = generate_response(question, context)
- Downloads last month
- 6
Model tree for avisena/llama3.2-3b-enforcea
Base model
meta-llama/Llama-3.1-8B