XYZNOT

Makaleler · arXiv 2106.09685

LoRA: Büyük Dil Modellerinin Düşük Dereceli Uyarlaması (Low-Rank Adaptation of Large Language Models)

LoRA: Low-Rank Adaptation of Large Language Models

Yayımlanma cs.CLcs.AIcs.LG arXivPDF

Çeviri ve yapay zekâ ile oku

Üç satırda özet

  1. 🎯 GPT-3 175B gibi devasa dil modellerine tam ince ayar yapmak, alt görev başına milyarlarca parametrenin yeniden eğitilmesini ve depolanmasını gerektirerek ciddi depolama, VRAM ve dağıtım darboğazları yaratır.
  2. 🔧 Önceden eğitilmiş ağırlık matrislerini dondurur ve Transformer yoğun katmanlarına eğitilebilir düşük dereceli ayrıştırma matrisleri () ekler; çarpımı ile ölçeklendirir ve ek gecikme olmaksızın dağıtım sırasında birleştirmeye olanak tanır.
  3. 📈 GPT-3 175B için LoRA, eğitilebilir parametreleri 10.000 kat ve VRAM'i 3 kat (1,2 TB'tan 350 GB'a) azaltırken GLUE, WikiSQL ve SAMSum üzerinde tam ince ayara denk veya daha yüksek başarı gösterir.

Özet

Doğal dil işlemenin önemli bir paradigması, genel alan verileri üzerinde büyük ölçekli önceden eğitim ve ardından belirli görevlere veya alanlara uyarlamadan oluşur. Daha büyük modeller eğittikçe, tüm model parametrelerini yeniden eğiten tam ince ayar (full fine-tuning) uygulanabilirliğini yitirmektedir. GPT-3 175B örneğini ele alırsak; her biri 175B parametreye sahip ince ayarlı modellerin bağımsız kopyalarını devreye almak son derece maliyetlidir. Bu çalışmada, önceden eğitilmiş model ağırlıklarını donduran ve Transformer mimarisinin her katmanına eğitilebilir derece ayrıştırma matrisleri (rank decomposition matrices) ekleyerek alt görevler için eğitilebilir parametre sayısını büyük ölçüde azaltan Düşük Dereceli Uyarlama (Low-Rank Adaptation - LoRA) yöntemini öneriyoruz. Adam ile ince ayar yapılan GPT-3 175B ile karşılaştırıldığında LoRA, eğitilebilir parametre sayısını 10.000 kat, GPU bellek gereksinimini ise 3 kat azaltabilmektedir. LoRA; daha az eğitilebilir parametreye ve daha yüksek eğitim verimliliğine sahip olmasına ve bağdaştırıcıların (adapters) aksine ek çıkarım gecikmesi getirmemesine rağmen RoBERTa, DeBERTa, GPT-2 ve GPT-3 üzerinde model kalitesi bakımından tam ince ayara denk veya daha iyi performans sergiler. Ayrıca, dil modeli uyarlamasındaki derece eksikliğine (rank-deficiency) yönelik ampirik bir inceleme sunarak LoRA'nın etkinliğine ışık tutuyoruz. LoRA'nın PyTorch modelleriyle entegrasyonunu kolaylaştıran bir paket yayınlıyor; RoBERTa, DeBERTa ve GPT-2 için uygulamalarımızı ve model denetim noktalarımızı https://github.com/microsoft/LoRA adresinde paylaşıyoruz.

Orijinal özet (İngilizce)

