Views
No views yet
1lora r=8
2lora_alpha=16
3lora_dropout=0.05
4
5learning_rate = 2e-4
6lr_scheduler = "cosine"
7optimizer = "paged_adamw_32bit"
8max_seq_length = 20481import torch
2from transformers import AutoTokenizer, AutoConfig, AutoModelForCausalLM, BitsAndBytesConfig, LlamaTokenizer
3from peft import PeftModel, PeftConfig
4
5model_name = "Ichsan2895/Merak-7B-v4"
6adapter_name = "Willy030125/finetune-indoMMLU-Merak-7B-v1"
7
8bnb_config = BitsAndBytesConfig(
9 load_in_4bit=True,
10 bnb_4bit_use_double_quant=True,
11 bnb_4bit_quant_type="nf4",
12 bnb_4bit_compute_dtype=torch.bfloat16
13)
14
15model = AutoModelForCausalLM.from_pretrained(
16 model_name,
17 quantization_config=bnb_config,
18 device_map="auto",
19 trust_remote_code=True
20)
21
22model = PeftModel.from_pretrained(model, adapter_name)
23tokenizer = LlamaTokenizer.from_pretrained(model_name)
24
25def generate_response(question: str) -> str:
26 chat = [
27 {"role": "system", "content": "Anda adalah Merak, sebuah model kecerdasan buatan yang dilatih oleh Muhammad Ichsan. Mohon jawab pertanyaan berikut dengan benar, faktual, dan ramah."},
28 {"role": "user", "content": question},
29 ]
30
31 prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
32 inputs = tokenizer(prompt, return_tensors="pt", return_attention_mask=True)
33
34 with torch.no_grad():
35 outputs = model.generate(input_ids=inputs["input_ids"].to("cuda"),
36 attention_mask=inputs.attention_mask,
37 eos_token_id=tokenizer.eos_token_id,
38 pad_token_id=tokenizer.eos_token_id,
39 max_new_tokens=1024)
40 response = tokenizer.batch_decode(outputs.detach().cpu().numpy(), skip_special_tokens=True)[0]
41
42 assistant_start = f'''{question} \n assistant\n '''
43 response_start = response.find(assistant_start)
44 return response[response_start + len(assistant_start) :].strip()
45
46prompt = """Hewan pemakan tumbuhan dinamakan ...
47A. Omnivora
48B. Karnivora
49C. Pengurai
50D. Herbivora"""
51
52print(generate_response(prompt))