Örnekle öğretme (few-shot)
Önkoşul:Rol ve persona verme
Kanca
Bir göreve KURAL yazmak yerine, birkaç ÖRNEK göstersen ne olur? “Bu incelemeyi olumlu/olumsuz diye etiketle” demek yerine, ÜÇ örnek incelemeyi etiketleriyle birlikte göstersen?
Sezgi
“Few-shot” prompting, görevi YAZILI kurallarla açıklamak yerine, birkaç (girdi, çıktı) ÖRNEĞİ göstermektir — model, bu örneklerden görevin KURALINI kendisi ÇIKARSAR. Bu, 5. kategoride (NLP & LLM, 20. ders) gördüğümüz GERÇEK bir bulgunun DOĞRUDAN bir uzantısıdır.
Mekanizma
Aynı sınıflandırma görevini, zero-shot (sıfır örnek) ve 3-shot (üç örnek) olarak karşılaştıralım:
Zero-shot vs 3-shot: aynı görev, farklı öğretim yöntemi
# "Few-shot" (örnekle öğretme): göreve ait KURALI YAZILI olarak açıklamak yerine,
# birkaç (girdi, çıktı) ÖRNEĞİ göstermek -- model, örüntüyü ÇIKARSAR.
ZERO_SHOT = "Classify the sentiment of this review as positive or negative: The food was cold and the service was slow."
FEW_SHOT = """Classify the sentiment of each review as positive or negative.
Review: The staff were friendly and the food was delicious. Sentiment: positive
Review: I waited an hour and the order was wrong. Sentiment: negative
Review: Best meal I have had all year, highly recommend. Sentiment: positive
Review: The food was cold and the service was slow. Sentiment:"""
t_zero = mesaj_token_sayisi(ZERO_SHOT)
t_few = mesaj_token_sayisi(FEW_SHOT)
print(f"Zero-shot ({t_zero} token):\n {ZERO_SHOT}")
print(f"\n3-shot ({t_few} token):\n{FEW_SHOT}")
print(f"\n3 örnek eklemek, maliyeti {t_few/t_zero:.1f}x artırdı -- ama GÖREV TANIMI hiç")
print("değişmedi. Fark: model, 'sentiment nedir, nasıl etiketlenir' kuralını YAZILI bir")
print("açıklamadan değil, ÜÇ SOMUT örnekten ÇIKARSAMAK zorunda.")Zero-shot (67 token):
Classify the sentiment of this review as positive or negative: The food was cold and the service was slow.
3-shot (240 token):
Classify the sentiment of each review as positive or negative.
Review: The staff were friendly and the food was delicious. Sentiment: positive
Review: I waited an hour and the order was wrong. Sentiment: negative
Review: Best meal I have had all year, highly recommend. Sentiment: positive
Review: The food was cold and the service was slow. Sentiment:
3 örnek eklemek, maliyeti 3.6x artırdı -- ama GÖREV TANIMI hiç
değişmedi. Fark: model, 'sentiment nedir, nasıl etiketlenir' kuralını YAZILI bir
açıklamadan değil, ÜÇ SOMUT örnekten ÇIKARSAMAK zorunda.Matematik
Neden örnekler işe yarar: NLP kategorisinin 20. dersinden gerçek bir kanıt
Few-shot prompting’in NEDEN çalıştığını, GERÇEKTEN eğitilmiş bir modelle zaten GÖRMÜŞTÜK:
NLP kategorisinin 20. dersindeki genelleme bulgusu, few-shot'un temelini açıklıyor
# 20. derste (NLP kategorisi) GERÇEK bir bulgu vardı: gradyan inişiyle eğitilen mini-GPT,
# 'ABCABC...' örüntüsünü gördükten sonra, HİÇ görmediği bağlam uzunluklarında bile
# (örn. tek başına 'C') doğru bir sonraki token'ı tahmin edebiliyordu -- ÖRÜNTÜYÜ genelledi,
# ezberlemedi. Few-shot prompting, AYNI mekanizmadan yararlanır:
print("\n5. kategori (NLP & LLM), 20. ders bulgusu:")
print(" Model 'ABCABC...' dizisini gördükten sonra, HİÇ görmediği bir bağlamda ('C' tek başına)")
print(" bile doğru devamı ('A') tahmin etti -- SPESİFİK diziyi DEĞİL, GENEL kuralı öğrenmişti.")
print("\nFew-shot prompting AYNI ilkeye dayanır: birkaç (girdi->çıktı) örneği GÖRDÜKTEN sonra,")
print("model bağlamdaki ÖRÜNTÜYÜ (görev kuralını) ÇIKARSAR ve YENİ bir girdiye UYGULAR --")
print("bu, ayrı bir eğitim adımı OLMADAN, TEK bir ileri geçişte (19. ders) gerçekleşir.")
5. kategori (NLP & LLM), 20. ders bulgusu:
Model 'ABCABC...' dizisini gördükten sonra, HİÇ görmediği bir bağlamda ('C' tek başına)
bile doğru devamı ('A') tahmin etti -- SPESİFİK diziyi DEĞİL, GENEL kuralı öğrenmişti.
Few-shot prompting AYNI ilkeye dayanır: birkaç (girdi->çıktı) örneği GÖRDÜKTEN sonra,
model bağlamdaki ÖRÜNTÜYÜ (görev kuralını) ÇIKARSAR ve YENİ bir girdiye UYGULAR --
bu, ayrı bir eğitim adımı OLMADAN, TEK bir ileri geçişte (19. ders) gerçekleşir.Kod
Nerede işe yarar
Few-shot prompting kullanırken dikkat edilmesi gereken pratik noktalar:
- Örnek SAYISI arttıkça FAYDA azalır (diminishing returns) — genelde 2-5 örnek çoğu görev için YETERLİDİR; onlarca örnek eklemek, hem maliyeti artırır hem de her zaman orantılı bir iyileşme SAĞLAMAZ.
- Örneklerin SIRASI ve ÇEŞİTLİLİĞİ önemlidir — SADECE olumlu örnekler göstermek, modelin her şeyi “olumlu” etiketlemesine YOL AÇABİLİR; dengeli bir karışım daha GÜVENİLİRDİR.
- Few-shot, 4. dersteki persona gibi, modelin BİLGİ TABANINI genişletmez — SADECE görev FORMATINI ve KRİTERLERİNİ netleştirir; model hâlâ eğitiminde ne gördüyse onu bilir.
Bu 2 hatayı yaparsın:
- Few-shot’un HER ZAMAN zero-shot’tan daha İYİ olduğunu düşünmek — basit, NET görevlerde (2. dersteki gibi) zero-shot genelde YETERLİDİR ve daha UCUZDUR.
- Tutarsız veya BİRBİRİYLE ÇELİŞEN örnekler seçmek — model, ÖRÜNTÜYÜ çıkarsamaya çalışırken, tutarsız örnekler NET bir kural bulmasını ZORLAŞTIRIR.
Kendini test et
1. Few-shot prompting, zero-shot'tan (sıfır örnek) NASIL farklıdır?
- Few-shot, görevi tamamen farklı bir şeye dönüştürür
- Few-shot'ta görev KURALI, yazılı bir açıklama yerine birkaç (girdi, çıktı) ÖRNEĞİYLE gösterilir -- model, kuralı örneklerden ÇIKARSAR; görev TANIMI aynı kalır (doğru cevap)
- Few-shot, modelin eğitim verisini günceller
- Few-shot sadece görsel görevlerde kullanılır
Neden: zero-shot-vs-few-shot bloğunda hem ZERO_SHOT hem FEW_SHOT AYNI sınıflandırma görevini soruyor -- fark, kuralın YAZILI mı yoksa ÖRNEKLERLE mi iletildiğidir.
2. 5. kategorinin (NLP & LLM) 20. dersindeki hangi bulgu, few-shot prompting'in NEDEN işe yaradığını açıklıyor?
- Modelin daha fazla parametreye sahip olması
- Eğitilen bir modelin, HİÇ görmediği bağlam uzunluklarında bile (örn. tek başına 'C') doğru tahmin yapabilmesi -- yani SPESİFİK örnekleri ezberlemek yerine GENEL bir kuralı öğrenip YENİ durumlara uygulayabilmesi (doğru cevap)
- Modelin internet erişimine sahip olması
- Modelin daha yavaş çalışması
Neden: neden-ise-yarar bloğu, NLP kategorisinin 20. dersindeki 'ABCABC...' genelleme bulgusunu AÇIKÇA few-shot'un temel mekanizması olarak gösteriyor: örüntüden kural çıkarsama, yeni girdilere uygulama.
3. Few-shot prompting'te SADECE 'olumlu' etiketli örnekler göstermenin RİSKİ nedir?
- Hiçbir riski yoktur
- Model, gösterilen örüntüye (hepsi olumlu) dayanarak YENİ girdileri de 'olumlu' etiketleme eğiliminde olabilir -- dengesiz örnekler, dengesiz bir çıkarsamaya yol açar (doğru cevap)
- Model bu durumda çalışmayı reddeder
- Sadece olumlu örnekler göstermek daha hızlı sonuç verir
Neden: Kullanım bölümünde AÇIKÇA belirtildiği gibi, örneklerin ÇEŞİTLİLİĞİ önemlidir -- model örüntüyü ÇIKARSADIĞI için, gösterilen örneklerdeki DENGESİZLİK doğrudan çıktıya YANSIR.
Özet
Özet
- Few-shot prompting, görev kuralını yazılı açıklama yerine birkaç (girdi, çıktı) örneğiyle gösterir.
- Model, bu örneklerden görevin ÖRÜNTÜSÜNÜ çıkarsar -- 20. dersteki (NLP kategorisi) genelleme bulgusuyla AYNI mekanizma.
- Her eklenen örnek, doğrudan token maliyetini artırır (bu dersteki örnekte 3.6x).
- Örnek sayısı arttıkça fayda AZALIR -- genelde 2-5 örnek çoğu görev için yeterlidir.
- Tutarlı ve ÇEŞİTLİ örnekler seçmek, modelin DOĞRU kuralı çıkarsaması için KRİTİKTİR.