Makine Öğrenmesi
GPT nedir?
GPT (Generative Pre-trained Transformer), otoregresif metin üretim modelidir.
GPT nedir?
GPT (Generative Pre-trained Transformer), yalnızca transformer decoder bloklarından oluşan bir dil modelidir. Ön eğitim görevi tektir: bir sonraki belirteci tahmin et. Etiket gerekmez; metnin kendisi bir kaydırmayla hem girdi hem hedef olur:
ids = [12, 7, 33, 5, 9]
giris = ids[:-1] # [12, 7, 33, 5]
hedef = ids[1:] # [7, 33, 5, 9]
Ölçek büyüdükçe bu basit görev çeviri, özetleme ve kod yazma gibi yetenekleri de ortaya çıkarır (GPT-2: 1.5B, GPT-3: 175B parametre).
Kayıp ve şaşkınlık (perplexity)
Her konumda model sözlük üzerinde bir olasılık dağılımı verir; kayıp, doğru belirtecin olasılığının negatif logaritmasının ortalamasıdır. Perplexity = e^kayıp; modelin her adımda ortalama kaç seçenek arasında "kararsız" kaldığını anlatır:
p_dogru = np.array([0.5, 0.25, 0.125])
kayip = -np.log(p_dogru).mean() # 1.386
print(np.exp(kayip)) # 4.0
Rastgele tahmin eden bir model için perplexity sözlük boyutuna eşittir.
Uygulama Girdi, hedef ve perplexity
Verilen ids için girdi ve hedef dizilerini oluşturup aynı satırda yazdır. Sonra model olasılıkları olasilik (her satır bir konum) için doğru hedeflerin olasılıklarını seç, kaybı ve perplexity'yi round(..., 3) ile aynı satırda yazdır. Son olarak 8 kelimelik sözlükte düzgün dağılımın perplexity'sini yazdır.
Örnek çözümü göster
import numpy as np
ids = [3, 1, 4, 1, 5]
olasilik = np.array([[0.1, 0.5, 0.1, 0.1, 0.1, 0.1],
[0.05, 0.05, 0.05, 0.05, 0.75, 0.05],
[0.2, 0.4, 0.1, 0.1, 0.1, 0.1],
[0.1, 0.1, 0.1, 0.1, 0.1, 0.5]])
giris, hedef = ids[:-1], ids[1:]
print(giris, hedef)
p = olasilik[np.arange(len(hedef)), hedef]
kayip = -np.log(p).mean()
print(round(kayip, 3), round(np.exp(kayip), 3))
print(round(np.exp(-np.log(np.full(8, 1 / 8)).mean()), 3))
Kendini test et
-
GPT'nin ön eğitimi neden etiketli veri gerektirmez?
- Yalnızca sınıflandırma yapar
- Kayıp fonksiyonu yoktur
- Hedef, metnin bir sonraki belirtecidir; metin kendi etiketidir
- Etiketleri model üretir
Cevabı göster
Hedef, metnin bir sonraki belirtecidir; metin kendi etiketidir — Buna öz-denetimli (self-supervised) öğrenme denir.
-
Hedefi bir adım kaydır.
hedef = ids[____:]
Cevabı göster
hedef = ids[1:]
-
Eşleştir.
- ids[:-1]
- Girdi
- ids[1:]
- Hedef
- e^kayıp
- Perplexity
- düzgün dağılım
- Perplexity = sözlük boyutu
Sıradaki ders: Otoregresif