Bu model, facebook/xglm-564M temel alınarak Türkçe diline devam ön eğitimi yapılmış bir metin üretim modelidir. Türkçe Wikipedia verileri üzerinde eğitilmiştir ve Türkçe metin üretiminde daha iyi performans göstermek için optimize edilmiştir.

Model Detayları

Model Açıklaması
Bu model, Türkçe diline özgü metin üretimi için geliştirilmiş bir transformers modelidir. Türkçe Wikipedia verileriyle eğitilmiş olup, doğal dil işleme (NLP) задачи için kullanılabilir.

  • Geliştiren: Emre Taşar
  • Model Türü: Dil Modeli (Causal Language Model)
  • Dil(ler): Türkçe
  • Lisans: Apache 2.0 (XGLM-564M temel modelinin lisansı)
  • İnce Ayar Yapılan Model: facebook/xglm-564M
  • Model Kaynakları:

Kullanım

Direkt Kullanım

Bu model, Türkçe metin üretimi için kullanılabilir. Aşağıdaki kod ile modele başlayabilirsiniz:

from transformers import AutoTokenizer, AutoModelForCausalLM

#Modeli ve tokenizer'ı yükle
tokenizer = AutoTokenizer.from_pretrained("emre/xglm-564M-turkish")
model = AutoModelForCausalLM.from_pretrained("emre/xglm-564M-turkish")

#Metin üretimi
prompt = "Bir varmış, bir yokmuş."
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_length=100,
do_sample=True,
top_p=0.95,
top_k=50,
temperature=0.7
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Alt Kullanım (Downstream Use)

Model, Türkçe doğal dil işleme görevleri (örneğin, metin tamamlama, sohbet sistemleri) için ince ayar yapılabilir.

Kapsam Dışı Kullanım

Model, Wikipedia verileriyle eğitildiği için yaratıcı yazım (örneğin masallar) veya çok özel alanlar (örneğin tıbbi metinler) için sınırlı performans gösterebilir.

Bias, Riskler ve Sınırlamalar

Model, Türkçe Wikipedia verileriyle eğitildiği için bu verilerdeki olası önyargıları yansıtabilir. Ayrıca, eğitim sonrası perplexity değeri (51.81) nispeten yüksektir, bu da modelin Türkçe dilini tam anlamıyla öğrenmediğini gösterir.

Öneriler

Kullanıcılar, modelin sınırlamalarını ve potansiyel önyargılarını dikkate almalıdır. Daha iyi performans için ek veri veya epoch ile ince ayar önerilir.

Eğitim Detayları

Eğitim Verisi

Model, Türkçe Wikipedia'dan alınan 20.000 makale üzerinde eğitilmiştir. Doğrulama için 2.000 makale kullanılmıştır.

Eğitim Süreci

Ön İşleme

Veriler, max_length=512 ile tokenizasyon işleminden geçirilmiş ve gereksiz sütunlar ("title", "id", "paragraph") kaldırılmıştır.

Eğitim Hiperparametreleri

  • Eğitim Rejimi: FP16 (mixed precision)
  • Batch Size: 4 (eğitim ve değerlendirme için)
  • Epoch Sayısı: 2
  • Learning Rate: 1e-5
  • Scheduler: Yok
  • Warmup Steps: Yok
  • Optimizer: AdamW (varsayılan)

Hızlar, Boyutlar, Süreler

  • Eğitim Süresi: 2 saat 10 dakika
  • Donanım: Google Colab T4 GPU
  • Adım Sayısı: 10.000

Değerlendirme

Test Verisi, Faktörler ve Metrikler

Test Verisi

Doğrulama için Türkçe Wikipedia'dan rastgele seçilen 2.000 makale kullanılmıştır. Perplexity testi için ise 100 örneklik bir alt küme alınmıştır.

Faktörler

  • Modelin Türkçe diline adaptasyonu
  • Metin üretiminde akıcılık ve anlam bütünlüğü

Metrikler

  • Perplexity: Modelin tahmin doğruluğunu ölçer (düşük değer daha iyidir).
  • Qualitative Çıktı Analizi: Prompt bazlı metin üretimi.

Sonuçlar

  • Perplexity: 51.81 (Eğitim sonrası)
  • Eğitim Kayıpları:
    • Epoch 1: Training Loss: 3.5180, Validation Loss: 3.4951
    • Epoch 2: Training Loss: 3.4280, Validation Loss: 3.4797
  • Örnek Çıktılar:
    • Prompt: "Bir varmış, bir yokmuş."
      • Eğitim Öncesi: "Bir varmış, bir yokmuş."
      • Eğitim Sonrası: "Bir varmış, bir yokmuş. Ama ne var ne yokmuş. Bu iki varış arasında çok değişkenlik vardır..."
    • Not: Eğitim sonrası çıktılar daha uzun, ancak bazen anlamsız veya tekrarlayıcı olabiliyor.

Özet

