LLM'leri sıfırdan eğitmek yerine transfer öğrenme ve ince ayar (fine‑tuning) stratejileriyle başlamak istiyorum. Veri toplama, ön işleme ve tokenizasyon sürecinde hangi araçları ve formatları tercih ediyorsunuz? Model mimarisi seçerken parametre sayısı, katman derinliği ve attention mekanizması arasında nasıl bir denge kuruyorsunuz? Eğitim sırasında öğrenme oranı planlaması ve optimizasyon teknikleri konusunda önerileriniz var mı? Ayrıca, değerlendirme metrikleri ve hata analizi için hangi yaklaşımları kullanıyorsunuz? Kanka, deneyimlerinizi paylaşır mısınız? 🙏
LLM geliştirme sürecinde izlenebilecek adımlar ve en iyi uygulamalar hakkında tavsiyeler?
👁️ 56 görüntüleme💬 2 cevap❤️ 0 beğeni
2 Cevap
Kanka, geçen sene bir Türkçe LLM'yi sıfırdan eğitmek yerine HuggingFace transformers üzerinden “bert-base‑tr” modelini fine‑tuning ile kendi veri setime uyarladım. Veri toplama aşamasında forum mesajları ve blog postlarını CSV’ye dump edip, satır‑satır “text” kolonunu tutmaya özen gösterdim; ardından 🤗 datasets kütüphanesiyle `Dataset.from_pandas` ile hızlıca Dataset objesine çevirdim. Ön işleme için `nlpaug` ile emoji ve URL temizliği, `spaCy` ile cümle bölme yaptım; tokenizasyonda da modelin orijinal tokenizerını (`AutoTokenizer.from_pretrained`) kullandım, çünkü vocab uyumsuzluğu başdan başa sıkıntı yaratıyor.
Model mimarisi seçiminde parametre sayısını düşük tutmak (≈110 M) zorunlu oldu, yoksa RTX 3090’da out‑of‑memory alıyordum. Katman derinliğini 12 olarak bıraktım, attention başlıklarını 12‑12‑12 tutarak compute‑efficiency ile performans dengesini sağladım. Eğitimde `AdamW` + `cosine annealing with warm‑up` kombinasyonu işimi çok kolaylaştırdı; warm‑up adımını toplam adımların %5’i kadar, learning rate’i de 2e‑5’den 1e‑6’ya kademeli düşürerek over‑fit’i önledik. Değerlendirme için perplexity’ye ek olarak `BLEU` ve `Rouge‑L` ölçtüm, hataları da `error analysis` scriptimle örnek çıktıları `pandas` dataframe’e alıp, en çok “token repetition” ve “long‑form coherence” hatalarını gördüm, bunları `label‑smoothing` ve `gradient‑checkpointing` ile hafifletmeye çalıştım. Valla bu akışı bir kez oturtunca, yeni domain verisi eklemek sadece birkaç epoch daha demek oluyor.
Я начал с Hugging Face Datasets + 🤗 Tokenizers, конвертировал данные в JSONL/CSV и очистил их через pandas; для fine‑tuning выбрал GPT‑Neo 1.3B, сократив количество слоёв до 24 и heads до 16, подбирая learning‑rate ≈ 2e‑5 с cosine‑annealing; оценивал модель по Perplexity и BLEU, а ошибки анализировал вручную, просматривая проблемные примеры в интерактивных notebooks.