MediSum mT5-Base (TR Medical Summarization)
Bu model, google/mt5-base üzerinde Türkçe tıbbi içeriklerin özetlenmesi amacıyla fine-tune edilmiş bir Seq2Seq (encoder-decoder) modelidir. Hedef kullanım senaryosu, hastane ve sağlık sağlayıcılarının bilgilendirici makalelerinden kısa, anlaşılır özetler üretmektir.
Uyarı: Modelin ürettiği çıktılar tıbbi tavsiye değildir. Klinik karar verme amacıyla kullanılmamalıdır.
Model Özeti
- Mimari: mT5 (Text-to-Text Transformer), encoder-decoder
- Temel model:
google/mt5-base(yaklaşık 580M parametre) - Görev: Summarization (metin özetleme)
- Diller:
- Fine-tune verisi ağırlıklı olarak Türkçe tıbbi metinlerdir.
- mT5 çok dilli olduğu için İngilizce girdilerde de çalışabilir; ancak bu checkpoint Türkçe tıbbi alanda optimize edilmiştir.
Eğitim Verisi
Bu checkpoint, Hugging Face üzerinde yer alan Türkçe tıbbi makale korpusu ile ilişkilidir:
- Dataset:
umutertugrul/turkish-hospital-medical-articles - İçerik: Türkiye’deki 14 resmi hastane ve sağlık sağlayıcı web sitesinden derlenmiş Türkçe tıbbi makaleler.
- Lisans: CC BY 4.0
Bu eğitim çalışmasındaki pratik veri hazırlığı (pipeline özeti)
Eğitim notebook’unda veri, birleştirilmiş CSV üzerinden aşağıdaki mantıkla hazırlanmıştır:
- Gerekli kolonlar:
text,summary,status - Filtre:
status == "success" - Temizlik:
textvesummaryboş olanlar atılır - Minimum uzunluk filtreleri:
texten az 50 karaktersummaryen az 10 karakter
- Bölünme (seed: 42):
- Test: %20
- Train: %72
- Validation: %8 (train’in %10’u)
Not: Dataset sayfası ham makale korpusunu tanımlar. Bu fine-tune çalışmasında ayrıca özet hedefleri (summary) bulunan bir eğitim seti kullanılmıştır.
Ön İşleme ve Prompt Formatı
Model girdileri eğitimde şu şablonla hazırlanmıştır:
- Opsiyonel prefix prompt:
"Özetle: " - Maksimum kaynak uzunluğu:
MAX_SOURCE_LEN = 768 - Maksimum hedef uzunluğu:
MAX_TARGET_LEN = 250 - Tokenization:
- Kaynak metinler truncation ile kesilir
- Padding eğitim tarafında
DataCollatorForSeq2Seqile dinamik yapılır
Eğitim (Fine-tuning) Detayları
Eğitim ayarları (notebook’tan):
- Epoch: 8
- Learning rate: 2e-5
- Batch size:
- Train:
per_device_train_batch_size = 4 - Eval:
per_device_eval_batch_size = 4
- Train:
- Gradient accumulation: 2 (etkin batch size yaklaşık 8)
- Warmup ratio: 0.06
- Weight decay: 0.01
- Evaluation strategy: epoch
- Save strategy: epoch,
save_total_limit = 1 - Best model seçimi:
load_best_model_at_end = Truemetric_for_best_model = rougeL_f1
- Early stopping:
patience = 3 - Mixed precision:
fp16=False,bf16=False
Generation (Özet üretim) Ayarları
num_beams = 4min_length = 30max_length = 250no_repeat_ngram_size = 3early_stopping = True
Değerlendirme
Kullanılan metrikler
- Eğitim sırasında: ROUGE-1 / ROUGE-2 / ROUGE-L (F1)
- Test aşamasında ayrıca:
- sacreBLEU (sentence ve corpus)
- BERTScore (F1,
lang="tr")
Test seti sonuçları (notebook çıktısı)
- ROUGE-1 F1: 0.4736
- ROUGE-2 F1: 0.2206
- ROUGE-L F1: 0.2801
- Avg sentence BLEU: 11.5804
- Corpus BLEU: 12.0788
- Avg BERTScore F1: 0.6624
Bu skorlar, kullanılan veri bölünmesi ve eğitim konfigürasyonu ile üretilmiştir. Farklı veri temizlik kuralları, maksimum uzunluklar ve generation ayarları skorları etkileyebilir.
Kullanım
Transformers ile hızlı kullanım
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
model_id = "YOUR_HF_USERNAME/YOUR_MODEL_REPO" # örn: nebiberke/medisum-mt5-base
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSeq2SeqLM.from_pretrained(model_id)
text = "..." # uzun tıbbi makale metni
prompted = "Özetle: " + text
inputs = tokenizer(
prompted,
return_tensors="pt",
truncation=True,
max_length=768
)
outputs = model.generate(
**inputs,
num_beams=4,
min_length=30,
max_length=250,
no_repeat_ngram_size=3,
early_stopping=True
)
summary = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(summary)
pipeline ile kullanım
from transformers import pipeline
summarizer = pipeline(
"summarization",
model="YOUR_HF_USERNAME/YOUR_MODEL_REPO",
tokenizer="YOUR_HF_USERNAME/YOUR_MODEL_REPO"
)
text = "..."
result = summarizer("Özetle: " + text, max_length=250, min_length=30, num_beams=4)
print(result[0]["summary_text"])
Amaçlanan Kullanım
- Türkçe tıbbi bilgilendirme metinlerinin özetlenmesi
- Sağlık içeriklerinde hızlı gözden geçirme, içerik keşfi ve indeksleme
- Hastane blog içeriklerinden kısa açıklamalar üretme
Kullanım Dışı Senaryolar
- Tanı koyma, tedavi önerme, reçeteleme
- Acil durum yönlendirmesi
- Klinik karar destek çıktısı olarak doğrudan kullanım
Sınırlılıklar ve Riskler
- Halüsinasyon riski: Model metinde olmayan ayrıntıları uydurabilir.
- Truncation: 768 token üstü içerikler kesilir, önemli bilgi kaybı olabilir.
- Alan dışı metinler: Medikal alan dışındaki metinlerde kalite düşebilir.
- Dil karışımı: Çok dilli girdilerde özet dilinin tutarlılığı her zaman garanti değildir.
Etik Hususlar
- Çıktılar yalnızca bilgilendirme amaçlı ele alınmalıdır.
- Sağlıkla ilgili kritik kararlarda uzman görüşü gereklidir.
- Kişisel veri içeren metinlerle kullanımda KVKK ve ilgili politikalar gözetilmelidir.
Lisans
- Temel model
google/mt5-base: Apache-2.0 - Dataset
umutertugrul/turkish-hospital-medical-articles: CC BY 4.0
- Downloads last month
- 12
Model tree for nebiberke/medisum-mt5-base
Base model
google/mt5-base