CodeBlanks Logo Icon CodeBlanks

BERT nedir?

BERT (Bidirectional Encoder Representations from Transformers), çift yönlü dil anlama modelidir.

BERT nedir?

BERT (Bidirectional Encoder Representations from Transformers, 2018), yalnızca transformer encoder bloklarından oluşan, büyük metin üzerinde önceden eğitilmiş bir modeldir. Her kelime hem solundaki hem sağındaki bağlamı görür (çift yönlü).

  • Ön eğitim: etiketsiz metinle maskeli dil modeli.
  • İnce ayar (fine-tuning): az etiketli veriyle sınıflandırma, soru-cevap, varlık tanıma.
# BERT-base: 12 katman, d_model = 768, 12 baş, FFN 3072, ~110M parametre
# BERT-large: 24 katman, d_model = 1024, 16 baş, ~340M parametre

GPT'nin aksine BERT metin üretmek için değil, metni anlamak (temsil üretmek) için tasarlanmıştır.

110 milyon nereden geliyor?

Parametreleri parça parça saymak, modelin nerede "ağır" olduğunu gösterir:

V, L, T, d, f = 30522, 512, 2, 768, 3072
gomme = (V + L + T) * d + 2 * d         # kelime + konum + segment + LayerNorm
katman = 4 * (d * d + d) + 2 * d + (d * f + f + f * d + d) + 2 * d
pooler = d * d + d
print(gomme + 12 * katman + pooler)

Kelime gömme tablosu tek başına ~23 milyondur; her katmanın üçte ikisi FFN'dedir.

Uygulama BERT-base parametreleri

Verilen ayarlarla gömme, tek katman ve pooler parametre sayılarını hesapla. Üçünü aynı satırda, ardından toplamı (12 katmanla) yazdır. Son olarak bir katmanda FFN'in payını round(..., 3) ile yazdır.

Başlangıç kodu

model.py
V, L, T, d, f = 30522, 512, 2, 768, 3072

# buraya yaz

Örnek çözüm

model.py
V, L, T, d, f = 30522, 512, 2, 768, 3072

gomme = (V + L + T) * d + 2 * d
ffn = d * f + f + f * d + d
katman = 4 * (d * d + d) + 2 * d + ffn + 2 * d
pooler = d * d + d
print(gomme, katman, pooler)
print(gomme + 12 * katman + pooler)
print(round(ffn / katman, 3))

Beklenen çıktı

23837184 7087872 590592
109482240
0.666

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 BERT'i GPT'den ayıran temel mimari özellik nedir?

  • Daha çok katman
  • RNN kullanması
  • Dikkat kullanmaması
  • Çift yönlü encoder; nedensel maske yok Doğru cevap

Açıklama: BERT her konumda tüm cümleyi görür; GPT yalnızca solu görür.

2 Dikkatin dört projeksiyonunu (Q, K, V, çıkış) say.

Soru
dikkat = ____ * (d * d + d)
Cevap
dikkat = 4 * (d * d + d)

Açıklama: Q, K, V ve çıkış projeksiyonu: dört d×d matris ve sapmaları.

3 BERT-base ayarlarını eşleştir.

Kavram Anlamı
katman 12
d_model 768
FFN boyutu 3072
sözlük 30522

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