Free YouTube Transcribe

Video transcript

How DeepSeek Rewrote the Transformer [MLA]

Welch Labs · 2,474 words · 12 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

0:00Bu videonun sponsoru kiwo, onlardan daha sonra bahsedeceğim.

0:03Ocak 2025'te Çinli şirket deepseek, R1'i piyasaya sürerek dünyayı şok etti.

0:09Bu dil modeli, oldukça rekabetçi ve yalnızca küçük bir miktar hesaplamasını gerektiren, diğer lider modellerin gerektirdiği compute'un çok küçük bir kısmını gerektiriyor.

0:15Belki daha da şaşırtıcı olan,

0:17Amerikalı rakiplerinin çoğunun aksine, deep seek'in R1 model ağırlıklarını, inference kodunu ve kapsamlı teknik raporlarını halka açık bir şekilde yayınlaması

0:25ve 2024'te ayda ortalama bir rapor yayınlayarak,

0:292025'in başlarında R1'in piyasaya sürülmesiyle dramatik bir şekilde sonuçlanan yeniliklerin herhangi birini detaylandırmasıdır.

0:362024 yılının Haziran ayında, deepseek ekibi, multi-head latent attention adını verdikleri bir tekniği tanıttı.

0:42Stack'in uçlarında gerçekleşen birçok deepseek yeniliğinin aksine,

0:46multi-head latent attention doğrudan Transformer'ın çekirdeğine etki ediyor.

0:50Bu, neredeyse tüm büyük dil modellerinin paylaştığı compute mimarisidir.

0:54Bu değişiklik, key value cache adı verilen önemli bir darboğazın boyutunu 57 kat azaltıyor.

1:02Geleneksel bir Transformer'a göre deep seek'in uygulamasının 6 kattan daha hızlı metin üretmesini sağlıyor.

1:08Peki deepseek ekibi bu kadar yaygın kullanılan bir mimariden nasıl bu kadar önemli bir iyileştirme elde edebildi?

1:15Diğer modern dil modelleri gibi, deepseek'e bir girdi verdiğinizde,

1:19model yanıtını token olarak bilinen kelime parçaları halinde tek tek üretir.

1:24Matematiksel olarak bu auto regressive yaklaşım, modelin ürettiği her yeni token'ın, ondan önce gelen tüm token'ların bir fonksiyonu olduğu anlamına gelir.

1:32Büyük dil modellerindeki token'lar arası etkileşimler, attention adı verilen bir mekanizma ile yönetilir.

1:37Attention, attention patterns adı verilen matrisleri hesaplayarak çalışır.

1:40Bunlar, gpt2 small modeline örnek girdi olarak "The American flag is red white and" verildiğinde hesaplanan 144 attention pattern'ıdır.

1:50Bu model, layer başına attention heads adı verilen 12 ayrı attention mekanizması kullanır

1:55ve 12 layer'a sahiptir, bu da toplamda 144 attention pattern'ı yapar.

2:00Deepseek R1 ise layer başına 128 attention head'e ve 61 layer'a sahiptir, bu da toplam 7.808 pattern demektir.

2:09Her iki modelde de attention pattern'ının boyutu, modele verilen token sayısına eşittir.

2:15Örnek girdimiz olan "The American flag is red white and" dokuz token'a karşılık gelir, bu yüzden tüm attention pattern'larımız 9'a 9'luk matrislerdir.

2:24Attention pattern'ları, attention head'ler tarafından token pozisyonları arasında bilgi taşımak için modelin residual stream'inde kullanılır

2:31Örneğin, gpt2'nin üçüncü layer'ındaki bu ilk attention pattern'ı,

2:35girdi token'ı olan "American"dan çıktı token'ı olan "flag"e yüksek bir değer eşlemesine sahiptir,

2:41bu da, bu attention head'in muhtemelen "American" nitelemesini "flag" ismine uygulayarak "American flag" kavramı için birleşik bir temsil oluşturduğu anlamına gelir.

2:52Bu 11. layer'daki bu sekizinci attention pattern'ı,

