XYZNOT

शोध पत्र · arXiv 2106.09685

LoRA: लार्ज लैंग्वेज मॉडल्स का लो-रैंक अडैप्टेशन (Low-Rank Adaptation)

LoRA: Low-Rank Adaptation of Large Language Models

प्रकाशित cs.CLcs.AIcs.LG arXivPDF

अनुवाद और AI के साथ पढ़ें

तीन पंक्तियों में सारांश

  1. 🎯 GPT-3 175B जैसे बड़े लैंग्वेज मॉडल्स की फुल फाइन-ट्यूनिंग के लिए प्रति डाउनस्ट्रीम कार्य अरबों पैरामीटर्स को री-ट्रेन और स्टोर करना पड़ता है, जिससे स्टोरेज, VRAM और डिप्लॉयमेंट में भारी बाधाएं उत्पन्न होती हैं।
  2. 🔧 यह प्री-ट्रेन्ड वेट मैट्रिसेस को फ्रीज करता है और Transformer की डेंस लेयर्स में ट्रेनेबल लो-रैंक डिकंपोज़िशन मैट्रिसेस () को इंजेक्ट करता है, प्रोडक्ट को से स्केल करता है और बिना किसी अतिरिक्त लेटेंसी के डिप्लॉयमेंट मर्जिंग को सक्षम बनाता है।
  3. 📈 GPT-3 175B के लिए, LoRA ट्रेनेबल पैरामीटर्स को 10,000 गुना और VRAM को 3 गुना (1.2TB से 350GB) तक कम करता है, जबकि GLUE, WikiSQL और SAMSum पर फुल फाइन-ट्यूनिंग के बराबर या उससे बेहतर प्रदर्शन करता है।

सार

नेचुरल लैंग्वेज प्रोसेसिंग का एक महत्वपूर्ण प्रतिमान सामान्य डोमेन डेटा पर बड़े पैमाने पर प्री-ट्रेनिंग और विशेष कार्यों या डोमेन के लिए अडैप्टेशन है। जैसे-जैसे हम बड़े मॉडल्स को प्री-ट्रेन करते हैं, फुल फाइन-ट्यूनिंग—जो सभी मॉडल पैरामीटर्स को फिर से ट्रेन करती है—कम व्यावहारिक हो जाती है। GPT-3 175B का उदाहरण लें तो प्रत्येक 175B पैरामीटर्स वाले फाइन-ट्यून किए गए मॉडल्स के स्वतंत्र इंस्टेंस डिप्लॉय करना अत्यधिक महंगा है। हम लो-रैंक अडैप्टेशन (Low-Rank Adaptation), या LoRA का प्रस्ताव करते हैं, जो प्री-ट्रेन्ड मॉडल वेट्स को फ्रीज करता है और Transformer आर्किटेक्चर की प्रत्येक लेयर में ट्रेनेबल रैंक डिकंपोज़िशन मैट्रिसेस को जोड़ता है, जिससे डाउनस्ट्रीम कार्यों के लिए ट्रेनेबल पैरामीटर्स की संख्या में भारी कमी आती है। Adam के साथ फाइन-ट्यून किए गए GPT-3 175B की तुलना में, LoRA ट्रेनेबल पैरामीटर्स की संख्या को 10,000 गुना और GPU मेमोरी आवश्यकता को 3 गुना तक कम कर सकता है। कम ट्रेनेबल पैरामीटर्स, उच्च ट्रेनिंग थ्रूपुट और एडेप्टर्स के विपरीत बिना किसी अतिरिक्त इन्फरेंस लेटेंसी के बावजूद, LoRA मॉडल की गुणवत्ता में RoBERTa, DeBERTa, GPT-2 और GPT-3 पर फाइन-ट्यूनिंग के बराबर या उससे बेहतर प्रदर्शन करता है। हम लैंग्वेज मॉडल अडैप्टेशन में रैंक-कमी (rank-deficiency) की एक अनुभवजन्य जांच भी प्रस्तुत करते हैं, जो LoRA की प्रभावकारिता पर प्रकाश डालती है। हम एक पैकेज जारी कर रहे हैं जो PyTorch मॉडल्स के साथ LoRA के एकीकरण को सुगम बनाता है और RoBERTa, DeBERTa, और GPT-2 के लिए हमारे इम्प्लीमेंटेशन और मॉडल चेकपॉइंट्स https://github.com/microsoft/LoRA पर उपलब्ध कराते हैं।

