Modern yapay zeka dünyasında, önceden eğitilmiş büyük dil modellerini (LLM) kendi ihtiyaçlarımıza göre uyarlamak artık bir zorunluluk haline geldi. Fine-tuning, tam da bu noktada devreye giren ve bir modelin davranışını belirli bir göreve veya domain'e özelleştirmemizi sağlayan kritik bir süreçtir. Peki fine-tuning tam olarak nedir ve hangi yöntemlerle yapılabilir?
Fine-tuning, halihazırda eğitilmiş bir modelin parametrelerini ve davranış biçimini güncelleyerek, modeli belirli bir göreve adapte etme işlemidir. Genel amaç, modelin tüm parametrelerini değiştirmek yerine, belirli bir oranda güncelleme yapmaktır. Ancak bazı durumlarda Full Fine-tuning yöntemi de kullanılabilir.
- Full Fine-Tuning: Modelin tüm parametrelerinin güncellenmesi
- PEFT (Parameter Efficient Fine-Tuning): Parametre verimliliğine odaklanan yöntemler
- Davranışsal Fine-Tuning: Instruction ve Alignment tuning teknikleri
Her yaklaşımın altında farklı teknikler ve alt başlıklar bulunsa da, fine-tuning dünyasını bu üç ana kategoriye ayırabiliriz. Şimdi her birini detaylıca inceleyelim.
1. Full Fine-Tuning: Tam Parametre Güncellemesi
Full Fine-Tuning, adından da anlaşılacağı üzere modelin tüm parametrelerinin güncendiği klasik fine-tuning yaklaşımıdır. Bu yöntemde, önceden eğitilmiş modelin her bir ağırlık değeri, yeni veri setiyle yeniden optimize edilir.
Teknik Detaylar ve Gereksinimler
Bu yaklaşım, en yüksek performansı sunma potansiyeline sahip olsa da, beraberinde ciddi donanım gereksinimleri getirir. Örneğin, 7 milyar parametreli bir model için 4 adet A100 GPU'ya ihtiyaç duyabilirsiniz. Bu da küçük ekipler ve bireysel araştırmacılar için ciddi bir maliyet anlamına gelir.
Avantajları
Full Fine-Tuning, modelin tam potansiyelini ortaya çıkarmanıza olanak tanır. Özellikle domain-specific görevlerde, modelin tüm katmanlarını güncelleyerek maksimum adaptasyon sağlanabilir.
Modelin tüm katmanları güncellenir, bu da domain'e özgü öğrenme için en güçlü yaklaşımdır. Ancak hesaplama maliyeti oldukça yüksektir.
Dezavantajları
Yüksek VRAM gereksinimi ve uzun eğitim süreleri, bu yöntemin en büyük dezavantajlarıdır. Ayrıca overfitting riski de daha yüksektir, özellikle küçük veri setlerinde.
7B parametreli bir model için 56GB+ VRAM gerekebilir. Bu da 4xA100 veya benzeri enterprise seviye donanım anlamına gelir.
Ne Zaman Kullanılmalı?
Full Fine-Tuning idealdir:
- Büyük ve yüksek kaliteli domain-specific veri setiniz varsa
- Maksimum performans kritik öneme sahipse
- Yeterli hesaplama kaynağınız varsa
Çoğu pratik uygulama için PEFT yöntemleri daha makul bir seçim olsa da, kritik production sistemlerinde Full Fine-Tuning hâlâ altın standarttır.
Eğitim Süreci ve Optimizasyon
Full Fine-Tuning sürecinde, gradient descent algoritması kullanılarak tüm model ağırlıkları güncellenir. Learning rate, batch size ve epoch sayısı gibi hiperparametreler dikkatli şekilde ayarlanmalıdır.
Önerilen Hiperparametreler
Tipik bir Full Fine-Tuning kurulumu için şu değerler başlangıç noktası olarak kullanılabilir:
Learning rate: 1e-5 ile 5e-5 arası, Batch size: GPU kapasitesine göre 2-8, Epochs: Erken durdurma ile 3-5 epoch
Mixed precision training (FP16/BF16) kullanarak VRAM kullanımını %40-50 oranında azaltabilirsiniz.
2. PEFT: Parameter-Efficient Fine-Tuning
PEFT (Parameter-Efficient Fine-Tuning), büyük dil modellerinin sadece küçük bir kısmını güncelleyerek parametre verimli fine-tuning yapma yaklaşımıdır. Modern LLM çağında, bu yöntemler Full Fine-Tuning'e güçlü bir alternatif oluşturuyor.
PEFT'in Temel Mantığı
PEFT yöntemlerinin temel fikri basittir: Modelin davranışını değiştirmek için tüm parametreleri yeniden eğitmeye gerek yoktur. Bunun yerine, parametrelerin yalnızca %0.1-2'si gibi minimal bir kısmını güncelleyerek etkili adaptasyon sağlanabilir.
Neden PEFT?
PEFT yaklaşımı, birçok pratik avantaj sunar. En önemlisi, GPU/VRAM gereksinimlerini dramatik şekilde azaltmasıdır. 7B parametreli bir LLaMA modelini fine-tune etmek için 4xA100 yerine, tek bir consumer-grade GPU yeterli olabilir.
Ayrıca, PEFT yöntemleri overfit riskini azaltır, daha hızlı eğitime olanak tanır ve birden fazla adapter'ı aynı base model üzerinde kullanma esnekliği sağlar.
- Daha az GPU/VRAM kullanımı ile büyük modelleri eğitme
- Hızlı adaptasyon ve düşük overfit riski
PEFT ile 7B parametreli bir model için yalnızca 10-50M parametre güncellenir. Bu da Full Fine-Tuning'in yaklaşık %1'i kadardır.
Popüler PEFT Yöntemleri Karşılaştırması
PEFT ailesi altında birçok farklı teknik bulunmaktadır. Her birinin kendine özgü avantajları ve kullanım senaryoları vardır.
| Yöntem | Güncellenen Parametre | VRAM Kullanımı | Performans | Temel Mantık |
|---|---|---|---|---|
| LoRA | %0.1–2 | Orta/Yüksek | Yüksek | Low-rank adaptörler eklenir, merge/unmerge mümkün |
| QLoRA | %0.1–2 | Çok Düşük | Çok Yüksek | LoRA + 4-bit quantization, base model düşük bit |
| Prefix Tuning | %0.1–0.5 | Çok Düşük | Orta | Input sequence önüne trainable prefix eklenir |
| Prompt Tuning | %0.1–0.5 | Çok Düşük | Orta-Düşük | Task-specific trainable prompt embeddingleri |
| Adapters | %0.5–2 | Düşük-Orta | Yüksek | Ara katmanlara küçük adapter layer eklenir |
| BitFit | <%0.1 | Çok Düşük | Orta | Sadece bias terimleri güncellenir |
2.1 LoRA (Low-Rank Adaptation): Detaylı İnceleme
LoRA, PEFT yöntemleri arasında en popüler ve yaygın kullanılan tekniklerden biridir. Temel prensibi oldukça zekicedir: Modelin tüm parametrelerini güncellemek yerine, düşük rank'lı (low-rank) matrisler ekleyerek adaptasyon sağlamak.
LoRA Nasıl Çalışır?
LoRA'nın matematiksel temeli, matris ayrıştırma (matrix decomposition) prensibine dayanır. Bir ağırlık matrisini güncellemek yerine, iki küçük matrisin çarpımı şeklinde bir güncelleme eklenir. Bu sayede, çok daha az parametreyle etkili bir adaptasyon gerçekleştirilir.
Teknik Detaylar
LoRA, özellikle attention katmanlarına uygulandığında oldukça etkilidir. q_proj, k_proj, v_proj gibi projection matrislerine düşük rank'lı adaptörler eklenir ve sadece bu adaptörler eğitilir.
Örnek: 7B parametreli LLaMA modeli için normal fine-tuning 7 milyar parametreyi güncellerken, LoRA sadece 10-50 milyon parametreyi günceller (yaklaşık %0.1-1).
LoRA Konfigürasyon Parametreleri
LoRA'yı kullanırken dikkat edilmesi gereken birkaç önemli parametre bulunmaktadır:
r (rank): LoRA adaptörünün boyutunu belirler. Tipik değerler 4 ile 64 arasındadır. Daha yüksek r değeri daha fazla kapasiye ama aynı zamanda daha fazla parametre anlamına gelir.
- r=4: Hafif görevler için, minimum parametre
- r=8-16: Çoğu uygulama için ideal
Önerilen alpha değeri: lora_alpha = 2 * r veya lora_alpha = 4 * r. Bu oran, güncellemelerin model üzerindeki etkisini kontrol eder.
LoRA'nın Avantajları
LoRA'nın popüler olmasının birçok nedeni vardır. İlk olarak, merge/unmerge desteği sunar. Bu, LoRA adaptörlerini gerektiğinde base modelden ayırabilir veya kalıcı olarak dahil edebilirsiniz anlamına gelir. Bu özellik, aynı base model üzerinde farklı task'lar için farklı adaptörler kullanmanıza olanak tanır.
İkinci olarak, LoRA eğitimi Full Fine-Tuning'e göre çok daha hızlıdır. GPU saatleri ve maliyet açısından önemli tasarruf sağlar. Üçüncü olarak, LoRA'nın performansı Full Fine-Tuning'e oldukça yakındır, çoğu pratik senaryoda fark edilir bir kayıp olmaz.
| Parametre | Açıklama | Önerilen Değer |
|---|---|---|
| r | Low-rank değeri, LoRA katmanının boyutu | 8-16 (genel), 32-64 (karmaşık görevler) |
| lora_alpha | Ölçekleme katsayısı, güncellemelerin etkisi | 2*r veya 4*r |
| target_modules | LoRA'nın ekleneceği katmanlar | ["q_proj","v_proj"] veya tüm linear |
| lora_dropout | Dropout oranı, overfitting kontrolü | 0.05-0.1 |
| bias | Bias terimlerinin ele alınması | "none" (çoğu durumda) |
2.2 QLoRA: Quantized Low-Rank Adaptation
QLoRA, LoRA yönteminin bir evrim geçirmiş versiyonudur. Temel fikir, LoRA'nın avantajlarını korurken, model quantization ile VRAM kullanımını daha da azaltmaktır. Bu sayede, büyük modelleri consumer-grade GPU'larda bile fine-tune etmek mümkün hale gelir.
QLoRA'nın Devrim Yaratan Yaklaşımı
QLoRA'nın temel yeniliği, base modeli 4-bit veya 8-bit'e düşürürken (quantization), LoRA adaptörlerini full precision'da tutmasıdır. Bu hibrit yaklaşım, hem düşük VRAM kullanımı hem de yüksek performans sağlar.
QLoRA ile 7B parametreli bir model, tek bir 24GB VRAM'li GPU'da fine-tune edilebilir. Bu, Full Fine-Tuning için gereken VRAM'in yaklaşık 1/4'ü kadardır.
NF4: QLoRA'nın Gizli Silahı
QLoRA, NormalFloat4 (NF4) adı verilen özel bir 4-bit quantization formatı kullanır. NF4, standart 4-bit quantization yöntemlerinden farklı olarak, floating point değerlerin dağılımını dikkate alarak daha az precision kaybı sağlar.
NF4'ün Avantajları
NF4 formatı, model ağırlıklarının normal dağılıma sahip olduğu varsayımından yola çıkar. Bu sayede, quantization hatası minimize edilir ve model performansı korunur.
NF4 ile quantize edilmiş modeller, full precision modellerle karşılaştırıldığında genellikle sadece %1-2 performans kaybı yaşar.
- Double quantization: Quantization parametrelerinin kendisinin de quantize edilmesi
- Paged optimizers: Büyük modeller için memory-efficient optimizer desteği
| Özellik | LoRA | QLoRA |
|---|---|---|
| Base Model Precision | Full Precision (FP16/BF16) | 4-bit NF4 |
| Adapter Precision | Full Precision | Full Precision |
| VRAM Kullanımı (7B model) | ~28-40GB | ~10-15GB |
| Eğitim Hızı | Hızlı | Biraz daha yavaş |
| Performans Kaybı | Minimal | Çok küçük (%1-2) |
QLoRA Kullanımı: Pratik Notlar
QLoRA kullanırken, bitsandbytes kütüphanesinin doğru şekilde kurulması kritik öneme sahiptir. Ayrıca, optimizer olarak paged_adamw_32bit kullanılması önerilir. Bu optimizer, büyük modeller için memory-efficient bir çözüm sunar.
3. Davranışsal Fine-Tuning: Instruction ve Alignment
Modern LLM'lerin gelişiminde son yıllarda devrim yaratan yaklaşım, davranışsal fine-tuning olmuştur. Bu kategori, modelin sadece bilgi edinmesini değil, insan tercihlerine uygun, yardımcı ve zararsız davranışlar sergilemesini hedefler.
Davranışsal Fine-Tuning'in Önemi
ChatGPT, Claude ve benzeri modern asistanların başarısının arkasında, yoğun davranışsal fine-tuning süreçleri yatar. Bu süreçler, modelin teknik bilgisini değil, o bilgiyi nasıl sunduğunu optimize eder.
Davranışsal fine-tuning genellikle RLHF (Reinforcement Learning from Human Feedback) ailesi yöntemlerle gerçekleştirilir.
- SFT ile model instruction-aware hale gelir
- DPO/PPO ile insan tercihlerine uygun davranış kazanır
Davranışsal Fine-Tuning Aşamaları
Tipik bir production-grade LLM'in davranışsal fine-tuning süreci genellikle üç aşamadan oluşur. İlk olarak Supervised Fine-Tuning (SFT) ile model konuşabilir hale getirilir. Ardından, Direct Preference Optimization (DPO) veya Proximal Policy Optimization (PPO) ile model daha iyi cevaplar vermeye yönlendirilir. Son olarak, RLHF veya RLAIF ile modelin etik, yardımcı ve zararsız olması sağlanır.
Bu aşamaların her biri, öncekinin üzerine inşa edilir ve modelin davranışını kademeli olarak iyileştirir.
| Yöntem | Kategori | Amaç | Veri Tipi |
|---|---|---|---|
| SFT | Supervised | Instruction-aware model | Prompt-Response çiftleri |
| DPO | Preference-based | İnsan tercihlerine uyum | Sıralanmış yanıtlar |
| PPO | RL-based | Ödül fonksiyonu optimizasyonu | Reward model feedback |
| RLAIF | AI-Feedback | Ölçeklenebilir alignment | AI-generated feedback |
3.1 SFT: Supervised Fine-Tuning
SFT, davranışsal fine-tuning sürecinin ilk ve belki de en kritik adımıdır. Bu aşamada, base model instruction-aware bir modele dönüştürülür. Yani model, kullanıcı talimatlarını anlayan ve bunlara uygun yanıtlar üretebilen bir asistan haline gelir.
SFT'nin Çalışma Prensibi
SFT, temelde denetimli öğrenme (supervised learning) yaklaşımına dayanır. Model, input-output çiftleriyle eğitilir: Her bir örnek, bir kullanıcı promptu (input) ve buna karşılık gelen ideal yanıt (output) içerir.
Veri Seti Yapısı
SFT için kullanılan veri setleri genellikle şu formattadır:
Prompt: "Python'da liste sıralama nasıl yapılır?" → Response: "Python'da liste sıralamak için sort() metodunu veya sorted() fonksiyonunu kullanabilirsiniz..."
Eğitim Süreci
SFT eğitimi sırasında, model her bir prompt için doğru yanıtı üretmeyi öğrenir. Bu süreç, modelin genel bilgisini korurken, instruction-following yeteneklerini geliştirir.
SFT, base modelin "bilgisini" değil, o bilgiyi nasıl sunacağını öğretir. Örneğin LLaMA gibi bir base model zaten Python bilir, SFT ile bu bilgiyi conversational bir formatta sunmayı öğrenir.
SFT Veri Setleri
Başarılı bir SFT için kaliteli ve çeşitli veri setine ihtiyaç vardır. Alpaca, Dolly, ShareGPT gibi popüler açık kaynak veri setleri bulunmaktadır. Türkçe için de Türkçe-Alpaca gibi community-driven projeler mevcuttur.
- Alpaca (52K instruction-response çifti, Stanford)
- Dolly (15K high-quality, Databricks)
SFT'de PEFT Kullanımı
SFT genellikle Full Fine-Tuning veya LoRA/QLoRA ile yapılabilir. PEFT yöntemleri, özellikle sınırlı kaynaklarla çalışırken tercih edilir.
7B model için SFT: Full FT ~40GB VRAM, LoRA ~20GB VRAM, QLoRA ~12GB VRAM gerektirir.
3.2 DPO: Direct Preference Optimization
DPO, RLHF sürecinin basitleştirilmiş ve daha erişilebilir bir versiyonu olarak ortaya çıkmıştır. Temel fikir, insan tercihlerini direkt olarak modelin eğitimine entegre etmektir, ancak PPO gibi karmaşık RL algoritmalarına ihtiyaç duymadan.
DPO Nasıl Çalışır?
DPO'nun çalışma prensibi oldukça zarif bir matematiksel formülasyona dayanır. Model, aynı prompt için iki farklı yanıt arasında hangi yanıtın tercih edildiğini öğrenir ve loss fonksiyonunu bu tercihlere göre optimize eder.
Veri Formatı
DPO için gereken veri seti formatı şu şekildedir:
Prompt: "Sağlıklı beslenme hakkında öneri ver" → Chosen: [Dengeli, bilimsel tavsiyeleri içeren yanıt] → Rejected: [Aşırı veya yanlış bilgi içeren yanıt]
DPO vs RLHF
Geleneksel RLHF, üç aşamalı karmaşık bir süreçtir: SFT → Reward Model Training → PPO Optimization. DPO ise bu süreci tek bir aşamaya indirger. Reward model eğitmeye gerek kalmadan, direkt olarak tercih verisiyle çalışır.
DPO'nun Avantajları
DPO'nun popüler olmasının birkaç önemli nedeni vardır:
- Daha basit implementasyon: Reward model eğitmeye gerek yok
- Daha stabil eğitim: PPO'nun hyperparameter hassasiyeti yok
DPO, RLHF'in performansının %90-95'ini, çok daha az compute ve mühendislik karmaşıklığıyla sağlar.
DPO Kullanım Senaryoları
DPO özellikle şu durumlarda idealdir: Chatbot alignment, zararsız ve yardımcı yanıt üretimi, belirli stil veya ton tercihleri için optimizasyon. Örneğin, bir müşteri hizmetleri botu geliştiriyorsanız, DPO ile nazik ve profesyonel ton tercihlerini modele öğretebilirsiniz.
3.3 PPO: Proximal Policy Optimization
PPO, Reinforcement Learning (RL) dünyasından LLM fine-tuning'e adapte edilmiş güçlü bir algoritmadır. OpenAI'nin ChatGPT'sinde kullandığı RLHF sürecinin temel taşlarından biridir.
PPO'nun RL Temelleri
PPO, policy gradient ailesinden bir RL algoritmasıdır. LLM bağlamında, model bir "policy" (politika) olarak düşünülür ve amacı, maksimum reward (ödül) alacak şekilde yanıtlar üretmektir.
Reward Model
PPO'nun çalışması için önce bir reward model eğitilmesi gerekir. Bu model, bir yanıtın ne kadar "iyi" olduğunu skorlayan küçük bir classifier'dır.
Reward model eğitimi: İnsan tercihlerinden oluşan veri setiyle (prompt + chosen + rejected) bir classification modeli eğitilir.
PPO Eğitim Süreci
PPO eğitimi döngüsel bir süreçtir. Model bir prompt alır, yanıt üretir, reward model bu yanıtı skorlar ve model bu skora göre güncellenir. Ancak PPO'nun özel özelliği, güncellemeleri "clipping" mekanizmasıyla sınırlamasıdır.
Clipping Mekanizması
PPO'nun "Proximal" kısmı buradan gelir. Algorithm, policy güncellemelerini bir epsilon aralığıyla sınırlar, böylece modelin aşırı değişmesini ve instabil hale gelmesini engeller.
Clipping sayesinde, PPO hem yüksek performans sağlar hem de eğitim stabilitesini korur. Bu, TRPO gibi eski RL algoritmalarına göre büyük avantajdır.
PPO vs DPO
PPO daha güçlü ve esnek bir yöntem olsa da, implementasyonu daha karmaşıktır. Reward model eğitimi gerektirir, hyperparameter tuning hassastır ve daha fazla compute gerektirir. DPO ise daha basit ve erişilebilir bir alternatif sunar.
| Özellik | PPO | DPO |
|---|---|---|
| Reward Model Gereksinimi | Evet | Hayır |
| Implementasyon Karmaşıklığı | Yüksek | Düşük |
| Compute Gereksinimi | Yüksek | Orta |
| Performans Potansiyeli | Maksimum | Yüksek |
| Stabilite | Orta (clipping ile kontrollü) | Yüksek |
3.4 RLAIF: Reinforcement Learning from AI Feedback
RLAIF, RLHF'nin ölçeklenebilirlik sorununa getirilen yaratıcı bir çözümdür. Temel fikir basittir: İnsan feedback yerine, başka bir AI modelinden gelen feedback kullanarak RL yapılması.
Neden RLAIF?
İnsan feedback almak pahalı, yavaş ve ölçeklendirmesi zor bir süreçtir. Binlerce örnek için insan annotator'lar bulmak, eğitmek ve yönetmek ciddi maliyet ve zaman gerektirir. RLAIF, bu süreci otomatize ederek bu sorunları aşar.
RLAIF Çalışma Prensibi
RLAIF sürecinde, güçlü bir AI model (örneğin GPT-4 veya Claude) "judge" rolü oynar. Bu model, farklı yanıtları değerlendirir, sıralar ve tercih verisi üretir. Bu veri daha sonra hedef modelin eğitiminde kullanılır.
RLAIF ile, bir gün içinde on binlerce preference örneği üretilebilir. İnsan annotator'larla aynı işlem aylar sürebilir.
RLAIF'in Avantajları
RLAIF'in en büyük avantajı ölçeklenebilirliğidir. İnsan feedback'in binlercesini üretmek yerine, API çağrısıyla sınırsız veri üretebilirsiniz. Ayrıca, consistency de bir avantajdır - AI judge'lar tutarlı kriterler uygular.
- Maliyet verimliliği: İnsan annotator maliyetlerinden tasarruf
- Hız: Saatler içinde büyük veri setleri üretimi
RLAIF'in Sınırlamaları
RLAIF'in de bazı dezavantajları vardır. En önemlisi, AI judge'ın kendi bias'larını sisteme taşıması riskidir. Ayrıca, gerçek insan tercihleriyle tam uyum sağlanamayabilir.
En iyi yaklaşım genellikle hybrid bir yöntemdir: RLAIF ile büyük ölçekli veri üretimi + kritik alanlarda insan feedback ile validasyon.
Özet: Hangi Fine-Tuning Yöntemini Seçmeliyim?
Fine-tuning yöntemleri arasında seçim yaparken, görevinizin gereksinimlerini, mevcut kaynaklarınızı ve hedef performansınızı göz önünde bulundurmalısınız.
Eğer sınırlı GPU kaynaklarınız varsa ve hızlı prototipleme yapmak istiyorsanız, QLoRA ile başlayın. Makul performans bekliyorsanız ve biraz daha fazla kaynak ayırabiliyorsanız, LoRA ideal bir seçimdir. Maksimum performans kritikse ve yeterli compute gücünüz varsa, Full Fine-Tuning'i düşünün.
Davranışsal fine-tuning için, önce SFT ile modeli instruction-aware hale getirin. Ardından, kaynaklarınıza göre DPO (basit ve etkili) veya PPO (maksimum performans) ile devam edin. Ölçeklenebilirlik önemliyse, RLAIF'i değerlendirin.
| Senaryo | Önerilen Yöntem | Neden? |
|---|---|---|
| Düşük VRAM (<16GB) | QLoRA | 4-bit quantization ile minimal kaynak |
| Orta VRAM (16-40GB) | LoRA | İyi performans/kaynak dengesi |
| Yüksek VRAM (>40GB) | Full Fine-Tuning | Maksimum performans |
| Hızlı prototipleme | Prefix/Prompt Tuning | En hızlı adaptasyon |
| Chatbot geliştirme | SFT → DPO | Basit ve etkili pipeline |
| Production-grade asistan | SFT → PPO/RLHF | Maksimum kalite ve alignment |
Sonuç olarak, fine-tuning dünyası geniş bir araç seti sunar. Her projenin kendine özgü gereksinimleri vardır ve doğru yöntemi seçmek, başarınızı doğrudan etkiler. Bu rehberde ele aldığımız yöntemler, modern LLM geliştirmede en sık kullanılan ve kanıtlanmış tekniklerdir. Kendi projenizde denemeler yaparak, hangi kombinasyonun sizin için en iyi çalıştığını keşfedebilirsiniz.
LLM Fine-Tuning Yaşam Döngüsü: Baştan Sona Süreç
Bir LLM projesini başarıyla hayata geçirmek, sadece doğru fine-tuning yöntemini seçmekten ibaret değildir. Tüm sürecin sistematik ve stratejik bir şekilde planlanması gerekir. LLM fine-tuning yaşam döngüsü, proje başlangıcından production'a kadar geçen tüm aşamaları kapsar.
Bu bölümde, gerçek dünya LLM projelerinde izlenen adım adım süreci detaylı şekilde inceleyeceğiz. Her aşamanın kritik karar noktalarını, best practice'lerini ve dikkat edilmesi gereken hususları ele alacağız.
1. Base Model Seçimi: Temeli Doğru Atmak
Fine-tuning sürecinin ilk ve belki de en stratejik kararı, doğru base model seçimidir. Bu seçim, projenizin geri kalanını doğrudan etkiler: maliyet, performans, eğitim süresi ve deployment kolaylığı gibi faktörlerin hepsi bu aşamada belirlenir.
Model Seçim Kriterleri
Base model seçerken göz önünde bulundurmanız gereken birkaç kritik faktör vardır:
Model Boyutu: 7B, 13B, 34B, 70B gibi farklı boyutlardaki modeller arasında seçim yaparken, görevinizin karmaşıklığı ile mevcut compute kaynaklarınızı dengelemelisiniz. Genelde, daha büyük modeller daha iyi performans gösterir ancak daha fazla kaynak gerektirir.
Genel kural: Basit task'lar için 7B, orta karmaşıklık için 13B, karmaşık reasoning için 34B+ modeller tercih edilir.
Model Ailesi: LLaMA, Mistral, Falcon, GPT-NeoX gibi farklı model ailelerinin kendine özgü güçlü yönleri vardır. LLaMA modelleri genelde iyi all-around performans sunar, Mistral daha kompakt ama güçlüdür, Falcon ise specific domain'lerde öne çıkar.
Lisans ve Kullanım Hakları: Ticari kullanım planlıyorsanız, model lisansını mutlaka kontrol edin. Bazı modeller sadece araştırma amaçlı kullanılabilir.
- Açık lisans modeller: LLaMA 2, Mistral, Falcon
- Ticari kısıtlı: Bazı LLaMA varyantları, GPT-J bazı versiyonları
Popüler Base Model Seçenekleri
| Model Ailesi | Boyut Seçenekleri | Güçlü Yanları | İdeal Kullanım |
|---|---|---|---|
| LLaMA 2/3 | 7B, 13B, 70B | Genel performans, geniş topluluk desteği | Genel amaçlı chatbot, çoğu NLP task |
| Mistral | 7B, Mixtral 8x7B | Kompakt ama güçlü, hızlı inference | Production sistemler, resource-efficient |
| Falcon | 7B, 40B, 180B | Çok dilli, teknik content | Multi-lingual projeler, domain-specific |
| Phi | 2.7B, 3.5B | Çok küçük, hızlı | Edge devices, mobile, low-latency |
Pratik tavsiye: İlk denemeleriniz için 7B model ile başlayın. Performans yeterli değilse 13B'ye geçin. Çoğu use case için 7B veya 13B yeterlidir.
2. Veri Hazırlığı: Kalite Her Şeydir
Fine-tuning'in başarısı, kullandığınız verinin kalitesiyle doğru orantılıdır. "Garbage in, garbage out" prensibi burada tam anlamıyla geçerlidir. İyi hazırlanmış, temiz ve representatif bir veri seti, orta kalite bir modeli bile mükemmel sonuçlara taşıyabilir.
SFT İçin Veri Hazırlığı
Supervised Fine-Tuning için veri hazırlarken, her örneğiniz bir input-output çifti olmalıdır. Bu çiftler, modelin öğrenmesini istediğiniz davranışı net şekilde göstermelidir.
Veri formatı standartları: Çoğu fine-tuning framework, JSON veya JSONL formatında veri bekler. Her satır bir örnek içerir:
{"instruction": "Python'da string tersine çevirme", "input": "", "output": "Python'da string'i tersine çevirmek için [::-1] slice notation kullanabilirsiniz..."}
Veri çeşitliliği: Veri setiniz, hedef kullanım senaryolarınızı geniş şekilde kapsamalıdır. Tek tip örneklerle eğitilmiş model, benzer durumlarda iyi çalışır ama edge case'lerde başarısız olabilir.
Davranışsal Fine-Tuning İçin Veri
DPO, PPO gibi yöntemler için farklı veri formatları gerekir. Burada, model çıktılarının tercih sıralaması kritik öneme sahiptir.
Preference data formatı:
{"prompt": "...", "chosen": "İyi yanıt örneği", "rejected": "Daha az tercih edilen yanıt"}
İnsan vs AI feedback: İnsan feedback'i daha güvenilir ama maliyetli ve yavaştır. AI feedback (RLAIF) ile hızlı ölçekleme mümkündür ancak bias riski vardır.
Veri Temizleme ve Preprocessing
Ham veriyi fine-tuning'e hazırlamak için birkaç kritik adım vardır:
- Deduplication: Tekrarlayan örnekler modeli bias eder ve overfit'e neden olur
- Formatting: Tutarlı format, tokenization sorunlarını önler
- Quality filtering: Düşük kaliteli, hatalı veya irrelevant örnekleri çıkarın
- Tokenization check: Çok uzun örnekler model context limitini aşabilir
Veri miktarı: SFT için minimum 1000-5000 kaliteli örnek hedefleyin. Daha az veriyle de çalışabilir ama performans düşebilir. DPO için 5000-10000 preference pair ideal.
3. Fine-Tuning Yaklaşımı Seçimi: Stratejik Karar
Bu aşamada, daha önce detaylı incelediğimiz fine-tuning yöntemlerinden birini (veya kombinasyonunu) seçmeniz gerekir. Karar, kaynaklarınıza, zaman kısıtınıza ve hedef performansa bağlıdır.
Hibrit Yaklaşımlar
Gerçek dünya projelerinde genellikle tek bir yöntem kullanılmaz. En yaygın pattern şudur:
SFT (LoRA/QLoRA ile) → DPO/PPO → Production deployment
Bu pipeline, modeli önce task-aware hale getirir, sonra davranışsal olarak optimize eder.
4. Model Eğitimi: İdeal Konfigürasyon
Eğitim aşaması, tüm hazırlıkların sonucunu aldığınız kritik aşamadır. Doğru hyperparameter seçimi ve monitoring, başarıyı belirler.
Temel Eğitim Parametreleri
| Parametre | Önerilen Değer | Etki |
|---|---|---|
| Learning Rate | 2e-5 (Full FT), 3e-4 (PEFT) | Çok yüksek: instability, çok düşük: yavaş öğrenme |
| Batch Size | 4-16 (VRAM'e göre) | Yüksek: stabil gradient, düşük: daha fazla update |
| Epochs | 3-5 | Çok fazla: overfit riski |
| Warmup Steps | 100-500 | İlk adımlarda LR'yi yavaşça artırır |
| Weight Decay | 0.01-0.1 | Regularization, overfit kontrolü |
Monitoring ve Checkpointing
Eğitim sırasında loss, perplexity ve validation metrics'i sürekli izleyin. Her N adımda checkpoint alarak, ihtiyaç halinde geri dönebileceğiniz restore point'ler oluşturun.
Best practice: Her 500-1000 step'te checkpoint alın, validation loss artmaya başlarsa early stopping uygulayın.
5. Değerlendirme & Validation: Objektif Ölçüm
Model eğitiminden sonra, performansı objektif şekilde ölçmek kritiktir. Subjektif "iyi görünüyor" değerlendirmesi yeterli değildir.
Otomatik Metrikler
NLP task'ları için standart metrikler kullanılabilir: BLEU, ROUGE, perplexity, accuracy. Ancak bunlar her zaman insan tercihiyle uyumlu olmayabilir.
İnsan Değerlendirmesi
En güvenilir değerlendirme yöntemi, insan feedback'idir. A/B test yaparak, farklı model versiyonlarını karşılaştırın.
- Blind test: Değerlendiriciler hangi modelin hangisi olduğunu bilmez
- Pairwise comparison: İki model çıktısını karşılaştırma
- Likert scale rating: 1-5 arası skorlama
6. Merge / Adapter Yönetimi: PEFT Sonrası
PEFT yöntemleri kullandıysanız, deployment öncesi adapter'ları yönetmeniz gerekir.
Merge vs. Separate Adapters
Merge: LoRA/QLoRA adaptörlerini base model ile birleştirirsiniz. Sonuç tek bir model olur, inference daha hızlıdır.
Merge komutu (PEFT library): model.merge_and_unload()
Separate: Adapter'ları ayrı tutar, birden fazla task için aynı base model kullanabilirsiniz. Daha esnek ama inference biraz daha yavaştır.
7. Deployment / Inference: Production'a Alma
Model hazır, şimdi kullanıcılara sunma zamanı. Deployment stratejiniz, kullanım senaryonuza göre değişir.
Deployment Seçenekleri
- Cloud API: HuggingFace Inference API, AWS SageMaker, Azure ML
- Self-hosted: vLLM, TGI (Text Generation Inference), FastAPI wrapper
- Edge deployment: ONNX, quantization ile mobile/edge devices
Inference Optimizasyonu
Production'da hız kritiktir. Birkaç optimizasyon tekniği:
- Quantization (8-bit, 4-bit inference)
- Flash Attention kullanımı
- Batch inference (mümkünse)
- KV cache optimization
8. Sürekli Güncelleme / Iterasyon: Yaşayan Sistem
Deployment son adım değil, aslında başlangıçtır. Production'daki gerçek kullanıcı feedback'i, modelinizi sürekli iyileştirmenize olanak tanır.
Feedback Loop Oluşturma
Kullanıcılardan gelen feedback'i sistematik şekilde toplayın. Thumbs up/down, explicit feedback formları, implicit signals (conversation length, user satisfaction).
Iteratif İyileştirme
PEFT yöntemlerinin büyük avantajı burada ortaya çıkar: Hızlı iterasyon. Yeni feedback verileriyle, yeni bir LoRA adapter eğitip production'a alabilirsiniz.
Tipik iterasyon cycle: 2-4 haftada bir yeni fine-tuning, A/B test, rollout.
Yaşam Döngüsü Özeti: Görsel Akış
LLM fine-tuning yaşam döngüsünü özetlersek:
| Aşama | Süre (Ortalama) | Kritik Kararlar |
|---|---|---|
| 1. Base Model Seçimi | 1-3 gün | Model boyutu, lisans, compute budget |
| 2. Veri Hazırlığı | 1-4 hafta | Veri kalitesi, miktar, format |
| 3. Yaklaşım Seçimi | 1-2 gün | Full FT vs PEFT, SFT vs RL |
| 4. Model Eğitimi | Saatler - günler | Hyperparameters, early stopping |
| 5. Değerlendirme | 3-7 gün | Metrikler, insan eval, threshold |
| 6. Merge/Adapter Yönetimi | 1 gün | Merge vs separate, versioning |
| 7. Deployment | 2-5 gün | Infrastructure, optimization, monitoring |
| 8. Iterasyon | Sürekli (2-4 hafta cycle) | Feedback collection, re-training triggers |
Bu yaşam döngüsü, başarılı bir LLM fine-tuning projesinin temel iskeletini oluşturur. Her aşamada doğru kararlar almak ve sistematik ilerleme kaydetmek, kaliteli sonuçlara ulaşmanın anahtarıdır. Fine-tuning bir kerelik bir işlem değil, sürekli iyileştirme gerektiren iteratif bir süreçtir.
