Few-shot prompting, modele gerçek girdiyi vermeden önce bir görevin her biri bir girdi ve istediğin cevaptan oluşan birkaç çözülmüş örneğini göstermektir. Model kalıbı okur ve sürdürür. Örnekler, kelimelerle söylemesi zor olan şeyleri sabitlemenin en hızlı yoludur: iki kategori arasındaki çizginin nereye düştüğü, çıktının tam şekli ya da ekibinin yazdığı üslup.
Few-shot prompting nasıl çalışır
Brown ve arkadaşlarının 2020 tarihli "Language Models are Few-Shot Learners" makalesi, GPT-3'ün prompta konmuş bir avuç gösterimden yeniden eğitim olmadan yeni bir görevi kavrayabildiğini gösterdi. Buna in-context learning (bağlam içi öğrenme) denir: modelde hiçbir şey değişmez ve örnekler sadece o tek promptun yanıtını etkiler. Bir dahaki sefere örneklerin yine orada olması gerekir.
Adlandırma örnek sayısını izler. Zero-shot bir prompt hiç örnek içermez, one-shot bir prompt bir örnek içerir, few-shot bir prompt ise genellikle iki ile bir avuç arası birkaç örnek içerir.
Yan yana zero-shot ve few-shot
Aşağıdaki iki sekme aynı talimatla aynı şeyi istiyor. Tek fark, ikinci sekmenin gerçek talepten önce etiketlenmiş dört örnek eklemesi. Etiketleri İngilizce bıraktık, çünkü bu çıktıyı bir script okuyacak.
Kategori: bug
Kullanıcı şifresini sıfırlamış, ama yeni şifre girişte reddediliyor. Bu, şifre sıfırlama akışında bir soruna işaret ediyor, yani bu büyük ihtimalle kimlik doğrulama sistemindeki bir hata.
Örnekler iki şeyi değiştirdi. Birincisi biçim: zero-shot yanıt kalın bir başlık ve bir açıklama ekledi, few-shot yanıt ise örneklere uydu ve bir scriptin doğrudan okuyabileceği tek bir kelime verdi. İkincisi karar. "Bug" talebin makul bir yorumu ve çoğu insan onu seçerdi. Ama bu ekip giriş sorunlarını account altında dosyalıyor ve üçüncü örnek bunu tek kelime açıklama yapmadan söylüyor. Hiçbir talimat bu kuraldan bahsetmedi; kuralı örnekler taşıdı.
Kaç örnek kullanmalı
İki ile beş arasıyla başla. Bu, biçimlendirme ve sınıflandırma görevlerinin çoğu için yeterlidir ve promptu kısa tutar.
- Tek örnek bir biçimi gösterir, ama model onu fazla yakından kopyalamaya eğilimlidir. Tek örnek bir fiyat değişikliğinin 30 kelimelik özetiyse sıradaki özet de 30 kelime çıkabilir ve tuhaf şekilde paraya odaklanabilir.
- İki ya da üç farklı örnek, modelin ortak olanı (kalıbı) ve değişeni (ayrıntıları) görmesini sağlar.
- Sınıflandırmada her etiket için en az bir örnek koy, sonra örnekler olmadan yanlış giden sınır durumları ekle.
- Birkaç taneden sonra kazanç genellikle azalırken her istek uzar, bu da token ve zaman demektir. Doğru sonuç için düzinelerce örneğe ihtiyacın varsa görevin daha net bir talimata ya da tamamen farklı bir yaklaşıma ihtiyacı olabilir.
İyi örnekler seçmek
Model sadece öğretmek istediğin şeyden değil, örneklerinin ortak olan her şeyinden öğrenir.
- Zor durumları kapsa. Kolay örnekler az şey öğretir. En faydalı örnekler, yukarıdaki giriş talebi gibi, sınırda durur.
- Yüzeyi çeşitlendir. Kısa ve uzun girdileri, farklı konuları ve farklı ifadeleri karıştır. Örneklerindeki her olumlu yorum kısaysa model uzunluğu sinyal sanabilir.
- Etiketleri dengele ve sırayı karıştır. Modeller örneklerde en sık görünen etikete ve en son görünen etikete yönelmeye eğilimlidir.
- Her örneği kontrol et. Bir örnekteki hata, o hatayı yapma talimatıdır.
- Gerçek girdiler kullan. Kendi verinden alınan örnekler, modelin göreceği şeye uydurulmuş örneklerden çok daha iyi uyar.
Biçimi aynı tut
Her örnek aynı etiketleri, ayırıcıları ve büyük/küçük harf kullanımını kullanmalı ve gerçek girdi örnek girdilerle birebir aynı görünmeli. Talep promptunda her örnek "Talep:" sonra "Etiket:" şeklinde ve prompt açık bir "Etiket:" satırıyla bitiyor; bu da sıradaki yazılacak tek doğal şeyi bırakıyor.
Daha uzun örneklerde her birini <example> etiketleri gibi net işaretlerle sar ki model birinin nerede bitip diğerinin nerede başladığını anlayabilsin; bkz. ayırıcılar ve XML etiketleri. API'de örnekleri sohbetin önceki turları olarak da verebilirsin: örnek girdiyi tutan bir kullanıcı mesajı, sonra cevabı tutan bir asistan mesajı, her örnek için tekrarlanarak.
Few-shot promptlar iyi, tekrar kullanılabilir prompt şablonları olur: talimat ve örnekler sabit kalır, sadece girdi değişir. Aşağıdaki blok bir commit mesajını ekibin üslubuyla yeniden yazıyor. Alana kendi mesajını yaz ve üslubun ne kadarını örneklerin taşıdığını görmek için örnekler parçasını kapat.
feat(search): arama kutusunu büyük/küçük harfe duyarsız yap
Kuralların hiçbiri yazılı değil: küçük harfle tür, parantez içinde kapsam, emir kipi, sonda nokta yok. Örnekler dördünü de gösteriyor ve yanıt onlara uyuyor. Örnekler kapalıyken model mesajı yine iyileştirir, ama bir üslup tahmin etmek zorunda kalır ve hiçbir şey onun tahminini seninkine uydurmaz.
Few-shot örnekler sadece cevapları değil, akıl yürütmeyi de gösterebilir. Adımlarını gösteren çözülmüş örnekler, chain of thought prompting tekniğinin ilk tanıtıldığı yoldur. Cevaplamadan önce kendi içinde akıl yürüten modellerde örnekleri girdi, cevap ve biçimle sınırlı tut: senaryolaştırılmış akıl yürütme adımları onları daha iyi bir yoldan saptırabilir ve bazı sağlayıcılar bu modellerde önce zero-shot denemeyi tavsiye ediyor.
Sıkça Sorulan Sorular
Few-shot prompting nedir?
Few-shot prompting, gerçek girdiden önce prompta bir görevin her biri bir girdi ve doğru çıktıdan oluşan birkaç örneğini koymaktır. Model örneklerin belirlediği kalıbı sürdürür. En çok göstermesi anlatmaktan kolay olan özel kategoriler, alışılmadık biçimler ve kurum içi üsluplar için işe yarar.
Few-shot bir promptta kaç örnek olmalı?
Çoğu görev için iki ile beş arası iyi bir başlangıç noktasıdır. Sınıflandırmada her etiket için en az bir örnek, artı modelin örnekler olmadan yanlış yaptığı sınır durumları ekle. Birkaç taneden sonra her ek örnek genellikle daha az yardım ederken her isteği uzatır.
One-shot prompting nedir?
One-shot prompting modele tam olarak bir örnek verir. Bir biçimi göstermeye yeter, ama model bu tek örneği uzunluğu, ifadesi ve hatta konusu dahil fazla yakından kopyalamaya eğilimlidir. İkinci ve farklı bir örnek, modele hangi özelliklerin kalıp, hangilerinin tesadüf olduğunu söyler.
Model örneklerimden öğreniyor mu?
Sadece o istek için. Örnekler bağlamda bulunarak yanıtı şekillendirir; modelin ağırlıkları değişmez ve bir sonraki sohbette hiçbir şey hatırlanmaz. Buna in-context learning (bağlam içi öğrenme) denir ve few-shot bir promptun örneklerini her kullanımda yanında taşımak zorunda olmasının nedeni budur.
Kötü örnekler çıktıyı daha kötü yapabilir mi?
Evet. Model örneklerin ortak olan her şeyini kopyalar; hatalar, istemediğin uzunluk ve ton dahil. Örneklerin çoğu aynı etiketi taşıyorsa model de o etikete yönelmeye eğilimlidir. Örneklerinin doğru, çeşitli ve dengeli olduğunu kontrol et.