2:56"flag", "red" ve "white" kelimelerini son token olan "and"in çıktısına yüksek değerlerle eşler.

3:01Ve bu attention head, girdimizdeki bir sonraki doğru token olan "blue"yu tahmin etmek için ilgili kelimeleri çekip çıkarmıştır,

3:06ki bu gpt2 small modeli bunu doğru bir şekilde tahmin eder.

3:11Hadi, standart attention mekanizmasının gpt2 gibi modellerde tam olarak nasıl çalıştığına biraz daha derinlemesine bakalım ve birkaç denklem oluşturalım

3:18ve deepseek ekibinin nasıl bu kadar güçlü bir iyileştirme yaptığını anlayabilelim.

3:23Belirli bir attention pattern'ı hesaplamak için X girdi matrisini alırız.

3:27Bu, modelimizin herhangi bir layer'ına girdi olabilir ve her girdi token'ı için bir satıra ve modelin embedding dimension'ına karşılık gelen bir sütun sayısına sahip olacaktır.

3:36Bu, her bir token'ı temsil etmek için kullanılan vektörün uzunluğudur.

3:40gpt2 small'un embedding dimension'ı 768 iken, deep seek R1'in embedding dimension'ı 7168'dir.

3:47Belirli bir attention pattern'ı hesaplamak için girdi matrisimiz X'i, öğrenilmiş iki ayrı ağırlık seti olan WQ ve WK ile çarparız.

3:56gpt2'de bu matrisler 768'e 64 boyutundadır ve yeni iki matris elde ederiz. Q ve K adlı iki yeni matris elde ederiz, bunlarda 9'a 64 boyutundadır.

4:08Q matrisimizin satırları query, K matrisimizin satırları ise key olarak bilinir.

4:14Attention'ın temel fikri, benzer query ve key'lere sahip token çiftlerini aramamızdır,

4:20bu da modelin token'lar arasında çeşitli ilişkiler öğrenmesini sağlar.

4:24Örneğin, "flag" gibi bir token, anlamını niteleyen kelimeler için query yapabilirken,

4:29"American" gibi kelimeler belirli attention head'lerinde onları niteleyici olarak işaretleyen key'ler üretebilir.

4:35Bu niteleyici query ve niteleyici key, benzer key ve query vektörleri üretmelidir.

4:41Matematiksel olarak, benzer key ve query'leri bulmak için, dokuz token'ımızın her bir olası çifti için key ve query'lerin dot product'ını alabiliriz.

4:50Benzer key ve query vektörleri yüksek dot product'lar üretecektir.

4:54Tüm bu dot product'ları tek seferde, key matrisimizin transpozunu (devrik matris'ini) alıp query matrisimizle çarparak hesaplayabiliriz.

5:01Bu, her bir girdinin tek bir key ve query'nin dot product'ına karşılık geldiği yeni bir 9'a 9'luk matrisle sonuçlanır.

5:08Attention pattern'ımızı hesaplamak için bir maskeleme işlemi uygularız, bu da matrisimizin sağ üst kısmını etkili bir şekilde sıfırlar.

5:16Bu adım, çoğunlukla training için önemlidir.

5:19Modelin bir sonraki token'ı sadece bir sonraki token'a bakarak tahmin etme görevinde hile yapmasını engellediği için önemlidir.

5:25son olarak, sonucumuzu embedding dimension'ımızın kareköküne bölerek ve her satırın toplamını bire eşitleyen bir soft Max işlemi uygulayarak normalleştiririz.

5:36Artık attention pattern'ımızı hesapladığımıza göre, verilerimizi işlemek için onu kullanmamız gerekiyor.

5:41Bu, birkaç matris çarpımı daha içerir.

5:44Önce, value matrisi olarak bilinen şeyi, girdimizi üçüncü bir ağırlık matrisi olan WV ile çarparak hesaplarız.

5:51Bu hesaplama, key ve query matrislerimizi hesapladığımız yolla aynıdır,

5:56sadece farklı bir öğrenilmiş ağırlık seti kullanılır.

5:59Ardından attention pattern matrisimizi value matrisimizle çarparız.

