14 puan yazan GN⁺ 2024-04-02 | 2 yorum | WhatsApp'ta paylaş

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

 
savvykang 2024-04-02

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.

 
GN⁺ 2024-04-02
Hacker News görüşleri
  • Fortran SGEMM uygulamasına dair görüşler:

    • Modern Fortran derleyicileri, ek bir değişiklik olmadan AVX ve FMA optimizasyonlarını uygulayabilir.
    • Döngü açma (loop unrolling) optimizasyonu, derleyici bayrakları (-funroll-all-loops) aracılığıyla mümkün.
    • Intel derleyicisi, kullanıcının açık talebi olmadan da döngü açma işlemi yapar.
    • Fortran 77 kaynağına paralelleştirme eklemek zor olabilir, ancak OpenMP sözdizimi eklenebilir veya modern Fortran'ın paralelleştirme yapıları kullanılabilir.
    • Fortran 77 fonksiyonlarını küçümsememek gerekir. Fortran'ın amacı, geliştiriciyi platforma özgü ayrıntılardan kurtarmak ve işi derleyiciye bırakmaktır.
  • cuBLAS alternatifine dair görüşler:

    • Bunun, cuBLAS'ı CUDA içinde yeniden yazma girişimi gibi göründüğü belirtiliyor.
    • Bir sonraki adım, CUDA bağımlılığını kaldırıp Vulkan veya Metal compute shader'larını doğrudan kullanmak olabilir.
  • LLM (yerel dil modeli) çalıştırmaya dair görüşler:

    • Herkesin, en düşük gereksinimlerle bile yerelde LLM indirip çalıştırabilmesi gerektiği savunuluyor.
    • Bunun, insan bilgisinin büyük bir bölümünü yedekleme işlevi görebileceği söyleniyor.
  • Performans ölçümüne dair görüşler:

    • Alt yordamları tanımlamak için C++ kullanmanın tercih edildiği belirtiliyor. C++, Python'dan üç büyüklük mertebesinden fazla daha hızlı.
    • Performans farkını "Moore yasası yılları" ile ölçme fikri beğeniliyor.
  • İlgili bağlantılar:

  • Başlığa dair görüşler:

    • Başlığın kafa karıştırıcı olduğu belirtiliyor. İlk bakışta modelin CPU'da GPU'dan daha hızlı olduğu iddia ediliyormuş gibi anlaşılabilir.
    • "CPU üzerinde LLaMA performans iyileştirmesi" gibi daha açık bir başlığın daha iyi olacağı söyleniyor.
  • MKL-DNN'e kıyasla performans iyileştirmesine dair görüşler:

    • Sınırlı matris boyutları için MKL-DNN'i geçmeye çalışıp başarısız olma deneyiminden bahsediliyor.
    • CPU'da bu tür bir enerji verimliliğinin fiziksel olarak imkansız olduğu söyleniyor.
  • LLM çalıştırmaya dair görüşler:

    • Büyük bir bilgisayar olmadan da büyük dil modelleri çalıştırılabilir.
    • Küçük parametreli modelleri çalıştırmak da teknik olarak dil modeli çalıştırmaya girse de, bunun çoğu insanın faydalı bulacağı eşiği karşılamayabileceği belirtiliyor.
  • Pixar'ın CPU kullanımına dair görüşler:

    • Pixar gibi büyük stüdyoların, maliyet/performans ve daha büyük RAM'e erişim nedeniyle film render'ında CPU kullandığı belirtiliyor.
    • İlgili haber bağlantısı paylaşılıyor.
  • AMD Zen4 ve AVX512'ye dair görüşler:

    • 7995WX x86 ISA'nın, M2 Ultra ARM ISA'dan iki kat pahalı olmasına rağmen 7 kat daha fazla ham işlem gücü sunduğu, ancak token üretim hızının neredeyse aynı olduğu belirtiliyor.
    • Bunun muhtemelen 384MB L3 önbellekten kaynaklandığı söyleniyor.
    • Zen4 üzerinde LLaMA'yı eskisinden 2,8 kat daha hızlı çalıştırmayı sağlayan çalışmalar yapıldığı ifade ediliyor.