Tüm Fikir Tek Bir Zincirde
İşte yolculuğun tamamı. İlk okuyuşta bilmece gibi gelirse endişelenme; makalenin geri kalanı her halkayı açıyor.
Bir cümleyi parçalara ayır, token’ları elde edersin. Token’ları sayı listelerine çevir, embedding’leri elde edersin. Her token’ın bir soru sormasına izin ver, bir query elde edersin; diğerlerinin cevap vermesine izin ver, key ve value’ları elde edersin. Query’leri key’lerle karşılaştır, dikkat skorlarını elde edersin. Bunları softmax ile normalleştir, dikkat ağırlıklarını elde edersin. Ağırlıkları value’ları karıştırmak için kullan, bağlamı elde edersin. Bunu her token için yap, self-attention elde edersin. Bir ileri beslemeli ağ, artık bağlantılar ve normalizasyon ekle, bir transformer bloğu elde edersin. Blokları üst üste yığ, bir transformer elde edersin. Onu bir sonraki token’ı tahmin edecek şekilde eğit, bir dil modeli elde edersin. Ona talimatları izlemeyi ve insan geri bildiriminden öğrenmeyi öğret, ChatGPT’ye çok yakın bir şey elde edersin.
Adım 1: Bir Cümleyi Parçalara Ayır, Token’ları Elde Edersin
Bir bilgisayar kelimeleri senin gibi okuyamaz. Bir dil modelinin yaptığı ilk şey, metni token adı verilen küçük parçalara kesmektir. Bir token tam bir kelime (“mülakat”), kelimenin bir parçası (“mül” + “akat”), bir noktalama işareti ya da hatta bir kelimeye yapışık bir boşluk olabilir.
Neden tam kelimeler değil? Çok fazlalar ve her gün yenileri ortaya çıkıyor. Kelime parçalarıyla bir model, nadir isimler ve yazım hataları dahil her metni, on binlerce token’lık sabit bir sözlükle işleyebilir. Bu sözlükteki her token bir ID numarası alır. “Mülakatı başarıyla geçtim” cümlesi, [40, 1734, 279, 7274] gibi bir şeye dönüşebilir.
Bir token yaklaşık bir İngilizce kelimenin dörtte üçüdür; yani “128.000 token’lık bağlam penceresi”, modelin aynı anda değerlendirebildiği yaklaşık 95.000 kelime demektir.
Adım 2: Token’ları Vektörlere Çevir, Embedding’leri Elde Edersin
7274 gibi bir token ID’si yalnızca bir etikettir ve anlam hakkında hiçbir şey söylemez. Bu yüzden model her ID’yi büyük bir tabloda arar ve onu çoğu zaman yüzlerce ya da binlerce sayıdan oluşan uzun bir listeyle değiştirir. Bu listeye vektör denir; bir token’ı temsil eden vektöre ise embedding denir.
Bu sayıları kimse elle yazmaz. Rastgele başlarlar ve eğitim sırasında, her token’ın ne anlama geldiğini ve nasıl kullanıldığını yakalayana kadar ayarlanırlar.
Adım 3: Embedding’leri Uzayda Çiz, Anlam Geometriye Dönüşür
Her embedding’i bir noktanın koordinatları olarak düşün; her token, kocaman ve çok boyutlu bir uzayda bir konum olur. Bin boyutu gözünde canlandıramazsın, ama fikir iki ya da üç boyutta da işler.
Bu uzayda benzer anlamlı token’lar birbirine yakın durur. “Maaş”, “ücret” ve “tazminat”a yakındır. “Mülakat”, “toplantı” ve “işe alım”a yakındır. Yönler bile anlam taşıyabilir: ünlü örnekte “erkek”ten “kadın”a atılan adım, “kral”dan “kraliçe”ye atılan adımla aşağı yukarı aynı yönü gösterir.
Embedding’ler tek başına bir token’ın nerede durduğunu söylemez, oysa sıra anlamı değiştirir: “aday yöneticiyle mülakat yaptı” ile “yönetici adayla mülakat yaptı” aynı şey değildir. Bu yüzden modeller her vektöre ayrıca konum bilgisi ekler.
Adım 4: Her Token Soru Sorar ve Cevaplar: Query, Key ve Value
Kelimeler komşularına göre anlam değiştirir: “yüz” kelimesi “yüz lira” ve “yüzünü yıka” cümlelerinde farklı anlamlara gelir. Bu yüzden her token’ın diğerlerine bakması gerekir. Bu, modern yapay zekânın en önemli fikridir.
Her token’ın embedding’inden model, onu öğrenilmiş üç sayı tablosuyla çarparak üç yeni vektör oluşturur:
- Query (sorgu): bu token’ın sorduğu soru. “O” kelimesinin şunu sorduğunu düşün: “Cümlede önceki hangi isme gönderme yapıyorum?”
- Key (anahtar): bu token’ın sunduğu şey, bir dosya dolabındaki etiket gibi. Bir ismin key’i özünde şunu söyleyebilir: “Ben kendisine gönderme yapılabilecek bir şeyim.”
- Value (değer): başka bir token ilgili olduğuna karar verirse bu token’ın vereceği asıl bilgi.
Bir kütüphane düşün: query senin aramandır, key’ler raflardaki başlıklardır, value’lar ise kitapların içindekilerdir.
Adım 5: Query’yi Key’lerle Karşılaştır, Dikkat Skorlarını Elde Edersin
Her token, kendi query’sini görebildiği her token’ın key’iyle bir nokta çarpımı kullanarak karşılaştırır: iki vektör sayı sayı çarpılır ve sonuçlar toplanır. Benzer yönler büyük bir sonuç verir; ilgisiz olanlar küçük ya da negatif bir sonuç verir.
Sonuç, her token çifti için bir tane olmak üzere bir dizi dikkat skorudur. Yüksek skor, “bu diğer token sorumla ilgili görünüyor” demektir. “İK uzmanı, portfolyosunu beğendiği için adayı aradı” cümlesinde “onun” token’ı “aday” ile yüksek, “İK uzmanı” ile daha düşük bir skor üretmelidir.
Adım 6: Skorları Softmax ile Normalleştir, Dikkat Ağırlıklarını Elde Edersin
Ham skorlar herhangi bir büyüklükte, pozitif ya da negatif olabilir. Softmax adlı bir fonksiyon onları toplamı tam 1 eden pozitif değerlere çevirir ve en büyük skorlara çok daha büyük bir pay verir.
Bu paylar dikkat ağırlıklarıdır, yani yüzde olarak odak oranları gibidir. “Onun” için basitleştirilmiş bir örnek:
| Diğer token | Ham skor | Dikkat ağırlığı |
|---|---|---|
| aday | 4,0 | 0,84 |
| İK uzmanı | 2,0 | 0,11 |
| aradı | 1,0 | 0,04 |
| bir | -1,0 | 0,01 |
Dolayısıyla “onun”, dikkatinin yaklaşık %84’ünü “aday”a verecektir.
Adım 7: Ağırlıkları Value’ları Birleştirmek İçin Kullan, Bağlamı Elde Edersin
Şimdi her token, value’ların ağırlıklı bir karışımını alarak yeni bir vektör oluşturur: “aday”ın value’sundan %84, “İK uzmanı”ndan %11 ve devamı. Sonuç, “onun”un gerçekte kime ait olduğuna dair bilgi taşıyan yeni bir temsildir.
Bir modelin içinde bağlam dediğimiz şey budur. Kelime artık soyut bir “onun” değildir; “onun, yani adayın, bir portfolyo hakkındaki cümlede”dir.
Adım 8: Her Token’a Bunu Yaptır, Self-Attention’ı Elde Edersin
Her token bu süreci aynı anda yürüttüğünde buna self-attention (öz dikkat) denir: cümlenin kendi kendine dikkat etmesi.
İki ince ayar onu güçlü kılar:
- Yalnızca görebildiği token’lar. Metin yazan bir modelde her token yalnızca kendinden öncekilere bakabilir, asla ileriye bakamaz. Bu nedensel maske vardır çünkü üretim sırasında gelecekteki kelimeler henüz mevcut değildir.
- Aynı anda birçok kafa. Modeller, her biri kendi query, key ve value tablolarına sahip, dikkat kafaları adı verilen birkaç dikkat sürecini paralel çalıştırır. Biri dilbilgisini, diğeri kimin kime atıf yaptığını izleyebilir. Buna çok kafalı dikkat (multi-head attention) denir.
Adım 9: İleri Besleme, Artık Bağlantılar ve Normalizasyon Ekle, Transformer Bloğunu Elde Edersin
Dikkat bilgiyi paylaşır; modelin onu işlemesi de gerekir. Üç parça daha birimi tamamlar:
- İleri beslemeli ağ (feed-forward): dikkatten sonra her token’ın vektörü tek başına küçük bir sinir ağından geçer. Dikkat herkesin notlarını paylaştığı bir toplantıysa, bu adım herkesin o notları masasında işlemesidir.
- Artık bağlantılar (residual): bir token’ın vektörünü yeni sonuçla değiştirmek yerine model, sonucu orijinale ekler. Bu, önceki bilgiyi korur ve derin ağların eğitimini kolaylaştırır.
- Normalizasyon: sayıları kararlı bir aralığa yeniden ölçekleyen bir adım; böylece birçok katmandan geçerken kontrolsüzce büyümez ya da sıfıra inmez.
Artık bağlantılar ve normalizasyonla sarılmış dikkat artı ileri besleme, bir transformer bloğudur.
Adım 10: Blokları Üst Üste Yığ, Transformer’ı Elde Edersin
Tek bir blok mütevazı bir anlayış sağlar. Onlarca bloğu, birinin çıktısı diğerini besleyecek şekilde üst üste yığarsan transformer elde edersin; bu, Google araştırmacılarının 2017’de “Attention Is All You Need” makalesinde tanıttığı mimaridir. GPT’deki “T” harfidir; GPT, “Generative Pre-trained Transformer” demektir.
Her katman resmi biraz daha inceltir: ilk katmanlar dilbilgisini yakalamaya, sonrakiler ton ve niyet gibi daha soyut fikirlere eğilimlidir. Tüm bu tablolardaki ağırlıklar, yani modelin öğrendiği sayılar, parametre dediğimiz şeydir. Büyük modellerde milyarlarca parametre vardır.
Adım 11: Bir Sonraki Token’ı Tahmin Edecek Şekilde Eğit, Dil Modelini Elde Edersin
Şimdiye kadar metni bağlama duyarlı vektörlere çeviren bir makinemiz var. Şimdi ona bir görev veriyoruz. Yığının sonunda model, son token’ın vektörünü sözlüğündeki her token için bir skora çevirir, sonra her biri için olasılık elde etmek üzere yeniden softmax uygular. Başka bir deyişle: “Şimdiye kadar olan her şey göz önüne alındığında sırada ne var?”
Eğitim sırasında model muazzam miktarda metin okur: kitaplar, makaleler, kod, web siteleri. Her konumda bir sonraki token’ı tahmin eder, tahminini gerçeğiyle karşılaştırır ve doğru cevabı daha olası kılacak yönde tüm parametrelerini hafifçe kaydırır. Bunu trilyonlarca kez tekrarla; sonuç bir dil modelidir.
Bu basit görev çok şey öğretir: bir ders kitabında ya da sözleşmede sıradaki kelimeyi tahmin edebilmek için bir modelin dilbilgisini, gerçekleri ve akıl yürütme kalıplarını edinmesi gerekir.
Metin üretmek, bu tahminin tekrar tekrar yapılmasından ibarettir. Model bir sonraki token’ı, genellikle olasılıklardan örnekleyerek seçer (sıcaklık adlı bir ayar seçimin ne kadar cüretkâr olacağını belirler), onu metne ekler ve yeniden tahmin eder; her seferinde bir token.
Adım 12: Ona Talimatları İzlemeyi ve Geri Bildirimden Öğrenmeyi Öğret, ChatGPT’yi Elde Edersin
Yalnızca bir sonraki token’ı tahmin etmek üzere eğitilmiş bir model, parlak bir otomatik tamamlamadır, asistan değildir. Ona bir soru sor, belki üç soruyla karşılık verir. İki ek eğitim aşaması bunu düzeltir:
- Talimat ayarı (instruction tuning): model, bir isteği iyi ve yardımcı bir cevabın izlediği çok sayıda örnekle eğitilir. “Biri soruyor, ben yararlı biçimde cevaplıyorum” kalıbını öğrenir.
- İnsan geri bildiriminden öğrenme: insanlar model cevaplarının çiftlerini karşılaştırır ve daha iyisini seçer. Bu tercihler modeli yardımcı, doğru ve güvenli cevaplara doğru yönlendirmek için kullanılır. Buna insan geri bildirimiyle pekiştirmeli öğrenme, yani RLHF denir.
Üzerine bir sohbet arayüzü ekle, ChatGPT, Claude ya da Gemini’ye yakın bir şey elde edersin: aynı transformer, asistan gibi davranacak şekilde biçimlendirilmiş.
Hepsini Bir Araya Getirelim: Bir Cümlenin Yolculuğu
Şunu yazdığını düşün: “En zor mülakat sorusu…” Saniyenin kesri içinde şunlar olur:
- Metin token’lara bölünür ve her biri konum bilgisiyle bir embedding olur.
- Her transformer bloğunda her token bir query, key ve value oluşturur, önceki token’lara skor verir, skorları ağırlıklara çevirir ve onların value’larını karıştırır. “Zor”, “soru” ile bağlanır ve ifade bir mülakat konusu olarak anlaşılır.
- İleri besleme katmanları her güncellenmiş vektörü işler; artık bağlantılar ve normalizasyon her şeyi kararlı tutar; onlarca blok onu daha da inceltir.
- Son vektör, sözlük üzerinde olasılıklara dönüşür. “Anlat” gibi bir token yüksek skor alır; model onu seçer, ekler ve yeniden başlar.
Hızlı Sözlük
| Terim | Sade Anlatımla |
|---|---|
| Token | Küçük bir metin parçası; çoğu zaman bir kelime ya da kelimenin bir kısmı |
| Vektör | Sıralı bir sayı listesi |
| Embedding | Bir token’ın anlamını temsil eden vektör |
| Query / Key / Value | Bir token’ın ne sorduğu / ne sunduğu / ne paylaştığı |
| Dikkat skoru | Bir token’ın diğerine ne kadar ilgili göründüğü |
| Softmax | Skorları toplamı 1 eden paylara çevirir |
| Dikkat ağırlığı | Bir token’ın diğerine verdiği odak payı |
| Bağlam | Bir token’ın komşularıyla güncellenmiş anlamı |
| Self-attention | Her token’ın görebildiği token’lara dikkat etmesi |
| Transformer bloğu | Dikkat + ileri besleme + artık bağlantılar + normalizasyon |
| Parametreler | Modelin içindeki öğrenilmiş sayılar |
| Bağlam penceresi | Modelin aynı anda kaç token’ı değerlendirebildiği |
Bunun Kariyerin İçin Önemi
Yapay zekâyla ilgili bir pozisyon için mülakata giriyorsan, token ya da dikkati sade sözlerle anlatabilmek gerçek bir avantajdır. Aynı zamanda seni yapay zekâ araçlarının daha akıllı bir kullanıcısı yapar: yanlış bilgileri neden kendinden emin biçimde söyleyebildiklerini (doğrulanmış gerçeği değil, olası metni tahmin ederler) ve net, belirli bir prompt’un neden daha iyi cevaplar verdiğini anlarsın. Pratik kullanımlar için iş mülakatlarına çalışmak için yapay zekâ araçlarını kullanma ve yapay zekâ mülakat yardımcılarının gerçekte neyi değiştirdiği rehberlerimize bak.
Sık Sorulan Sorular
Token ile kelime arasındaki fark nedir?
Token, bir dil modelinin okuduğu birimdir. Yaygın kelimeler çoğu zaman tek bir token olur; daha uzun ya da nadir kelimeler ise birkaç parçaya bölünür. İngilizcede bir token ortalama olarak bir kelimenin yaklaşık dörtte üçüne denk gelir.
Bir dil modeli söylediğini anlar mı?
Anlam ve bağlamın zengin iç temsillerini oluşturur, ancak olası metni tahmin etmek üzere eğitilir; gerçekleri doğrulamak üzere değil. Bu yüzden cevapları kendinden emin görünüp yine de yanlış olabilir; önemli iddiaları her zaman doğrulamak gerekir.
ChatGPT sadece bir transformer mı?
Özünde evet: bir sonraki token’ı tahmin etmek üzere eğitilmiş büyük bir transformer. Onu yardımcı bir asistan yapan şey, talimatlar ve insan geri bildirimiyle yapılan ek eğitim ile etrafında kurulan üründür.