Bloga dön

Few-Shot ve Zero-Shot Prompting: Hangisini Ne Zaman Kullanmalı

Göreviniz için doğru prompt yaklaşımını seçmeye yönelik pratik bir rehber; kopyala-yapıştır örnekler ve basit bir karar çerçevesiyle.

Few-Shot ve Zero-Shot Prompting: Hangisini Ne Zaman Kullanmalı
ChatGPT'ye bir prompt yapıştırıyorsunuz. Çıktı... idare eder. Ama insanların prompt'larına "örnekler" ekleyerek çok daha iyi sonuçlar aldığını görüyorsunuz. Siz de bunu yapmalı mısınız? Kaç örnek? Sizin işinizde gerçekten fark eder mi?
Bu sorular sürekli gündeme geliyor ve terminoloji de pek yardımcı olmuyor. "Zero-shot," "few-shot," "one-shot" — pratik bir rehberden çok fotoğrafçılık terimleri gibi duruyor. Bu rehber jargonu bir kenara bırakıp hangi yaklaşımı kullanacağınıza karar vermeniz için net bir çerçeve sunuyor; üstüne kopyalayıp kendiniz test edebileceğiniz tam prompt'lar veriyor.

Zero-shot prompting aslında ne demek

Zero-shot prompting, yapay zekâya istediğinize dair hiç örnek göstermeden bir görev vermek demek. İhtiyacınızı tarif edersiniz, model de bunu nasıl yapacağını eğitiminden öğrendikleriyle çözer.
Bir toplantıyı özetlemek için zero-shot prompt şöyle görünür:

Aşağıdaki toplantı notlarını alınan kararları kapsayan 3-5 madde halinde özetleyin.

Toplantı notları:
{{meeting_notes}}
Hepsi bu. "İyi" özet örneği yok, örnek girdi-çıktı yok. Modelin özetin nasıl olması gerektiğini ve "alınan kararlar"ın ne anlama geldiğini bilmesine güveniyorsunuz. Pek çok görevde bu yaklaşım şaşırtıcı ölçüde iyi sonuç verir.

Few-shot prompting aslında ne demek

Few-shot prompting, prompt'unuzun içine modelin izlemesini istediğiniz örüntüyü gösteren 2-5 örnek koymak demek. Aslında "bu işi şöyle yapmanı istiyorum" deyip ardından asıl görevi veriyorsunuz.
Aynı toplantı özeti görevi, bu kez örneklerle:

Toplantı notlarını alınan kararları kapsayan 3-5 madde halinde özetle.

Örnek 1:
Girdi: "Ekip Q3 hedeflerini tartıştı. Sarah satış hedefini %15 artırmayı önerdi. Mark karşı çıktı, mevcut pipeline göz önüne alındığında %10'un daha gerçekçi olduğunu söyledi. Ekip oylama yaptı ve %12'de uzlaştı. Ayrıca web sitesi yenileme çalışmasının Q4'e ertelenmesine karar verildi."
Çıktı:
- Q3 satış hedefi artışında %12'de uzlaşıldı (%15 ve %10 önerileri arasında uzlaşı)
- Web sitesi yenilemesi Q4'e ertelendi

Örnek 2:
Girdi: "Bütçe inceleme toplantısı. Mevcut harcama tahminin %8 üzerinde. CFO seyahat bütçesinin %50 kısılmasını ve 60 gün boyunca yeni alımların durdurulmasını önerdi. CEO her iki kararı da derhal yürürlüğe girecek şekilde onayladı."
Çıktı:
- Seyahat bütçesi %50 kısıldı (derhal yürürlükte)
- 60 günlük işe alım durdurma onaylandı
- %8'lik bütçe aşımına yanıt olarak

Şimdi şunu özetle:
{{meeting_notes}}
Farkı fark edin. Örnekler modele tam olarak hangi formatı istediğinizi (parantez içinde bağlamlı maddeler), hangi düzeyde ayrıntı gerektiğini ve birden çok kararı nasıl ele alacağını gösteriyor. Model tercihlerinizi bağlam içinde öğreniyor — ince ayar (fine-tuning) gerekmiyor.

