GPT Nedir? Transformer’a Görsel Bir Giriş [Video]
(youtube.com)- GPT, büyük ölçekli verilerle önceden eğitilmiş bir Transformer’ın bir sonraki metin parçasına ait olasılık dağılımını tahmin edip bunu tekrar tekrar örnekleyerek cümle ürettiği bir yaklaşımdır
- Aynı yapı yalnızca metin üretiminde değil, konuşma tanıma, sentetik ses, görüntü üretimi ve çeviride de kullanılır; burada ChatGPT türü araçların temeli olan sonraki token tahminine odaklanılır
- Girdi metni token’lara ayrılarak embedding vektörlerine dönüşür; attention blokları ve çok katmanlı algılayıcı bloklarından geçerken çevredeki bağlamı içine alır
- GPT-3, 175 milyar parametreyi yaklaşık 28.000 matris içinde barındırır; yalnızca embedding ve unembedding katmanlarının her biri yaklaşık 617 milyon ağırlık içerir
- Nihai vektör, unembedding matrisi ve softmax üzerinden geçirilerek sonraki token olasılık dağılımına dönüşür; temperature ise öngörülebilirlik ile çeşitlilik arasındaki dengeyi ayarlar
GPT ve Transformer’ın temel rolü
- GPT’deki üç kelime sırasıyla Generative, Pretrained, Transformer anlamına gelir
- Generative, yeni metin üretmek anlamına gelir
- Pretrained, devasa verilerle eğitildikten sonra ek eğitimle belirli görevlere uyarlanabileceği anlamına gelir
- Transformer, günümüzdeki yapay zeka patlamasının temel icadı olarak ele alınan bir sinir ağı mimarisidir
- Transformer, farklı model türlerinde kullanılır
- Sesi girdi olarak alıp transkript üreten modeller
- Metinden sentetik ses oluşturan modeller
- DALL-E ve Midjourney gibi metin açıklamalarından görüntü üreten araçlar
- 2017’de Google’ın ilk kez tanıttığı özgün Transformer’ın kullanım amacı olan makine çevirisi
- Burada ele alınan varyant, ChatGPT gibi araçların temeli olan sonraki metin tahmin modelidir
- Metni, bazı durumlarda çevredeki görüntü veya sesleri de girdi olarak alır ve sırada ne geleceğini tahmin eder
- Çıktı, sırada gelebilecek çeşitli metin parçaları için bir olasılık dağılımıdır
Sonraki token tahmininin üretime dönüşme biçimi
- Sonraki kelime tahmini ile metin üretimi görünüşte farklı hedefler gibi dursa da, tahmin modelini tekrar tekrar çalıştırarak uzun metin oluşturmak mümkündür
- Başlangıç metni girdi olarak verilir
- Model, sonraki parçanın olasılık dağılımını üretir
- Bu dağılımdan rastgele bir örnek seçilip metne eklenir
- Yeni metnin tamamı tekrar girdi olarak verilerek aynı süreç yinelenir
- GPT-2’yi bir dizüstü bilgisayarda aynı şekilde çalıştırınca hikayenin iyi devam etmediği örnekler ortaya çıkar
- Aynı temel yapının daha büyük hâli olan GPT-3 API’sine geçildiğinde daha inandırıcı hikayeler üretilebilir
- ChatGPT ve diğer büyük dil modellerinin yanıtlarını kelime kelime oluşturma süreci de özünde tekrarlı tahmin ve örneklemedir
- Bunu bir sohbet botuna dönüştürmek için basit bir başlangıç noktası, konuşma durumunu metin olarak kurgulamaktır
- Yararlı bir yapay zeka assistant’ı ile kullanıcının etkileşim kurduğunu belirten bir system prompt konur
- Kullanıcının sorusu ilk konuşma parçası olarak eklenir
- Modelin, böyle bir assistant’ın ardından ne söyleyeceğini tahmin etmesi sağlanır
- Bu yöntemin iyi çalışması için ek bir eğitim aşaması gerekir
Transformer içindeki veri akışı
- Girdi, token adı verilen küçük parçalara ayrılır
- Metinde token; kelime, kelime parçası veya sık görülen karakter birleşimi olabilir
- Görüntü ya da ses dahilse görüntü yamaları veya ses parçaları da token olabilir
- Her token, sayılardan oluşan bir liste olan vektör ile ilişkilendirilir
- Bu vektör, ilgili parçanın anlamını bir şekilde kodlar
- Yüksek boyutlu uzaydaki koordinatlar olarak bakıldığında, anlamca benzer kelimeler birbirine yakın vektörlerde yer alma eğilimindedir
- Vektör dizisi önce attention bloğundan geçer
- Attention bloğu, vektörlerin birbirleriyle bilgi alışverişi yaparak değerlerini güncellemesini sağlar
- “a machine learning model” ifadesindeki model ile “a fashion model” ifadesindeki model gibi bağlama göre değişen anlamları işler
- Hangi kelimenin başka bir kelimenin anlam güncellemesiyle ne kadar ilgili olduğunu ve bu güncellemenin nasıl yapılacağını üstlenir
- Ardından vektörler, çok katmanlı algılayıcı veya feed-forward layer olarak adlandırılan bloktan geçer
- Bu aşamada vektörler birbirleriyle konuşmaz; aynı işlemi paralel olarak geçirirler
- Her vektöre uzun bir soru listesi yöneltip yanıtlarına göre güncellemek şeklinde benzetilir
- Ağın tamamı attention blokları ile çok katmanlı algılayıcı bloklarını tekrarlar
- Aralarda normalleştirme aşamaları da vardır, ancak üst düzey özetlerde bunlar atlanır
- Sonunda, cümlenin temel anlamının dizideki son vektörde taşınması beklenir
- Bu son vektör kullanılarak olası tüm sonraki token’lar için bir olasılık dağılımı oluşturulur
Derin öğrenme biçimi ve GPT-3’ün parametre ölçeği
- Derin öğrenme, modelin davranışını veriyi kullanarak belirleyen bir makine öğrenmesi yaklaşımıdır
- Görüntüden etiket üretmek veya metnin ardından gelecek kelimeyi tahmin etmek gibi sezgi ve örüntü tanıma gerektiren problemlerde kullanılır
- İlk dönem yapay zeka yaklaşımlarında olduğu gibi prosedürleri kodla açıkça belirtmek yerine, ayarlanabilir parametreleri olan esnek bir yapı kurup değerleri örnek verilerle ayarlar
- Doğrusal regresyon, en basit makine öğrenmesi örneğidir
- Ev alanı ve fiyatı gibi girdi ile çıktının her birinin tek bir sayı olduğu durumları ele alır
- Eğim ve y-kesişimi adlı iki sürekli parametreyle en uygun doğruyu bulur
- GPT-3’te iki değil, 175 milyar parametre vardır
- Bu kadar büyük modeller eğitim verisine aşırı uyum sağlayabilir veya eğitilemez hâle gelebilir
- Derin öğrenme modelleri, son birkaç on yılda iyi ölçeklendiği kanıtlanmış bir model ailesi olarak ele alınır
- Bu aileyi bir araya getiren ortak eğitim algoritması geri yayılımdır
- Geri yayılımın büyük ölçekte iyi çalışması için modelin belirli bir formata uyması gerekir
- Girdi, gerçek sayı dizileri olarak temsil edilmelidir
- Diziler, birçok katmandan geçerken sürekli başka gerçek sayı dizilerine dönüştürülür
- Metin modelinin son katmanı, olası tüm sonraki token’ların olasılık dağılımını temsil eden bir sayı listesidir
- Derin öğrenmedeki parametreler genellikle ağırlık olarak adlandırılır
- Ağırlıkların veriyle etkileşime girme biçimi ağırlıklı toplamdır
- Aralara doğrusal olmayan fonksiyonlar da girer, ancak bunlar parametrelere bağlı değildir
- Gerçek gösterim çoğu zaman ağırlıklı toplamları açıkça göstermek yerine matris-vektör çarpımı olarak gruplanır
- GPT-3’ün 175 milyar ağırlığı yaklaşık 28.000 matris içinde düzenlenmiştir
- Bu matrisler 8 kategoriye ayrılır
- Modelin ağırlıkları eğitim sırasında elde edilen “beyin”dir; bir çalıştırma sırasında işlenen veri ise girdi metni gibi belirli bir örneği kodlar
Embedding, bağlam boyutu ve çıktı olasılık dağılımı
- İlk adım, girdi metnini token’lara ayırıp her token’ı vektöre dönüştürme sürecidir
- Gerçek token’lar kelime parçaları veya noktalama işaretleri olabilir, ancak açıklamada anlaşılması için kelime gibi ele alınır
- Model, olası token listesinden oluşan vocabulary’yi önceden taşır
- Embedding matrisi, her token’ın hangi vektöre dönüştürüleceğini belirler
- W_E ile gösterilir
- Değerler rastgele başlar, ancak veriye dayalı eğitimle belirlenir
- GPT-3’ün vocabulary boyutu 50.257, embedding boyutu ise 12.288’dir
- Bu ikisi çarpıldığında embedding matrisi yaklaşık 617 milyon ağırlığa sahip olur
- Kelime embedding’leri, yüksek boyutlu uzaydaki noktalar olarak düşünülebilir
- Anlamca benzer kelimeler yakın konumlarda yer alma eğilimindedir
- Eğitim ilerledikçe, uzaydaki yönlerin anlam taşıyacak şekilde embedding’lerin yerleşme eğilimi vardır
- woman - man ile king - queen ilişkisi ve Italy - Germany + Hitler ifadesinin Mussolini’ye yakınlaşması örnek olarak verilir
- queen örneğinde, gerçek queen embedding’inin basitçe kadınlaştırılmış bir king’den daha uzakta olabileceği uyarısı da ele alınır
- Nokta çarpımı, iki vektörün ne kadar hizalı olduğunu ölçme yöntemidir
- Aynı yöndeyse pozitif, dikse 0, ters yöndeyse negatif olur
- cats - cat farkının çoğulluğu temsil eden bir yön olabileceği hipotezi nokta çarpımıyla test edilir
- Çoğul isimlerin değerlerinin tekil isimlerden daha yüksek çıkma eğilimi vardır
- one, two, three gibi kelimelerle nokta çarpımının da artan değerler verdiği örnekler bulunur
- Transformer’daki vektörler yalnızca tek bir kelimeyi temsil etmekle kalmayıp bağlamı içine alabilmelidir
- İlk oluşturulan vektör, embedding matrisinden gelen tekil token’ın anlamını taşır
- Ağdan geçerken çevredeki kelimeleri ve uzaktaki bağlamı da yansıtan daha spesifik bir anlam taşıması hedeflenir
- GPT-3’ün context size değeri 2048’dir; model bir seferde 2048 vektörü işleyecek şekilde eğitilmiştir
- Bu bağlam boyutu, modelin sonraki kelimeyi tahmin ederken hesaba katabileceği metin uzunluğunu sınırlar
- İlk ChatGPT gibi sohbet botlarının uzun konuşmalarda bağlamı kaybediyormuş hissi vermesiyle bağlantılıdır
- Son aşama, sonraki token olasılık dağılımını oluşturma sürecidir
- Nihai bağlamın son vektörü unembedding matrisi W_U ile çarpılarak vocabulary boyutunda bir sayı listesi üretilir
- Bu ham çıktının her bileşeni, sonraki kelime tahmininin logit’i olarak adlandırılır
- W_U, vocabulary’deki her token’a karşılık gelen satırlara sahiptir ve her satırın uzunluğu embedding boyutuyla aynıdır
- GPT-3 bazında W_U da yaklaşık 617 milyon parametre daha ekler
- Embedding ve unembedding birlikte ele alındığında kümülatif parametre sayısı 1 milyarı biraz aşar
- softmax, herhangi bir sayı listesini geçerli bir olasılık dağılımına dönüştürür
- Her değer 0 ile 1 arasında olmalı ve toplamları 1 olmalıdır
- Her girdi sayısı için e’nin kuvveti alınarak pozitif hâle getirilir, ardından toplam değere bölünerek normalize edilir
- Büyük girdi değerleri 1’e yakın büyük olasılıklar alır, küçük değerler ise 0’a yaklaşır
- Yalnızca maksimum değeri seçmekten daha yumuşaktır; bu sayede benzer büyüklükteki değerler de anlamlı olasılıklar alabilir
- temperature, softmax dağılımının keskinliğini ayarlar
- T büyük olduğunda düşük değerlere de daha fazla ağırlık gider ve dağılım daha uniform hâle gelir
- T küçük olduğunda büyük değerler daha güçlü biçimde baskın olur
- T=0, tüm ağırlığın maksimum değerde toplandığı uç durumdur
- Temperature 0’da her zaman en öngörülebilir kelime seçilir; örnekte Goldilocks türü klişe bir hikaye üretilir
- Daha yüksek temperature, olasılığı daha düşük kelimelerin seçilmesine fırsat verir; ancak örnekte hikaye daha özgün başlayıp kısa sürede anlamsızlaşır
- API, temperature değerinin 2’den büyük ayarlanmasına izin vermez; bu matematiksel bir nedenden değil, aracın fazla anlamsız sonuçlar üretmesini önlemeye yönelik keyfî bir sınırdır
1 yorum
Hacker News görüşleri
GPT'nin nasıl çalıştığını bilen biri varsa merak ettiğim bir şey var. Bu modellerin en olası bir sonraki kelimeyi seçtiğini sanıyordum ama “olası kelimelerden birini” seçmek, sonraki kelime tahmin listesinin çok daha az olası hale geldiği bir duruma yol açmaz mı diye düşünüyorum
Hesaplanabiliyorsa “iki kelimeyi birlikte” aday olarak değerlendirmek, hatta bunu 3, 4, n kelimeye genişletmek daha avantajlı görünüyor; böyle bir yaklaşım olup olmadığını merak ediyorum
Videoyu izleyip yorumları okuduktan sonra bunun beam search olduğunu ve bu davranışı ayarlayan temperature ile birlikte kullanıldığını öğrendim
Temperature ve
top_k, insanın kurabileceği her cümlenin olasılık açısından öngörülemez olmasını yansıtmaya çalışmak için eklenmiş, birbirine epey benzeyen parametreler. 2018/2019 Hugging Face belgelerindeki eski bir grafiğin 2021'de benzer şekilde yeniden üretilmiş bir örneği burada: https://lilianweng.github.io/posts/2021-01-02-controllable-t...Çok daha uzun beam search daha iyi olabilir ve çeşitli tekniklerin birleşimi iyi sonuç verebilir ama bana öyle görünmüyor. Transformer'ın query-key-value kısmı, tüm bağlamla ilişkisi içinde birçok açıdan tek bir toplam değere odaklanıyor. Mimari yapının kendisi bu tür daha uzun birimlere göre ayarlanmamış ve temel düzeyde bir “iki token” sistemi de yok
Çoğu GPT modelinde token sayısı 50 bin ila 100 bin arasındaysa, 50 bin*50 bin gibi çok daha fazla parametre söz konusu olur ve veri seyrekliği sorunu da ortaya çıkar. Eğitim karmaşıklığını bir kenara bıraksak bile, GPT modellerindeki pek çok unsur tekil tokenin veya tekil token indeksinin zenginliğinden yararlanmaya fazla odaklı; bu yüzden böyle bir beam search yaklaşımına göre tasarlanmış sayılmaz
Beam search gibi teknikler yardımcı oluyor ama ancak sabit çarpan düzeyinde iyileşme ekleyebiliyorlar. Buna rağmen büyük dil modelleri bu sınırlamalara karşın bugünkü performans düzeyine ulaştı
Buna örnek olarak beam search verilebilir: https://www.width.ai/post/what-is-beam-search
Özünde, tahmin edilen tokenlerin bir olasılık penceresini koruyarak nihai çıktı kalitesini artırmaya çalışır
Daha büyük bloklar halinde chunking yaparsanız tüm bu süreç karışır ve aynı işi kavram uzayında yapabilirsiniz. Örneğin sentence embedding gibi temel bir yöntem seçerseniz, bu karşılaştırma için çalışma bloğu haline gelir
Attention mekanizmasını halka anlatacak bundan daha iyi birini düşünemiyorum. Resmen bir hayalin gerçekleşmesi gibi
Önceki bölümleri hâlâ izlemediyseniz gerçekten şiddetle tavsiye ederim
Bunu beğendiyseniz, Andrej Karpathy kanalında da sinir ağları ve bunların iç işleyişini anlatan ilginç videolar var. İçerik, programlama bilen kişileri hedefliyor
Ben de bilgisizce doğrudan içine atladım ve önceki videolarını izlemenizi tavsiye etmesine rağmen onları izlerken anlayabileceğimi sanma hatasına düştüm. Gerçekten fayda sağlamak için mutlaka bilmeniz gereken terimler geçiyor
Vazgeçip başka kaynaklarla eksiklerimi kapattıktan sonra geri döndüğümde videoları çok daha değerli geldi. Sinir ağları öğrenmek isteyen herkesin benim hatamdan ders çıkarmasını güçlü biçimde tavsiye ederim
1 Nisan içerikleri arasında inanılmaz derecede iyi bir panzehir. Keşke doğrudan damarlarıma verebilsem
Bununla bağlantılı olarak şu interaktif görselleştirme de bakmaya değer: https://bbycroft.net/llm
Önceki tartışma: https://news.ycombinator.com/item?id=38505211
3B1B, YouTube'daki en iyi STEM eğitimcilerinden biri
Sonraki tokenin, unembedding'den sonra son sütundaki logit'lerin örneklenmesiyle alındığı söyleniyor; o zaman bu sadece son tokeni tekrar almak olmuyor mu? Yoksa bir aşamada matris boyutu N+1'e mi çıkıyor?
Sıradaki videoları heyecanla bekliyorum. Bu kez sonunda bunların nasıl çalıştığını gerçekten anlayıp içselleştirebileceğimi hissediyorum