İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
Dersİleri35 dakikaGenerative AI Engineer · 6. ders

Örnekleme ayarları ve bağlam bütçesi

Kod çözme ayarlarının olasılık dağılımını nasıl kestiğini ve bağlam penceresinin bölümlere ayrılıp çıktı payının önceden kilitlenmesi gerektiğini öğretir.

Önkoşul: Transformer, Attention

BU DERSİN SONUNDA

  • Açgözlü kod çözme ile örneklemeli kod çözme arasında göreve göre seçim yapmak
  • Sıcaklık, top-k ve top-p ayarlarının dağılımı nasıl değiştirdiğini ayırt etmek
  • Bağlam penceresini bölümlere ayırıp çıktı için pay ayırmak
  • Uzun oturumlarda kırpma ve özetleme kuralını yazılı hale getirmek
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Model her adımda tüm sözlük üzerinde bir olasılık dağılımı üretir; kod çözme ayarları bu dağılımdan nasıl seçileceğini belirler. Bağlam bütçesi ise pencerenin hangi bölümüne ne kadar yer ayrıldığının kararıdır. İkisi de istem metninden bağımsız mühendislik kararlarıdır ve ikisi de değerlendirme seti olmadan ayarlanamaz.

Teori: dağılımı biçimlendirmenin iki yolu#

Sıcaklık, normalleştirmeden önce ham puanları yeniden ölçekler: birin altında dağılımı keskinleştirir, kütleyi tepeye toplar; birin üstünde düzleştirir, kuyruğu güçlendirir. Dağılımın tamamının biçimini değiştirir, hiçbir seçeneği tamamen elemez.

Top-k ve top-p ise biçimlendirmez, keser. Top-k sabit sayıda adayı tutar; top-p kümülatif kütlesi belirlenen orana ulaşan en küçük kümeyi tutar. Fark önemli: model bir adımda çok eminse top-p birkaç adayla yetinir, kararsızsa kümeyi genişletir — yani kesim, modelin o adımdaki kararlılığına uyum sağlar. Sıcaklığı bir kesme yöntemiyle birlikte kullanmak yaygındır; üçünü birden açmak etkinin hangi ayardan geldiğini okunmaz hale getirir.

Uygulamada: göreve göre kod çözme ve durdurma#

GörevKod çözme tercihiNeden
Alan çıkarımı, sınıflandırma, şemalı çıktıAçgözlü veya sıcaklık sıfıra yakınTek geçerli biçim var; çeşitlilik doğrudan hata demek
Kaynağa dayalı cevap yazmaDüşük sıcaklık, tek kesme ayarıAkıcılık yeterli; yaratıcı sapma dayanaktan uzaklaştırır
Taslak metin, başlık seçenekleriOrta sıcaklık, çeşitlilik istenirBirden çok makul çıktı var, seçim insana bırakılıyor
Aynı soruyu birkaç kez üretip oylamaÖrneklemeli, birden çok koşuOylamanın anlamlı olması için çıktılar bağımsız örnekler olmalı
Araç çağrısı argümanı üretmeAçgözlü, şema doğrulamasıylaArgüman biçimi katı; küçük bir sapma çağrıyı kırar
Tablo yön verir. Sayısal değerler modele ve göreve göre değişir; kendi değerlendirme setinizde sabitlenip sürüm künyesine yazılır.
  • Durdurma dizisi çıktının nerede biteceğini biçimle garantiler; yapılandırılmış çıktıda kapanış işaretini durdurma dizisi olarak vermek ayrıştırma hatalarını azaltır.
  • En çok token sınırı bir kalite ayarı değil bir kesme noktasıdır: aşıldığında yarım bir nesne veya kapanmamış bir blok kalır. Sınırı çıktı biçiminin en kötü durumuna göre seçin.
  • Yineleme cezası kilitlenmeyi azaltır, ama liste ve tablo üreten görevlerde meşru tekrarları da (aynı alan adı, aynı başlık) bastırır.
  • Aynı ayar ve aynı tohumla bile çıkarım tam olarak yinelenebilir olmayabilir; yığınlama ve donanım farkları küçük kayan nokta sapmaları üretir.

Bağlam bütçesi: pencereyi böl#

Pencereyi tek bir metin gibi düşünmek bütçesizliğin kaynağıdır. Aynı pencereyi sistem talimatı, şema ve araç tanımları, getirilen kaynaklar, oturum geçmişi ve üretilecek çıktı paylaşır. Ekiplerin en sık unuttuğu kalem sonuncusudur: girdi pencereyi doldurursa üretim ortasından kesilir. Bütçe “ne sığarsa” değil, payları önceden yazılmış bir tablo olmalıdır.

