--- library_name: transformers base_model: fine-tuned-llm-1B tags: - llm - lora - qlora - fine-tuning - health - chatbot - indonesian language: - id license: mit --- # Chatbot Kesehatan Bahasa Indonesia (Fine-tuned LLM 1B) 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. ## Tujuan 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 Dataset yang digunakan adalah kumpulan data berbahasa Indonesia terkait berbagai topik kesehatan, yang berisi berbagai intent, pola pertanyaan, dan respons relevan. ## Parameter Fine-tuning - **Base Model**: Llama 3.2 1B Instruct (digunakan sebagai model dasar untuk fine-tuning) - **Teknik**: QLoRA (4-bit quantization) - **LoRA Config**: - `r=16` - `lora_alpha=32` - `lora_dropout=0.05` - `target_modules`: `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj` - **Training Arguments**: - `num_train_epochs=3` - `learning_rate=2e-4` - `per_device_train_batch_size=2` - `gradient_accumulation_steps=8` - `fp16=True` - `gradient_checkpointing=True` ## Penggunaan (Inference) Anda dapat memuat model ini menggunakan library `transformers`: ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch model_id = "teguhnandi/rijanandi" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16, # Pastikan menggunakan torch.float16 atau bfloat16 device_map='auto', ) def generate_response(prompt, model, tokenizer, max_length=256): 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.""" full_prompt = f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|> {system_prompt}<|eot_id|><|start_header_id|>user<|end_header_id|> {prompt}<|eot_id|><|start_header_id|>assistant<|end_header_id|> """ inputs = tokenizer(full_prompt, return_tensors='pt').to(model.device) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=max_length, temperature=0.7, top_p=0.9, do_sample=True, pad_token_id=tokenizer.eos_token_id, ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) if "<|start_header_id|>assistant<|end_header_id|>" in response: response = response.split("<|start_header_id|>assistant<|end_header_id|> ")[-1] response = response.replace("<|eot_id|>", "").strip() return response # Contoh penggunaan question = "Apa saja tips menjaga kesehatan secara umum?" answer = generate_response(question, model, tokenizer) print(f"Pertanyaan: {question}") print(f"Jawaban: {answer}") ``` ## Catatan Model ini masih dalam tahap pengembangan dan dapat ditingkatkan lebih lanjut dengan dataset yang lebih luas dan fine-tuning lanjutan.