|
--- |
|
license: bsl-1.0 |
|
base_model: |
|
- microsoft/OmniParser-v2.0 |
|
pipeline_tag: text-generation |
|
tags: |
|
- medical |
|
--- |
|
pip install transformers datasets torch |
|
[ |
|
{"soru": "Diyabet nedir?", "cevap": "Diyabet, vücudunuzun yeterince insülin üretemediği veya insülini etkili bir şekilde kullanamadığı bir durumdur."}, |
|
{"soru": "İnsülin direnci nedir?", "cevap": "İnsülin direnci, hücrelerinizin insüline yanıt vermediği ve kan şekerinin yükselmesine neden olduğu bir durumdur."}, |
|
{"soru": "Diyabet nasıl yönetilir?", "cevap": "Diyabet, sağlıklı beslenme, düzenli egzersiz ve ilaçlarla yönetilebilir."} |
|
] |
|
from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments |
|
from datasets import Dataset |
|
import json |
|
|
|
Veri setini yükle |
|
with open("diabi_veri_seti.json", "r", encoding="utf-8") as f: |
|
veri_seti = json.load(f) |
|
|
|
#Veri setini Hugging Face Dataset formatına dönüştür |
|
sorular = [veri["soru"] for veri in veri_seti] |
|
cevaplar = [veri["cevap"] for veri in veri_seti] |
|
|
|
dataset = Dataset.from_dict({"soru": sorular, "cevap": cevaplar}) |
|
|
|
Tokenizer ve modeli yükle |
|
model_adi = "microsoft/DialoGPT-small" # Küçük, Orta veya Büyük model seçebilirsiniz |
|
tokenizer = AutoTokenizer.from_pretrained(model_adi) |
|
model = AutoModelForCausalLM.from_pretrained(model_adi) |
|
|
|
Veri setini tokenize et |
|
def tokenize_veri(ornek): |
|
return tokenizer(ornek["soru"] + " " + ornek["cevap"], truncation=True, padding="max_length", max_length=128) |
|
|
|
tokenized_dataset = dataset.map(tokenize_veri, batched=True) |
|
|
|
Eğitim argümanlarını ayarla |
|
training_args = TrainingArguments( |
|
output_dir="./diabi-model", # Modelin kaydedileceği dizin |
|
overwrite_output_dir=True, |
|
num_train_epochs=3, # Eğitim epoch sayısı |
|
per_device_train_batch_size=8, # Batch boyutu |
|
save_steps=500, |
|
save_total_limit=2, |
|
logging_dir="./logs", # Logların kaydedileceği dizin |
|
logging_steps=10, |
|
) |
|
|
|
Trainer'ı oluştur |
|
trainer = Trainer( |
|
model=model, |
|
args=training_args, |
|
train_dataset=tokenized_dataset, |
|
) |
|
|
|
Modeli eğit |
|
trainer.train() |
|
|
|
Modeli kaydet |
|
trainer.save_model("./diabi-model") |
|
tokenizer.save_pretrained("./diabi-model") |
|
|
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
|
Eğitilen modeli yükle |
|
model_adi = "./diabi-model" |
|
tokenizer = AutoTokenizer.from_pretrained(model_adi) |
|
model = AutoModelForCausalLM.from_pretrained(model_adi) |
|
|
|
Sohbet başlat |
|
print("Diabi: Merhaba! Ben Diabi, diyabetle ilgili sorularınızı yanıtlamak için buradayım. Nasıl yardımcı olabilirim? (Çıkmak için 'exit' yazın)") |
|
while True: |
|
user_input = input("Siz: ") |
|
if user_input.lower() == "exit": |
|
break |
|
|
|
# Kullanıcı mesajını modele gönder |
|
inputs = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt") |
|
outputs = model.generate(inputs, max_length=1000, pad_token_id=tokenizer.eos_token_id) |
|
bot_reply = tokenizer.decode(outputs[:, inputs.shape[-1]:][0], skip_special_tokens=True) |
|
|
|
print(f"Diabi: {bot_reply}") |