CodeBlanks Logo Icon CodeBlanks

Özet - GPT

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

model.py
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

model.py
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ç.

Soru
sonraki = int(np.____(logit))
Cevap
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

Uzman bölümündeki tüm dersler