zero-shot few-shot in-context-learning llm prompt makine-ogrenmesi dil-modeli

Zero-Shot ve Few-Shot Learning Nedir? In-Context Learning

Orta
person Yapay Zeka Uzmanı

Öğrenmeden Öğrenmek Mümkün mü?

Geleneksel makine öğrenmesinde bir modeli yeni bir göreve uyarlamak için yüzlerce, bazen binlerce etiketlenmiş örnek gerekirdi. Eğitim verisi yok demek performans yok demekti. Bu varsayım, GPT-3’ün 2020’de yayımlanmasıyla temelden sorgulanmaya başladı.

Bugün büyük dil modelleri, daha önce hiç görmedikleri görevleri yalnızca birkaç satır açıklama ya da iki-üç örnek üzerinden çözebiliyor. Buna in-context learning (bağlam içi öğrenme) deniyor; zero-shot ve few-shot ise bu genel çerçevenin iki somut uygulama biçimi.

Peki bu gerçekten nasıl çalışıyor? Modelin ağırlıklarına dokunmadan, yalnızca prompt’un içine yerleştirilen bilgiyle bir dil modeli gerçekten öğrenebilir mi?


Zero-Shot Learning: Tanım ve Çalışma Mekanizması

Zero-shot learning, modele görev hakkında hiçbir örnek sunmadan, yalnızca net bir talimatla beklenen davranışı doğrudan talep etmektir.

Tipik bir zero-shot prompt şöyle görünür:

Aşağıdaki yorumu olumlu, olumsuz veya tarafsız olarak sınıflandır.
Yorum: "Ürün hızlı geldi ama kutu hasar görmüştü."
Sınıf:

Model bu promptu ilk kez görüyor; ne olumlu ne de olumsuz bir örnek yok. Yine de büyük ihtimalle doğru yanıtı üretecektir. Bunun nedeni, modelin ön eğitim sırasında milyarlarca metin parçasını işlemiş olması ve bu süreçte “duygu analizi” kavramıyla defalarca karşılaşmasıdır.

Zero-shot’ın çalışabilmesi iki koşula bağlıdır. Birincisi, model yeterince büyük ve iyi eğitilmiş olmalıdır; küçük modeller zero-shot görevlerde ciddi performans kaybı yaşar. İkincisi, talimat netliği doğrudan çıktı kalitesini etkiler; belirsiz ya da çelişkili yönergeler modeli yanlış yöne çeker.

Ne zaman kullanılır? Hızlı prototipleme ve keşif aşamalarında, görevin genel dil anlayışıyla doğrudan çözülebildiği durumlarda, ya da etiketli veri hiç bulunmadığında.


Few-Shot Learning: Demo Göster, Görevi Çözdür

Few-shot learning’de modele, asıl sorudan önce birkaç girdi-çıktı çifti gösterilir. Bu çiftler, modele görevin yapısını çıkarımsatmak için yerleştirilir.

Aynı duygu analizi görevi few-shot biçimiyle şöyle kurgulanır:

Aşağıdaki örneklere bak:

Yorum: "Kargo bir günde kapımdaydı, harika."
Sınıf: olumlu

Yorum: "Ürün bozuk çıktı, para iadesi de yapılmadı."
Sınıf: olumsuz

Yorum: "İdare eder, ne iyi ne de kötü."
Sınıf: tarafsız

Şimdi sıra sende:
Yorum: "Ürün hızlı geldi ama kutu hasar görmüştü."
Sınıf:

Bu yapıda model üç şeyi bağlamdan çıkarır: çıktı formatı (tek kelime sınıf etiketi), sınıf kümesinin sınırları ve belirsiz durumları nasıl yorumlayacağı.

Burada kritik bir ayrıntı var: few-shot örnekler modelin ağırlıklarını değiştirmez. Ağırlıklar eğitim sonrasında sabitlenmiş durumdadır. Örnekler yalnızca geçici bir “görev şablonu” işlevi görür; her yeni konuşmada sıfırdan yüklenir.

Kaç Örnek Yeterli?

Araştırmalar genellikle 2 ile 8 arası örneğin iyi bir aralık olduğunu gösteriyor. Örnek sayısını artırmak her zaman performansı yükseltmiyor; hatta bazı durumlarda bağlam penceresini gereksiz doldurarak etkiyi düşürebilir.

Örneklerin çeşitliliği de belirleyici: her örnek aynı alt kategoriden seçilirse model dar bir örüntü öğrenir. Farklı alt tipler karıştırılırsa genelleme güçlenir.


In-Context Learning: Ağırlıklar Sabit, Sadece Bağlam Değişiyor

Zero-shot ve few-shot, in-context learning adı verilen daha geniş bir fenomenin iki ucunu temsil eder. “Öğrenme” kelimesini burada dikkatli yorumlamak gerekiyor: model parametreleri güncellenmez. Klasik anlamda ağırlık optimizasyonu gerçekleşmez.

