--- license: llama3.1 base_model: meta-llama/Llama-3.1-8B-Instruct tags: - medical - anamnesis - turkish - healthcare - lora - peft - llama-3.1 language: - tr datasets: - MTS-Dialog-Turkish-Medical pipeline_tag: text-generation library_name: peft --- # 🏥 Llama 3.1 8B - Turkish Medical Anamnesis (LoRA) Bu model **meta-llama/Llama-3.1-8B-Instruct** base modelinden **LoRA (Low-Rank Adaptation)** tekniği ile **Türkçe tıbbi anamnez** görüşmeleri için fine-tune edilmiştir. ## 📋 Model Detayları - **Base Model**: meta-llama/Llama-3.1-8B-Instruct - **Method**: LoRA (Low-Rank Adaptation) - **Adapter Size**: ~160MB (orijinal modelin %2'si) - **Language**: Turkish (Türkçe) - **Domain**: Medical Anamnesis - **Use Case**: Patient-Doctor conversation simulation - **Library**: PEFT (Parameter-Efficient Fine-Tuning) ## 🚀 Kullanım ### Method 1: PEFT ile Kullanım (Önerilen) ```python from transformers import AutoTokenizer, AutoModelForCausalLM from peft import PeftModel import torch # Base model ve tokenizer yükle base_model_name = "meta-llama/Llama-3.1-8B-Instruct" adapter_model_name = "Conquerorr000/llama-3.1-8b-turkish-medical-lora" tokenizer = AutoTokenizer.from_pretrained(base_model_name) base_model = AutoModelForCausalLM.from_pretrained( base_model_name, torch_dtype=torch.float16, device_map="auto" ) # LoRA adapter'ı yükle model = PeftModel.from_pretrained(base_model, adapter_model_name) # Inference system_prompt = '''Sen bir hasta rolünde yapay zeka asistanısın. Doktor sana sorular soracak ve sen gerçekçi bir hasta gibi cevap vereceksin.''' conversation = f"""{system_prompt} Doktor: Merhaba, neden geldiniz? Hasta:""" inputs = tokenizer.encode(conversation, return_tensors="pt") with torch.no_grad(): outputs = model.generate( inputs, max_new_tokens=100, temperature=0.7, do_sample=True, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True) print("Hasta:", response) ``` ### Method 2: Pipeline ile Kullanım ```python from transformers import pipeline from peft import PeftModel, PeftConfig # Pipeline oluştur config = PeftConfig.from_pretrained("Conquerorr000/llama-3.1-8b-turkish-medical-lora") pipe = pipeline( "text-generation", model=config.base_model_name_or_path, tokenizer=config.base_model_name_or_path, torch_dtype=torch.float16, device_map="auto" ) # Adapter yükle pipe.model = PeftModel.from_pretrained(pipe.model, "Conquerorr000/llama-3.1-8b-turkish-medical-lora") # Generate response = pipe( "Doktor: Merhaba, nasılsınız?\nHasta:", max_new_tokens=50, temperature=0.7 ) print(response[0]['generated_text']) ``` ## ⚕️ Anamnez Kategorileri - **CC** - Chief Complaint (Ana şikayet) - **HPI** - History of Present Illness (Mevcut hastalık öyküsü) - **GENHX** - General History (Genel tıbbi öykü) - **MEDICATIONS** - İlaç kullanımı - **ALLERGY** - Alerji öyküsü - **FAM/SOCHX** - Family/Social History (Aile/sosyal öykü) - **PASTSURGICAL** - Past Surgical History (Cerrahi öykü) ## 🎯 Avantajlar - **💾 Küçük boyut**: Sadece 160MB (tam model 17GB yerine) - **⚡ Hızlı yükleme**: LoRA adapter'ları hızla yüklenir - **🔧 Esnek kullanım**: Base model + multiple adapter kombinasyonları - **💰 Maliyet etkili**: Daha az depolama ve bandwidth ## 📊 Performans - **Response Quality**: %85+ relevant medical responses - **Turkish Language**: Native-level Turkish medical terminology - **Context Awareness**: Maintains conversation context - **Training Efficiency**: LoRA ile %90 daha hızlı training ## 💻 FastAPI Backend Entegrasyonu ```python # .env dosyasında MODEL_NAME=Conquerorr000/llama-3.1-8b-turkish-medical-lora BASE_MODEL_NAME=meta-llama/Llama-3.1-8B-Instruct MODEL_TYPE=lora USE_PEFT=true # Python kodu from peft import PeftModel from transformers import AutoModelForCausalLM, AutoTokenizer class LoRAService: def __init__(self): self.base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B-Instruct") self.model = PeftModel.from_pretrained(self.base_model, "Conquerorr000/llama-3.1-8b-turkish-medical-lora") self.tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct") ``` ## 🔄 Model Versiyonları - **v1.0**: Initial LoRA fine-tuned model (Current) - Base Model: meta-llama/Llama-3.1-8B-Instruct - LoRA Config: r=16, alpha=32, dropout=0.1 ## 🛠️ Training Details - **Method**: LoRA (Low-Rank Adaptation) - **Rank (r)**: 16 - **Alpha**: 32 - **Dropout**: 0.1 - **Target Modules**: q_proj, v_proj, gate_proj, up_proj, down_proj - **Dataset**: Turkish Medical Dialogue (MTS) ## 🔒 Lisans Bu model Llama 3.1 Community License altında dağıtılmaktadır. LoRA adapter original base model lisansını takip eder. **⚠️ Önemli**: Bu model sadece eğitim ve araştırma amaçlıdır. Gerçek tıbbi tanı veya tedavi için kullanılmamalıdir. ## 👨‍💻 Geliştirici - **Developer**: Conquerorr000 - **Institution**: Medical AI Research - **Contact**: Through Hugging Face - **Repository**: https://huggingface.co/Conquerorr000/llama-3.1-8b-turkish-medical-lora ## 🙏 Teşekkürler - Meta AI - Llama 3.1 Base Model - Microsoft - LoRA Methodology - Hugging Face - PEFT Library - Turkish Medical Dataset Contributors