Update inference_test_turkcell_with_intents.py
Browse files
inference_test_turkcell_with_intents.py
CHANGED
@@ -107,33 +107,35 @@ def background_training(intents):
|
|
107 |
# 3. Tokenizer ve model yükle
|
108 |
log("📥 Tokenizer yükleniyor...")
|
109 |
tokenizer = AutoTokenizer.from_pretrained(INTENT_MODEL_ID)
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
log("📦 Model yükleniyor...")
|
111 |
-
model = AutoModelForSequenceClassification.from_pretrained(INTENT_MODEL_ID,
|
112 |
log("✅ Tokenizer ve model hazır.")
|
113 |
|
114 |
# 4. Tokenize işlemi
|
115 |
log("🧪 Tokenize işlemi başlatılıyor...")
|
116 |
-
def tokenize(batch):
|
117 |
-
return tokenizer(batch["text"], truncation=True, padding=True)
|
118 |
-
|
119 |
-
log("🧪 Manuel tokenizer testi: ilk örnek")
|
120 |
sample = dataset[0]["text"]
|
121 |
log(f"📄 Örnek: {sample}")
|
122 |
result = tokenizer(sample, truncation=True, padding=True)
|
123 |
log(f"✅ Tokenizer sonucu: {result['input_ids'][:5]}")
|
124 |
-
|
125 |
log("🔁 Manuel tokenize işlemi başlatılıyor...")
|
126 |
tokenized_data = {"input_ids": [], "attention_mask": [], "label": []}
|
127 |
-
|
128 |
for row in dataset:
|
129 |
out = tokenizer(row["text"], truncation=True, padding="max_length", max_length=128)
|
130 |
tokenized_data["input_ids"].append(out["input_ids"])
|
131 |
tokenized_data["attention_mask"].append(out["attention_mask"])
|
132 |
tokenized_data["label"].append(row["label"])
|
133 |
-
|
134 |
tokenized = Dataset.from_dict(tokenized_data)
|
135 |
-
|
136 |
|
|
|
137 |
if len(tokenized) == 0:
|
138 |
log("❌ Tokenize edilmiş veri boş! Eğitim başlatılamıyor.")
|
139 |
return
|
@@ -153,7 +155,13 @@ def background_training(intents):
|
|
153 |
save_strategy="no",
|
154 |
report_to=[]
|
155 |
)
|
156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
|
158 |
# 7. Eğitim başlatılıyor
|
159 |
log("🚀 trainer.train() başlatılıyor...")
|
@@ -162,11 +170,13 @@ def background_training(intents):
|
|
162 |
|
163 |
# 8. Model kaydediliyor
|
164 |
log("💾 Model diske kaydediliyor...")
|
165 |
-
if os.path.exists(INTENT_MODEL_PATH):
|
|
|
166 |
model.save_pretrained(INTENT_MODEL_PATH)
|
167 |
tokenizer.save_pretrained(INTENT_MODEL_PATH)
|
168 |
with open(os.path.join(INTENT_MODEL_PATH, "label2id.json"), "w") as f:
|
169 |
json.dump(label2id, f)
|
|
|
170 |
log("✅ Intent eğitimi tamamlandı ve model kaydedildi.")
|
171 |
|
172 |
except Exception as e:
|
|
|
107 |
# 3. Tokenizer ve model yükle
|
108 |
log("📥 Tokenizer yükleniyor...")
|
109 |
tokenizer = AutoTokenizer.from_pretrained(INTENT_MODEL_ID)
|
110 |
+
|
111 |
+
log("📦 Model konfigürasyonu hazırlanıyor...")
|
112 |
+
config = AutoConfig.from_pretrained(INTENT_MODEL_ID)
|
113 |
+
config.problem_type = "single_label_classification"
|
114 |
+
config.num_labels = len(label2id)
|
115 |
+
|
116 |
log("📦 Model yükleniyor...")
|
117 |
+
model = AutoModelForSequenceClassification.from_pretrained(INTENT_MODEL_ID, config=config)
|
118 |
log("✅ Tokenizer ve model hazır.")
|
119 |
|
120 |
# 4. Tokenize işlemi
|
121 |
log("🧪 Tokenize işlemi başlatılıyor...")
|
|
|
|
|
|
|
|
|
122 |
sample = dataset[0]["text"]
|
123 |
log(f"📄 Örnek: {sample}")
|
124 |
result = tokenizer(sample, truncation=True, padding=True)
|
125 |
log(f"✅ Tokenizer sonucu: {result['input_ids'][:5]}")
|
126 |
+
|
127 |
log("🔁 Manuel tokenize işlemi başlatılıyor...")
|
128 |
tokenized_data = {"input_ids": [], "attention_mask": [], "label": []}
|
|
|
129 |
for row in dataset:
|
130 |
out = tokenizer(row["text"], truncation=True, padding="max_length", max_length=128)
|
131 |
tokenized_data["input_ids"].append(out["input_ids"])
|
132 |
tokenized_data["attention_mask"].append(out["attention_mask"])
|
133 |
tokenized_data["label"].append(row["label"])
|
134 |
+
|
135 |
tokenized = Dataset.from_dict(tokenized_data)
|
136 |
+
tokenized.set_format(type="torch", columns=["input_ids", "attention_mask", "label"])
|
137 |
|
138 |
+
log(f"📊 Eğitim örnek sayısı (manuel tokenized): {len(tokenized)}")
|
139 |
if len(tokenized) == 0:
|
140 |
log("❌ Tokenize edilmiş veri boş! Eğitim başlatılamıyor.")
|
141 |
return
|
|
|
155 |
save_strategy="no",
|
156 |
report_to=[]
|
157 |
)
|
158 |
+
|
159 |
+
trainer = Trainer(
|
160 |
+
model=model,
|
161 |
+
args=args,
|
162 |
+
train_dataset=tokenized,
|
163 |
+
data_collator=default_data_collator
|
164 |
+
)
|
165 |
|
166 |
# 7. Eğitim başlatılıyor
|
167 |
log("🚀 trainer.train() başlatılıyor...")
|
|
|
170 |
|
171 |
# 8. Model kaydediliyor
|
172 |
log("💾 Model diske kaydediliyor...")
|
173 |
+
if os.path.exists(INTENT_MODEL_PATH):
|
174 |
+
shutil.rmtree(INTENT_MODEL_PATH)
|
175 |
model.save_pretrained(INTENT_MODEL_PATH)
|
176 |
tokenizer.save_pretrained(INTENT_MODEL_PATH)
|
177 |
with open(os.path.join(INTENT_MODEL_PATH, "label2id.json"), "w") as f:
|
178 |
json.dump(label2id, f)
|
179 |
+
|
180 |
log("✅ Intent eğitimi tamamlandı ve model kaydedildi.")
|
181 |
|
182 |
except Exception as e:
|