SFT (Supervised Fine-Tuning (Denetimli İnce Ayar))

SFT, pretrained bir LLM'yi yüksek kaliteli (istek, yanıt) çiftleriyle eğiterek talimat izleme yeteneği kazandıran denetimli ince ayar sürecidir.

SFT (Supervised Fine-Tuning — Denetimli İnce Ayar), önceden eğitilmiş (pretrained) bir dil modelinin, (istek, yanıt) çiftlerinden oluşan yüksek kaliteli bir veri kümesiyle talimat izleme yeteneği kazandırmak amacıyla ek eğitime tabi tutulması sürecidir. RLHF boru hattının ilk hizalama adımını oluşturur. Ön eğitim (pretraining) sırasında model yalnızca sonraki kelimeyi tahmin etmeyi öğrenir; bu model herhangi bir talimatı takip edemez. SFT aşamasında model, "Bu metni özetle → Metin: ... → Özet: ..." biçimindeki çiftlerle eğitilir. Standart dil modellemesi kaybı (cross-entropy) kullanılır; ancak yalnızca yanıt tokenleri için kayıp hesaplanır (istek tokenleri maskelenir). SFT veri kümesinin kalitesi son derece önemlidir: InstructGPT'de OpenAI, yalnızca birkaç on bin örneğin yeterli olduğunu göstermiştir. Alpaca gibi projelerde 52.000 GPT-4 üretimi örnek kullanılmıştır; bu, insan yazımı veriyle kıyaslanabilir sonuçlar vermiştir. Modern yaklaşımlar büyük LLM'lerle sentetik veri üretimini içerir. SFT tek başına da güçlü bir hizalama tekniğidir; bazı durumlarda RLHF'ye gerek kalmadan yeterince iyi modeller üretilmektedir. Llama ve Mistral tabanlı açık kaynak modellerin büyük çoğunluğu SFT ile oluşturulmaktadır.

school SFT Nasıl Çalışır?

SFT teknik olarak standart dil modeli eğitimidir; fark yalnızca veri formatında ve kayıp maskesindedir. Veri formatı: Her örnek bir sistem istemi, bir kullanıcı isteği ve bir asistan yanıtından oluşur. Örnek: "<|system|>Sen yardımsever bir asistansın.<|user|>Python'da liste sıralaması nasıl yapılır?<|assistant|>Python'da listeyi sıralamak için list.sort() veya sorted() kullanabilirsiniz...". Kayıp maskesi: Model tüm sekansı işler ama yalnızca yanıt tokenlerinin kaybı geriye yayılır. Bu, modelin talimat formatını değil yalnızca kaliteli yanıt üretmeyi öğrenmesini sağlar. Öğrenme hızı: SFT genellikle ön eğitime kıyasla çok daha düşük öğrenme hızı (1e-5 — 5e-6) kullanır; aksi takdirde model önceki yeteneklerini unutur (catastrophic forgetting).

SFT Veri Kalitesi vs Miktarı

person İnsan Yazımı (Yüksek Kalite)

InstructGPT ve ChatGPT: Uzman yazarlar tarafından üretilen birkaç on bin örnek. Pahalı ama en yüksek kaliteli sinyal.

auto_awesome Güçlü LLM Distilasyonu

Alpaca (GPT-3.5), Vicuna (ChatGPT), WizardLM (GPT-4). GPT-4 üretimi veri, insan yazımına yakın kalite sunar ve çok daha ucuzdur.

folder_open Açık Veri Kümeleri

Open-Hermes, ShareGPT, FLAN, Dolly. Hızlı ve ücretsiz; kalite tutarsız olabilir. Kapasite sınırı olan modeller için yeterli.

filter_alt Veri Filtreleme

Az ama kaliteli veri, çok ama düşük kaliteli veriden üstündür. LIMA çalışması yalnızca 1000 örneğin yeterli olabileceğini gösterdi.

checklist SFT Uygulama Adımları

  • check_circle Temel Model Seçimi: SFT için Llama 3, Mistral veya Qwen gibi güçlü bir pretrained model başlangıç noktası olarak seçilir. Temel modelin kalitesi SFT sonucunu doğrudan etkiler.
  • check_circle Veri Hazırlama: İstek-yanıt çiftleri chat template formatına dönüştürülür. Yanıt tokenlerine kayıp maskesi uygulanır. Veri kalitesi kontrol edilir (kısa yanıtlar, tekrar eden örüntüler filtrelenir).
  • check_circle Eğitim Konfigürasyonu: Düşük öğrenme hızı (1e-5), 1-3 epoch, ağırlık çürümesi ve öğrenme hızı planlayıcısı (cosine decay) tipik yapılandırmalardır.
  • check_circle Değerlendirme: MT-Bench, AlpacaEval veya harici LLM değerlendirmesi ile talimat izleme kalitesi ölçülür. Kıyaslama modeli olarak sıklıkla GPT-4 kullanılır.

quiz Sıkça Sorulan Sorular

  • check_circle SFT vs fine-tuning farkı nedir?: Fine-tuning genel bir terimdir; belirli bir alanda modeli uyarlamak için yapılan tüm ek eğitimleri kapsar. SFT, özellikle talimat izleme için (istek, yanıt) çiftleri kullanılan fine-tuning türüdür. Diğer fine-tuning türleri: domain adaptasyon fine-tuning, LoRA fine-tuning, vs.
  • check_circle Kaç örnek yeterlidir?: LIMA çalışması 1000, InstructGPT ise ~13.000 yüksek kaliteli örnek kullandı. Genel tavsiye: Geniş görev yelpazesi için 10K–100K arası, dar alan uygulamaları için 1K–10K yeterlidir. Kalite miktardan önemlidir.
  • check_circle SFT catastrophic forgetting'e yol açar mı?: Yüksek öğrenme hızı veya çok fazla epoch durumunda evet. Bu nedenle SFT'de düşük öğrenme hızı ve az epoch kullanılır. LoRA gibi parametre verimli yöntemler catastrophic forgetting'i önemli ölçüde azaltır.