Ini adalah model bahasa besar (LLM) 1 miliar parameter yang telah di-fine-tune menggunakan teknik QLoRA 4-bit Quantization dengan dataset berbahasa Indonesia yang berfokus pada informasi kesehatan. Model ini dirancang untuk berfungsi sebagai chatbot asisten AI di bidang kesehatan secara umum.
Model ini dioptimalkan untuk memberikan jawaban yang akurat dan helpful terkait pertanyaan-pertanyaan seputar kesehatan dalam Bahasa Indonesia. Fine-tuning ini bertujuan untuk membuat model lebih ahli dalam domain medis spesifik ini.
Dataset yang digunakan adalah kumpulan data berbahasa Indonesia terkait berbagai topik kesehatan, yang berisi berbagai intent, pola pertanyaan, dan respons relevan.
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "teguhnandi/rijanandi"
5
6tokenizer = AutoTokenizer.from_pretrained(model_id)
7model = AutoModelForCausalLM.from_pretrained(
8 model_id,
9 torch_dtype=torch.float16, # Pastikan menggunakan torch.float16 atau bfloat16
10 device_map='auto',
11)
12
13def generate_response(prompt, model, tokenizer, max_length=256):
14 system_prompt = """Anda adalah asisten AI yang ahli dalam kesehatan dan perawatan. Berikan jawaban yang akurat, helpful, dan berdasarkan pengetahuan medis yang terpercaya. Jika tidak yakin, sarankan untuk berkonsultasi dengan profesional kesehatan."""
15
16 full_prompt = f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
17
18{system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|>
19
20{prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
21
22"""
23
24 inputs = tokenizer(full_prompt, return_tensors='pt').to(model.device)
25
26 with torch.no_grad():
27 outputs = model.generate(
28 **inputs,
29 max_new_tokens=max_length,
30 temperature=0.7,
31 top_p=0.9,
32 do_sample=True,
33 pad_token_id=tokenizer.eos_token_id,
34 )
35
36 response = tokenizer.decode(outputs[0], skip_special_tokens=True)
37 if "<|start_header_id|>assistant<|end_header_id|>" in response:
38 response = response.split("<|start_header_id|>assistant<|end_header_id|>
39")[-1]
40 response = response.replace("<|eot_id|>", "").strip()
41 return response
42
43# Contoh penggunaan
44question = "Apa saja tips menjaga kesehatan secara umum?"
45answer = generate_response(question, model, tokenizer)
46print(f"Pertanyaan: {question}")
47print(f"Jawaban: {answer}")
Model ini masih dalam tahap pengembangan dan dapat ditingkatkan lebih lanjut dengan dataset yang lebih luas dan fine-tuning lanjutan.