Temel farklar bir bakışta

İki yaklaşım, en çok önem taşıyan etkenler açısından şöyle karşılaştırılabilir:
  • Hız: Zero-shot daha hızlıdır. İşlenecek token sayısı az olduğu için yanıtlar daha çabuk gelir.
  • Maliyet: Zero-shot daha ucuzdur. Token başına ödeme yaparsınız ve örnekler kabarık bir hesap çıkarır.
  • Kurulum eforu: Zero-shot neredeyse hiç efor istemez. Few-shot ise iyi örnekler bulmayı ya da yazmayı gerektirir.
  • Basit görevlerde doğruluk: Aşağı yukarı aynı. Modern modeller doğrudan istekleri her iki yöntemle de iyi karşılar.
  • Karmaşık veya özelleştirilmiş görevlerde doğruluk: Genellikle few-shot kazanır. Belirli bir formata ya da alana özgü terminolojiye ihtiyaç duyduğunuzda örnekler ölçülebilir bir fark yaratır.
Tablo net: zero-shot daha basit ve daha ucuz, ama few-shot çıktı üzerinde size daha fazla kontrol verir. Asıl soru, bu ek kontrolün ne zaman buna değdiği.

Zero-shot ne zaman en iyi sonucu verir

Zero-shot prompting, modelin eğitiminden zaten "anladığı" görevlerde parlar. Bunlar arasında şunlar var:
Genel bilgi soruları: Açıklama, tanım veya olgusal bilgi istemek. Model iyi bir açıklamanın nasıl olduğunu bilir.

Yaratıcı beyin fırtınası: Fikir üretme, taslak yazma veya seçenek çıkarma. Burada zaten çeşitlilik istersiniz, belirli bir örüntüye uyum değil.

Standart özetleme: Belirli bir format gerekmediğinde makaleleri, e-postaları veya belgeleri damıtmak.

Çeviri: Modelin eğitildiği diller arasında metin dönüştürmek.

Basit sınıflandırma: Kategoriler kendiliğinden anlaşıldığında öğeleri yaygın gruplara ayırmak (olumlu/olumsuz, acil/acil değil).
Pratik bir kural: istediğinizi sade bir dille tarif edebiliyorsanız ve örnek görmeden bir insan da bunu anlardıysa, zero-shot büyük olasılıkla iş görecektir.
Karar sürecini gösteren akış şeması: zero-shot ile başla, sonuçları değerlendir, yalnızca gerekirse örnek ekle
Karar sürecini gösteren akış şeması: zero-shot ile başla, sonuçları değerlendir, yalnızca gerekirse örnek ekle

Few-shot fazladan token'a ne zaman değer

Few-shot prompting, çıktının yalnızca talimatlardan çıkarılamayacak örüntülere uyması gerektiğinde kendini ispatlar:
Özel formatlama: Belirli bir yapıda çıktıya ihtiyaç duyduğunuzda — belirli alanları olan JSON, kesin sütunları olan tablolar, belirli bir tarzda madde işaretleri. Örnekler formatı, açıklamalardan daha iyi gösterir.

Sizin sınıflandırma kategorileriniz: Müşteri e-postalarını "faturalama-sorusu," "özellik-talebi," "hata-bildirimi" ve "genel-soru" gibi kategorilere ayırıyorsanız, her birinden örnek göstermek modelin sizin tanımlarınızı anlamasına yardımcı olur.

Marka sesi veya ton uyumu: Yapay zekânın şirketinizin mevcut içeriği gibi yazmasını mı istiyorsunuz? Ona o sesten 2-3 örnek gösterin. "Profesyonel ama samimi bir tonla yaz" gibi talimatlar muğlaktır; örnekler somuttur.

Alana özgü terminoloji: Sektörünüzde başka yerlerde farklı anlamlara gelen jargon ya da kısaltmalar varsa, örnekler modele sizin bağlamınızı öğretir.