मूल सार (अंग्रेज़ी)

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.

पढ़ने की गाइड

समस्या और प्रेरणा

विविध डाउनस्ट्रीम ऍप्लिकेशन्स के लिए बड़े पैमाने पर प्री-ट्रेन्ड लैंग्वेज मॉडल्स को अनुकूलित करना पारंपरिक रूप से फुल फाइन-ट्यूनिंग (सभी पैरामीटर्स को में अपडेट करना) पर निर्भर करता है। GPT-3 175B जैसे विशाल आर्किटेक्चर के लिए, 175B-पैरामीटर मॉडल्स की स्वतंत्र प्रतियों को स्टोर और सर्व करना स्टोरेज, GPU मेमोरी और I/O ओवरहेड के मामले में अत्यधिक महंगा है। पिछली पैरामीटर-एफिशिएंट ट्यूनिंग तकनीकों की अपनी कमियां हैं:

  • सीरीज़ एडेप्टर लेयर्स (Series Adapter Layers): Transformer ब्लॉक्स में बॉटलनेक मॉड्यूल्स को क्रमिक रूप से सम्मिलित करते हैं। चूँकि इन अनुक्रमिक ऑपरेशन्स को समानांतर (parallelize) नहीं किया जा सकता, वे महत्वपूर्ण इन्फरेंस लेटेंसी लाते हैं—सिंगल-GPU, छोटे-बैच, ऑनलाइन सर्विंग व्यवस्थाओं में फॉरवर्ड पास को तक धीमा कर देते हैं।
  • प्रिफिक्स / प्रॉम्प्ट ट्यूनिंग (Prefix / Prompt Tuning): लेयर एक्टिवेशन्स से पहले जोड़े गए निरंतर प्रॉम्प्ट वैक्टर्स को ऑप्टिमाइज़ करते हैं। इन विधियों को ऑप्टिमाइज़ करना चुनौतीपूर्ण है, ये प्रॉम्प्ट की लंबाई के साथ गैर-मोनोटोनिक रूप से स्केल होते हैं, और उस सीक्वेंस लेंथ बजट का उपभोग करते हैं जो अन्यथा संदर्भ (context) के लिए उपलब्ध होता।

LoRA इस दक्षता-गुणवत्ता ट्रेड-ऑफ को इस परिकल्पना के आधार पर हल करता है कि डाउनस्ट्रीम ट्रांसफर के दौरान वेट अडैप्टेशन अपडेट्स का एक आंतरिक निम्न रैंक (low intrinsic rank) होता है।