Model, Türkçe Wikipedia verileriyle temel bir adaptasyon sağlamış, ancak perplexity değeri (51.81) ve çıktılar, daha fazla eğitim veya veri gerektiğini gösteriyor.

Çevresel Etki

Karbon emisyonları, Lacoste et al. (2019) tarafından sunulan Machine Learning Impact calculator kullanılarak tahmin edilebilir.

  • Donanım Türü: Google Colab T4 GPU
  • Kullanılan Saat: 2 saat 10 dakika
  • Bulut Sağlayıcı: Google Cloud
  • Hesaplama Bölgesi: Bilinmiyor
  • Karbon Emisyonu: Tahmin edilmedi (hesaplama için ek bilgi gerekli)

Teknik Özellikler

Model Mimarisi ve Amaç

  • Mimari: XGLM (Transformer tabanlı dil modeli)
  • Amaç: Türkçe metin üretimi
  • Parametre Sayısı: 564 milyon
  • Tensor Türü: F32

Hesaplama Altyapısı

  • Donanım: Google Colab T4 GPU
  • Yazılım: Transformers (Hugging Face), PyTorch

Citation

BibTeX (XGLM makalesi): @article{lin2021few, title={Few-shot Learning with Multilingual Language Models}, author={Lin, Xi Victoria and Mihalcea, Rada and others}, journal={arXiv preprint arXiv:1910.09700}, year={2019} }

Model Kartı Yazarları

  • Emre Taşar

Model Kartı İletişim

Sorularınız için Hugging Face profilim üzerinden bana ulaşabilirsiniz.

Daha Fazla Bilgi

Modelin performansını artırmak için daha fazla veri, epoch veya LoRA gibi yöntemler önerilir.

Eğitim için kullanılan kod örneği:

# Gerekli kütüphaneleri yükle
!pip install transformers datasets -q

# Gerekli kütüphaneleri içe aktar
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer, DataCollatorForLanguageModeling
from datasets import load_dataset
import torch

# Model ve tokenizer tanımlamaları
model_name = "facebook/xglm-564M"
tokenizer = AutoTokenizer.from_pretrained(model_name)
original_model = AutoModelForCausalLM.from_pretrained(model_name)  # Eğitim öncesi model
model = AutoModelForCausalLM.from_pretrained(model_name)  # Eğitim için kullanılacak model

# Türkçe Wikipedia veri setini yükle
dataset = load_dataset("Alaeddin/wikipedia-turkish", split="train[:20000]")  # İlk 20.000 makale
val_dataset = load_dataset("Alaeddin/wikipedia-turkish", split="train[20000:22000]")  # Doğrulama için 2.000 makale

# Tokenization fonksiyonu
def tokenize_function(examples):
    return tokenizer(examples["paragraph"], truncation=True, max_length=512, padding="max_length")

# Veri setini tokenize et
train_dataset = dataset.map(tokenize_function, batched=True, remove_columns=["title", "id", "paragraph"])
val_dataset = val_dataset.map(tokenize_function, batched=True, remove_columns=["title", "id", "paragraph"])

# Veri kollektörünü tanımla
data_collator = DataCollatorForLanguageModeling(tokenizer=tokenizer, mlm=False)

# Eğitim argümanlarını ayarla
training_args = TrainingArguments(
    output_dir="/content/model_save",
    per_device_train_batch_size=4,
    per_device_eval_batch_size=4,
    num_train_epochs=2,
    learning_rate=1e-5,
    fp16=True,  # Bellek kullanımını optimize et
    eval_strategy="epoch",
    save_strategy="epoch",
    load_best_model_at_end=True,
    remove_unused_columns=False,
    logging_steps=500,  # Daha sık log için (isteğe bağlı)
    report_to="wandb",  # Wandb kullanmak istemiyorsanız bunu kaldırabilirsiniz
)

# Trainer ile eğitimi başlat
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=val_dataset,
    data_collator=data_collator,
)

# Eğitimi gerçekleştir
trainer.train()

# Eğitilmiş modeli kaydet
trainer.save_model("/content/final_model")
tokenizer.save_pretrained("/content/final_model")

# Metin üretimi fonksiyonu (iyileştirilmiş)
def generate_text(prompt, model, tokenizer, max_length=100):
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    outputs = model.generate(
        **inputs,
        max_length=max_length,
        num_return_sequences=1,
        do_sample=True,
        top_p=0.95,
        top_k=50,  # Daha iyi kelime seçimi için
        temperature=0.7,  # Daha tutarlı metin için
    )
    generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return generated_text

# Türkçe performansını test et
prompt = "Bir varmış, bir yokmuş."
print("Eğitim Öncesi Model Çıktısı:", generate_text(prompt, original_model, tokenizer))
print("Eğitim Sonrası Model Çıktısı:", generate_text(prompt, model, tokenizer))

"""

Downloads last month
2
Safetensors
Model size
564M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.

Model tree for emre/xglm-564M-turkish

Base model

facebook/xglm-564M
Finetuned
(1)
this model

Dataset used to train emre/xglm-564M-turkish