An important paradigm of natural language processing consists of large-scale pre-training on general domain data and adaptation to particular tasks or domains. As we pre-train larger models, full fine-tuning, which retrains all model parameters, becomes less feasible. Using GPT-3 175B as an example -- deploying independent instances of fine-tuned models, each with 175B parameters, is prohibitively expensive. We propose Low-Rank Adaptation, or LoRA, which freezes the pre-trained model weights and injects trainable rank decomposition matrices into each layer of the Transformer architecture, greatly reducing the number of trainable parameters for downstream tasks. Compared to GPT-3 175B fine-tuned with Adam, LoRA can reduce the number of trainable parameters by 10,000 times and the GPU memory requirement by 3 times. LoRA performs on-par or better than fine-tuning in model quality on RoBERTa, DeBERTa, GPT-2, and GPT-3, despite having fewer trainable parameters, a higher training throughput, and, unlike adapters, no additional inference latency. We also provide an empirical investigation into rank-deficiency in language model adaptation, which sheds light on the efficacy of LoRA. We release a package that facilitates the integration of LoRA with PyTorch models and provide our implementations and model checkpoints for RoBERTa, DeBERTa, and GPT-2 at https://github.com/microsoft/LoRA.

Okuma rehberi

Problem ve motivasyon

Önceden eğitilmiş büyük ölçekli dil modellerini farklı alt uygulamalara uyarlamak, geleneksel olarak tam ince ayara (tüm parametrelerinin olarak güncellenmesine) dayanır. GPT-3 175B gibi devasa mimariler için 175 milyar parametreli modellerin bağımsız kopyalarını depolamak ve sunmak; depolama, GPU belleği ve G/Ç maliyeti açısından aşırı derecede pahalıdır. Önceki parametre verimli ayarlama teknikleri belirgin dezavantajlara sahiptir:

  • Seri Bağdaştırıcı Katmanları (Series Adapter Layers): Transformer bloklarına sıralı olarak darboğaz modülleri ekler. Bu ardışık işlemler paralelleştirilemediğinden belirgin bir çıkarım gecikmesi yaratır; tek GPU'lu, küçük yığınlı, çevrim içi sunum senaryolarında ileri geçişleri 'e kadar yavaşlatır.
  • Ön Ek / İstem Ayarlama (Prefix / Prompt Tuning): Katman aktivasyonlarının başına eklenen sürekli istem vektörlerini optimize eder. Bu yöntemlerin optimizasyonu zordur, istem uzunluğuyla monotonik olmayan bir şekilde ölçeklenir ve bağlam için kullanılabilecek dizi uzunluğu bütçesini tüketir.

LoRA, bu verimlilik-kalite ödünleşimini, alt görev transferi sırasında ağırlık uyarlama güncellemelerinin () düşük bir içsel dereceye (intrinsic rank) sahip olduğu hipotezine dayanarak çözer.

Temel fikirler

  • Düşük Dereceli Yeniden Parametreleştirme (Low-Rank Reparametrization): Dondurulmuş bir yoğun matrisi için uyarlama güncellemesi olarak parametrelendirilir; burada , ve derece şeklindedir.
  • Sıfır Ek Çıkarım Gecikmesi: Yeniden parametrelendirme doğrusal olduğundan, eğitilen düşük dereceli matrisler dağıtım aşamasında doğrudan önceden eğitilmiş ağırlıklarla birleştirilebilir (). Bu da tam ince ayara kıyasla özdeş bir çıkarım mimarisi ve sıfır gecikme maliyeti sağlar.
  • Çalışırken Değiştirilebilir (Hot-Swapping) Paylaşımlı Taban Modeli: Büyük dondurulmuş model GPU belleğinde statik kalır; görevleri değiştirmek yalnızca düşük dereceli ve matrislerinin takas edilmesini gerektirir ve depolamayı yüzlerce gigabayttan onlarca megabayta indirir.
  • Seçici Dikkat Uyarlaması (Selective Attention Adaptation): Derece ayrıştırmasını yalnızca öz-dikkat izdüşümlerine (özellikle sorgu ve değer ) uygulamak, ileri beslemeli MLP katmanlarını dondurulmuş bırakarak rekabetçi bir performans elde edilmesini sağlar.

Yöntem