मुख्य विचार

  • लो-रैंक रीपैरामीटराइजेशन (Low-Rank Reparametrization): एक फ्रीज्ड डेंस मैट्रिक्स के लिए, अडैप्टेशन अपडेट को के रूप में पैरामीटराइज़ किया जाता है, जहाँ , , और रैंक है।
  • शून्य अतिरिक्त इन्फरेंस लेटेंसी (Zero Added Inference Latency): चूँकि रीपैरामीटराइजेशन लीनियर है, ट्रेन्ड लो-रैंक मैट्रिसेस को डिप्लॉयमेंट के समय सीधे प्री-ट्रेन्ड वेट्स () में जोड़ा (fold) जा सकता है, जिससे फाइन-ट्यूनिंग की तुलना में समान इन्फरेंस आर्किटेक्चर और शून्य लेटेंसी पेनल्टी मिलती है।
  • हॉट-स्वैपिंग के साथ शेयर्ड बेस मॉडल: बड़ा फ्रीज्ड मॉडल GPU मेमोरी में स्थिर रहता है; कार्यों को बदलने के लिए केवल लो-रैंक मैट्रिसेस और को स्वैप करने की आवश्यकता होती है, जिससे स्टोरेज सैकड़ों गीगाबाइट से घटकर कुछ दसियों मेगाबाइट रह जाता है।
  • चयनात्मक अटेंशन अडैप्टेशन (Selective Attention Adaptation): विशेष रूप से सेल्फ-अटेंशन प्रोजेक्शन्स (मुख्य रूप से क्वेरी और वैल्यू ) पर रैंक डिकंपोज़िशन लागू करने से फीड-फॉरवर्ड MLP लेयर्स को फ्रीज रखते हुए भी प्रतिस्पर्धी प्रदर्शन प्राप्त होता है।

विधि

एक डेंस प्रोजेक्शन लेयर जो उत्पन्न करती है, उसके लिए LoRA गणना को इस प्रकार संशोधित करता है:

मुख्य कार्यान्वयन विवरण:

  1. आरंभीकरण (Initialization): को एक यादृच्छिक गॉसियन वितरण (random Gaussian distribution) से इनिशियलाइज़ किया जाता है और को शून्य पर इनिशियलाइज़ किया जाता है, जिससे ट्रेनिंग की शुरुआत में सुनिश्चित होता है।
  2. स्केलिंग फैक्टर (Scaling Factor): अपडेट को द्वारा स्केल किया जाता है, जहाँ एक स्थिर हाइपरपैरामीटर है। Adam के साथ ऑप्टिमाइज़ करते समय, को प्रारंभिक रैंक के बराबर सेट करने से के विभिन्न मानों के साथ प्रयोग करते समय लर्निंग रेट्स को दोबारा ट्यून करने से बचा जा सकता है।
  3. डिप्लॉयमेंट मर्जिंग (Deployment Merging): प्रोडक्शन में, अनुकूलित वेट मैट्रिक्स को स्पष्ट रूप से के रूप में साकार किया जाता है। कार्यों को बदलते समय, को घटाव () के माध्यम से पुनर्स्थापित किया जाता है और नए एडेप्टर वेट्स () के साथ मर्ज कर दिया जाता है।
  4. लक्षित लेयर्स (Target Layers): हालांकि यह किसी भी डेंस लेयर पर लागू हो सकता है, प्रयोग मुख्य रूप से Transformer अटेंशन प्रोजेक्शन्स () पर केंद्रित हैं। और पर के साथ LoRA लागू करने से इष्टतम डाउनस्ट्रीम दक्षता प्राप्त होती है।

