Özet - GPT
- Makine Öğrenmesi kursu
- Uzman
- Ders 28/44
- 6 dk
Bu grupta GPT, otoregresif üretim ve causal mask'ı öğrendin.
Özet: GPT
Bu grupta:
- GPT yalnızca-decoder bir transformer'dır; tek görevi bir sonraki belirteci tahmin etmektir.
- Girdi/hedef bir kaydırmayla elde edilir; kayıp çapraz entropi, perplexity = e^kayıp.
- Otoregresif üretim zincir kuralına dayanır ve sıralıdır.
- Nedensel maske köşegenin üstünü −∞ yapar; doğruluğu "gelecek değişince geçmiş değişmez" testiyle sınanır.
- Üretim: açgözlü, sıcaklık, top-k, top-p.
Uygulama Bigram ile metin üret
Verilen metinden bigram olasılık tablosu kur (sozluk sırasıyla bir matris). uret(baslangic, n, T) fonksiyonunu yaz: her adımda son kelimenin satırından p ** (1 / T) ile sıcaklık uygula, yeniden normalleştir ve rng.choice ile örnekle. Önce açgözlü (her adımda argmax) "kedi" ile başlayan 4 kelimelik devamı, sonra T = 1 ile "köpek" ile başlayan 6 kelimelik bir örneği yazdır.
Başlangıç kodu
import numpy as np
metin = "kedi süt içti . köpek su içti . kedi uyudu . köpek süt içti ."
kelimeler = metin.split()
sozluk = sorted(set(kelimeler))
idx = {k: i for i, k in enumerate(sozluk)}
rng = np.random.default_rng(1)
# buraya yazÖrnek çözüm
import numpy as np
metin = "kedi süt içti . köpek su içti . kedi uyudu . köpek süt içti ."
kelimeler = metin.split()
sozluk = sorted(set(kelimeler))
idx = {k: i for i, k in enumerate(sozluk)}
rng = np.random.default_rng(1)
M = np.zeros((len(sozluk), len(sozluk)))
for a, b in zip(kelimeler, kelimeler[1:]):
M[idx[a], idx[b]] += 1
M = M / M.sum(axis=1, keepdims=True)
def acgozlu(baslangic, n):
dizi = [baslangic]
for _ in range(n):
dizi.append(sozluk[int(np.argmax(M[idx[dizi[-1]]]))])
return " ".join(dizi)
def uret(baslangic, n, T=1.0):
dizi = [baslangic]
for _ in range(n):
p = M[idx[dizi[-1]]] ** (1 / T)
dizi.append(sozluk[rng.choice(len(p), p=p / p.sum())])
return " ".join(dizi)
print(acgozlu("kedi", 4))
print(uret("köpek", 6))Beklenen çıktı
kedi süt içti . köpek köpek süt içti . köpek su içti
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi BERT'e değil GPT'ye uygundur?
- Boşluktaki kelimeyi bulmak
- Bir hikâyenin devamını yazmak Doğru cevap
- Cümleyi olumlu/olumsuz sınıflandırmak
- Varlık tanıma
Açıklama: Üretim için soldan sağa (nedensel) model gerekir.
2 Bir sonraki belirteci açgözlü seç.
sonraki = int(np.____(logit))
sonraki = int(np.argmax(logit))
Açıklama: argmax en yüksek logitin indeksini verir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
ids[1:] |
Hedef |
triu(k=1) |
Nedensel maske |
T |
Sıcaklık |
gömme.T |
Ağırlık bağlama |