Ö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
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 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örev | Kod çözme tercihi | Neden |
|---|---|---|
| Alan çıkarımı, sınıflandırma, şemalı çıktı | Açgözlü veya sıcaklık sıfıra yakın | Tek geçerli biçim var; çeşitlilik doğrudan hata demek |
| Kaynağa dayalı cevap yazma | Düşü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çenekleri | Orta sıcaklık, çeşitlilik istenir | Birden çok makul çıktı var, seçim insana bırakılıyor |
| Aynı soruyu birkaç kez üretip oylama | Örneklemeli, birden çok koşu | Oylamanın anlamlı olması için çıktılar bağımsız örnekler olmalı |
| Araç çağrısı argümanı üretme | Açgözlü, şema doğrulamasıyla | Argüman biçimi katı; küçük bir sapma çağrıyı kırar |
- 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üm | Karakteri | Bütçe kuralı |
|---|---|---|
| Sistem talimatı | Kısa ve sabit | Sürüm kontrollü tutun; her oturumda aynı olmalı |
| Şema ve araç tanımı | Sabit ama hızla büyür | Yalnızca o adımda gereken tanımları yükleyin |
| Getirilen kaynak | Değ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şi | Sürekli büyür | Pencere 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 |
Kırpma ve özetleme kuralı#
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- 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Çıktı payını kilitle
Kalan alan hesaplanmadan önce çıktı için ayrılan token düşülür; bu pay pazarlık konusu değildir.
- 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.
- 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
- 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ı.
- 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Çıktı için en kötü durum uzunluğunu belirleyip o kadar token'ı baştan kilitleyin ve kalan alanı yeniden dağıtın.
- 4Getirilen kaynağa token üst sınırı koyup sınırı aşan parçayı eklemeden kesen bir yol yazın.
- 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.
- 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.