परिणाम

  • GPT-3 175B: LoRA ट्रेनेबल पैरामीटर्स को 175,255.8M से घटाकर 4.7M ( या ) या 37.7M () कर देता है, जिससे चेकपॉइंट का आकार 350GB से घटकर 35MB (10,000 गुना कमी) और ट्रेनिंग VRAM 1.2TB से घटकर 350GB हो जाता है। ट्रेनिंग थ्रूपुट में की वृद्धि होती है (प्रति V100 GPU 32.5 से 43.1 टोकन/सेकंड)।
  • डाउनस्ट्रीम सटीकता (GPT-3):
    • WikiSQL लॉजिकल फॉर्म वैलिडेशन सटीकता: फुल फाइन-ट्यूनिंग प्राप्त करती है; LoRA (37.7M) प्राप्त करता है।
    • MultiNLI मैच्ड वैलिडेशन सटीकता: फुल फाइन-ट्यूनिंग प्राप्त करती है; LoRA (4.7M) प्राप्त करता है।
    • SAMSum डायलॉग समराइज़ेशन: फुल फाइन-ट्यूनिंग 52.0 / 28.0 / 44.5 ROUGE-1/2/L स्कोर करती है; LoRA (4.7M) 53.8 / 29.8 / 45.9 प्राप्त करता है।
  • RoBERTa और DeBERTa (GLUE बेंचमार्क): RoBERTa Large पर, LoRA 355.0M की तुलना में 0.8M पैरामीटर्स का उपयोग करके फाइन-ट्यूनिंग की बराबरी करता है ( बनाम औसत स्कोर)। DeBERTa XXL (1.5B) पर, LoRA 4.7M पैरामीटर्स के साथ GLUE पर औसत स्कोर करता है, जबकि फुल फाइन-ट्यूनिंग (1,500.0M पैरामीटर्स) के लिए यह स्कोर था।
  • इंट्रिन्सिक रैंक विश्लेषण: सबस्पेस सिमिलैरिटी विश्लेषण से पता चलता है कि और के लिए की शीर्ष सिंगुलर दिशाएं काफी हद तक ओवरलैप करती हैं (डायमेंशन 1 के लिए नॉर्मलाइज़्ड सिमिलैरिटी)। इसके अतिरिक्त, उन दिशाओं को बढ़ाता है जो में उपस्थित हैं लेकिन उन पर अधिक बल नहीं दिया गया है, जो के लिए एक प्रवर्धन कारक (amplification factor) प्रदर्शित करता है।

सीमाएं और खुले प्रश्न

  • मल्टी-टास्क बैचिंग (Multi-Task Batching): जब इन्फरेंस लेटेंसी को खत्म करने के लिए लो-रैंक वेट्स को में मर्ज किया जाता है, तो एक ही फॉरवर्ड पास में एक साथ कई कार्यों के लिए इनपुट्स को बैच करना सीधा या आसान नहीं होता है।
  • ह्यूरिस्टिक लेयर चयन: वर्तमान अभ्यास अटेंशन और MLP लेयर्स में किन मैट्रिसेस को अनुकूलित किया जाए, यह निर्धारित करने के लिए एक सैद्धांतिक चयन ढांचे के बजाय अनुभवजन्य ह्यूरिस्टिक्स ( और को अनुकूलित करना) पर निर्भर करता है।
  • अत्यधिक डोमेन बदलाव (Extreme Domain Shifts): उन डाउनस्ट्रीम कार्यों के लिए जो प्री-ट्रेनिंग वितरण से अत्यधिक भिन्न हैं (जैसे कि किसी अंग्रेजी LLM को एक पूरी तरह से अलग लक्षित भाषा के लिए अनुकूलित करना), उच्च-रैंक या पूर्ण अनुकूलन की तुलना में लो-रैंक अडैप्टेशन अपर्याप्त साबित हो सकता है।

मुख्य शब्द

Low-Rank Adaptation (LoRA)
एक पैरामीटर-कुशल फाइन-ट्यूनिंग विधि जो बेस मॉडल वेट्स को फ्रीज करती है और डेंस लेयर्स के समानांतर लो-रैंक डिकंपोज़िशन मैट्रिसेस को ट्रेन करती है।
Intrinsic Rank
कार्य-विशिष्ट ट्रांसफर के दौरान सार्थक पैरामीटर अडैप्टेशन को कैप्चर करने के लिए आवश्यक निम्न प्रभावी आयामीता (effective dimensionality) या सिंगुलर वेक्टर्स की संख्या।
Adapter Layers
Transformer ब्लॉक्स में क्रमिक रूप से जोड़े गए बाहरी बॉटलनेक मॉड्यूल्स, जो गैर-समानांतर अनुक्रमिक गणना और इन्फरेंस लेटेंसी लाते हैं।
Prefix Tuning
एक अडैप्टेशन रणनीति जो इनपुट टोकन या लेयर हिडन स्टेट्स से पहले निरंतर ट्रेनेबल वेक्टर्स को जोड़ती है, जिससे उपलब्ध संदर्भ लंबाई कम हो जाती है।
Weight Folding / Weight Merging
इन्फरेंस के दौरान रनटाइम ओवरहेड को खत्म करने के लिए प्री-ट्रेन्ड वेट मैट्रिक्स में सीधे लो-रैंक मैट्रिसेस का अंकगणितीय योग।
Grassmann Distance Subspace Similarity
अडैप्टेशन अपडेट्स के ऑर्थोनॉर्मल सिंगुलर वेक्टर मैट्रिसेस के बीच कॉलम स्पैन के ओवरलैप को मापने वाला एक मीट्रिक ।
Feature Amplification Factor
के फ्रोबेनियस नॉर्म और के सिंगुलर सबस्पेस पर के प्रोजेक्शन के बीच का अनुपात, जो यह मापता है कि कार्य-विशिष्ट दिशाओं पर कितना जोर दिया गया है।

