1 puan yazan GN⁺ 2024-09-08 | 1 yorum | WhatsApp'ta paylaş

Donanım hızlandırmalı LLM'ler: kapsamlı inceleme ve karşılaştırma

  • LLM'ler, insan benzeri metni anlama ve üretme yetenekleriyle doğal dil işleme görevlerinde güçlü araçlar olarak ortaya çıktı ve bu alanı dönüştürüyor
  • Bu makale, donanım hızlandırıcıları kullanarak büyük dil modelleri için dönüştürücü ağların hızlandırılmasına yönelik çeşitli araştırma çalışmalarını kapsamlı biçimde inceliyor

Çerçeve ve karşılaştırma

  • Önerilen çerçeve tanıtılıyor ve teknikler, işlem platformları (FPGA, ASIC, In-Memory, GPU), hızlanma, enerji verimliliği, performans (GOPs) ve enerji verimliliği (GOPs/W) açısından nitel ve nicel karşılaştırmalar yapılıyor
  • Başlıca zorluk, önerilen her şemanın farklı süreç teknolojileriyle uygulanmış olması ve bunun adil karşılaştırmayı zorlaştırmasıdır
  • Bu makalenin temel katkısı, aynı teknoloji üzerinde performans ve enerji verimliliği sonuçlarını tahmin ederek adil karşılaştırmayı mümkün kılmasıdır

Deneyler ve sonuçlar

  • LLM'lerin bazı bölümleri çeşitli FPGA yongalarında uygulanarak sonuçlar aynı süreç teknolojisi için tahmin ediliyor ve performans adil biçimde karşılaştırılıyor