6:03Bu, etkili bir şekilde attention pattern'ımızı izleyerek value'larımızın ağırlıklı bir toplamını alır.

6:08Bu adımı düşünmenin bir yolu, girdilerimizi, ağırlıkları verinin kendisi tarafından kontrol edilen bir sinir ağı kullanarak işlemek gibidir.

6:17Son olarak, her layer'daki attention bloğunun birden fazla head'i vardır.

6:20Her head aynı hesaplamaları yapar ancak farklı öğrenilmiş ağırlıklar kullanır, bu da farklı bir query, key, attention pattern ve value setiyle sonuçlanır.

6:29Buradaki fikir, çeşitli attention head'lerinin çeşitli görevlerde uzmanlaşabilmesidir,

6:34örneğin sıfatları aramak veya aynı token'ın diğer örneklerini aramak gibi.

6:38Attention bloğunun son çıktısını hesaplamak için, her head'den gelen sonuçları üst üste yığarız ve son bir öğrenilmiş ağırlık matrisi olan wo ile çarparız,

6:47bu da bize attention bloğumuzun son matris çıktısını verir.

6:51Attention bloğu, modern dil modellerinin önemli bir parçasıdır ancak önemli miktarda hesaplama gerektirir,

6:58çünkü attention pattern'ımızın yüksekliği ve genişliği girdi token'larının sayısına eşittir,

7:02bu matristeki girdi sayısı girdi token'larının karesiyle ölçeklenir.

7:07Bu, büyük modeller için potansiyel olarak büyük bir hesaplama sorunudur.

7:11OpenAI'nin chat GPT modelleri artık 100.000'den fazla token'lık maksimum bağlam uzunlukları sunuyor.

7:17Referans olarak bu, ilk Harry Potter kitabının uzunluğu kadardır.

7:21Yani, chat GPT'nin izin verilen maksimum girdi boyutu için her bir attention pattern'ını hesaplamak,

7:26kitabın tüm metnini tek bir satır ve sütun olarak düzenlemek ve ardından tüm metinden her olası token çifti için dot product'lar hesaplamakla eşdeğerdir

7:36Neyse ki, büyük bir hesaplama kısayolu var.

7:41Büyük dil modelleri yeni metinleri tek bir token olarak ürettikçe, attention pattern'larının kendileri aslında çok fazla değişmez.

7:49"American flag" örneğimizde,

7:51diyelim ki model "blue" kelimesi için yeni bir token üretti. Cümlemiz şimdi "The American flag is red white and blue" oldu.

7:59Modelin bir sonraki ne diyeceğini görmek için, bu yeni 10 token'lık girdiyi tekrar modele veririz ki 11. token'ı elde edelim ve bu böyle devam eder.

8:06Yeni 10 token'lık girdimiz, her biri 10'a 64 boyutunda olan key, query ve value matrisleriyle sonuçlanır.

8:13Ancak önemli bir nokta, ağırlık matrislerimiz her bir token'a aynı işlemi uyguladığı için,

8:17key, query ve value matrislerimizin ilk dokuz satırı, orijinal dokuz token'lık girdimizden değişmeden kalır.

8:24Key'lerimizin transpozunu (devrik matris'ini) alıp query'lerimizle çarparak yeni attention pattern'ımızı hesaplarken,

8:29Q'nun ilk dokuz satırının ve K transpozunun ilk dokuz sütununun değişmediğini unutmayın.

8:35Bu, attention pattern'ımızın sol üst 9'a 9'luk matrisinin de değişmeyeceği

8:40ve yeni 10'a 10'luk attention pattern'ımıza ulaşmak için sadece yeni bir son satır ve sütun hesaplamamız gerektiği anlamına gelir.

8:46Dahası, attention pattern'ımızın sağ üst köşesini maskelediğimiz için, aslında sadece yeni alt satırı hesaplamamız gerekir.

8:54Attention pattern'ımızın alt satırı, query matrisimizin son satırını transpoze edilmiş key matrisimizin her bir sütunuyla çarpmaktan kaynaklanır.

