0Pricing
AI Prompt Engineering · Ders

Öz Tutarlılık Örneklemesi

Birden fazla akıl yürütme yolunda oylama.

Öz Tutarlılık Örneklemesi, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 2. 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.

Tek Bir Zincir Kırılgandır

Tek bir düşünce zinciri erken bir noktada yanlış yola sapabilir ve bir daha toparlanamayabilir. Öz tutarlılık (Wang ve diğerleri, 2022), çok sayıda bağımsız akıl yürütme yolu örnekleyip son yanıtlarını, genellikle çoğunluk oyuyla, birleştirerek bu sorunu ele alır.

Sezgi şöyledir: Doğru akıl yürütme, farklı yollardan geçse de aynı yanıta yakınsar; hatalar ise dağılır. Birleştirme, tutarlı sinyali güçlendirir.

def self_consistency(prompt, n=20, temperature=0.7):
    answers = []
    for _ in range(n):
        chain = llm(prompt, temperature=temperature)
        answers.append(extract_answer(chain))
    return majority_vote(answers)

Yollar Üzerinden Marjinalleştirme Neden İşe Yarar

Öz tutarlılık, akıl yürütme yolları üzerinden marjinalleştirmeyi yaklaşık olarak gerçekleştirir: tek bir gizli türetime güvenmek yerine, birçok türetim boyunca bütünleştirilmiş en olası son yanıtı tahmin edersiniz.

Bu, yanıt dağılımının Monte Carlo tahminidir. Özellikle yanıt uzayı küçük ve ayrık olduğunda, bu dağılımın modu genellikle örneklenmiş herhangi bir tek yoldan daha güvenilirdir.

from collections import Counter

def majority_vote(answers):
    norm = [normalize_answer(a) for a in answers]
    counts = Counter(norm)
    answer, votes = counts.most_common(1)[0]
    confidence = votes / len(norm)
    return answer, confidence

Sıcaklıkla Çeşitlilik

Öz tutarlılık için çeşitli yollar gerekir. Açgözlü üretim veya sıfıra yakın sıcaklık, neredeyse özdeş zincirler üretir ve yöntemi etkisizleştirir. Orta düzey bir sıcaklık (çoğunlukla 0,5 ile 0,8 arası) kullanın ve yolları çeşitlendirmek için gerekirse kümülatif olasılık örneklemesinden yararlanın.

Aşırı yüksek sıcaklık her bir zincirin kalitesini düşürür; sıcaklığı tek bir zincirin kalitesini değil, topluluk doğruluğunu en üst düzeye çıkaracak şekilde ayarlayın.

def tune_temperature(prompt, val_set, temps=(0.4, 0.6, 0.8, 1.0)):
    best = max(
        temps,
        key=lambda t: ensemble_accuracy(prompt, val_set, temp=t, n=20)
    )
    return best

Yanıtları Normalleştirmek Kritiktir

Oylar ancak eşdeğer yanıtlar eşit olarak tanınırsa sayılır. Saymadan önce normalleştirin: birimleri kaldırın, sayıları standartlaştırın, metni küçük harfe dönüştürün, kesirleri ve yüzdeleri ayrıştırın ve göreve özgü eşdeğerlik kurallarını uygulayın.

Yetersiz normalleştirme, gerçek çoğunluğu biçimsel varyantlara böler ve azınlıkta kalan bir yanıtın oylamayı kazanmasına yol açar.

def normalize_answer(a):
    a = a.strip().lower().rstrip('.')
    a = a.replace(',', '').replace('$', '').replace('%', '')
    try:
        return str(round(float(a), 6))   # numeric canonical form
    except ValueError:
        return a

Kaç Örnek Gerekir

Örnek sayısı n arttıkça doğruluk yükselir; ancak getiriler azalır ve görev zorluğuna bağlı olarak çoğu zaman 10 ile 40 civarında yataylaşır. Her örnek maliyeti ve gecikmeyi doğrusal olarak artırır.

Bir doğrulama kümesinde n değerlerini tarayın ve ek örneklerin maliyetini artık haklı çıkarmadığı eğrinin dirsek noktasını seçin.

def sweep_n(prompt, val, ns=(1,3,5,10,20,40)):
    return {n: ensemble_accuracy(prompt, val, n=n) for n in ns}
# Choose n at the accuracy/cost knee, not the maximum

Uyarlamalı Erken Durdurma

Uyarlamalı örneklemeyle hesaplama kaynaklarından tasarruf edin: oylama sonucu kesinleştiğinde yol üretmeyi bırakın. Beş örnekten sonra bir yanıt açık ara öndeyse, ek örneklerin kazananı değiştirme olasılığı düşüktür.

Bu yaklaşım, hesaplamayı gerçekten zor ve çekişmeli öğelere yoğunlaştırır; kolay soruları da düşük maliyetle yanıtlar.

def adaptive_sc(prompt, max_n=40, margin=0.6, min_n=5):
    answers = []
    for i in range(max_n):
        answers.append(extract_answer(llm(prompt, temperature=0.7)))
        if i + 1 >= min_n:
            ans, conf = majority_vote(answers)
            if conf >= margin:
                return ans, conf, i + 1
    return majority_vote(answers)

Ağırlıklı ve Doğrulayıcı Destekli Oylama

Basit çoğunluk, tüm yolları eşit kabul eder. Oyları bir yolun model tarafından atanan olasılığına, öğrenilmiş bir doğrulayıcının puanına veya her zincirin geçerliliğine ilişkin öz değerlendirmesine göre ağırlıklandırabilirsiniz.

