Connect with us

LoRa, QLoRA ve QA-LoRA: Büyük Dil Modellerinde Düşük Rütbeli Matris Faktörleştirmesi Yoluyla Etkin Uyum

Yapay Zekâ

LoRa, QLoRA ve QA-LoRA: Büyük Dil Modellerinde Düşük Rütbeli Matris Faktörleştirmesi Yoluyla Etkin Uyum

mm
LoRA : Low-Rank Adaptation of Large Language Models

Büyük Dil Modelleri (LLM’ler), insan benzeri metin anlama ve oluşturma yetenekleri sunarak benzersiz bir niş oluşturdular. LLM’lerin gücü, genellikle milyarlarca parametreye sahip olmalarına dayanabilir. Bu büyük ölçek, performanslarını sağlar, ancak aynı zamanda özellikle belirli görevler veya alanlar için model uyarlaması söz konusu olduğunda zorluklar doğurur. LLM’leri yönetmek için geleneksel yollar, tüm parametrelerin ayarlanması gibi, önemli bir hesaplama ve mali yük getirir, bu da gerçek dünya uygulamalarında yaygın olarak benimsenmelerini önemli bir engel oluşturur.

Önceki bir makalede, büyük dil modellerini (LLM’ler) özel gereksinimlere göre uyarlamak için ince ayarlamayı ele aldık. Talimat Tabanlı İnce Ayarlama, Tek Görev İnce Ayarlama ve Parametre Etkin İnce Ayarlama (PEFT) gibi çeşitli ince ayarlama metodolojilerini keşfettik, her biri LLM’leri farklı görevler için optimize etmeye yönelik benzersiz bir yaklaşımı vardır. Tartışmanın merkezinde, LLM’lerin omurgasını oluşturan transformer mimarisi ve ince ayarlama sırasında büyük miktarda parametreyi işleme ve depolama talepleri tarafından oluşturulan zorluklar yer aldı.

LLM Parametreleri

https://huggingface.co/blog/hf-bitsandbytes-integration

Üstteki resim, çeşitli büyük dil modellerinin, parametre sayılarına göre sıralanmış halini temsil etmektedir. Özellikle: PaLM, BLOOM vb.

Bu yıl, daha da büyük modellere yol açan ilerlemeler oldu. Ancak, bu devasa, açık kaynaklı modelleri standart sistemlerde özel optimizasyon teknikleri olmadan ayarlamak mümkün değildir.

Microsoft tarafından bu makalede tanıtılan Düşük Rütbeli Uyum (LoRA), bu zorlukları hafifletmeyi ve LLM’leri daha erişilebilir ve uyarlanabilir hale getirmeyi amaçlar.

LoRA’nın özü, tüm modeli yeniden eğitmeye dalmadan model uyarlaması yaklaşımında yatmaktadır. Geleneksel ince ayarlamayla karşılaştırıldığında, her parametrenin değiştirilebileceği bir durumda, LoRA daha akıllı bir yol izler. Önceden eğitilmiş model ağırlıklarını dondurur ve Transformer mimarisinin her katmanına eğitilebilir düşük rütbeli matrisler ekler. Bu yaklaşım, eğitilebilir parametre sayısını büyük ölçüde azaltır ve uyarlama işlemini daha verimli hale getirir.

LLM Uyarlama Stratejilerinin Evrimi

LLM ayarlamasının geçmişine bakıldığında, uygulayıcılar tarafından yıllar içinde kullanılan çeşitli stratejiler tespit edilebilir. Başlangıçta, önceden eğitilmiş modelleri ince ayarlamak, yani model parametrelerinin tamamının belirli bir görev için değiştirilmesi, ön plandaydı. Ancak modeller büyüdükçe ve karmaşıklık kazandıkça, bu yaklaşımın hesaplama talepleri de arttı.

Sonraki strateji, daha kısıtlı bir versiyonu olan alt küme ince ayarlaması olarak ortaya çıktı. Burada, modelin yalnızca bir alt kümesi parametreleri ince ayarlanır, bu da hesaplama yükünü belirli bir ölçüde azaltır. Alt küme ince ayarlaması, LLM’lerin büyüme hızıyla başa çıkmakta vẫn yetersizdi.

Uygulayıcılar, daha verimli yollar araştırdıkça, tam ince ayarlama, katı ancak ödüllü bir yaklaşım olarak ortaya çıktı.

LoRA’ya Giriş

Bir matrisin rütbesi, sütunları tarafından oluşturulan boyutlar hakkında bilgi verir ve benzersiz satır veya sütun sayısına bağlı olarak belirlenir.

  • Tam Rütbeli Matris: Rütbesi, satır ve sütun sayısının daha küçük olanına eşittir.
  • Düşük Rütbeli Matris: Hem satır hem de sütun sayısından önemli ölçüde daha küçük bir rütbeyle, daha az özellik yakalar.