9:02Yani, bu son attention pattern satırını hesaplamak için tüm key'lerimizi bilmemiz gerekir, ancak query matrisimizin sadece son yeni satırına ihtiyacımız var.

9:10Zaten 10 key'imizden dokuzunu önceki model çağrısında hesapladığımız için,

9:14bu key'leri bellekte saklamak ve yeni 10 token'lık girdi geldiğinde onlara erişmek hesaplama açısından çok daha verimlidir.

9:22Aynı mantık value matrisimiz için de geçerlidir.

9:25Yeni çıktılarımızı hesaplamak için tam value matrisimize ihtiyacımız var, ancak ilk dokuz satır değişmediği için onları bellekte önbelleğe alabiliriz.

9:32Query'leri önbelleğe almaya gerek olmadığını unutmayın, çünkü attention pattern'ımızı güncellemek için yalnızca query'lerimizin yeni son satırına ihtiyacımız var.

9:39Bu fikir, key-value veya KV caching olarak adlandırılır

9:43ve büyük dil modeli altyapısının kritik bir parçasıdır.

9:47Compute, girdi token'larının sayısının karesiyle karesel olarak büyümek yerine, key-value caching, modelin attention bloklarının gerektirdiği compute'un girdi token'larının sayısıyla doğrusal olarak ölçeklenmesi anlamına gelir.

9:58Şimdi bu hesaplama kısayolu bir maliyetle gelir: özellikle artan bellek kullanımı.

10:05Sistemimiz artık model oturumunun tüm geçmişi için key ve value'ları tüm layer'lardaki tüm attention head'ler için bellekte saklamalıdır.

10:13L layer, layer başına NH attention head, key ve value matrislerimiz için DH boyutu ve N girdi token'ı olan bir model verildiğinde,

10:22KV cache'imizde 2 * N * DH * NH * L adet benzersiz sayıyı saklamamız gerekir.

10:29Floating point 16 sayıları, deepseek R1 mimarisi ve 100.000 token'lık bir bağlam uzunluğu varsayarsak, token başına dört megabayt almamız gerekir.

10:40Bu da modelin bağlam penceresinde her yeni token için 400 gigabaytlık devasa bir bellek okumasına yol açar.

10:47Deepseek'in bu soruna çözümü gerçekten zekice ve inference kodlarıyla oynayarak konuyu gerçekten kavramak harikaydı.

10:54(Reklam) Anlayışı geliştirmek için bunun gibi uygulamalı deneyler gibisi yoktur, bu yüzden

10:59bu videonun sponsoru kiwo ile tekrar ortak olmaktan çok mutlu oldum. kiwo, öğrenmeyi her yaştan

11:05çocuk için gerçekten eğlenceli hale getiren uygulamalı proje kitleri sunuyor. Kızım şu sıralar renklere ve gökkuşaklarına

11:10takıntılı ve renk keşfi setini çok seviyor. Bu çarklar, renk karıştırmayı birlikte

11:16keşfetmemiz için çok eğlenceli bir yol. Setlerin nasıl ilerlediğini ve birbirini tamamladığını görmek harika.

11:22Geçen yıl Panda Club'ın bir parçası olarak ince motor becerilerini geliştiriyordu ve şimdi Sprouts Club'da

11:27yaratıyor ve deneyler yapıyor. Birkaç yıl içinde altı yaşına geldiğinde, bu uzaktan kumandalı araba gibi

11:32daha karmaşık bilim ve mühendislik projeleri üzerinde çalışacağı Kiwi Co Labs Club'a katılabilir.

11:37Çocukken bu sete kesinlikle bayılırdım. Oğlum ise renklerin adlarını öğrenmeye çalışıyor.

11:43Şimdilik her şey mavi. Bu blok bulmaca, onun kendi yaşında farklı renkleri keşfetmesi için

11:49çok eğlenceli ve interaktif bir yol. Çocuklarımın birçok oyuncağından çabucak sıkıldığı veya kırdığı bir dönemde,

11:54kendimizi sürekli olarak kiwo Co setlerine dönerken buluyoruz. Yapı kalitesi gerçekten