üreten yoğun bir izdüşüm katmanı için LoRA, hesaplamayı şu şekilde değiştirir:

Temel uygulama ayrıntıları:

  1. Başlatma (Initialization): matrisi rastgele bir Gauss dağılımından başlatılır ve sıfır olarak başlatılır; böylece eğitimin başında olması sağlanır.
  2. Ölçekleme Faktörü: Güncelleme , sabit bir hiperparametre olan kullanılarak ile ölçeklenir. Adam ile optimize edilirken 'nın başlangıçtaki derecesine eşit ayarlanması, farklı değerleri denenirken öğrenme oranlarının yeniden ayarlanması ihtiyacını ortadan kaldırır.
  3. Dağıtımda Birleştirme (Deployment Merging): Üretim ortamında, uyarlanan ağırlık matrisi açıkça olarak somutlaştırılır. Görevler değiştirilirken, çıkarma işlemiyle geri yüklenir () ve yeni bağdaştırıcı ağırlıklarıyla birleştirilir ().
  4. Hedef Katmanlar: Herhangi bir yoğun katmana uygulanabilir olsa da deneyler temel olarak Transformer dikkat izdüşümlerine () odaklanır. ve katmanlarına ile LoRA uygulamak en iyi alt görev verimliliğini sağlar.

Sonuçlar

  • GPT-3 175B: LoRA, eğitilebilir parametreleri 175.255,8M'den 4,7M'ye ( veya ) ya da 37,7M'ye () düşürerek denetim noktası boyutunu 350 GB'tan 35 MB'a (10.000 kat azalma) ve eğitim VRAM'ini 1,2 TB'tan 350 GB'a indirir. Eğitim işleme kapasitesi (throughput) artar (V100 GPU başına 32,5'ten 43,1 token/sn'ye).
  • Alt Görev Doğruluğu (GPT-3):
    • WikiSQL mantıksal form doğrulama doğruluğu: Tam ince ayar ; LoRA (37,7M) elde eder.
    • MultiNLI eşleşen doğrulama doğruluğu: Tam ince ayar ; LoRA (4,7M) elde eder.
    • SAMSum diyalog özetleme: Tam ince ayar 52,0 / 28,0 / 44,5 ROUGE-1/2/L; LoRA (4,7M) ise 53,8 / 29,8 / 45,9 skorlarına ulaşır.
  • RoBERTa ve DeBERTa (GLUE Kıyaslaması): RoBERTa Large üzerinde LoRA, 355,0M yerine yalnızca 0,8M parametre kullanarak tam ince ayara denk bir performans sergiler ('a karşı ortalama skor). DeBERTa XXL (1,5B) üzerinde LoRA, 4,7M parametre ile GLUE'da ortalama skor alırken tam ince ayar (1.500,0M parametre) skor elde eder.
  • İçsel Derece Analizi: Alt uzay benzerlik analizi, ve için 'nin en üst tekil yönlerinin büyük ölçüde örtüştüğünü gösterir (1. boyut için normalize edilmiş benzerlik). Ayrıca , içinde var olan ancak güçlü biçimde vurgulanmayan yönleri güçlendirerek için amplifikasyon faktörü sergiler.

Kısıtlamalar ve açık sorular

  • Çok Görevli Yığınlama (Multi-Task Batching): Çıkarım gecikmesini ortadan kaldırmak için düşük dereceli ağırlıkları ile birleştirildiğinde, tek bir ileri geçişte birden çok görev için girdileri aynı anda yığınlamak (batching) kolay değildir.
  • Sezgisel Katman Seçimi: Mevcut uygulama, dikkat ve MLP katmanları genelinde hangi matrislerin uyarlanacağını belirlemek için ilkesel bir çerçeve yerine ampirik sezgisellere ( ve uyarlaması gibi) dayanmaktadır.
  • Uç Alan Kaymaları (Extreme Domain Shifts): Ön eğitim dağılımından büyük ölçüde farklılaşan alt görevler için (örneğin İngilizce bir LLM'in tamamen farklı bir hedef dile uyarlanması), düşük dereceli uyarlama, daha yüksek dereceli veya tam uyarlamaya kıyasla yetersiz kalabilir.

Temel terimler

Low-Rank Adaptation (LoRA)
Temel model ağırlıklarını donduran ve yoğun katmanlara paralel olarak düşük dereceli ayrıştırma matrislerini eğiten parametre açısından verimli bir ince ayar yöntemi.
Intrinsic Rank
Göreve özel transfer sırasında anlamlı parametre uyarlamasını yakalamak için gereken düşük efektif boyut veya tekil vektör sayısı.
Adapter Layers
Transformer bloklarına sıralı olarak eklenen, paralelleştirilemeyen ardışık hesaplamalara ve çıkarım gecikmesine neden olan harici darboğaz modülleri.
Prefix Tuning
Girdi token'larının veya katman gizli durumlarının başına eğitilebilir sürekli vektörler ekleyen ve kullanılabilir dizi bağlamını azaltan bir uyarlama stratejisi.
Weight Folding / Weight Merging
Çıkarım sırasında çalışma zamanı ek yükünü ortadan kaldırmak amacıyla düşük dereceli matrislerinin doğrudan önceden eğitilmiş ağırlık matrisine aritmetik olarak eklenmesi.
Grassmann Distance Subspace Similarity
Uyarlama güncellemelerinin ortonormal tekil vektör matrisleri arasındaki sütun uzayı örtüşmesini ölçen bir metrik: .
Feature Amplification Factor
'nin Frobenius normu ile 'nin 'nin tekil alt uzayına izdüşümü arasındaki oran; göreve özel yönlerin ne kadar güçlü vurgulandığını ölçer.

Sorular

LoRA, bağdaştırıcılara (adapters) kıyasla neden sıfır ek çıkarım gecikmesi getirir?

LoRA doğrusal bir işlem olduğundan (), düşük dereceli çarpım sunumdan önce doğrudan hesaplanıp ağırlığına eklenebilir (). Böylece çıkarım işlemi, bağdaştırıcı mimarilerinde gecikmeye yol açan ardışık darboğaz katmanları olmadan, standart matris çarpımı olarak çalışır.

LoRA hangi Transformer ağırlık matrislerine uygulanmalıdır?

GPT-3 üzerindeki deneyler, sabit bir parametre bütçesi verildiğinde hem sorgu () hem de değer () izdüşüm ağırlıklarını uyarlamanın en iyi performansı sağladığını göstermektedir. Birden fazla dikkat matrisini daha küçük bir dereceyle (ör. ) uyarlamak, tüm parametreleri daha yüksek dereceli tek bir matris türüne tahsis etmekten daha iyi sonuç verir.

Büyük dil modellerini uyarlamak için hangi $r$ derecesi yeterlidir?

Alt görevler için genellikle , veya gibi çok küçük bir derece yeterlidir. Alt uzay benzerlik analizi, küçük derecelerle öğrenilen en üst tekil vektörlerin, daha yüksek derecelerle (örneğin ) öğrenilenlerle belirgin biçimde örtüştüğünü; yüksek derecelerin ise çoğunlukla rastgele optimizasyon gürültüsünü yakaladığını ortaya koymaktadır.

LoRA düşük dereceli matrislerini nasıl başlatır?

matrisi rastgele bir Gauss dağılımı ile başlatılırken, matrisi sıfır olarak başlatılır. Bu durum eğitimin başında olmasını sağlar ve modelin önceden eğitilmiş ileri geçiş çıktısını değiştirmeden korur.

Bu sayfadaki açıklama yapay zekâ tarafından makaleden yazılmıştır ve hata içerebilir. Ayrıntılar için makaleyi okuyun.

Çeviri ve yapay zekâ ile oku