BölümKarakteriBütçe kuralı
Sistem talimatıKısa ve sabitSürüm kontrollü tutun; her oturumda aynı olmalı
Şema ve araç tanımıSabit ama hızla büyürYalnızca o adımda gereken tanımları yükleyin
Getirilen kaynakDeğişken ve genellikle en büyük kalemÜst sınırı parça sayısıyla değil token toplamıyla koyun
Oturum geçmişiSürekli büyürPencere dolmadan önce özetleyin; ham geçmişi taşımayın
Çıktı payıÖnceden ayrılmalıEn kötü durum çıktı uzunluğu kadar yeri baştan kilitleyin
Bu örnekte bütün payların token cinsinden ve tek bir sayaçla ölçüldüğünü varsayıyoruz; ölçülmeyen bir bütçe bütçe değildir.

Kırpma ve özetleme kuralı#

python
def baglam_kur(pencere, cikti_payi, sabit_metin, ozet, parcalar, sayac):
    """Pencereyi bölümlere ayırır; sınır dolunca yarım parça eklemez."""
    kalan = pencere - cikti_payi - sayac(sabit_metin) - sayac(ozet)
    if kalan <= 0:
        raise ValueError("Sabitler ve çıktı payı pencereyi dolduruyor")

    secilen, kullanilan = [], 0
    for parca in parcalar:                 # ilgi sırasına göre gelmiş olmalı
        n = sayac(parca.metin)
        if kullanilan + n > kalan:
            break                          # kes; parçayı ortasından bölme
        secilen.append(parca)
        kullanilan += n

    return secilen, kalan - kullanilan     # ikinci değer: boşta kalan bütçe
  1. 1Sabitleri ayır

    Sistem talimatı ve şema asla kırpılmaz; bunlar bütçenin tabanıdır ve değişince sürüm değişir.

  2. 2Çıktı payını kilitle

    Kalan alan hesaplanmadan önce çıktı için ayrılan token düşülür; bu pay pazarlık konusu değildir.

  3. 3Kaynağı sırala ve kes

    Getirilen parçalar ilgi sırasına göre eklenir; sınır dolduğunda kesilir, yarım parça eklenmez.

  4. 4Geçmişi özetle

    Eski turlar, alınan kararları ve kısıtları koruyan kısa bir özete dönüştürülür; özetin kendisi de bütçede bir kalemdir.

Sık yapılan hata#

Birinci hata, yer var diye pencereyi doldurmaktır: ilgisiz metin hem maliyet ve gecikme ekler hem de cevabın dayanacağı parçayı seyreltir; üst sınırı olmayan bir kaynak bütçesi ayrıca bekleyen bir maliyet olayıdır. İkinci hata, aslında talimattan veya getirilen kaynaktan doğan bir kalite sorununu sıcaklıkla çözmeye çalışmaktır; bu, belirtiyi gizler ve sorunu bulmayı zorlaştırır.

LAB · UYGULAMALI ALIŞTIRMA

Bağlam bütçesini tabloya dökün

  1. 1Kendi istem akışınızı bölümlere ayırın: sistem talimatı, şema ve araç tanımı, getirilen kaynak, oturum geçmişi, çıktı payı.
  2. 2Gerçek bir istekte her bölümün token sayısını ölçün ve toplamı pencere boyutuyla karşılaştırın.
  3. 3Çıktı için en kötü durum uzunluğunu belirleyip o kadar token'ı baştan kilitleyin ve kalan alanı yeniden dağıtın.
  4. 4Getirilen kaynağa token üst sınırı koyup sınırı aşan parçayı eklemeden kesen bir yol yazın.
  5. 5Aynı on soruyu iki kurulumla koşun (sınırsız kaynak ve üst sınırlı kaynak) ve cevapların doğruluğunu elle işaretleyin.
  6. 6Aynı on soruda açgözlü kod çözme ile düşük sıcaklıklı örneklemeyi karşılaştırıp biçim hatası sayısını not edin.

Beklenen çıktı

Bölüm bazında token bütçesi tablosu, kaynak üst sınırının cevap doğruluğuna etkisi ve seçilen kod çözme ayarının yazılı gerekçesi.

Sık sorulan sorular

Sıcaklığı sıfırlamak belirlenimli sonuç verir mi?

Açgözlü seçim aynı dağılımdan aynı tokeni alır, ama dağılımın kendisi yığınlama, donanım ve çekirdek sürümüne bağlı küçük kayan nokta farkları taşıyabilir. Yani sıfır sıcaklık yinelenebilirliği artırır, garanti etmez. Test yazarken çıktının tamamını değil, doğrulanabilir alanlarını karşılaştırın.

top-k ve top-p birlikte kullanılmalı mı?

Genellikle biri yeter. İkisini birlikte açmak kesimin hangi ayardan geldiğini belirsizleştirir ve bir sorunu teşhis etmeyi zorlaştırır. Kural basittir: tek seferde tek ayar değiştirin ve etkisini aynı değerlendirme setinde ölçün.

Pencere büyükse bütçe yapmaya gerek var mı?

Var. Pencere büyüdükçe maliyet ve gecikme de büyür; ayrıca eklenen ilgisiz metin cevabın dayandığı parçayı seyreltir. Bütçe, pencereyi doldurmamak için değil, içine neyin gireceğine bilinçli ve ölçülebilir biçimde karar vermek için tutulur.

LEARN

Generative AI Engineer rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.