12:00harika ve her setin içine yerleştirilmiş düşünce ve çok amaçlı tasarım, onları gerçekten

12:05meşgul ediyor. Ailenizin kiwico'nun harikalığını deneyimlemesini istiyorsanız, Welch labs kodumu kullanarak

12:11üç yaş ve üzeri çocuklar için ilk setinizde %50 indirim veya üç yaş altı çocuklar için

12:17ilk Panda setinizde %20 indirim alabilirsiniz. Bu videoya sponsor olduğu için kiwo'ya çok teşekkürler.

12:21Şimdi deepseek'in KV cache sorununa çözümüne geri dönelim.

12:25Sürdürülemez derecede büyük KV cache'ler yeni bir sorun değil.

12:29Popüler bir çözüm, multi-query attention bloklarında birden fazla attention head arasında key ve value matrislerini yeniden kullanmaktır.

12:34Multi-query attention bloğunda, her attention head için benzersiz key ve value matrislerine sahip olmak yerine,

12:41tek bir key ve value matrisini tüm head'ler arasında paylaşırız.

12:45Bu, KV cache'imizin gerekli boyutunu, layer başına head sayısının (deep seek R1 mimarisi için 128) önemli bir faktörü kadar azaltır.

12:54Ancak bu değişiklik, tüm attention head'lerini aynı key ve value'ları kullanmaya zorlamak daha az uzmanlaşmaya izin verdiği için model performansını etkiler.

13:04Bu fikrin daha az yıkıcı bir versiyonu grouped query attention'dır.

13:08Burada, belirli bir layer'daki tüm attention head'lerini aynı key ve value'yu paylaşmaya zorlamak yerine,

13:11aynı key ve value matrislerini paylaşan birden fazla attention head grubu oluştururuz.

13:17Meta'nın Llama 3 modelleri, sekiz attention head'den oluşan grupların aynı key ve value matrislerini paylaştığı grouped query attention kullanır,

13:24bu da KV cache boyutunu sekiz kat azaltır.

13:28Grouped query attention KV cache boyutunu azaltır, ancak tam multi-head attention'a göre yine de bir performans düşüşü yaşar.

13:36Şimdi, deepseek'in multi-head latent attention adı verilen yaklaşımında gerçekten dikkat çekici olan şey,

13:41gerekli KV cache boyutunu 57 kat azaltırken, performansı gerçekten artırmalarıdır.

13:49Anahtar içgörü, makine öğreniminde çok yaygın bir fikir olan latent space'in yeni bir uygulamasıdır.

13:56Ya model, kendi key ve value'larını verimli bir şekilde sıkıştırmayı öğrenebilseydi?

14:01Multi-head latent attention, her bir attention head'in girdisi ile key ve value matrisleri arasına etkili bir şekilde ekstra bir adım ekler.

14:08Fikir, girdimizi multi-query attention gibi belirli bir bloktaki tüm attention head'leri arasında paylaşılan sıkıştırılmış bir latent space'e yansıtmaktır.

14:18Ancak, her head'in aynı key ve value'ları paylaştığı multi-query attention'ın aksine,

14:23multi-head latent attention'da, sıkıştırılmış latent space, başka bir öğrenilmiş ağırlık seti olan Wuk ve Wuv kullanılarak key ve value matrislerine geri yansıtılır

14:34ve bu ağırlıklar her attention head'e özgüdür.

14:38Bu, multi-head latent attention'a multi-query attention veya grouped query attention'dan daha fazla esneklik sağlar.

14:44Şimdi, ilk bakışta yeni bir matris çarpımı eklediğimiz için,

14:48bellek bant genişliğini ek compute için takas etmiş gibi görünüyoruz

14:52ve sonuçta KV caching'in tüm amacı attention bloklarının yüksek compute ihtiyacını azaltmaktı.

14:58Ancak, deep seek ekibinin de işaret ettiği gibi, zekice bir lineer cebir ile, query hesaplamamızı Wuk ağırlıklarını içerecek şekilde yeniden düzenleyebilir

15:06ve son çıktı hesaplamamızı da Wuv ağırlıklarını içerecek şekilde yeniden düzenleyebiliriz.