Sınır durumlar ve nüans: Zero-shot yaklaşımları zorlayan alaycılık tespiti, ironi veya ince ayrımlar. Araştırmalar, few-shot prompting'in olumsuzluk ve alaycılık gibi duygu sınır durumlarının ele alınmasını belirgin biçimde iyileştirdiğini gösteriyor.
Bir çalışma, Twitter duygu sınıflandırmasında yalnızca 20-50 örnekle yapılan few-shot prompting'in, 10.000'den fazla örnekle ince ayar yapılmış modellerin performansına yaklaştığını ortaya koydu. Bu, iyi seçilmiş gösterimlerin gücünü ortaya koyuyor.
Farklı görevler için bir few-shot prompt kütüphanesi oluşturmaya başladığınızı fark ederseniz, PromptNest gibi bir araç bunları {{meeting_notes}} gibi değişkenlerle birlikte saklamanıza yardımcı olur — kopyalarken boşlukları doldurursunuz, eksiksiz prompt yapıştırılmaya hazırdır.

"Önce zero-shot, gerekirse yükselt" iş akışı

Hem zaman hem de token kazandıran pratik yaklaşım şu:
1. adım: Önce zero-shot deneyin. Ne istediğinizi anlatan net bir prompt yazın. Görev konusunda spesifik olun ama henüz örnek koymayın.

2. adım: Çıktıyı değerlendirin. İhtiyacınız olanı veriyor mu? Veriyorsa işiniz bitti. Vermiyorsa neyin yanlış olduğunu belirleyin — format mı? Ton mu? Eksik ayrıntılar mı? Görevi tamamen yanlış mı anlamış?

3. adım: Hedefe yönelik örnekler ekleyin. Modelin yanlış yaptığı şeyi spesifik olarak gösteren 2-3 örnek hazırlayın. Format hatalıysa doğru formatı gösterin. Ton yanlışsa doğru tonu gösterin.
Bu iş akışı önemli çünkü örneklere ihtiyacınız olup olmadığını tahmin etmiyorsunuz — gerçek boşluklara yanıt veriyorsunuz. Bazen bir zero-shot prompt'a "Adım adım düşünelim" eklemek, hiç örneğe gerek kalmadan akıl yürütme sorunlarını çözer. Araştırmalar zero-shot chain-of-thought'un akıl yürütme görevlerinde few-shot'u sıkça geride bıraktığını doğruluyor.

Aslında kaç örnek gerekiyor

Araştırmalar tutarlı biçimde çoğu görev için 2-5 örnek gibi tatlı bir noktayı işaret ediyor. Veriler şunu gösteriyor:
- En büyük doğruluk artışını ilk 2-3 örnek sağlıyor - 4-5 örnekten sonra kazanımlar belirgin biçimde azalıyor - Daha fazla örnek, çelişen örüntüler getirerek performansı düşürebiliyor - Örnek kalitesi, niceliğinden daha önemli — üç mükemmel örnek, on vasat örneği geride bırakır
Örnek sırasına dair önemli bir bulgu daha var: çalışmalar örneklerin sırasının sonuçları etkilediğini, en uygun sıralamanın bazen iyi ve kötü performans arasındaki farkı yarattığını gösteriyor. Few-shot prompt'unuz iyi çalışmıyorsa, daha fazla örnek eklemeden önce sıralamayı değiştirmeyi deneyin.
Bir prompt'a örnek kartlarının eklendiğini ve ilk birkaç örnekten sonra getirinin azaldığını gösteren çizim
Bir prompt'a örnek kartlarının eklendiğini ve ilk birkaç örnekten sonra getirinin azaldığını gösteren çizim
Çoğu kullanım senaryosu için 2 örnekle başlayın. Doğruluk istediğiniz seviyede değilse, farklı bir varyasyonu kapsayan üçüncü bir örnek ekleyin. 4'ten fazlasına nadiren ihtiyaç duyarsınız.

Chain-of-thought: Akıl yürütme için orta yol

Matematik, mantık ve çok adımlı problemlerde özellikle iyi sonuç veren üçüncü bir seçenek var: chain-of-thought prompting. Girdi-çıktı örnekleri göstermek yerine, modelden "adım adım düşünmesini" istiyorsunuz.
Zero-shot chain-of-thought şöyle görünür:

