Sıfır, Bir ve Az Örnekli Öğrenme
Örnek sayısını seçme.
Sıfır, Bir ve Az Örnekli Öğrenme, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
Örnek Sayısı Yelpazesi
Örnekler, canlı sorgudan önce isteme yerleştirilen etiketli gösterimlerin sayısını belirtir. Sıfır örnekli yaklaşım tamamen modelin önceden eğitilmiş önsel bilgisine dayanır; az örnekli yaklaşım ise çıkarım sırasında herhangi bir ağırlık güncellemesi yapmadan modeli göreve özgü küçük bir dağılıma koşullandırır.
Bu, bağlam içi öğrenmedir (ICL): dönüştürücü, örnekleri dizinin bir parçası olarak ele alır ve bunlar üzerinde örtük olarak meta-öğrenilmiş bir tür regresyon gerçekleştirir. k seçimi (örnek sayısı), değişmez bir en iyi uygulama değil, deneysel olarak ayarladığınız bir hiperparametredir.
from dataclasses import dataclass
@dataclass
class ICLConfig:
k: int # number of demonstrations
selection: str # 'static' | 'dynamic'
order: str # 'random' | 'similarity' | 'curriculum'
# Zero-shot is simply k=0
cfg = ICLConfig(k=0, selection='static', order='random')Sıfır Örnekli Yaklaşımın Üstün Olduğu Durumlar
Görev, ön eğitimde iyi temsil ediliyorsa (özetleme, çeviri, yaygın sınıflandırma) ve örnekler çıktı biçimini yanlı hâle getirebilecekse sıfır örnekli yaklaşımı tercih edin. Yönergeyle ayarlanmış modellerde, net bir talimatla birlikte verilen bir çıktı şeması, üslubu fark edilmeden belirli bir yöne çeken örneklerden çoğu zaman daha iyi sonuç verir.
Sıfır örnekli yaklaşım ayrıca belirteç maliyetini ve gecikmeyi en aza indirir; modelin, Demo'larınızda hangi sınıf baskınsa sürekli onu tahmin etmesine yol açan çoğunluk etiketi yanlılığını da önler.
# Zero-shot with explicit schema beats vague few-shot
PROMPT = (
'Classify sentiment as POSITIVE, NEGATIVE, or NEUTRAL.\n'
'Respond with only the label.\n\n'
'Text: ' + user_text + '\nLabel:'
)Tek Örnekli Yaklaşımın Biçim Sabitleyici Olarak Kullanımı
Tek örnekli yaklaşım, görev kavramsal olarak açık ancak çıktı biçimi alışılmadık ya da katı olduğunda öne çıkar. Tek bir gösterim, tam biçimi (JSON anahtarları, ayraçlar, harf büyüklüğü) düzyazı açıklamasından çok daha güvenilir biçimde öğretir.
Yapıyı, belirteç harcamadan veya birden fazla örneğin oluşturduğu etiket dağılımı çarpıklığını göze almadan sınırlamak istediğinizde tek örnekli yaklaşımı kullanın.
ONE_SHOT = (
'Extract entities as JSON.\n\n'
'Input: Apple released the iPhone in Cupertino.\n'
'Output: {"org": ["Apple"], "product": ["iPhone"], "loc": ["Cupertino"]}\n\n'
'Input: ' + query + '\nOutput:'
)Az Örnekli Yaklaşım ve k Eğrisi
k ile performans arasındaki ilişki nadiren tekdüzedir. Genellikle yükselir, yataylaşır ve ardından örnekler bağlamı doldurup dikkati dağıttıkça, canlı sorguyu modelin güncellik odağından uzaklaştırdıkça geriler.
Deneysel olarak, ayrılmış bir veri kümesinde {1, 2, 4, 8, 16} değerleri için k üzerinde tarama yapın. En uygun k değeri görev karmaşıklığına, örnek uzunluğuna ve modelin bağlamı etkin kullanmasına bağlıdır; bu kullanım genellikle model için ilan edilen pencere boyutunun çok altındadır.
def sweep_k(eval_set, candidates, ks=(1,2,4,8,16)):
results = {}
for k in ks:
acc = evaluate(build_prompt(candidates[:k]), eval_set)
results[k] = acc
return max(results, key=results.get)ICL Neden İşe Yarar: Örtük Çıkarım
Araştırmalar, ICL'yi modelin örtük Bayesçi çıkarım gerçekleştirmesi olarak ele alır: Gösterimler, modelin ön eğitim sırasında zaten öğrendiği örtük görev kavramını bulmasına yardımcı olur. Örnekler yeni bilgi sağlamaz; görevler üzerindeki artçıl dağılımı daraltan kanıtlar olarak işlev görür.
Bu durum, sezgiye aykırı bir bulguyu açıklar: Gösterimlerdeki yanlış etiketler bile doğruluğun büyük bölümünü koruyabilir; çünkü baskın sinyal, giriş-etiket eşlemesinin kendisinden çok biçim ve etiket uzayıdır.
# Min, Lyu et al. (2022): label correctness matters less than
# - the input distribution
# - the label space (which classes exist)
# - the format / structure
# Implication: invest in representative inputs + valid label setBelirteç Bütçesi ve Maliyet Dengeleri
Her örnek bağlam ve para tüketir. Gösterimler uzunsa dört örnek sorgudan çok daha büyük olabilir. Bir doğruluk puanı başına maliyet ölçütü hesaplayın: k=8, k=4'e kıyasla %0,5 kazandırırken belirteç sayısını iki katına çıkarıyorsa üretimde k=4 daha iyi seçimdir.
Yüksek işlem hacimli işlem hatlarında, sabit örnek bloğu için istem önbelleğe almayı tercih edin; böylece yinelenen gösterimler yalnızca bir kez ücretlendirilir ve işlenir.
def cost_efficiency(acc_by_k, tokens_by_k, price_per_1k):
return {
k: acc_by_k[k] / (tokens_by_k[k] / 1000 * price_per_1k)
for k in acc_by_k
}
# Pick the k maximizing accuracy per dollar, not raw accuracyÇoğunluk Etiketi ve Konum Yanlılığı
Az örnekli istemler gizli yanlılıklar taşır. Çoğunluk etiketi yanlılığı, modelin Demo'larda en sık görülen sınıfı tercih etmesine neden olur. Güncellik yanlılığı, son örneğe gereğinden fazla ağırlık verir. Yaygın belirteç yanlılığı ise sık görülen belirteçleri tercih eder.
Bağlamsal kalibrasyon gibi kalibrasyon teknikleri, içerikten arındırılmış bir girişte (örneğin N/A belirtecinde) modelin önselini tahmin eder ve bu etkiyi ortadan kaldırır; böylece az örnekli sınıflandırıcıları büyük ölçüde istikrarlı hâle getirir.
# Contextual calibration (Zhao et al. 2021)
p_cf = model_probs(prompt_with_input('N/A')) # content-free prior
W = 1.0 / p_cf # diagonal correction
def calibrated(probs):
return normalize(W * probs)Gösterim Kümesini Dengeleme
Çoğunluk etiketi yanlılığını azaltmak için gösterimler arasındaki sınıfları dengeleyin ve sıralarını değiştirin. İkili sınıflandırmada k=4 için 3:1 yerine karıştırılmış 2 olumlu ve 2 olumsuz örnek kullanın.
Üretim görevlerinde, önemli boyutlar (uzunluk, ton, zorluk) boyunca denge sağlayın; böylece model, en sık gördüğü tek bir biçime çökmez.
import random
def balanced_demos(pool, k, label_fn):
by_label = {}
for ex in pool:
by_label.setdefault(label_fn(ex), []).append(ex)
per = k // len(by_label)
picks = [e for lst in by_label.values() for e in random.sample(lst, per)]
random.shuffle(picks)
return picksAz Örnekli Yaklaşım ve İnce Ayar
Görev sık değişiyorsa, veri azsa veya ayarlanmış bir modeli barındıramıyorsanız az örnekli yaklaşım doğru araçtır. Binlerce örneğiniz varsa, çağrı başına en düşük gecikmeye ihtiyaç duyuyorsanız ya da istemlerin kısa kalması için biçimi modele yerleştirmek istiyorsanız ince ayar daha iyi sonuç verir.
Yaygın bir üretim yolu şöyledir: az örnekli yaklaşımla prototip oluşturun, başarılı izleri toplayın, ardından örnek belirteçlerini tamamen ortadan kaldırmak için bunları bir ince ayar modelinde damıtın.
# Decision heuristic
if num_labeled < 500 or task_volatility == 'high':
strategy = 'few-shot ICL'
elif latency_budget_ms < 200 or prompt_token_cost_dominant:
strategy = 'fine-tune + zero-shot'
else:
strategy = 'few-shot now, distill later'Akıl Yürütme Görevleri Örneklerden Fazlasını Gerektirir
Çok adımlı akıl yürütmede, ham az örnekli yanıt çiftleri zarar verebilir: Model, gerekçelendiremeyeceği bir yanıta doğrudan atlamayı öğrenir. Az örnekli yaklaşımı, yalnızca son etiketi değil akıl yürütme izini de gösteren düşünce zinciri gösterimleriyle birleştirin.
Örnek sayısı, akıl yürütme derinliğiyle etkileşir; aritmetik ve mantık karşılaştırma testlerinde çoğu zaman yüksek kaliteli 2 düşünce zinciri örneği, yalnızca yanıt içeren 8 örnekten daha iyi sonuç verir.
COT_SHOT = (
'Q: A shop had 23 apples, used 20, bought 6 more. How many now?\n'
'A: Start 23, minus 20 leaves 3, plus 6 is 9. Answer: 9\n\n'
'Q: ' + question + '\nA:'
)k İçin Bir Değerlendirme harness'i
Örnek seçimini bir harness ile desteklenen deneysel bir arama olarak ele alın. Bir doğrulama kümesini ayırın, birden çok başlangıç değeri kullanarak örnek sırasını denetleyin ve ortalama ile varyansı raporlayın; çünkü az örnekli doğruluk, yalnızca sıralama nedeniyle birkaç puan oynayabilir.
Son seçimin yalnızca doğruluğu değil, tüm hedefi eniyilemesi için her k değeri başına belirteç sayılarını ve gecikmeyi kaydedin.
def harness(pool, val, ks, seeds=5):
report = {}
for k in ks:
accs = []
for s in range(seeds):
demos = balanced_demos(pool, k, label_fn)
accs.append(evaluate(build_prompt(demos), val))
report[k] = (mean(accs), stdev(accs))
return reportHızlı Kontrol
Örnek seçimi ve ICL yanlılığı konusundaki anlayışınızı sınayın.
Özet
Temel çıkarımlar:
kayarlanabilir bir hiperparametredir; üzerinde tarama yapın ve yükselme-yataylaşma-gerileme eğrisini izleyin.- Sıfır örnekli yaklaşım iyi bilinen görevler için uygundur; tek örnekli yaklaşım katı biçimleri sabitler; az örnekli yaklaşım bir görev dağılımını temel alır.
- ICL, önceden eğitilmiş bir görevi bularak çalışır; bu nedenle etiketlerin doğruluğundan çok biçim ve etiket uzayı belirleyicidir.
- Dengeleme, karıştırma ve bağlamsal kalibrasyonla çoğunluk etiketi, güncellik ve yaygın belirteç yanlılıklarını azaltın.
- Dolar başına doğruluğu eniyileyin, akıl yürütme görevlerini düşünce zinciri örnekleriyle birleştirin ve istikrarlı az örnekli istemleri ince ayar modellerine damıtın.
Sıkça Sorulan Sorular
“Sıfır, Bir ve Az Örnekli Öğrenme” dersi ücretsiz mi?
Evet — “Sıfır, Bir ve Az Örnekli Öğrenme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.
“Sıfır, Bir ve Az Örnekli Öğrenme” dersinde ne öğreneceğim?
Örnek sayısını seçme. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Sıfır, Bir ve Az Örnekli Öğrenme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Sıfır, Bir ve Az Örnekli Öğrenme
- Etkili Örnekler Tasarlama
- Örnek Sıralaması ve Yenilik
- Dinamik Az Örnekli Seçim