Büyük modeller, dil modellerinde olduğu gibi, alanları hakkında geniş bir anlayışa sahiptir. Ancak, onları belirli görevler için ince ayarlamak genellikle bu anlayışların yalnızca küçük bir bölümünü vurgulamayı gerektirir. İşte burada LoRA parlar. Ağırlık ayarlarının gösterildiği matrisin düşük rütbeli olabileceğini, böylece daha az özellik yakalayabileceğini önerir.

LoRA, güncelleme matrisini iki küçük rütbeli matrise ayırarak rütbesini sınırlar. Böylece, tüm ağırlık matrisini değiştirmek yerine, yalnızca bir kısmını değiştirir ve ince ayarlama işlemini daha verimli hale getirir.

LoRA’yı Transformer’lere Uygulama

LoRA, nöral ağlardaki eğitim yükünü, belirli ağırlık matrislerine odaklanarak azaltmaya yardımcı olur. Transformer mimarisi altında, self-attention mekanizmasıyla ilişkili belirli ağırlık matrisleri vardır, yani Wq, Wk, Wv ve Wo, ayrıca Multi-Layer Perceptron (MLP) modülünde ikincisi.

Transformer Mimarisi

Transformer Mimarisi

 

Transformer Dikkat Başlıkları

Transformer Dikkat Başlıkları

LoRA’nın Matematiksel Açıklaması

LoRA’nın arkasındaki matematiği parçalayalım:

  1. Önceden Eğitilmiş Ağırlık Matrisi W0:
    • Önceden eğitilmiş bir ağırlık matrisi W0 boyutları d×k ile başlar. Bu, matrisin d satır ve k sütunlara sahip olduğu anlamına gelir.
  2. Düşük Rütbeli Faktörleştirme:
    • Tüm matrisi W0 doğrudan güncellemek yerine, bu yöntem düşük rütbeli faktörleştirme yaklaşımını önerir.
    • ΔW güncellemesi W0 iki matrisin ürünü olarak temsil edilebilir: B ve A.
      • B boyutları d×r
      • A boyutları r×k
    • Önemli nokta, rütbenin r hem d hem de k ‘den çok daha küçüktür, bu da daha hesaplamalı olarak verimli bir temsile izin verir.
  3. Eğitim:
    • Eğitim过程inde, W0 değişmez. Bu, ağırlıkların “dondurulduğu” anlamına gelir.
    • Öte yandan, A ve B eğitilebilir parametrelerdir. Bu, eğitim sırasında, matrislerin A ve B ‘ye ayarlamalar yapıldığını ve modelin performansını iyileştirmek için yapıldığını gösterir.
  4. Çarpma ve Toplama:
    • Hem W0 hem de güncelleme ΔW (ki bu, B ve A ‘nin ürünüdür) aynı girdiyle (yani x ile) çarpılır.
    • Bu çarpımların çıktıları daha sonra toplanır.
    • Bu işlem şu eşitlikte özetlenmiştir: h=W0x+ΔWx=W0x+BAx. Burada, h girdisi x ‘e uygulanan güncellemelerin ardından son çıktıyı temsil eder.

Kısaca, bu yöntem, büyük bir ağırlık matrisini güncellemenin daha verimli bir yolunu sağlar, bu da düşük rütbeli faktörleştirme kullanarak hesaplamalı verimlilik ve bellek kullanımı açısından faydalı olabilir.

LoRA Animasyonu

LoRA

Başlatma ve Ölçeklendirme:

Model eğitimi sırasında, parametrelerin nasıl başlatıldığı, öğrenme sürecinin verimliliği ve etkinliğini önemli ölçüde etkileyebilir. LoRA bağlamında, ağırlık matrisi güncellemesini A ve B ile yaparken:

  1. Matrislerin A ve B ‘nin Başlatılması:
    • Matris A: Bu matris, rastgele Gauss değerleriyle, yani normal dağılım ile başlatılır. Gauss başlatmanın ardındaki mantık, simetriyi kırmaktır: aynı katmandaki farklı nöronlar, farklı başlangıç ağırlıklarına sahip olduğunda farklı özellikler öğrenirler.
    • Matris B: Bu matris sıfırlarla başlatılır. Bunu yaparak, güncelleme ΔW=BA eğitim başlangıcında sıfırdır. Modelin davranışında başlangıçta ani bir değişiklik olmasını engeller ve B eğitim sırasında uygun değerleri öğrendikçe modelin dần uyum sağlaması sağlar.
  2. ΔW ‘den Çıkan Çıktının Ölçeklendirilmesi:
    • Güncelleme ΔW ‘nin ardından, çıktısı rα faktörü ile ölçeklendirilir, burada α bir sabittir. Ölçeklendirme, güncellemelerin büyüklüğünü kontrol eder.
    • Ölçeklendirme, özellikle rütbe r değiştiğinde önemlidir. Örneğin, daha fazla doğruluk için rütbe artırmaya (hesaplama maliyetine karşı) karar verirseniz, ölçeklendirme, birçok başka hiperparametreyi değiştirmenize gerek kalmadan modelin kararlılığını sağlar.

LoRA’nın Pratik Etkisi