Bir markette 45 elma var. Sabah 12 tane satıyorlar ve 30 elmalık bir tedarik alıyorlar. Sonra öğleden sonra 18 tane daha satıyorlar. Kapanışta kaç elmaları kalır?

Adım adım üzerinden gidelim.
Bu basit ifade — "Adım adım üzerinden gidelim" — modelin doğrudan cevaba atlamak yerine akıl yürütmesini göstermesini tetikler. Karmaşık akıl yürütmede bu çoğu zaman hem zero-shot'u hem de few-shot yaklaşımları geride bırakır.
arXiv'den güncel bir araştırma, GPT-4 ve Claude gibi güçlü modellerde zero-shot chain-of-thought'un akıl yürütme görevlerinde sıklıkla few-shot prompting'i geride bıraktığını ortaya koydu. Örnekler aslında modelin düşünüşünü desteklemek yerine kısıtlayabiliyor.
Chain-of-thought'u şu durumlarda kullanın:
  • Görev birden fazla mantıksal adım gerektiriyorsa
  • Modelin akıl yürütmesini açıklamasına ihtiyacınız varsa (hataları yakalamak için işe yarar)
  • Matematik, kodlama mantığı veya analitik problemler söz konusuysa
  • Yalnızca cevabı değil, modelin yaklaşımını da doğrulamak istiyorsanız

Kopyalayabileceğiniz tam prompt örnekleri

Üç yaklaşımı gerçek görevler üzerinde yan yana görelim. Tüm prompt'lar GPT-4 ve Claude ile test edildi ve kullanıma hazır.

Görev 1: E-posta tonu sınıflandırma

Zero-shot versiyonu:

Bu müşteri e-postasının tonunu şu şekilde sınıflandır: öfkeli, memnun, nötr veya acil.

E-posta:
{{email_text}}

Ton:
Few-shot versiyonu (sınır durumlar için daha iyi):

Müşteri e-postası tonunu şu şekilde sınıflandır: öfkeli, memnun, nötr veya acil.

E-posta: "Siparişim için 3 haftadır bekliyorum. Bu çok saçma. ŞU ANDA iade istiyorum."
Ton: öfkeli

E-posta: "Sadece teşekkür etmek istedim — ürün erken geldi ve harika çalışıyor!"
Ton: memnun

E-posta: "Merhaba, siparişimin kargoya verildiğini doğrulayabilir misiniz? Sipariş #12345."
Ton: nötr

E-posta: "Sistemimiz kapalı ve yedek parçaya BUGÜN ihtiyacımız var, yoksa sözleşmeyi kaybediyoruz."
Ton: acil

E-posta: {{email_text}}
Ton:
Few-shot versiyonu, modelin sizin spesifik tanımlarınızı anlamasına yardımcı olur. "Acil" ile "öfkeli" arasındaki ayrım belirsiz olabilir — örnekler sınırlarınızı netleştirir.

Görev 2: Ürün açıklaması yeniden yazımı

Zero-shot versiyonu:

Bu ürün açıklamasını daha çekici ve fayda odaklı olacak şekilde yeniden yaz. 100 kelimenin altında tut.

Orijinal: {{product_description}}

Yeniden yazılmış versiyon:
Few-shot versiyonu (marka sesi tutarlılığı için daha iyi):

Ürün açıklamalarını çekici ve fayda odaklı olacak şekilde yeniden yaz. Bu üsluba uygun yaz:

Orijinal: "Paslanmaz çelik su şişesi. 24oz kapasite. İçecekleri 24 saat soğuk tutar."
Yeniden: "Şık 24oz çelik şişemizle gün boyu zinde kalın. Sabah kahveniz işe gidişiniz boyunca sıcak kalır. Öğleden sonra suyunuz spor salonunda buz gibi kalır. Tek şişe, sınırsız olasılık."

Orijinal: "Kablosuz kulaklık. 8 saat pil. Gürültü engelleme."
Yeniden: "Sevdiğiniz podcast'lerden 8 saat, hiç bölünmeden. Kablosuz kulaklıklarımız gürültüyü engelliyor; böylece önemli olana odaklanabilirsiniz — ister derin çalışma, ister antrenman çalma listeniz, isterse sonunda bitirmek istediğiniz o sesli kitap."

