diabetica commited on
Commit
208e8e6
·
verified ·
1 Parent(s): 1e01895

Create README.md

Browse files
Files changed (1) hide show
  1. README.md +85 -0
README.md ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: bsl-1.0
3
+ base_model:
4
+ - microsoft/OmniParser-v2.0
5
+ pipeline_tag: text-generation
6
+ tags:
7
+ - medical
8
+ ---
9
+ pip install transformers datasets torch
10
+ [
11
+ {"soru": "Diyabet nedir?", "cevap": "Diyabet, vücudunuzun yeterince insülin üretemediği veya insülini etkili bir şekilde kullanamadığı bir durumdur."},
12
+ {"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."},
13
+ {"soru": "Diyabet nasıl yönetilir?", "cevap": "Diyabet, sağlıklı beslenme, düzenli egzersiz ve ilaçlarla yönetilebilir."}
14
+ ]
15
+ from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments
16
+ from datasets import Dataset
17
+ import json
18
+
19
+ Veri setini yükle
20
+ with open("diabi_veri_seti.json", "r", encoding="utf-8") as f:
21
+ veri_seti = json.load(f)
22
+
23
+ #Veri setini Hugging Face Dataset formatına dönüştür
24
+ sorular = [veri["soru"] for veri in veri_seti]
25
+ cevaplar = [veri["cevap"] for veri in veri_seti]
26
+
27
+ dataset = Dataset.from_dict({"soru": sorular, "cevap": cevaplar})
28
+
29
+ Tokenizer ve modeli yükle
30
+ model_adi = "microsoft/DialoGPT-small" # Küçük, Orta veya Büyük model seçebilirsiniz
31
+ tokenizer = AutoTokenizer.from_pretrained(model_adi)
32
+ model = AutoModelForCausalLM.from_pretrained(model_adi)
33
+
34
+ Veri setini tokenize et
35
+ def tokenize_veri(ornek):
36
+ return tokenizer(ornek["soru"] + " " + ornek["cevap"], truncation=True, padding="max_length", max_length=128)
37
+
38
+ tokenized_dataset = dataset.map(tokenize_veri, batched=True)
39
+
40
+ Eğitim argümanlarını ayarla
41
+ training_args = TrainingArguments(
42
+ output_dir="./diabi-model", # Modelin kaydedileceği dizin
43
+ overwrite_output_dir=True,
44
+ num_train_epochs=3, # Eğitim epoch sayısı
45
+ per_device_train_batch_size=8, # Batch boyutu
46
+ save_steps=500,
47
+ save_total_limit=2,
48
+ logging_dir="./logs", # Logların kaydedileceği dizin
49
+ logging_steps=10,
50
+ )
51
+
52
+ Trainer'ı oluştur
53
+ trainer = Trainer(
54
+ model=model,
55
+ args=training_args,
56
+ train_dataset=tokenized_dataset,
57
+ )
58
+
59
+ Modeli eğit
60
+ trainer.train()
61
+
62
+ Modeli kaydet
63
+ trainer.save_model("./diabi-model")
64
+ tokenizer.save_pretrained("./diabi-model")
65
+
66
+ from transformers import AutoTokenizer, AutoModelForCausalLM
67
+
68
+ Eğitilen modeli yükle
69
+ model_adi = "./diabi-model"
70
+ tokenizer = AutoTokenizer.from_pretrained(model_adi)
71
+ model = AutoModelForCausalLM.from_pretrained(model_adi)
72
+
73
+ Sohbet başlat
74
+ 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)")
75
+ while True:
76
+ user_input = input("Siz: ")
77
+ if user_input.lower() == "exit":
78
+ break
79
+
80
+ # Kullanıcı mesajını modele gönder
81
+ inputs = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
82
+ outputs = model.generate(inputs, max_length=1000, pad_token_id=tokenizer.eos_token_id)
83
+ bot_reply = tokenizer.decode(outputs[:, inputs.shape[-1]:][0], skip_special_tokens=True)
84
+
85
+ print(f"Diabi: {bot_reply}")