Doğrulayıcı ağırlıklı öz tutarlılık, kendinden emin ancak yanlış ve sık görülen hata biçimlerini alt sıralara indirerek çoğu zaman ağırlıksız oylamadan daha iyi sonuç verir.

def weighted_vote(chains):
    scores = {}
    for c in chains:
        a = normalize_answer(extract_answer(c))
        scores[a] = scores.get(a, 0.0) + verifier_score(c)
    return max(scores, key=scores.get)

Uzlaşmadan Güven Çıkarma

Oy farkı yararlı bir güven sinyalidir. Oybirliğiyle verilen bir yanıt, 6'ya 5'lik bir bölünmeden çok daha güvenilirdir. Bunu sonraki mantığa aktarın: uzlaşının düşük olduğu öğeleri route işlemiyle üst kademeye, insan incelemesine veya daha güçlü bir modele yönlendirin.

Bu sayede öz tutarlılık hem doğruluğu artıran hem de kalibrasyon sağlayan bir mekanizmaya dönüşür.

def route(prompt):
    ans, conf = adaptive_sc(prompt)[:2]
    if conf < 0.5:
        return escalate_to_stronger_model(prompt)
    return ans

Sınırlar: Sürekli ve Açık Uçlu Görevler

Çoğunluk oylaması, ayrık ve karşılaştırılabilir bir yanıt uzayı varsayar. İki örneğin özdeş olmadığı serbest biçimli üretim, uzun metinler veya sürekli çıktılar için doğrudan uygulanamaz.

Bu tür görevlerde farklı biçimde birleştirin: anlamsal olarak benzer çıktıları kümelendirin, çıkarılan yapılandırılmış alanlar üzerinde oylayın veya tam eşleşmeleri saymak yerine en iyi örneği seçmesi için bir hakem modeli kullanın.

def semantic_consistency(samples):
    clusters = cluster_by_embedding(samples)
    biggest = max(clusters, key=len)        # largest agreement cluster
    return representative(biggest)            # medoid of the cluster

Maliyeti Gözeten Kullanıma Alma

Öz tutarlılık, en pahalı istem tekniklerinden biridir: maliyet n ile ölçeklenir. Bu yöntemi yüksek riskli veya zor öğelere ayırın, uyarlamalı durdurmayla birleştirin ve kolay istekleri tek bir zincirin ele aldığı kademeli bir politika uygulamayı düşünün.

Aynı kazanım için daha ucuz olabilecek tek bir daha güçlü model çağrısıyla doğruluk başına maliyetini her zaman karşılaştırın.

def tiered(prompt, q):
    if easy(q):
        return extract_answer(llm(prompt, temperature=0))
    return adaptive_sc(prompt, max_n=20)[0]   # SC only when needed

Uçtan Uca Öz Tutarlılık

Eksiksiz bir iş akışı şöyledir: sıcaklığı ve n değerini ayarlayın, çeşitli zincirler örnekleyin, yanıtları titizlikle normalleştirin, oylayın (isteğe bağlı olarak doğrulayıcıyla ağırlıklandırılmış biçimde), oy farkını güven göstergesi olarak kullanın, sonuç kesinleştiğinde erken durun ve uzlaşının düşük olduğu öğeleri üst kademeye aktarın.

Sonuç, tek bir zincirden daha doğru ve kendi kendini kalibre eden bir akıl yürütme sistemidir.

def solve(prompt):
    chains = sample_until_decisive(prompt, max_n=20, temp=0.7)
    ans, conf = weighted_majority(chains)
    if conf < THRESH:
        return escalate(prompt)
    return {'answer': ans, 'confidence': conf, 'paths': len(chains)}

Hızlı Kontrol

Yetersiz performans gösteren bir öz tutarlılık düzenini teşhis edin.

Özet

Önemli çıkarımlar:

  • Öz tutarlılık, birçok çeşitli zinciri örnekleyip oylayarak akıl yürütme yolları üzerinden marjinalleştirmeyi yaklaşık olarak gerçekleştirir.
  • Yöntemin çalışması için çeşitlilik (orta düzey sıcaklık) ve titiz yanıt normalleştirme ön koşuldur.
  • Doğruluk n arttıkça yükselir ancak bir noktada yataylaşır; maliyeti denetlemek için uyarlamalı erken durdurma kullanın.
  • Oyları bir doğrulayıcıyla ağırlıklandırın ve oy farkını kalibre edilmiş bir güven sinyali olarak kullanın.
  • Yöntem ayrık bir yanıt uzayı gerektirir; açık uçlu görevlerde anlamsal kümelendirme yapın veya bir hakem kullanın.

Sıkça Sorulan Sorular

“Öz Tutarlılık Örneklemesi” dersi ücretsiz mi?

Evet — “Öz Tutarlılık Örneklemesi” 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.

“Öz Tutarlılık Örneklemesi” dersinde ne öğreneceğim?

Birden fazla akıl yürütme yolunda oylama. 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 2. dersidir.

“Öz Tutarlılık Örneklemesi” 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

  1. Düşünce Zinciri İstemleri
  2. Öz Tutarlılık Örneklemesi
  3. Düşünce Ağacı Keşfi
  4. Akıl Yürütme İstemleri Ne Zaman Yararlıdır
← AI Prompt Engineering Sayfasına Dön