17 puan yazan GN⁺ 2024-03-08 | 1 yorum | WhatsApp'ta paylaş
  • FSDP (Fully Sharded Data Parallel) ile QLoRA'nın (Quantization + Low-Rank Adaptation) birleştirildiği açık kaynak çalışma
  • Sıradan bir masaüstü bilgisayar ve iki standart oyuncu GPU’su ile 70B boyutundaki bir dil modelini verimli biçimde ince ayarlamak mümkün

Arka plan

  • Veri merkezi sınıfı donanımlar ile masaüstü bilgisayarlardaki oyuncu GPU’ları arasında performans farkı çok büyük olmamasına rağmen, fiyat farkı oldukça yüksek
  • Oyuncu GPU’larının belleği daha az olduğu için büyük dil modellerini eğitmek zor
  • Answer.AI, bu sorunu çözmek için düşük maliyetli oyuncu GPU’larıyla en iyi açık kaynak modelleri eğitmenin yolunu bulmayı amaçlıyor

QLoRA: tek GPU’da daha büyük modeller eğitmek

  • QLoRA, kuantizasyon ile LoRA’nın birleşimidir; model ağırlıklarını 4 bite indirerek GPU bellek kullanımını azaltır.
  • LoRA, büyük dil modelinin tamamını eğitmek yerine küçük adaptör matrisleri ekleyip onları eğiterek bellek kısıtlarını aşar.
  • QLoRA, 65B modeli 48GB kartta eğitmeyi mümkün kılar; ancak 70B modeli 24GB oyuncu GPU’sunda eğitmek için hâlâ yeterli değildir.

FSDP: eğitimi birden fazla GPU’ya ölçeklendirmek

  • FSDP (Fully Sharded Data Parallel), model parametrelerini birden fazla GPU’ya dağıtarak bunların eşzamanlı kullanılmasını sağlar.
  • FSDP, DDP’nin (Distributed Data Parallel) performans avantajlarını, tek GPU’ya sığmayacak kadar büyük modellere de uygulamayı mümkün kılar.
  • Örneğin, 70B (70 milyar parametre) kuantize edilmemiş bir model 140GB RAM kullanır (çünkü her parametre 16 bit, yani 2 bayt olarak depolanır); bu yüzden NVIDIA’nın H100 kartı bile (kart başına yaklaşık $40,000!) tek başına yeterli değildir. 80GB RAM gerekir
    • Ancak FSDP ile 4 adet H100 GPU birleştirilerek toplam 320GB RAM elde edilebilir. Ve $150000 tasarruf edilir

FSDP ile QLoRA’yı birleştirmek

  • Answer.AI, QLoRA ile model boyutunu küçültüp bunu FSDP ile birden fazla 24GB oyuncu kartına dağıtarak verimli eğitimi mümkün kılıyor.
  • Bu sayede 70B modeli iki sıradan oyuncu GPU’suyla eğitmek mümkün hâle geliyor.
  • 2023’ün sonlarında FSDP ile QLoRA’yı birleştirme fikrini tartıştıktan sonra gerekli sorunları çözdüler.
  • Bu süreçte çeşitli teknikler ve kütüphaneler birlikte kullanıldı
    • Kuantize edilmiş parametrelerin, modelin "Computation Type"ı ile aynı veri türünde saklanması
    • Tüm gradyanı saklamak yerine model genelinde birden çok 'checkpoint'te aktivasyonları kaydedip, gerektiğinde ileri besleme adımlarını yeniden çalıştırarak gradyanları tekrar hesaplayan gradient checkpointing
    • Kullanılmadığında ağırlıkları GPU yerine CPU RAM’de tutarak gerekli GPU belleğini ciddi ölçüde azaltan CPU offloading
    • Flash Attention 2: bellek optimize edilmiş Cuda çekirdekleri kullanarak attention’ı verimli hesaplama
    • HQQ (Half-Quadratic Quantization) keşfedilerek FSDP ile entegre edildi (GPTQ’ya göre 50 kat daha hızlı ve doğru)

FSDP/QLoRA nasıl kullanılır

  • FSDP kullanmak için iki veya daha fazla GPU gerekir. (Runpod’da saatlik $0.6 karşılığında çift 3090 kutusu kullanılabilir)
  • Transformers, PEFT, Bitsandbytes’ın (ve kullanılıyorsa HQQ’nun) en güncel sürümleri kurulur, ardından Answer.AI deposu klonlanır ve README izlenerek çalıştırılır.
  • 2 adet 24GB kartta Alpaca’yı eğitmek için
    python train.py --train_type qlora --dataset alpaca --batch_size 8 --gradient_accumulation_steps 2 --output_dir qlora_output --log_to wandb
  • Hâlâ erken aşamada (alpha/preview)
  • Birkaç hafta içinde benchmark sonuçlarının da paylaşılması planlanıyor