Peki ne gerçekleşiyor?

Transformer mimarisi, dikkat (attention) mekanizması aracılığıyla prompt’taki tüm token’ları birbirine bağlar. Model, prompt içindeki örüntüleri bu mekanizma üzerinden anlık olarak işler ve çıktıyı üretirken bu örüntülerden yararlanır. Bir tür “bağlam üzerinden anlık kalıp eşleştirme” diyebiliriz buna.

Bu durumda in-context learning, eğitim sırasında kazanılan meta-becerilerin (örüntü tanıma, görev formatını çıkarımsama, analog akıl yürütme) çalışma zamanında yeni bir duruma uygulanması olarak tanımlanabilir. Model yeni bir şey öğrenmez; daha önce öğrendiklerini yeni bir bağlama taşır.

Akademik literatür bu mekanizmayı henüz tam anlamıyla çözmüş değil. Bir görüş, in-context learning’in örtük bir Bayesian güncelleme süreci işlettiğini öne sürüyor; bir diğeri bunun daha çok benzetme (analogy) kurma ve geri çağırma (retrieval) olduğunu savunuyor.


Zero-Shot mu, Few-Shot mu? Karar Ağacı

Dört pratik soruya verilen yanıtlar seçimi büyük ölçüde netleştirir.

Görev ne kadar yaygın? Duygu analizi, dil tespiti, özetleme gibi genel görevlerde zero-shot yeterli olabilir. Hukuki belge sınıflandırması ya da tıbbi varlık tanıma gibi niş görevlerde few-shot neredeyse her zaman kazanır.

Çıktı formatı kritik mi? JSON veya belirli bir şablon bekliyorsanız few-shot format tutarlılığını zorunlu kılar. Serbest metin yeterliyse zero-shot denemeye değer.

Tutarlılık baskısı var mı? Tek bir etiket beklenen sınıflandırma görevlerinde few-shot kenar durumları standartlaştırır. Yaratıcı metin üretiminde zero-shot çeşitliliği korur.

Token bütçesi kısıtlı mı? API maliyeti önemliyse ve görev basitse zero-shot tercih edin. Yüksek hassasiyet gereken uygulamalarda few-shot için token harcamak genellikle değer.

Editorial tech-magazine cover illustration about zero-shot and few-shot machine learning, a neural network instantly adapting to new tasks from minimal examples with glowing contextual data streams, abstract artificial-intelligence motifs (glowing neural networks, flowing data, subtle circuitry), sophisticated modern concept art, clean balanced composition, soft cinematic studio lighting, rich depth of field, premium color grading in deep navy blues with cyan and magenta accents, highly detailed, polished editorial 8k. No text, no words, no letters, no captions, no logos, no watermark, no UI.

Chain-of-Thought ile Birleşince Ne Olur?

Few-shot learning, chain-of-thought prompting ile birleştiğinde farklı bir boyut kazanır. Standart few-shot örnekleri yalnızca girdi-çıktı çiftleri sunarken, CoT few-shot örnekleri “nasıl düşünüldüğünü” de adım adım gösterir.

Soru: Ali'nin 12 elması var, 5 tanesini Ayşe'ye verdi. Kaç tane kaldı?
Düşünce: 12'den 5 çıkarırsak 7 elde ederiz.
Cevap: 7

Soru: Bir kutuda 20 kalem var, eşit olarak 4 kişiye bölünecek.
Her kişiye kaç kalem düşer?
Düşünce: 20 bölü 4 eşittir 5.
Cevap: 5

Soru: Bir trende 45 yolcu var. Durağa geldiğinde 18 kişi indi, 7 kişi bindi. Kaç yolcu var?
Düşünce:

Bu çerçevede model hem düşünce adımı üretmeyi hem de doğru sonuca ulaşmayı birlikte öğrenir. 2022’de yayımlanan araştırmalar, bu kombinasyonun aritmetik ve mantıksal akıl yürütme görevlerinde standart few-shot’a kıyasla belirgin iyileşmeler getirdiğini ortaya koydu.

Akıl yürüten AI modelleri söz konusu olduğunda tablo biraz farklılaşır. o3 ve DeepSeek-R1 gibi modeller düşünce zincirini dahili olarak yönetir; bu nedenle bu modellere CoT few-shot örnekleri eklemek çoğu zaman gereksizdir ya da etkisiz kalır.


Gerçek Dünya Senaryoları: Sınıflandırma, Çeviri, Kod Üretimi

Metin Sınıflandırması

Few-shot’ın en sık kullanıldığı alan etiketleme ve sınıflandırmadır. Şirkete özgü taksonomi yapıları için birkaç iyi seçilmiş örnek, zero-shot yaklaşıma göre çok daha tutarlı sonuçlar üretir. Bir bankanın kendi iç kategorilerine göre müşteri geri bildirimlerini ayırması bunun tipik bir örneği.

Yapılandırılmış Çıktı Zorlama

