Örnek Sıralaması ve Yenilik
Örnek sırasının çıktıyı nasıl etkilediği.
Örnek Sıralaması ve Yenilik, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 3. 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.
Sıra Gizli Bir Hiperparametredir
Az örnekli örneklerin sırası, doğruluğu birkaç yüzde puanı oynatabilir; bazen neredeyse rastgele bir istemi güçlü bir isteme dönüştürür, bazen de bunun tersine yol açar. Bu oynaklık, örnek kümesi sabit kaldığında bile görülür.
Sıralamayı sonradan akla gelen bir ayrıntı değil, aranacak birinci sınıf hiperparametre olarak ele alın. Sıra denetlenmeden raporlanan az örnekli sonuçlar bilimsel açıdan geçersizdir.
import itertools
def order_search(demos, eval_set, build, max_perms=24):
perms = list(itertools.permutations(demos))[:max_perms]
scored = [(p, evaluate(build(p), eval_set)) for p in perms]
return max(scored, key=lambda x: x[1])Güncellik Yanlılığı Açıklanıyor
Yalnızca kod çözücü içeren dönüştürücüler güncellik yanlılığı sergiler: Üretim noktasına daha yakın belirteçler orantısız ölçüde etkili olur. Sorgudan önce gelen son gösterimin biçimi, etiketi ve tonu şekillendirme olasılığı en yüksektir.
Bu durum kısmen dikkat örüntülerinin ve konumsal kodlamanın bir sonucudur. Pratik sonuç şudur: Sona yerleştirdiğiniz şeyi model en kolay biçimde taklit eder.
# Position weight intuition (illustrative, not exact)
# influence(example_i) roughly increases with proximity to the query
# => the FINAL demo disproportionately anchors the next generation
weights = [0.1, 0.15, 0.25, 0.5] # earlier ... latestOrtada Kaybolma
Uzun bağlam çalışmaları, U biçimli bir dikkat profili ortaya koyar: Modeller bağlamın başına ve sonuna iyi dikkat eder, ancak ortasına yeterince dikkat etmez. İstemin ortasına gömülen kritik gösterimler fiilen göz ardı edilir.
En önemli veya en çetin örneklerinizi başa ya da güncellik yanlılığı nedeniyle sona yakın bir yere yerleştirin; onları asla uzun bir Demo bloğunun ortasında bırakmayın.
def place_key_demos(key, filler):
# U-shape aware: key items at the edges, filler in the middle
head = key[: len(key)//2]
tail = key[len(key)//2 :]
return head + filler + tailÇoğunluk Etiketi ve Son Konum
Güncellik ve çoğunluk etiketi yanlılıkları birbirini güçlendirir. Son gösteriminiz A sınıfındaysa model A'yı tahmin etmeye yönelir. Ağırlıklı olarak A sınıfından oluşan bir Demo kümesiyle birleştiğinde önsel güçlü biçimde çarpılır.
Dengeli sınıflandırma için etiketleri dönüşümlü kullanın ve istem çeşitlerinizde son örneğin her zaman aynı sınıfa ait olmadığından emin olun.
def alternate_labels(by_label, k):
labels = list(by_label)
out = []
i = 0
while len(out) < k:
lbl = labels[i % len(labels)]
if by_label[lbl]:
out.append(by_label[lbl].pop())
i += 1
return out # final element varies by constructionBenzerliğe Göre (Artan) Sıralanmış Örnekler
Erişim destekli az örnekli öğrenmede güçlü bir buluşsal yöntem, erişilen örnekleri sorguya olan artan benzerliğe göre sıralamaktır; böylece en ilgili gösterim sorguya en yakın konuma gelir ve yenilik etkisinden yararlanır.
Bu yaklaşım, dinamik seçimi yenilik etkisinden yararlanmayla birleştirir: ilgili bağlam hem mevcut olur hem de modelin en güçlü biçimde odaklandığı konuma yerleştirilir.
def order_by_similarity(query_emb, retrieved):
scored = [(d, cos(query_emb, d.emb)) for d in retrieved]
scored.sort(key=lambda x: x[1]) # ascending
return [d for d, _ in scored] # most similar last (near query)Müfredat Sıralaması
Akıl yürütme veya üretim için curriculum sıralaması (kolaydan zora) modelin hedef davranışı adım adım oluşturmasına yardımcı olabilir; sorgudan hemen önce, akıl yürütmenin tüm derinliğini gösteren karmaşık bir örnekle sona erer.
Bu yöntem göreve bağlıdır; yararlı olduğunu varsaymak yerine rastgele ve benzerliğe dayalı sıralamalarla karşılaştırarak doğrulayın.
def curriculum(demos, difficulty_fn):
return sorted(demos, key=difficulty_fn) # easiest first, hardest lastSıralamaya Duyarlılığı Ölçme
Çok sayıda sıralama örnekleyip doğruluğun varyansını raporlayarak isteminizin ne kadar kırılgan olduğunu nicelleştirin. Yüksek varyans, üretimde öngörülemez biçimde gerileyebilecek kararsız bir isteme işaret eder.
İstem tasarımlarını karşılaştırmak için bu ölçüyü kullanın: sıralamaya dayanıklı bir istem, biraz daha yüksek puan alan ancak değişken bir istemden daha güvenlidir.
import random
def order_sensitivity(demos, eval_set, build, trials=20):
accs = []
for _ in range(trials):
perm = random.sample(demos, len(demos))
accs.append(evaluate(build(perm), eval_set))
return mean(accs), stdev(accs) # report both; low stdev = robustYoklama Gerektirmeden Sıralama Seçimi
Sıralamaları puanlamak için etiketleriniz olmadığında, bir yoklama kümesinde modelin tahminlerinin entropisini kullanarak sıralama seçebilirsiniz: kendinden emin, düşük entropili ve iyi dağılmış tahminler üreten sıralamalar genellikle daha iyi genellenir (Lu ve ark., 2022).
Bu sayede etiketli bir doğrulama kümesi olmadan iyi bir permütasyon seçebilirsiniz.
def select_order_by_entropy(perms, probe_inputs, build):
def score(perm):
ents = [entropy(model_probs(build(perm), x)) for x in probe_inputs]
return -mean(ents) # prefer confident, low-entropy orderings
return max(perms, key=score)Kalibrasyonla Kararlılığı Artırma
Sıralamaya duyarlılık ve yenilik yanlılığı, belirli etiketlerin ağırlığını artırır. Bağlamsal kalibrasyon, içerikten bağımsız bir girdide modelin önselini tahmin edip tahmin edilen olasılıkları düzelterek bunu azaltır ve tek bir sıralamanın etkisini sınırlar.
Kalibrasyon ile iyi bir sıralamanın birleşimi, en iyi tek permütasyonu aramaya kıyasla üretimde daha kararlı bir davranış sağlar.
p_prior = model_probs(build(perm), content_free='N/A')
def calibrate(probs):
return normalize(probs / p_prior) # cancels order-induced label skewÖnbelleğe Alma ve Sıralama Kararlılığı
İstem önbelleğe alma kullanıyorsanız, ön ekin (gösterim bloğu dahil) önbellekten yararlanabilmesi için bayt düzeyinde değişmeden kalması gerekir. Örnekleri her istek için sık sık yeniden karıştırmak, önbelleğin yeniden kullanılmasını engeller ve maliyeti ve gecikmeyi artırır.
Çözüm: statik gösterim bloğu için doğrulanmış tek bir sıralama belirleyip bunu önbelleğe alın; dinamik yeniden sıralamayı yalnızca erişilen, sorguya özgü kuyruk bölümüyle sınırlayın.
# Stable cached prefix + dynamic tail
prefix = render(FIXED_ORDERED_DEMOS) # cache_control on this block
tail = render(order_by_similarity(q_emb, retrieved))
prompt = prefix + tail + querySıralama Stratejisi Kontrol Listesi
Uygulanabilecek varsayılanlar: etiketleri dengeleyin ve dönüşümlü kullanın, önemli/zor örnekleri uçlara yerleştirin (ortadan kaçının), erişilen örnekleri artan benzerliğe göre sıralayarak en iyisini sorgunun yakınına yerleştirin, sıralama varyansını ölçün ve kalan çarpıklığı azaltmak için kalibrasyon uygulayın.
Ardından önbelleğe alma için sıralamayı sabitleyin ve örnek kümesi her değiştiğinde yeniden doğrulayın.
def final_order(demos, q_emb):
demos = alternate_labels(group(demos), len(demos))
return order_by_similarity(q_emb, demos) # validated, then cachedKısa Kontrol
Kritik bir gösterimin konumu hakkında akıl yürütün.
Özet
Temel çıkarımlar:
- Örnek sıralaması, doğruluğu birkaç puan değiştirebilen bir üst hiperparametredir; search uygulayın ve varyansı raporlayın.
- Yenilik yanlılığı, son gösterimi en etkili hâle getirir; “ortada kaybolma” etkisi merkezdeki örneklere gereğinden az ağırlık verir.
- Etiketleri dengeleyin ve dönüşümlü kullanın, erişilen gösterimleri artan benzerliğe göre sıralayın ve curriculum sıralamasını değerlendirin.
- Etiketlerin az olduğu durumlarda sıralamaları entropi aracılığıyla seçin ve çarpıklığı azaltmak için bağlamsal kalibrasyon uygulayın.
- İstem önbelleğe alma için kararlı bir sıralamayı sabitleyin; yalnızca dinamik olarak erişilen kuyruğu yeniden sıralayın.
Sıkça Sorulan Sorular
“Örnek Sıralaması ve Yenilik” dersi ücretsiz mi?
Evet — “Örnek Sıralaması ve Yenilik” 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.
“Örnek Sıralaması ve Yenilik” dersinde ne öğreneceğim?
Örnek sırasının çıktıyı nasıl etkilediği. 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 3. dersidir.
“Örnek Sıralaması ve Yenilik” 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