LoRA, AI topluluğu tarafından LLM’leri belirli sanatsal stillere verimli bir şekilde uyarlamak için potansiyelini gösterdi. Bu, özellikle Greg Rutkowski ‘nin sanatsal stilinin taklit edilmesinde dikkat çekiciydi.

GPT-3 175B örneğinde olduğu gibi, her biri 175B parametreye sahip olan ayrı ayrı ince ayarlanmış modellerin bulunması oldukça maliyetlidir. Ancak LoRA ile, eğitilebilir parametreler 10.000 kat azaltılır ve GPU bellek kullanımı üçte birine iner.

LoRA'nın GPT-3 Ayarlaması Üzerindeki Etkisi

LoRA’nın GPT-3 İnce Ayarlaması Üzerindeki Etkisi

LoRA yöntemi, yalnızca LLM’leri daha erişilebilir kılmada önemli bir adım atmaz, aynı zamanda teorik ilerlemeleri ve AI alanındaki pratik uygulamaları arasındaki boşluğu köprüleme potansiyelini de vurgular. Hesaplama engellerini hafifleterek ve model uyarlaması işlemini daha verimli hale getirerek, LoRA, gerçek dünya senaryolarında LLM’lerin daha geniş kapsamlı benimsenmesi ve dağıtımı için kilit bir rol oynamaya hazırlanıyor.

QLoRA (Kuantize)

LoRA, depolama ihtiyaçlarını azaltmada önemli bir adımdır, ancak yine de eğitimi için güçlü bir GPU’ye ihtiyaç duyar. İşte burada QLoRA, yani Kuantize LoRA devreye girer, LoRA’yı Kuantizasyon ile birleştirerek daha akıllı bir yaklaşım sunar.

Kuantizasyon

Kuantizasyon

Normalde, ağırlık parametreleri 32-bit formatında (FP32) depolanır, yani her bir matris öğesi 32 bitlik bir alan kaplar. Bu öğelerin aynı bilginin yalnızca 8 veya hatta 4 bitlik bir alana sığdırılabileceğini hayal edin. Bu, QLoRA’nın temel fikridir. Kuantizasyon, sürekli ve sonsuz değerlerin daha küçük, sonlu bir değer kümesine eşlenmesi işlemidir. LLM’ler bağlamında, ağırlıkların daha yüksek hassasiyetli veri türlerinden daha düşük hassasiyetli veri türlerine dönüştürülmesi anlamına gelir.

LLM'de Kuantizasyon

LLM’de Kuantizasyon

QLoRA’nın daha basit bir açıklaması:

  1. İlk Kuantizasyon: İlk olarak, Büyük Dil Modeli (LLM) 4 bite indirgenir, bu da bellek izini önemli ölçüde azaltır.
  2. LoRA Eğitimi: Ardından, LoRA eğitimi standart 32-bit hassasiyetle (FP32) gerçekleştirilir.

QLoRA’dan sonra, ağırlıkların yüksek hassasiyetli bir formata geri dönüştürülmesi, doğruluk kaybına yol açabilir ve hızlandırma işlemi için optimize edilmeyebilir.

Önerilen bir çözüm, ağırlık matrisini daha küçük parçalara ayırmak ve her bir parça için kuantizasyon ve düşük rütbeli uyarlamayı ayrı ayrı uygulamaktır. QA-LoRA adlı yeni bir yöntem, kuantizasyon ve düşük rütbeli uyarlamaların faydalarını birleştirmeye çalışırken, işlemin verimli ve modelin istenen görevler için etkili kalmasını hedefler.

Sonuç

Bu makalede, LLM’lerin devasa parametreye sahip olmasının getirdiği zorluklara değindik. Geleneksel ince ayarlama uygulamaları ve bunlarla ilişkili hesaplama ve mali talepleri ele aldık. LoRA’nın özü, tüm modeli yeniden eğitmeye gerek kalmadan önceden eğitilmiş modelleri değiştirebilme yeteneğinde yatmaktadır, bu da eğitilebilir parametre sayısını azaltır ve uyarlama işlemini daha maliyet etkin hale getirir.

Ayrıca, Kuantize LoRA (QLoRA)’ya kısaca göz attık, bu da LoRA’yı kuantizasyonla birleştirerek modelin bellek izini azaltırken eğitim için gerekli hassasiyeti korur.

Matrix

Matrix

Bu stratejiler, LLM’leri belirli görevlere uyarlamayı ve ince ayarlama ve dağıtım süreçlerinin hesaplama ve depolama kaynakları açısından aşırı talepkar olmamasını dengelemeye yönelik olarak tasarlanmıştır.

Son beş yıldır Makine Öğrenimi ve Derin Öğrenme dünyasına kendimi daldırmış bulunuyorum. Tutkum ve uzmanlığım, özellikle AI/ML odaklı 50'den fazla çeşitli yazılım mühendisliği projesine katkıda bulunmama yol açtı. Süregelen meraklılığım ayrıca beni Doğal Dil İşleme'ye doğru çekti, bu alanda daha fazla keşfetmeye hevesliyim.