Makine Öğrenmesi
Text generation
GPT, greedy veya beam search ile metin üretir.
Metin üretimi
Model her adımda bir sonraki belirteç için logitler verir. Bundan bir belirteç seçmenin yolları:
- Açgözlü: en yüksek olasılık (
argmax); tekrar eden, sıkıcı metin üretebilir. - Sıcaklık (T): logitleri T'ye bölüp örnekle; T < 1 keskin, T > 1 yaratıcı/dağınık.
- Top-k: yalnızca en olası k belirteç arasından örnekle.
- Top-p (çekirdek): toplam olasılığı p'ye ulaşan en küçük küme arasından örnekle.
p = softmax(logit / T)
sonraki = rng.choice(len(p), p=p)
Sohbet modelleri genellikle T ≈ 0.7 ve top-p ≈ 0.9 civarında çalışır.
Sıcaklığın etkisi
Aynı logitlerle sıcaklık değiştikçe dağılım keskinleşir ya da düzleşir:
logit = np.array([2.0, 1.0, 0.5, 0.0])
for T in [0.5, 1.0, 2.0]:
print(T, np.round(softmax(logit / T), 3))
Top-k ise dağılımın kuyruğunu keser: k dışındaki logitler −∞ yapılır, kalanlar yeniden normalleşir.
Uygulama Örnekleme stratejileri
Verilen logit için: açgözlü seçimi; T = 0.5 ve T = 2 için olasılıkları np.round(..., 3) ile; ve top_k(logit, 2) fonksiyonuyla (k dışını −∞ yap, softmax uygula) olasılıkları np.round(..., 3) ile alt alta yazdır. Son olarak T = 1 ile 10 000 örnekte ilk belirtecin oranını round(..., 2) ile yazdır.
Örnek çözümü göster
import numpy as np
def softmax(z, eksen=-1):
e = np.exp(z - z.max(axis=eksen, keepdims=True))
return e / e.sum(axis=eksen, keepdims=True)
rng = np.random.default_rng(0)
logit = np.array([2.0, 1.0, 0.5, 0.0])
def top_k(logit, k):
z = np.full_like(logit, -np.inf)
en_iyi = np.argsort(logit)[-k:]
z[en_iyi] = logit[en_iyi]
return softmax(z)
print(int(np.argmax(logit)))
print(np.round(softmax(logit / 0.5), 3))
print(np.round(softmax(logit / 2), 3))
print(np.round(top_k(logit, 2), 3))
secim = rng.choice(4, size=10_000, p=softmax(logit))
print(round((secim == 0).mean(), 2))
Kendini test et
-
Sıcaklık 0'a yaklaştıkça örnekleme neye dönüşür?
- Top-p'ye
- Hata verir
- Açgözlü seçime (argmax)
- Düzgün rastgele seçime
Cevabı göster
Açgözlü seçime (argmax) — Küçük T farkları büyütür; olasılık en yüksek logite yığılır.
-
Logitleri sıcaklıkla ölçekle.
p = softmax(logit ____ T)
Cevabı göster
p = softmax(logit / T)
-
Yöntemleri eşleştir.
- argmax
- Açgözlü
- T > 1
- Düzleşmiş dağılım
- top-k
- En olası k belirteç
- top-p
- Olasılık kütlesi p
Sıradaki ders: Özet - GPT