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
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...
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
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
“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
İ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
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
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
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
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 + 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
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
Tek tek makaleler için en iyi yol bu; ayrıca https://arxiv-sanity-lite.com/ gibi birkaç Arxiv ön yüzü de var