Orijinal: {{product_description}}
Yeniden:
Few-shot versiyonu spesifik bir metin yazarlığı tarzını öğretir — fayda öncelikli, samimi, somut kullanım senaryolarına dayalı. Zero-shot size bir yeniden yazım verir, ama mutlaka sizin sesinizi vermez.

Görev 3: Hata raporunu yapılandırma

Zero-shot versiyonu:

Bu hata raporunu Özet, Yeniden Üretme Adımları, Beklenen Davranış ve Gerçek Davranış başlıklarını içeren yapılandırılmış bir formata dönüştür.

Hata raporu: {{bug_report}}
Few-shot versiyonu (tutarlı formatlama için daha iyi):

Hata raporlarını yapılandırılmış formata dönüştür.

Girdi: "PDF yüklemeye çalıştığımda uygulama çöküyor. Panodaydım, yükle'ye tıkladım, 5MB'lık bir PDF seçtim ve uygulama kapanıverdi. Dosyayı yüklemelerimde göstermesi gerekirken uygulamanın tamamı çöküyor."

Çıktı:
**Özet:** PDF dosyaları yüklenirken uygulama çöküyor
**Yeniden Üretme Adımları:**
1. Panoya gidin
2. Yükle düğmesine tıklayın
3. PDF dosyası seçin (5MB dosyayla test edildi)
**Beklenen:** Dosya yüklemeler bölümünde görünür
**Gerçek:** Uygulama beklenmedik şekilde çöker/kapanır

---

Girdi: {{bug_report}}

Çıktı:
Teknik dokümantasyonda tutarlılık önemlidir. Few-shot versiyonu her hata raporunun aynı yapıyı ve aynı ayrıntı düzeyini izlemesini sağlar.

Hızlı karar çerçevesi

Yeni bir görevle karşı karşıya kaldığınızda şu sorulardan geçin:
1. Görev sade ve iyi tanımlı mı? → Zero-shot ile başlayın 2. Modelin tahmin edemeyeceği belirli bir formata mı ihtiyacınız var? → Few-shot kullanın 3. Görev çok adımlı akıl yürütme içeriyor mu? → Önce zero-shot chain-of-thought deneyin 4. Tutarlı marka sesi veya alan terminolojisi mi gerekiyor? → O sese uygun örneklerle few-shot kullanın 5. Zero-shot, ihtiyacınızın %80'ini karşıladı mı? → Bırakın öyle kalsın. Mükemmellik üç kat token'a değmez.
Amaç en gösterişli tekniği kullanmak değil — verimli biçimde iyi sonuçlar almak. Zero-shot varsayılan yöntemdir. Karmaşıklığı yalnızca daha basit yaklaşımlar yetersiz kaldığında ekleyin.

Pratiğe dökmek

Bunu içselleştirmenin en iyi yolu denemek. Düzenli olarak yaptığınız bir işi alın — rapor özetlemek, e-posta taslağı çıkarmak, geri bildirim sınıflandırmak — ve her iki yaklaşımı da deneyin. Zero-shot'un nerede yetersiz kaldığını fark edin. Few-shot'un nerede gerçek bir fark yarattığını görün.
İşe yarayan prompt'lar bulduğunuzda, onları gerçekten yeniden bulabileceğiniz bir yerde saklayın. Örnekler ve değişkenler içeren bir prompt koleksiyonu oluşturuyorsanız, PromptNest yerel bir Mac uygulaması (Mac App Store'da $19.99 tek seferlik ödeme, abonelik yok, hesap yok, yerel olarak çalışır); prompt'larınızı düzenli, aranabilir ve herhangi bir uygulamadan klavye kısayoluyla erişilebilir tutar. Üç hafta önce yazdığınız o mükemmel few-shot prompt'unu dağınık notlarda artık aramayacaksınız.
Sade başlayın. Gerektiğinde karmaşıklık ekleyin. İşe yarayanı saklayın. Stratejinin tamamı bu.