Bir Gömme Bir Arama Tablosudur, Fonksiyon Değildir
Tokenizer'dan Sonraki İlk Katman
Bir tokenizer modele tamsayı ID'ler verir: [256, 1842, 7301, ...]. Bir transformer'ın yaptığı ilk şey: her ID'yi d_model boyutunda bir vektöre dönüştürmektir. Bu vektör, d_model boyutlu uzayda yaşar (ANDREA-120M için 768 boyut).
Bir gömme katmanı bir arama tablosudur, fonksiyon değildir. Dev bir matris hayal edin:
shape: (V, d_model)
satır 0: [e_0_0, e_0_1, ..., e_0_767]
satır 1: [e_1_0, e_1_1, ..., e_1_767]
...
satır 8448: [e_8448_0, e_8448_1, ..., e_8448_767]
Token ID i, i satırını seçer. Doğrudan dizi erişimi. Aritmetik yok, aktivasyon yok. Sadece bir indeks.
Eğitilebilir Ondalıklar
Tablodaki her giriş başlangıçta küçük rastgele bir ondalık sayı olarak başlar (genellikle 1/sqrt(d_model) ile ölçeklendirilmiş normal dağılımdan çekilir). Backpropagation, bir satırın token ID’si bir batch’te göründüğünde o satırı günceller. Eğitimden sonra benzer token’lar (cat, dog, pet) benzer vektörlere sahip olur; alakasız token’lar (cat, Tuesday, xylophone) vektör uzayında birbirinden uzak durur.
ANDREA-120M Token Gömme Maliyeti
| Miktar | Değer |
|---|---|
| V | 8,449 |
| d_model | 768 |
| Parametreler | 6,488,832 |
Yalnızca bir token embedding tablosunda yaklaşık 6.5M parametre bulunur, bu da ANDREA-120M'nin toplamının yaklaşık %5.4'ünü oluşturur. Her kelime dağarcığı yuvası bu 768 float değerini kazanır.
Embedding Tablolarının Boyutlandırılması
Dot Product'ler Benzerliği Ölçer
Vektörler Ok Olarak
768 boyutlu bir vektör, insanların hayal edemeyeceği bir uzayda yaşar, ancak aynı cebir her boyutta çalışır. Transformer'lar için iki temel işlem önemlidir:
Büyüklük (bir okun uzunluğu):
||v|| = sqrt(v_0² + v_1² + ... + v_767²)
Nokta çarpımı (iki ok arasındaki hizalama):
u · v = u_0 × v_0 + u_1 × v_1 + ... + u_767 × v_767
Nokta Çarpımının Anlattıkları
Herhangi bir boyutta geçerli olan iki gerçek:
- u · v = ||u|| × ||v|| × cos(theta), burada theta aralarındaki açıdır.
- Aynı yöne işaret eden vektörler büyük pozitif nokta çarpımları verir.
- Zıt yönlere işaret eden vektörler büyük negatif nokta çarpımları verir.
- Dik açıdaki vektörler sıfır nokta çarpımı verir.
Nokta çarpımı = normalize edilmemiş benzerlik. cat ve dog için eğitilmiş iki token embedding'i yüksek bir nokta çarpımına sahip olur çünkü geriye yayılım onları birbirine yaklaştırmıştır (ikisi de evcil hayvanla ilgili bağlamları tahmin eder). cat ve Tuesday neredeyse dik olur çünkü farklı bağlamları tahmin ederler.
Neden Bir Transformer Önem Verir
Activity 5 (grow_a_language_model_attention) dikkat mekanizmasını nokta çarpımlarıyla oluşturur: bir sorgu vektörünün anahtar vektörlerle nokta çarpımı, bir sonraki token’ı tahmin ederken hangi geçmiş token’ların önemli olduğunu gösteren skorlar üretir. Gömme vektörleri ve nokta çarpımları birlikte bir transformer içindeki her etkileşimi taşır.
Benzerliği Tahmin Et
ANDREA Öğrenilmiş Konum Gömülerini Kullanır
Bir Sorun
Bir token gömüsü modele bu konumda hangi kelimenin bulunduğunu söyler. Ancak modele kelimenin nerede oturduğunu söylemez. Konum bilgisi olmadan, bir transformer the cat sat on a mat ile mat a on sat cat the cümlelerini aynı şekilde ele alır: aynı token kümesi, hiçbir sıralama sinyali yok.
Transformer literatüründe üç çözüm bulunmaktadır:
Sinüzoidal (Vaswani 2017). Sinüs ve kosinüs fonksiyonlarına dayalı sabit bir matematiksel formül. Konum 0 belirli bir 768-vektör alır; konum 1 başka bir vektör alır; asla eğitilmez, asla güncellenmez. Formül aracılığıyla herhangi bir konuma genelleştirilebilir.
RoPE (Rotary Position Embedding). Sorgu ve anahtar vektörlerini konuma göre döndürür. LLaMA ve Qwen tarafından kullanılır. Ek parametre gerektirmez; döndürme dikkat mekanizmasına entegre edilmiştir.
Öğrenilen. (T, d_model) şeklinde ayrı bir gömme tablosu; burada T bağlam uzunluğudur. Her satır, token gömmeleri gibi geriye yayılım ile eğitilir.
ANDREA'nın Seçimi: Öğrenilen
ANDREA, microGPT’ten devraldığı öğrenilen-konum yaklaşımını kullanır; microGPT bunu nanoGPT’ten, nanoGPT ise GPT-2’den almıştır. Bir gerekçe:
- Basitlik. Attention'da özel matematik gerekmez. Bir pozisyon tablosu, bir token tablosu gibi görünür.
- Özel CUDA ile uyumluluk. ANDREA'nın microgpt_cuda.cu motoru iki embedding aramasını aynı şekilde işler; sin/cos çekirdeklerine gerek yoktur.
- Sabit bağlam için yeterlidir. ANDREA, T'yi 1024 ile sınırlar. Öğrenilmiş bir tablo, sabit uzunluktaki diziler için sorunsuz çalışır.
ANDREA-120M Pozisyon Embedding Maliyeti
| Miktar | Değer |
|---|---|
| T (bağlam) | 1,024 |
| d_model | 768 |
| Parametreler | 786,432 |
0.79M parametre pozisyon için. Token gömümleriyle birleştirildiğinde: 6.49M + 0.79M = toplam 7.27M gömme parametresi ANDREA-120M için.
Nasıl Birleşirler
Girdi dizisindeki her t pozisyonunda:
x_t = token_embedding[token_id_t] + position_embedding[t]
İki adet 768-boyutlu vektör, eleman bazında toplanır. Ortaya çıkan sonuç, x_t, ilk transformer bloğuna akar. Model bu iki sinyali bir daha asla ayırmaz; birleşik sinyali kullanmayı öğrenir.
Öğrenilen Konumlar ile Sinüs Konumları
Embedding Parametrelerinin Bulunduğu Yer
Tam Bir ANDREA-120M Embedding Katmanı
| Bileşen | Şekil | Parametreler |
|---|---|---|
| Token embedding table | 8,449 × 768 | 6,488,832 |
| Position embedding table | 1,024 × 768 | 786,432 |
| Toplam | 7,275,264 |
Yaklaşık 7.3M parametre. ANDREA-120M'in toplam parametre sayısı: ~120M. Sadece embedding katmanı: %6. Kalan %94 transformer bloklarında (attention + MLP, 5-7. aktivitelerde işlenecek).
Ayrılmış vs Birleştirilmiş Embeddings
Birçok transformer tasarımı (GPT-2 dahil) bir token embedding’ini son çıktı projeksiyonuna bağlar: aynı V × d_model matrisi hem girişte hem çıkışta (kelime dağarcığı üzerindeki logits) kullanılır. Bağlama işlemi V × d_model parametre tasarrufu sağlar ve genellikle kaliteyi artırır.
ANDREA bağlanmamış embedding kullanır: giriş embedding’i ile çıkış projeksiyonu ayrı matrisler olarak eğitilir. Etkinlik 7 (grow_a_language_model_transformer_block) son katmanı kapsar.
Şimdiye Kadarki İleri Yönlü Geçiş
Giriş: token ID’leri [256, 1842, 7301, ...] (1024 adet). Her ID, 768 boyutlu bir vektör arar. Her konum da 768 boyutlu bir vektör arar. Eleman bazında toplanır. Sonuç: token + konum vektörlerinden oluşan (1024, 768) boyutlu bir matris x. x, transformer bloğu 1’e akar.
Etkinlik 5 (grow_a_language_model_attention), blok 1’in yaptığı işlemi kapsar: nedensel maske ve softmax ile ölçeklendirilmiş nokta-ürün dikkat mekanizması.