01Kelime, her zaman tek parça değildir#
İnsanlar bir metni kelimeler olarak görmeye alışkındır. Dil modellerinin girişindeki birimler ise token olarak adlandırılır. Bir kelime tek token olabilir veya birkaç parçaya bölünebilir. Tokenizer, kullandığı sözlüğe ve algoritmaya göre bu sınırları belirler.
Şimdi iki cümleyi üç adımda incele. Kimliklerin küçük veya büyük olması bir anlam sıralaması oluşturmaz. Bunlar bir tablodaki satırı bulmak için kullanılan adreslerdir.
Metinden tokenlara
Modelin ilk işi anlam çıkarmak değil, metni işlenebilir birimlere ayırmaktır.
Bu örnekte sınırları biz seçtik. Gerçek bir token sayısı ölçmek istiyorsan, kullanacağın modelin kendi tokenizerını çalıştırman gerekir. “Bir kelime her zaman bir tokendır” gibi bir kural yoktur.
Sınırları bir algoritmanın nasıl çizdiğini görmek için BPE laboratuvarında kendi metnini dene. Küçük bir veri kümesinden hesaplanan kuralların hangi parçaları birleştirdiğini adım adım izleyebilirsin.
02Bir kimliğin arkasındaki sayı listesi#
Model, her kimliği bir embedding tablosundaki vektörle eşler. Bir vektör, sıralı bir sayı listesidir. Başlangıçta seçilen bu sayılar, eğitim sırasında modelin görevine uygun biçimde güncellenebilir. Vektör fikri yabancıysa, matematik ön bilgisi yazısı kısa bir tekrar sunuyor.
Kelimelerin sayısal komşuluğu
Bir kelime seç, ardından başka bir kelimeyle vektörünü karşılaştır.
Bu iki örnek vektör benzer yönlere bakıyor. Bu sayı bir olasılık veya kelimelerin “anlamca yüzde kaç aynı” olduğunun ölçüsü değildir.
Benzerlik nasıl hesaplanıyor?
cos(a, b) = Σ(aᵢ × bᵢ) / (‖a‖ × ‖b‖)
Aynı konumdaki değerleri çarpıp toplar, sonucu iki vektörün uzunluklarının çarpımına böleriz. Burada dört boyutun tamamı kullanılır; yukarıdaki çizimdeki uzaklık kullanılmaz. Pozitif bir sayıyla ölçeklemek yönü ve kosinüs benzerliğini değiştirmez.
Bir embedding’in her ekseni “canlılık” gibi tek bir özelliğe karşılık gelmek zorunda değildir. Gerçek bir modelde bu benzerliğin ne kadar yararlı olduğu, eğitime ve göreve bağlıdır.
Grafik bir sezgi kurmak için var: ilişkili öğelerin temsilleri birbirine yakın olabilir. Ancak gerçek embedding’ler çok boyutludur. Onları iki boyutta çizmek bilgi kaybettirebilir; ekranda yakın görünen her nokta çifti, özgün uzayda da aynı derecede yakın olmak zorunda değildir.
Bu yüzden karşılaştırmadaki kosinüs benzerliğini, çizimdeki noktalar arasındaki uzaklıktan değil, dört boyutlu vektörlerin tamamından hesaplıyoruz. “kedi”yi önce “köpek”le, sonra “uçak”la karşılaştır. Sayı vektörlerin yön ilişkisini anlatır; bir doğruluk oranı veya anlam eşitliği yüzdesi değildir.
03Aynı token, farklı bağlam#
Girdi tablosundaki vektör yalnızca kimliğe bağlıdır. Ama dil bağlama bağlıdır. “Bir yüz çiz” ile “yüz sayfa oku” ifadelerinde aynı yazım farklı görevler üstlenir. Transformer katmanları, başlangıç vektörlerini çevredeki tokenlardan gelen bilgiyle dönüştürür.
Bu bilgi alışverişinin adı attention; onu attention’ın kendi yazısında göreceksin. Önce bu vektörlerin nasıl öğrenildiğine bakalım: Bir model, hatasından nasıl öğrenir?
Bu yazıyı bitirdiğinde:
- Bir kelimenin neden tek parça olmayabileceğini (token) açıklayabilirsin.
- Bir token kimliği ile onu temsil eden sayı listesi (embedding) arasındaki farkı anlatabilirsin.
- Aynı tokenın farklı bağlamlarda neden farklı temsil alabildiğini söyleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Bir model, hatasından nasıl öğrenir?
Başlangıç · 7 dk okuma