प्रश्न

LoRA एडेप्टर्स की तुलना में शून्य अतिरिक्त इन्फरेंस लेटेंसी क्यों पेश करता है?

चूँकि LoRA लीनियर है (), सर्विंग से पहले लो-रैंक प्रोडक्ट को स्पष्ट रूप से परिकलित किया जा सकता है और में जोड़ा जा सकता है ()। इसके बाद इन्फरेंस बिना किसी अनुक्रमिक बॉटलनेक लेयर्स के मानक मैट्रिक्स गुणन निष्पादित करता है, जो एडेप्टर आर्किटेक्चर में लेटेंसी का कारण बनते हैं।

LoRA को किन Transformer वेट मैट्रिसेस पर लागू किया जाना चाहिए?

GPT-3 पर किए गए प्रयोग दर्शाते हैं कि एक निश्चित पैरामीटर बजट को देखते हुए क्वेरी () और वैल्यू () दोनों प्रोजेक्शन वेट्स को अनुकूलित करने से सर्वश्रेष्ठ प्रदर्शन प्राप्त होता है। एक छोटे रैंक (जैसे, ) के साथ कई अटेंशन मैट्रिसेस को अनुकूलित करना, उच्च रैंक वाले केवल एक प्रकार के मैट्रिक्स को सभी पैरामीटर्स आवंटित करने से बेहतर प्रदर्शन करता है।

बड़े लैंग्वेज मॉडल्स को अनुकूलित करने के लिए कौन सा रैंक $r$ पर्याप्त है?

डाउनस्ट्रीम कार्यों के लिए अक्सर , , या जैसा बहुत छोटा रैंक ही पर्याप्त होता है। सबस्पेस सिमिलैरिटी विश्लेषण से पता चलता है कि छोटे रैंक के साथ सीखे गए शीर्ष सिंगुलर वेक्टर्स काफी हद तक उच्च रैंक (जैसे कि ) के साथ सीखे गए वेक्टर्स के साथ ओवरलैप होते हैं, जबकि उच्च रैंक मुख्य रूप से रैंडम ऑप्टिमाइज़ेशन नॉइज़ को कैप्चर करते हैं।

LoRA अपने लो-रैंक मैट्रिसेस को कैसे इनिशियलाइज़ करता है?

मैट्रिक्स को एक यादृच्छिक गॉसियन वितरण का उपयोग करके इनिशियलाइज़ किया जाता है, जबकि मैट्रिक्स को शून्य पर इनिशियलाइज़ किया जाता है। यह सुनिश्चित करता है कि ट्रेनिंग की शुरुआत में रहे, जिससे मॉडल का प्री-ट्रेन्ड फॉरवर्ड पास अपरिवर्तित रहता है।

इस पृष्ठ की व्याख्या AI ने शोध पत्र से लिखी है और इसमें गलतियाँ हो सकती हैं। विवरण के लिए मूल शोध पत्र पढ़ें।

अनुवाद और AI के साथ पढ़ें