GN⁺ özeti

  • Bu makale, büyük dil modellerinin (LLM'ler) donanım hızlandırılmasına dair kapsamlı bir inceleme sunuyor
  • Farklı işlem platformlarındaki performans ve enerji verimliliğini karşılaştırarak adil karşılaştırmayı mümkün kılıyor
  • FPGA yongaları kullanılarak yapılan deneylerle aynı teknoloji üzerindeki sonuçlar tahmin ediliyor
  • Doğal dil işleme alanında LLM performansını artırmakla ilgilenenler için faydalı olabilir
  • Benzer işlevlere sahip diğer projeler arasında NVIDIA'nın GPU hızlandırıcıları ve Google'ın TPU'su bulunuyor

1 yorum

 
GN⁺ 2024-09-08
Hacker News yorumları
  • Bu makalenin arka plan açıklaması biraz yüzeysel olduğu için bağlam eklemek gerekirse, 1990’ların başından beri CPU işlem performansının (FLOPs) bellek bant genişliğinden daha hızlı geliştiğine dair bir gözlem vardı; 1995’te William Wulf ve Sally Mckee, bu farkın çoğu hesaplamayı aritmetik işlemlerin değil veri erişiminin engellediği bir bellek duvarına yol açacağını öngördü
    Son 20 yılda sunucu donanımının tepe FLOPS değeri her 2 yılda 3 kat artarken, DRAM ve ara bağlantı bant genişliği sırasıyla yalnızca yaklaşık 1,6 kat ve 1,4 kat arttı
    Bu yüzden LLM eğitimi ve çıkarımında performans darboğazı giderek bellek bant genişliğine kayıyor; özellikle otoregresif Transformer kod çözücü modellerinde baskın darboğaz haline gelebilir
    Bu eğilim Compute-in-memory (CIM), processing-in-memory (PIM) gibi teknolojilere talep yaratıyor. Veriyi önce CPU yazmaçlarına taşımadan, bellekteki veri üzerinde doğrudan işlem yapan donanımlar oldukları için gecikmeyi ve güç tüketimini azaltıp bellek duvarını aşma ihtimali sunuyorlar
    Makale, ASIC ve FPGA donanımlarını farklı yarı iletken süreç boyutlarında karşılaştırmak için polinom uydurmayla 16nm referansına ekstrapolasyon yapıyor: “Aaron Stillmaker ve B.Baas’ın ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ çalışmasına dayanarak, adil bir karşılaştırma için 16nm teknolojisindeki performans ve enerji verimliliğini ekstrapole ettik”
    Ancak CIM/PIM için “in-memory hızlandırıcıların performansı yalnızca süreç teknolojisine dayanmadığından, ekstrapolasyonu yalnızca süreç teknolojisinin sistem performansını büyük ölçüde etkilediği FPGA ve ASIC hızlandırıcılar için yaptık” diyerek ekstrapolasyon yapmıyor. Dışarıdan bakınca garip bir karar gibi geliyor; bu kararı daha iyi açıklayabilecek biri olabilir
    Ek okuma: https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...

    • Bu tür girişimler genel olarak pazarda başarısız oldu; listeyi burada derledim: https://news.ycombinator.com/item?id=41069685
      Yine de RAM modülü biçiminde gelen ve ucuz olan ürünleri seviyorum. Bunlardan çok sayıda 1U karta takıp hızlı ara bağlantıyla bağlamak ya da doğrudan bir PCI kartını bunlarla doldurmak da hayal edilebilir
    • 2018 öncesi için doğru olabilir, ancak sonrasında 400GbE Ethernet en hızlı benimsenen ara bağlantı oldu ve bugün 1.6Tbit ara bağlantılar da var
      PCI-e V4 o kadar hızlı geçti ki ömrü sanki yalnızca 2 yıl kadardı; NVMeOF ise fabric performansıyla birlikte iyi ölçeklendi. Mevcut H100 DGX’te 400GB/s ara bağlantı var
    • Memristor’a ve belleğin CPU’nun yanında birlikte var olacağına dair verilen sözlere ne oldu, merak ediyorum
    • Doğru. Samsung’dan Dr. Jung Bae Lee de yakın zamanda benzer bir şey söyledi
      “AI modellerinin hızlı büyümesi, işlem performansı ile bellek bant genişliği arasındaki açığın büyümesiyle sınırlanıyor. GPT-5 gibi yeni nesil modellerin eşi görülmemiş 3 ila 5 trilyon parametre ölçeğine ulaşması bekleniyor; ancak bellek bant genişliği şeklindeki teknik darboğaz, potansiyellerini tam olarak gerçekleştirmelerinin önündeki temel engel oluyor”
      https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
  • Eskiden beri sistolik dizileri sevmişimdir ve son birkaç on yılda çeşitli seçenekleri gözden geçirdikten sonra hücrelerden oluşan Kartezyen bir ızgaranın en uygun çözüm olduğunu düşünüyorum
    Her hücrede komşulardan birer tane gelen 4 giriş biti ve komşulara birer tane giden 4 çıkış biti bulunur. Ortada uzun bir scan chain’in 64 bitlik shift register’ı vardır; bunun çıkışı 4 adet 16:1 çoklayıcıya ve 4 bitlik latch’e gider
    Grafik renklendirmenin sihrini kullanıp tüm hücreleri dama tahtası deseniyle saatlerseniz, veri belirli bir yöne kaymadan ve yarış koşulları olmadan herhangi bir yöne akabilir. Herhangi bir hücrenin girişi kararlı durumda olur
    Bu yöntem FPGA esnekliği sağlar; üstelik zamanlama sorunları, yarış koşulları, glitch’ler vb. hakkında endişelenmek gerekmez. Tüm kablolar da kısa olduğu için her şey yerel, hızlı ve düşük güç tüketimlidir
    Buna karşılık kapı verimliliği iyi değildir ve mantık için en kısa yolu da sağlamaz. Her tekil işlem fiilen paralel gerçekleşir ve tüm hesaplamalar pipeline edilir
    1982 civarından beri aklımda olan bir fikir; birinin bunu devralıp düzgünce hayata geçirmesini isterim. Adına BitGrid diyorum

    • Forth’un mucidinin yaptığı GA144 çipine benziyor
    • TPU’yu çağrıştırıyor
  • İlgili kaynak: https://arxiv.org/pdf/2406.08413
    Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference

  • Her şeyin bir texture olduğu WebGL üzerinde çalışan bir LLM görmek isterdim. Mimari farklarını görsel olarak görmek epey ilginç olabilir

    • Sadece statik gürültüye bakmaya benzemeyecek mi?
    • Google’da matrisin aktivasyon durumunu görebileceğiniz bir araç yok muydu? Sanırım Gemma Scope idi
  • Bugünlerde darboğaz bellek hareketi, HBM’in pahalı olmasının nedeni de bu. Nvidia tasarımları hem çip düzeyinde hem sistem düzeyinde gerçek darboğaz olan belleğe göre optimize edilmiş durumda

    • Neden tüm GPU’ların HBMx’e geçmediğini merak ediyorum
      Pratikte pek görünmüyor
  • FPGA + ASIC + bellek içi hibrit mimarisi ölçeklenebilirlik ve esneklik açısından bir rol oynayabilir mi? FPGA’nın esneklik, ASIC’in performans, bellek içinin de enerji verimliliği gibi kendi avantajları olduğundan, bunları birleştiren hibrit bir yaklaşımla LLM performansını daha da yukarı çekmenin mümkün olup olmayacağını merak ediyorum

    • Genelde önce FPGA + bellek ile başlanır; pazarda hacmin oluştuğu uygun nokta yakalanınca da performans ve maliyet tasarrufu için FPGA, ASIC’e çevrilir. Büyük şirketler ise doğrudan ASIC’e gitme eğilimindedir
  • Bellek içi yalnızca performans açısından değil, yön olarak da doğru görünüyor. Şanslı olunsa bile birkaç ay sonra eski kalma olasılığı yüksek bir model için ASIC yapmak ya da FPGA programlamak pek mantıklı değil

  • Bir ampul seviyesinde güçle LLM çalıştırmaktan bahseden bir makale vardı
    https://arxiv.org/abs/2406.02528
    https://news.ucsc.edu/2024/06/matmul-free-llm.html

    • Standart GPU’larda yeniden üretilebilir açık kaynak kodla birlikte %90 bellek azalması iddia ediyor: https://github.com/ridgerchu/matmulfreellm
      Esas nokta, matris çarpımından kaçınmak için iki teknik kullanması. Birincisi, matris içindeki tüm sayıları yalnızca -1, 0, +1 olmak üzere üçlü değerlere zorlayarak çarpımı toplamaya indirgemek. İkincisi, tüm elemanları tek tek çarpmak yerine matrisleri üst üste bindirip yalnızca önemli işlemleri yapmak
      Araştırmacılar, model eğitimine zaman temelli hesaplama katarak sinir ağı performansını koruduklarını; bunun da ağın işlediği önemli bilgiye dair bir “hafıza” kazanmasını sağlayıp performansı artırdığını söylüyor
      Standart GPU’larda bellek kullanımı yaklaşık onda bire düşerken hız yaklaşık %25 artmış; ayrıca akıllı telefon gibi belleği küçük cihazlarda algoritmayı tam kapasiteyle çalıştırmanın yolunu açabilir. 3 haftada yapılan FPGA prototipi, yalnızca 13W güçle insanın okuyabileceği işlem hacmini aştı; GPU’da ise yaklaşık 700W gerekeceğinden, özel donanımın GPU’dan 50 kattan fazla verimli olduğu söyleniyor
  • Burada sözü edilen bellek içi ifadesinin CPU ile RAM’i birleştiren özel bir donanımı mı kastettiğinden emin değilim

    • DRAM kalıbına MAC donanımı koyma yöntemi olduğunu tahmin ediyorum. Yığılmış HBM ise muhtemelen taban kalıbına da girebilir
      DRAM + GPU’ya göre 19 kat iyileşme gösteren eski bir hızlandırma makalesinden alıntılarsak: “MAC işlemleri çoğu makine öğrenimi işinin çalışma süresinde baskın kısmı oluşturduğundan, alt dizi içinde çarpma ve banka içinde biriktirme öneriyoruz. Çarpma, sütun tabanlı bir yöntemle AND işlemleri ve toplama yapılarak işlenir; alan ek yükü %1’den azdır”
      https://arxiv.org/pdf/2105.03736
    • Bellek içi genelde verinin depolamadan yeniden yüklenmediği anlamına gelir
  • Arxiv içeriklerini biraz daha okunabilir görmenin bir yolu var mı?
    O siteye her girdiğimde gerçekten bir arayüz var mı yok mu diye kafam karışıyor ve kayboluyorum; genelde içeriğe ulaşamadan çıkıyorum

    • Sağ üstteki View PDF ya da HTML (experimental) düğmesine basarsan metne gidebilirsin
    • Burası makale ön yayımlama sitesi olduğu için temelde her şey PDF biçiminde. Yakın zamanda HTML de eklendi: https://arxiv.org/html/2409.03384v1
      Tek tek makaleler için en iyi yol bu; ayrıca https://arxiv-sanity-lite.com/ gibi birkaç Arxiv ön yüzü de var
    • Ben de bugün bu bağlantıyı açıp “Aa, sadece özet varmış, çıkayım” diye düşündüm. Arxiv makalesi okumuşluğum var ama yalnızca UI’a bakınca içerik sunuluyormuş gibi görünmüyor