Few-shot, structured output üretiminde format tutarlılığını artırmak için yaygın bir tekniktir. Model JSON çıktısı üretecekse, birkaç örnek JSON önceki varyasyonları büyük ölçüde ortadan kaldırır:

Metin: "İstanbul'da hava 28 derece ve güneşli."
Çıktı: {"şehir": "İstanbul", "sıcaklık": 28, "durum": "güneşli"}

Metin: "Ankara'da 15 derece, bulutlu bir gün."
Çıktı: {"şehir": "Ankara", "sıcaklık": 15, "durum": "bulutlu"}

Metin: "Diyarbakır'da 35 derece, kısmi bulutlu."
Çıktı:

Çeviri ve Dil Uyarlaması

Standart diller arasında çeviri için büyük modeller zero-shot’ta zaten iyi performans gösterir. Belirli bir şirketin terminolojisini, yazı tonunu ya da az kaynaklı bir dili veya lehçeyi çevirmek gerektiğinde ise o terminolojiye özgü birkaç örnek modelin davranışını kalibre eder.

Kod Üretimi

Few-shot kod örnekleri, modelin projenin kodlama stiline (değişken adlandırma kuralları, yorum dili, hata yönetim yaklaşımı) uymasını kolaylaştırır. Projeye özgü helper fonksiyonların nasıl yazıldığını gösteren iki-üç örnek, model çıktısını o projenin konvansiyonlarına hizalar.


Sınırlılıklar ve Yaygın Hatalar

Örnek Kalitesine Aşırı Bağımlılık

Few-shot örneklerin kalitesi çıktıyı doğrudan belirler. Hatalı ya da tutarsız örnekler modeli yanlış yönlendirir; zaman zaman iyi seçilmiş örneklerden oluşan basit bir prompttan bile daha kötü sonuçlar üretilir.

Örnek Sırası Etkisi

Araştırmalar, birkaç örneğin dizilme sırasının modelin kararlarını etkileyebildiğini ortaya koymuştur. Bu “order sensitivity” (sıra hassasiyeti) sorunu, güvenilir bir sistemde birden fazla sıralama denemesi ya da sıralama rastgeleleştirmesi gerektirebilir.

Bağlam Penceresi Kısıtı

Her few-shot örneği değerli token alanı harcar. Çok uzun örnekler ya da aşırı sayıda örnek, gerçek görev için ayrılması gereken bağlam penceresini daraltır. Bu, uzun belge işleme ya da çok adımlı akıl yürütme gerektiren görevlerde ciddi bir kısıt oluşturur.

Dağılım Kayması

Few-shot örnekler çalışma zamanında asıl görevle örtüşmediğinde performans düşer. Örnekler ne kadar temsili seçilirse model o kadar iyi genelleştirir. Dinamik few-shot seçimi (retrieval-augmented example selection) bu probleme yönelik aktif bir araştırma alanı olmaya devam ediyor.

Fazla Güven Riski

Zero-shot bir LLM yanıtı güvenilir görünebilir ama hallüsinasyon oranı yüksektir. Model “bilmiyorum” demek yerine yanlış ama kendinden emin bir yanıt ürettiğinde, özellikle olgusal görevlerde bu ciddi bir sorun haline gelir.


Fine-Tuning ile Karşılaştırma: Hangisi Ne Zaman Kazanır?

In-context learning ile prompt engineering arasındaki denge çoğu uygulayıcının beklediğinden daha erken bir karar noktası sunar. Zero/few-shot mu, yoksa fine-tuning mı?

KriterZero/Few-ShotFine-Tuning
Kurulum hızıHemen başlarVeri hazırlama + eğitim süresi gerekir
Veri gereksinimi0-10 örnekGenellikle 100-10.000+ etiketli örnek
TutarlılıkOrta-iyiÇok iyi
Deployment maliyetiYüksek (büyük model + uzun prompt)Düşebilir (küçük fine-tuned model)
Güncelleme esnekliğiAnında (prompt güncelleme yeter)Yeniden eğitim gerektirir
Performans tavanıSınırlı (karmaşık görevlerde yetersiz kalabilir)Yüksek (görev-spesifik optimizasyon)

Görev hızla değişiyorsa ya da etiketli veri kıtsa in-context learning ile başlamak mantıklı. Görev sabitlenmiş, tutarlılık kritik ve sistem ölçeğe taşınacaksa fine-tuning ciddi bir seçenek.

İki yaklaşım birbirinin rakibi değil, tamamlayıcısı olarak kullanılabilir. Fine-tuned bir modele birkaç few-shot örnek eklenmesi görev formatına uyumu güçlendirebilir; bu hibrit strateji production ortamlarında giderek daha yaygın görülüyor.

Hangi yolu seçerseniz seçin, temel kural aynı: modelin ne yapması gerektiğini ne kadar net ifade ederseniz, ne kadar doğru örnek gösterirseniz, çıktı kalitesi de o oranda artar.

auto_stories İlgili Makaleler