CPU'da LLaMA hızlanıyor
- Mozilla'nın llamafile projesinde 84 yeni matris çarpımı çekirdeği yazıldı
- F16 ve Q8_0 ağırlıkları CPU'da kullanıldığında, istem değerlendirme süresi llama.cpp'ye kıyasla %30 ila %500 daha hızlı hale geliyor
- En çarpıcı iyileştirmeler ARMv8.2+ (ör. RPI 5), Intel (ör. Alderlake) ve AVX512 (ör. Zen 4) bilgisayarlarda görüldü
- L2 önbelleğine sığan matrislerde MKL'den 2 kat daha hızlı performans gösteriyor
- Hız artışı, 1.000'den az token içeren istemlerde en iyi şekilde çalışıyor
Arka plan
- llamafile, 2023 Kasım'ında Mozilla ile birlikte başlatılan yerel bir LLM projesi
- Cosmopolitan Libc kullanılarak llama.cpp tek dosyalı, çapraz platform bir ikili olarak paketleniyor
- AMD64 ve ARM64 için 6 işletim sisteminde çalışıyor ve küçük değişiklikler içeriyor
- Temel teknolojiyi geliştirerek kullanıcılara mümkün olan en iyi llama.cpp deneyimini sunabileceklerine ve iki projenin daha geniş bir kitleye ulaşmasına yardımcı olabileceklerine inanıyorlar
- Mozilla da bunun için kaynak sağlamaya devam ediyor
Kurumsal donanımda performans artışı
- LLM'lerle ilk ilgilenmeye başladığında çalışma ortamı; döner diskleri, yavaş RAM'i, AVX2 işlemcisi olan, GPU'suz ve Alpine çalıştıran mütevazı bir Hewlett Packard makineydi
- llama.cpp'de hoşuna giden şey, kendisi gibi insanları öncelemeleri oldu
- Tam zamanlı gönüllü olmaya başladı ve Slaren gibi kişilerle birlikte çalışarak
mmap() desteğini ekledi; bu da RAM kullanımını yarıya indirirken ağırlıkların anında yüklenmesini sağladı
- O dönemde yerel LLM'ler için büyük bir sıçramaydı, ancak değerlendirme hızını artırmaya neredeyse hiç katkı yapmadı
- Çıkarım kodunun büyük kısmı bizzat Georgi Gerganov tarafından yazılmıştı ve o kadar iyiydi ki sonunda iyileştirebilmek için bir yıl daha gerekti
- Artık bunu geliştirdiklerine göre, eski Hewlett Packard'da ne kadar hızlandığına bakmanın zamanı geldi
Hobi amaçlı donanımda performans artışı
- Büyük bir bilgisayarınız olmasa da büyük dil modelleri çalıştırabilirsiniz
- Bugün mağazada bulunabilecek en iyi kişisel bilgisayarlardan biri Raspberry Pi
- Uygun fiyatına karşılık çok iyi performans sunuyor ve güç tüketimi son derece düşük
- Raspberry Pi birkaç gün önce 5. neslini çıkardı ve önceki modele göre inanılmaz derecede hızlı
- Ayrıca ARMv8.2 dotprod ve fp16 aritmetik ISA desteği de eklendi; bu da LLM'ler için çok faydalı
- Yalnızca bu iki özellik bile geçen yıl llama.cpp'nin f16 ağırlıklarda 10 kat performans artışı elde etmesini sağlamıştı
- Bu hafta ise başlangıçta AVX512 için tasarlanan çekirdekler kullanılarak bunun üzerine 2 kat daha performans artışı eklendi
- Veri merkezi ekipmanı için tasarlanmış çekirdeklerin küçük ve hafif Raspberry Pi'ye bu kadar iyi uyacağını düşünmemişlerdi, ancak her iki CPU'da da 32 vektör yazmacı bulunduğu için aslında tam uyum sağladı
Oyuncu donanımında performans artışı
- Oyuncular, fiyat/performans odaklı tüketiciler arasında en yüksek kalite beklentisine sahip olduğundan, onlar için üretilen donanımlar genellikle oldukça iyi oluyor
- Makine öğrenimi sektörü, oyuncular için üretilen donanımları yeniden kullanarak yıllardır büyümesini sürdürüyor
- Oyuncuların önemli katkıları olmasaydı, AI winter muhtemelen 10 yıl daha sürerdi
- Birkaç ay önce, eski Hewlett Packard'ın yerini alabilecek bir bilgisayar toplaması için bir oyuncudan yardım istendi
- Alderlake'in harika bir CPU olduğu düşünülüyor, ancak float16 performansının kolayca 5 kat artırılabilmesi onun yaygın biçimde yanlış anlaşıldığını gösteriyor
- ARMv8.2'nin aksine x86 çekirdekleri içeride float32 işlem türleri kullandığı için bunu yuvarlama hatası üretmeden yapabildiler
- Bu da daha akıllı bir spam filtresi yapılabileceği anlamına geliyor
spam.sh kabuk betiğini çalıştırmak yalnızca 420 milisaniye sürüyor; bu da Raspberry Pi 5'ten 7 kat daha hızlı olduğu anlamına geliyor
- Küçük iş yüklerinde bu çip, CUDA daha başlamadan işi bitirebiliyor
- Alderlake sahipleri, llamafile'ın verimlilik çekirdeklerinde çalışmamak için özellikle dikkat ettiğini bilerek beklentiye girebilir
- Bu, llamafile'ın llama.cpp'den daha hızlı çalışmasına yardımcı olan etkenlerden biri
- Ayrıca LLM'yi 24 saat boyunca çalıştırırken bilgisayardaki diğer programlar için hâlâ yeterli kaynak bırakıldığı anlamına da geliyor
- llama.cpp iş parçacıklarını lockstep olarak dağıttığı için, bir çekirdek diğerlerinden daha uzun süre çalışırsa diğer tüm n çekirdeğin iş tamamlanana kadar busy loop yapması gerekirdi
- Bu mikroişlemcinin en dikkat çekici yanı, Cosmopolitan monorepo içindeki 2,6 milyon satır kodu ne kadar hızlı derleyebildiği
- Hewlett Packard bunu her zaman 64 saniyede yaparken, bu oyuncu bilgisayarı 20 saniyede tamamlıyor
- Başlangıçta 35 saniye sürüyordu, ancak sıvı metal ve AI overclocking ile daha da hızlandı
- Alderlake'te sistem kodunun çok hızlı olmasının bir diğer nedeni, bu CPU'nun üretim sürecinde hacker'lar ile bilim insanları arasında şiddetli bir mücadele yaşanması ve hacker'ların kazanmış olması
- Gelecekte AVX512 için daha iyi uzlaşmalar bulunmasını umuyorlar, ancak önceki modellere göre önemli bir ilerleme sunduğuna inandıkları için bu çipten genel olarak çok memnunlar
Apple donanımında performans artışı
- En üst düzey kişisel bilgisayar denince akla ilk gelen muhtemelen Mac Studio olur
- Burada performans üstünlüğü sağlamak onun için daha zordu; çünkü burası llama.cpp geliştiricilerinin en çok önem verdiği donanım platformu ve Stallman'ın derleyicisini kullanma tercihi nedeniyle Apple'ın kapalı araçları yerine bir tür handikapla çalışıyor
- M2 mikroişlemcisinin llamafile'ı sentetik içerik için bir itfaiye hortumuna çevirmesi şaşırtıcı değil
- Apple'ın burada kullandığı numara, dikey entegrasyondan yararlanmak
- Mac Studio satın alıp içini açarsanız RAM DIMM'lerinin CPU'nun içine konduğunu görürsünüz
- CPU artık bu kadar uzun mesafeli çağrılar yapmak zorunda kalmadığı için, token üretimi gibi gecikmeye duyarlı işler çok daha hızlı oluyor
- Ancak saf flop açısından bakıldığında (istem tok/sn ile ölçüldüğünde), M2 Ultra ARM ISA'nın çok daha ucuz olan Intel bilgisayara kıyasla yalnızca %30 daha fazla hesaplama sunduğu görülüyor
- Daha fazlasına ancak Metal veya Accelerate gibi kapalı framework'ler üzerinden erişilebiliyor
- Eğer
xcode kuruluysa, llamafile varsayılan olarak sizinle silicon arasında duran tüm kapalı kaynak kütüphanelerin önüne geçmeye yardımcı olan küçük bir stub modül derleyecek
- Mac Studio almayı düşünüyorsanız önemli bir nokta şu: Windows Executive'de olduğu gibi XNU da masaüstünü kararlı tutma işini gerçekten iyi yapıyor; yani sistemi sizden koruyor
- Tüm bu güvenlik özellikleri nedeniyle Mac Studio'da Cosmo monorepo'yu derlemek 45 saniye sürüyor, ama bir fork bomb patlatsanız bile Netflix'in tek kare bile kaçırmayacağı hissi veriyor
spam.sh betiği de 430 ms'de çalışıyor; yani Intel'den daha yavaş
- Ancak Asahi Linux'un M2'nin potansiyelini nasıl tam anlamıyla ortaya çıkarabildiğini gördüğü için bunların hiçbiri onu endişelendirmiyor
Profesyonel donanımda performans artışı
- llamafile, GPU'su olmayan insanlara yardım etmeye büyük önem veriyor, ama aynı zamanda en üst %1'lik kesime de birinci sınıf deneyim sunuyor
- AMD Ryzen Threadripper PRO 7995WX birkaç ay önce çıktı ve şu anda parayla satın alınabilecek en pahalı CPU
- 10 bin dolar fiyatla, Zen4 mimarisi temelinde 96 çekirdekli AVX512 sunuyor
- Fiyatı iki kat fazla olmasına rağmen 7995WX x86 ISA, M2 Ultra ARM ISA'dan 7 kat daha fazla ham hesaplama gücü sağlıyor ve neredeyse aynı token üretim hızını gösteriyor
- Bunun nedeni büyük olasılıkla 384MB L3 önbellek
- AVX512'nin bir avantajı, Google'ın Gemma modelinin AVX512 üzerinde matematik bilmecelerini çözebilirken AVX2 üzerinde çözememesi; çünkü daha büyük vektörler genellikle yuvarlama hatalarını azaltmayı kolaylaştırıyor
VDPBF16PS komutu, VNNI ve ARM dotprod'a benzer şekilde bf16'yı updot etmeye yardımcı oluyor
- Mistral ve TinyLLaMA gibi modeller, ağırlıklarını resmi formatta bfloat16 kullanarak dağıttığı için bf16 için yerel destek iyi bir şey
- bf16'yı fp16'ya dönüştürdüğünüzde mümkün olan sayıların yalnızca %13'ü doğru biçimde temsil edilebiliyor
- Pratikte bu çok önemli değil, çünkü Mistral 7b'nin kullandığı sayıların %99,71'i zaten o %13'lük kümenin içinde
- Yine de llamafile, iddia edilen bit sayısını elinden geldiğince korumaya çalışıyor
2 yorum
Intel 14600 ya da Ryzen 5600 gibi orta seviye sistemlere dair veri yok. Sanırım Raspberry Pi'de çalışabildiğini göstermeyi amaçlamışlar ama gerçek kullanım için zorlayıcı görünüyor. Buna rağmen, yerel LLM çalıştırmak için gereken donanım özelliklerinin giderek düşüyor olmasını bir teselli olarak görmek istiyorum.
Hacker News görüşleri
Fortran
SGEMMuygulamasına dair görüşler:-funroll-all-loops) aracılığıyla mümkün.cuBLAS alternatifine dair görüşler:
LLM (yerel dil modeli) çalıştırmaya dair görüşler:
Performans ölçümüne dair görüşler:
İlgili bağlantılar:
Başlığa dair görüşler:
MKL-DNN'e kıyasla performans iyileştirmesine dair görüşler:
LLM çalıştırmaya dair görüşler:
Pixar'ın CPU kullanımına dair görüşler:
AMD Zen4 ve AVX512'ye dair görüşler: