Edit model card

finetune-indoMMLU-Sidrap-7B-v1

Based on Sidrap-v2 Mistral v0.1: https://huggingface.co/robinsyihab/Sidrap-7B-v2
Dataset used on Fine Tuning: https://github.com/fajri91/IndoMMLU

Some training params used:

lora r=64
lora_alpha=16
lora_dropout=0.05

learning_rate = 2e-4
lr_scheduler = "constant"
optimizer = "paged_adamw_32bit"
max_seq_length = 2048

Inference:

import torch
from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM, BitsAndBytesConfig, LlamaTokenizer
from peft import PeftModel, PeftConfig

model_name = "robinsyihab/Sidrap-7B-v2"
adapter_name = "Willy030125/finetune-indoMMLU-Sidrap-7B-v1"

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

model = AutoModelForCausalLM.from_pretrained(
    model_name,
    quantization_config=bnb_config,
    device_map="auto",
    trust_remote_code=True
)

model = PeftModel.from_pretrained(model, adapter_name)
tokenizer = LlamaTokenizer.from_pretrained(model_name)

def generate_response(question: str) -> str:
    chat = [
      {"role": "system", "content": "Anda adalah asisten yang suka membantu, penuh hormat, dan jujur. Selalu jawab semaksimal mungkin, sambil tetap aman. Jawaban Anda tidak boleh berisi konten berbahaya, tidak etis, rasis, seksis, beracun, atau ilegal. Harap pastikan bahwa tanggapan Anda tidak memihak secara sosial dan bersifat positif.\n\
Jika sebuah pertanyaan tidak masuk akal, atau tidak koheren secara faktual, jelaskan alasannya daripada menjawab sesuatu yang tidak benar. Jika Anda tidak mengetahui jawaban atas sebuah pertanyaan, mohon jangan membagikan informasi palsu."},
      {"role": "user", "content": question}
    ]

    prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
    inputs = tokenizer(prompt, return_tensors="pt", return_attention_mask=True)

    with torch.no_grad():
        outputs = model.generate(input_ids=inputs["input_ids"].to("cuda"),
                           attention_mask=inputs.attention_mask,
                           eos_token_id=tokenizer.eos_token_id,
                           pad_token_id=tokenizer.eos_token_id,
                           max_new_tokens=1024)
        response = tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0]

        return response[response.find("[/INST]\n") + len("[/INST]\n"):]

prompt = """Hewan pemakan tumbuhan dinamakan ...
A. Omnivora
B. Karnivora
C. Pengurai
D. Herbivora"""

print(generate_response(prompt))
Downloads last month
0
Unable to determine this model’s pipeline type. Check the docs .