Model Özeti
Bu model, facebook/mbart-large-50 tabanlı çok dilli bir encoder-decoder mimarisinin Türkçe tıbbi içerik özetleme görevine ince ayar (fine-tune) edilmiş sürümüdür. Amaç, Türkçe tıbbi makale ve bilgilendirme yazılarını daha kısa, okunabilir özetlere dönüştürmektir.
- Girdi: Türkçe tıbbi/sağlık alanı metni
- Çıktı: Türkçe özet
- Temel model: facebook/mbart-large-50 (mBART-50)
- Kütüphane: Hugging Face Transformers
Neler için uygundur
- Hastane, klinik, sağlık kurumu blog yazıları ve bilgilendirme metinleri için özetleme
- Sağlık alanında Türkçe NLP prototipleri, arama ve bilgi erişimi senaryoları
- Uzun içerikleri hızlıca kısaltma ve ana fikir çıkarımı
Neler için uygun değildir
- Tıbbi tanı, tedavi önerisi veya klinik karar desteği
- Hukuki veya tıbbi sorumluluk gerektiren metin üretimi
- İngilizce özet üretimi (model eğitimi ağırlıklı olarak Türkçe çıkışa odaklanmıştır)
Model Detayları
Mimari
Model, mBART-50'nin encoder-decoder yapısını kullanır. Çıktı dilini zorlamak için üretimde (generation) Turkish (tr_TR) dil kodu ilk üretilen token olarak zorlanır (forced_bos_token_id).
Tokenizer
- Tokenizer:
MBart50TokenizerFast - Dil kodları:
src_lang="tr_TR",tgt_lang="tr_TR"
Eğitim Verisi
Bu modelin eğitimi, Türkçe tıbbi içeriklerden oluşan bir derlemeden üretilen özetleme çiftleri ile yapılmıştır.
- Kaynak veri seti (makaleler):
umutertugrul/turkish-hospital-medical-articles - Eğitimde kullanılan format:
text(makale/metin),summary(hedef özet),status(kalite/başarı etiketi)
Veri temizliği ve filtreler
Eğitim not defterinde uygulanan başlıca adımlar:
status == "success"olmayan örneklerin elenmesitextvesummaryalanlarındanan/Nonebenzeri değerlerin temizlenmesi- Çok kısa örneklerin elenmesi:
textuzunluğu >= 50 karaktersummaryuzunluğu >= 10 karakter
Veri bölünmesi (split)
Toplam 9.928 örnek aşağıdaki oranlarla bölünmüştür:
- Train: 7.147
- Validation: 795
- Test: 1.986
Bölünme işlemi train_test_split ile yapılmış ve random_state=42 kullanılmıştır.
Ön İşleme (Preprocessing)
Sekans uzunlukları
- Maksimum kaynak (girdi) uzunluğu: 768 token
- Maksimum hedef (özet) uzunluğu: 250 token
- Uzun metinler truncation=True ile kesilir, padding eğitim sırasında collator tarafından yönetilir.
Prompt kullanımı
Not defterinde prompt desteği opsiyonel olarak tanımlanmıştır; varsayılan ayarda kapalıdır:
USE_PROMPT = FalsePROMPT = ""
Eğitim (Training)
Eğitim yapılandırması
Hugging Face Seq2SeqTrainer ile eğitim yapılmıştır.
- Learning rate: 2e-5
- Epoch: 8
- Train batch size (device başına): 4
- Eval batch size (device başına): 4
- Gradient accumulation: 2 (etkin batch size ≈ 8)
- Warmup ratio: 0.06
- Weight decay: 0.01
- Mixed precision: FP16 (GPU varsa)
- Gradient checkpointing: Açık
- use_cache: Kapalı (gradient checkpointing ile uyumlu)
Erken durdurma ve en iyi model seçimi
- Early stopping patience: 3
- Değerlendirme stratejisi: her epoch
- Kayıt stratejisi: her epoch (checkpoint)
- En iyi model metriği:
rougeL_f1 - En iyi model yükleme:
load_best_model_at_end=True
Üretim (Generation) ayarları
Modelin üretim konfigürasyonu:
- Beam search: 4
- max_length: 250
- min_length: 30
- no_repeat_ngram_size: 3
- forced_bos_token_id:
tr_TR - early_stopping: True
Değerlendirme (Evaluation)
Test setinde üretim yapılarak şu metrikler raporlanmıştır:
- ROUGE-1 F1: 0.4837
- ROUGE-2 F1: 0.2262
- ROUGE-L F1: 0.2754
- Sentence BLEU (ortalama): 12.1380
- Corpus BLEU: 12.8515
- BERTScore (F1): 0.6673
Not: Bu skorlar, kullanılan veri seti ve özetlerin üretim biçimine (insan ya da otomatik) bağlı olarak değişebilir. En sağlıklı değerlendirme için, hedef uygulama alanınıza yakın bir alt kümede yeniden ölçüm önerilir.
Kullanım
Transformers ile hızlı kullanım
Aşağıdaki örnek, modeli yerel ya da Hugging Face Hub üzerinden yükleyip özet üretmek için temel bir şablondur. Model adını kendi repo adınızla değiştirin.
from transformers import MBartForConditionalGeneration, MBart50TokenizerFast
MODEL_ID = "KULLANICI_ADINIZ/MODEL_REPO_ADI"
tokenizer = MBart50TokenizerFast.from_pretrained(MODEL_ID, src_lang="tr_TR", tgt_lang="tr_TR")
model = MBartForConditionalGeneration.from_pretrained(MODEL_ID)
text = "Uzun tıbbi içerik buraya gelecek..."
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=768)
summary_ids = model.generate(
**inputs,
num_beams=4,
max_length=250,
min_length=30,
no_repeat_ngram_size=3,
forced_bos_token_id=tokenizer.lang_code_to_id["tr_TR"],
)
print(tokenizer.decode(summary_ids[0], skip_special_tokens=True))
Öneriler
- Çok uzun metinlerde (ör. 10.000+ karakter) önce paragraf bazlı özetleme ve ardından birleştirilmiş özet üzerinde ikinci bir özetleme katmanı daha iyi sonuç verebilir.
- Alan terimlerinin korunması önemliyse
no_repeat_ngram_sizevemin_lengthparametrelerini alanınıza göre ayarlayın.
Sınırlamalar ve Riskler
- Halüsinasyon riski: Özellikle metinde açık olmayan ayrıntıları uydurabilir veya sayısal değerleri bozabilir.
- Alan bağımlılığı: Türkçe tıbbi bilgilendirme metinlerinde daha iyi, alan dışı metinlerde daha zayıf performans beklenir.
- Yanlış yönlendirme riski: Çıktılar tıbbi karar için kullanılmamalıdır; doğrulama şarttır.
Etik Kullanım
- Bu modelin çıktıları bilgilendirme amaçlıdır. Sağlıkla ilgili sonuçlar mutlaka yetkin uzmanlar tarafından kontrol edilmelidir.
- Son kullanıcıya sunulan uygulamalarda “otomatik özet” olduğu açıkça belirtilmelidir.
Lisans
- Bu model, taban modelin lisansını takip edecek şekilde paylaşılmalıdır.
- Taban model sayfasında lisans MIT olarak belirtilmiştir.
- Downloads last month
- 2
Model tree for nebiberke/medisum-mbart-large-50
Base model
facebook/mbart-large-50