15:11Tüm bu ağırlıklar eğitim zamanında sabitlendiği için, emilmiş ağırlıkları sadece bir kez hesaplamamız gerekir ve inference sırasında herhangi bir ek compute'tan kaçınabiliriz.

15:21Yani, yeni bir token geldiğinde, query vektörünü ve query'nin latent cache space'e yansımasını tek adımda aynı anda hesaplarız ve

15:30ardından attention pattern'ımızı doğrudan latent key-value cache matrisinden hesaplarız.

15:35Bu gerçekten zarif bir çözüm.

15:38Multi-head latent attention ile, gereken KV cache'in boyutu artık layer başına attention head sayısına bağlı değildir

15:46ve bunun yerine sadece paylaşılan KV cache matrisinin boyutuna bağlıdır.

15:50Deepseek R1 için bu, girdi token'ı sayısının 576 ile çarpımına eşittir.

15:55Eğer geleneksel attention bloklarıyla uygulansaydı, R1 token başına 4 megabayt KV cache gerektirirdi.

16:02Sekiz grup boyutlu grouped query attention bunu token başına 500 kilobayta düşürürdü

16:07ve multi-head latent attention, gereken cache'i token başına sadece 70 kilobayta düşürür, bu da 57 katlık bir azalmadır.

16:15Elimizde kalan, Transformer mimarisine gerçek bir iyileştirmedir

16:19ve deepseek R1'in vanilla bir Transformer'dan altı kat daha hızlı token üretmesini sağlarken, algoritmik performansı gerçekten iyileştirir.

16:28Multi-head latent attention, attention head'lerinin key ve value bilgilerini daha optimal bir şekilde paylaşmasına olanak tanır,

16:34burada modelin kendisi bu bilgiyi attention head'leri arasında nasıl sıkıştıracağını ve paylaşacağını öğrenir.

16:39Transformer mimarisi, modern AI tarihindeki en önemli atılımlardan biridir

16:44ve deepseek, onu önemli ölçüde daha iyi çalışır hale getirmiş görünüyor.

16:48Deepseek'in 2024 makaleleriyle çizdiği yolu görmek,

16:53yüz milyonlarca dolarlık R&D ve altyapı maliyeti gerektiren modellere sistematik olarak önemli iyileştirmeler yapması inanılmaz.

17:00Sinir ağları için riskler hiç bu kadar yüksek olmamıştı.

17:03Daha da akıllı sistemler inşa ederken, bir sonraki yetenek seviyesini hangi yeni fikirler setinin açığa çıkaracağını görmek büyüleyici olacak. Çeviren: Baran Başaran

17:13Bu videodaki grafikleri beğendiyseniz,

17:15poster versiyonunu gerçekten seveceğinizi düşünüyorum. Poster, multi-head latent attention'ın detaylı başlıklarla

17:20bir anlatımını içeriyor ve akışı poster olarak daha iyi çalışacak şekilde biraz yeniden düzenledim. Alt kısma,

17:25gerekli KV cache boyutları ve her attention bloğunun 3D modeli de dahil olmak üzere

17:30çeşitli attention formları arasında ayrıntılı bir karşılaştırma ekledim. Video ve posterdeki matris görüntüleri

17:36aslında gerçek deep seek modelinden alınmıştır. Çoğunlukla deep seek V3'ün ilk layer'ındaki

17:41ağırlıkları gösteriyorum. Poster, Amazon'dan alabileceğiniz basit bir çerçeve içinde harika görünüyor ve

17:46MLA'nın nasıl çalıştığını görmek için harika bir yol ve duvarlarınızı dekore etmenin güzel bir yolu.

17:52Welch labs.com'da sınırlı bir süre için postere ücretsiz kargo sunuyorum veya sınırlı sayıda üretilen bir paket olarak

17:57imzalı Hayali Sayılar kitabımla birlikte alabilirsiniz. Son olarak, Welch lab mağazasından alışveriş

18:02yapan herkese çok teşekkürler. Satın alımlarınız, daha fazla harika video yapmama büyük ölçüde yardımcı oluyor.

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.