GN⁺ görüşü

  • Bu yazı, AI ve makine öğrenimi alanında çalışanlar için oldukça ilgi çekici olacaktır. Özellikle büyük dil modellerini verimli biçimde eğitmek için yeni bir yöntem sunduğu için dikkat çekicidir.
  • Bu teknik başarıyla yaygın şekilde kullanılabilirse, AI araştırma ve geliştirmedeki maliyet bariyerini ciddi ölçüde düşürebilir. Bu da küçük araştırma laboratuvarları veya bireysel geliştiriciler için büyük bir fırsat olabilir.
  • Ancak bu yaklaşımın gerçekten yaygın biçimde benimsenmesi için kararlılık ve kullanım kolaylığı önemli unsurlar olacaktır. Şu anda hâlâ erken aşamada olduğu için, topluluğun testleri ve geri bildirimleriyle sistemin geliştirilmesi gerekir.
  • Yeni bir teknolojiyi benimserken her zaman mevcut sistemlerle uyumluluk, performans ve maliyet gibi unsurlar dikkate alınmalıdır. Bu teknolojinin sağlayabileceği avantaj, büyük ölçekli model eğitiminin erişilebilirliğini artırmasıdır; ancak hâlâ erken aşamada olduğu için kararlılık ve destek açısından dezavantajları olabilir.

1 yorum

 
GN⁺ 2024-03-08
Hacker News görüşleri
  • Yazı harika ama "nibble" kelimesini kullanmak için pek çok fırsat varken hepsinin kaçırılmış olması üzücü.

    • Yazının ilgi çekici olduğunu, ancak "nibble" kelimesinden yararlanılmamış olmasının hayal kırıklığı yarattığını ifade ediyor.
  • 4 bit ağırlık kullanan bir sistemle 70B modeli fine-tune etmenin ne kadar süreceğini; örneğin model boyutu, eğitim boyutu, eğitim maliyeti ve bu tekniğin beklenen kalite kaybını gösteren bir tablo olsa, bir tüketici olarak ilgimi çekerdi.

    • Fine-tuning’in nihai maliyetine ilgi duyduğunu gösteriyor ve model boyutu, eğitim maliyeti gibi ayrıntılı bilgiler talep ediyor.
  • (-1,0,1) kodlamasının uygulanıp uygulanamayacağını merak ediyorum. Böyle bir model çıktığında, answer.ai’nin aynı tekniği kullanarak iki küçük GPU ile büyük bir modeli fine-tune edip edemeyeceğini ve ayrıca bir maliyet/fayda analizi görmek isterim.

    • Yeni bir kodlama tekniğinin teknik uygulanabilirliği ile maliyet-etkinlik analizine dair sorular ortaya koyuyor.
  • Bu tür araştırmalar, bireysel kullanıcıların LLM pazarında rekabet edebilmesini sağlamada çok faydalı. "Sıfırdan Bire" kitabındaki fikirlerle de örtüşen harika bir çalışma.

    • Araştırmanın bireysel kullanıcılar için faydalı olduğunu ve belirli bir sorunun çözümüne katkı sunduğunu olumlu değerlendiriyor.
  • NeurIPS verimlilik yarışmasında üst sıralardaki tüm katılımcıların QLoRA kullandığından bahsetmemişsiniz; bu, QLoRA’nın önemini ve faydasını gösteren iyi bir örnek.

    • QLoRA tekniğinin önemini ve faydasını vurguluyor; bu tekniğin yarışmada kabul gördüğünü belirtiyor.
  • "Açık kaynak" LLM’lerde gördüğüm en ilginç ve en yapıcı yaklaşım bu. Keşke akademi de bunu standart haline getirse.

    • Açık kaynak LLM’lere yönelik bu yaklaşımı çok yüksek değerlendiriyor ve akademinin de bunu standart olarak benimsemesini diliyor.
  • Metal üzerinde hızlı eğitimin daha erken gelmesini isterdim. Şu an için Mac Studio, büyük modellerde çıkarım için çok daha ucuz ve yeterince hızlı, ama eğitim çözümleri neredeyse hiç yok.

    • Metal platformunda hızlı eğitim beklentisini ve şu anda Mac Studio’nun verimliliğine dair görüşünü paylaşıyor.
  • Teknik yazımın kalitesi ve açıklığı mükemmel.

    • Teknik dokümantasyonun kalitesini ve açıklığını övüyor.
  • LLM (70B) ağırlıklarını kendi verimle yeniden eğitip eğitemeyeceğimi merak ediyorum.

    • Kişisel verilerle LLM’i yeniden eğitmenin mümkün olup olmadığına dair soru soruyor.
  • Sınırlı donanım bütçesiyle LLM fine-tune edenler için bu çığır açıcı bir gelişme.

    • Sınırlı donanım bütçesine sahip kullanıcılar için bu tekniğin büyük bir ilerleme olduğunu değerlendiriyor.
  • FSDP yerine neden DeepSpeed seçildiğini merak ediyorum.

    • FSDP ile DeepSpeed arasındaki tercihin nedenine dair merakını dile getiriyor.
  • Modeli fine-tune edebilir hale geldiğinizde, performans ayarı için kullandığınız araçlar olup olmadığını merak ediyorum.

    • Performans ayarı için kullanılan araçlara dair soru soruyor.
  • Seyrekleştirmeyi hiç denediniz mi? Bununla daha az RAM kullanarak fine-tune yapmak mümkün olabilir gibi geliyor.

    • Seyrekleştirme tekniğinin kullanımı ve bunun RAM tasarrufu sağlayarak fine-tuning’i mümkün kılabileceği yönünde görüş belirtiyor.