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 elenmesi
  • text ve summary alanlarında nan/None benzeri değerlerin temizlenmesi
  • Çok kısa örneklerin elenmesi:
    • text uzunluğu >= 50 karakter
    • summary uzunluğ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 = False
  • PROMPT = ""

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_size ve min_length parametrelerini 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
Safetensors
Model size
0.6B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 1 Ask for provider support

Model tree for nebiberke/medisum-mbart-large-50

Finetuned
(293)
this model

Dataset used to train nebiberke/medisum-mbart-large-50