XYZNOT

Makalah · arXiv 2106.09685

LoRA: Low-Rank Adaptation of Large Language Models

Terbit cs.CLcs.AIcs.LG arXivPDF

Baca dengan terjemahan dan AI

Ringkasan tiga baris

  1. 🎯 Fine-tuning penuh pada model bahasa masif seperti GPT-3 175B membutuhkan pelatihan ulang dan penyimpanan miliaran parameter per tugas hilir, menciptakan kendala penyimpanan, VRAM, dan deployment yang sangat besar.
  2. 🔧 Membekukan matriks bobot pra-pelatihan dan menyisipkan matriks dekomposisi rank rendah () yang dapat dilatih ke dalam lapisan dense Transformer, menskalakan hasilnya dengan dan memungkinkan penggabungan saat deployment tanpa latensi tambahan.
  3. 📈 Untuk GPT-3 175B, LoRA memangkas parameter latih hingga 10.000x dan VRAM hingga 3x (dari 1,2TB menjadi 350GB) sambil menyamai atau mengungguli fine-tuning penuh pada GLUE, WikiSQL, dan SAMSum.

Abstrak

Paradigma penting dalam pemrosesan bahasa alami terdiri dari pra-pelatihan berskala besar pada data ranah umum dan adaptasi ke tugas atau ranah tertentu. Seiring dengan makin besarnya model yang kita latih sebelumnya, fine-tuning penuh, yang melatih ulang seluruh parameter model, menjadi semakin kurang layak dilakukan. Mengambil contoh GPT-3 175B -- menerapkan instans independen dari model hasil fine-tuning, masing-masing dengan 175 miliar parameter, membutuhkan biaya yang sangat tinggi. Kami mengusulkan Low-Rank Adaptation, atau LoRA, yang membekukan bobot model pra-pelatihan dan menyisipkan matriks dekomposisi rank yang dapat dilatih ke setiap lapisan arsitektur Transformer, sehingga secara signifikan mengurangi jumlah parameter yang dapat dilatih untuk tugas hilir. Dibandingkan dengan GPT-3 175B yang di-fine-tune menggunakan Adam, LoRA dapat mengurangi jumlah parameter yang dapat dilatih hingga 10.000 kali lipat dan kebutuhan memori GPU hingga 3 kali lipat. LoRA memiliki performa yang setara atau lebih baik daripada fine-tuning dalam hal kualitas model pada RoBERTa, DeBERTa, GPT-2, dan GPT-3, meskipun memiliki parameter latih yang lebih sedikit, throughput pelatihan yang lebih tinggi, dan, tidak seperti adapter, tanpa latensi inferensi tambahan. Kami juga menyajikan investigasi empiris mengenai defisiensi rank dalam adaptasi model bahasa, yang mengungkap efikasi dari LoRA. Kami merilis pustaka yang memfasilitasi integrasi LoRA dengan model PyTorch serta menyediakan implementasi dan checkpoint model kami untuk RoBERTa, DeBERTa, dan GPT-2 di https://github.com/microsoft/LoRA.

Abstrak asli (bahasa Inggris)

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.

Panduan membaca

Masalah dan motivasi

Menyesuaikan model bahasa pra-pelatihan berskala besar ke berbagai aplikasi hilir secara tradisional mengandalkan fine-tuning penuh (memperbarui seluruh parameter menjadi ). Untuk arsitektur masif seperti GPT-3 175B, menyimpan dan melayani salinan independen dari model berparameter 175B sangat mahal dari segi penyimpanan, memori GPU, dan beban I/O. Teknik penyesuaian parameter yang efisien sebelumnya menghadirkan kelemahan tersendiri:

  • Series Adapter Layers: Menyisipkan modul bottleneck secara sekuensial ke dalam blok Transformer. Karena operasi sekuensial ini tidak dapat diparalelkan, modul ini memicu latensi inferensi yang signifikan—memperlambat forward pass hingga dalam skenario serving online dengan GPU tunggal dan batch kecil.
  • Prefix / Prompt Tuning: Mengoptimalkan vektor prompt kontinu yang ditambahkan di awal aktivasi lapisan. Metode-metode ini sulit dioptimalkan, berskala secara non-monotonik terhadap panjang prompt, dan menghabiskan jatah panjang sekuens yang seharusnya tersedia untuk konteks.

LoRA mengatasi trade-off efisiensi-kualitas ini berdasarkan hipotesis bahwa pembaruan adaptasi bobot memiliki rank intrinsik yang rendah selama transfer ke tugas hilir.

Ide-ide utama

  • Reparametrisasi Rank Rendah: Untuk matriks dense yang dibekukan , parametrisasikan pembaruan adaptasi sebagai , di mana , , dan rank .
  • Nol Latensi Inferensi Tambahan: Karena reparametrisasi bersifat linear, matriks rank rendah yang telah dilatih dapat langsung digabungkan ke dalam bobot pra-pelatihan () pada saat deployment, menghasilkan arsitektur inferensi yang identik tanpa penalti latensi dibandingkan fine-tuning.
  • Model Dasar Bersama dengan Hot-Swapping: Model beku berukuran besar tetap statis di dalam memori GPU; pergantian tugas hanya memerlukan penggantian matriks rank rendah dan , yang secara drastis memangkas kebutuhan penyimpanan dari ratusan gigabita menjadi puluhan megabita.
  • Adaptasi Attention Selektif: Menerapkan dekomposisi rank secara eksklusif pada proyeksi self-attention (terutama query dan value ) mampu mencapai performa kompetitif sambil tetap membekukan lapisan feed-forward MLP.

Metode

Untuk lapisan proyeksi dense yang menghasilkan , LoRA memodifikasi komputasinya menjadi:

Detail implementasi utama:

  1. Inisialisasi: diinisialisasi dari distribusi Gaussian acak dan diinisialisasi ke nol, memastikan bahwa pada awal pelatihan.
  2. Faktor Penskalaan: Pembaruan diskalakan dengan , di mana adalah hiperparameter konstan. Saat mengoptimalkan dengan Adam, menetapkan sama dengan rank awal menghindari kebutuhan penyetelan ulang laju pembelajaran saat bereksperimen dengan berbagai nilai .
  3. Penggabungan Deployment: Di lingkungan produksi, matriks bobot yang telah diadaptasi dimaterialisasikan secara eksplisit sebagai . Saat berganti tugas, dipulihkan melalui pengurangan () dan digabungkan dengan bobot adapter yang baru ().
  4. Lapisan Target: Meskipun dapat diterapkan pada lapisan dense mana pun, eksperimen berfokus terutama pada proyeksi attention Transformer (). Menerapkan LoRA dengan pada dan menghasilkan efisiensi hilir yang optimal.

Hasil

  • GPT-3 175B: LoRA memangkas parameter latih dari 175.255,8M menjadi 4,7M ( atau ) atau 37,7M (), mengurangi ukuran checkpoint dari 350GB menjadi 35MB (penurunan 10.000x) dan VRAM pelatihan dari 1,2TB menjadi 350GB. Throughput pelatihan meningkat sebesar (dari 32,5 menjadi 43,1 token/detik per GPU V100).
  • Akurasi Hilir (GPT-3):
    • Akurasi validasi bentuk logis WikiSQL: Fine-tuning penuh mencapai ; LoRA (37,7M) mencapai .
    • Akurasi validasi matched MultiNLI: Fine-tuning penuh mencapai ; LoRA (4,7M) mencapai .
    • Peringkasan dialog SAMSum: Fine-tuning penuh mencatat skor 52,0 / 28,0 / 44,5 ROUGE-1/2/L; LoRA (4,7M) mencapai 53,8 / 29,8 / 45,9.
  • RoBERTa dan DeBERTa (Tolok Ukur GLUE): Pada RoBERTa Large, LoRA menyamai fine-tuning (skor rata-rata vs ) menggunakan 0,8M parameter vs. 355,0M. Pada DeBERTa XXL (1,5B), LoRA mencatat rata-rata pada GLUE dengan 4,7M parameter dibandingkan dengan untuk fine-tuning penuh (1.500,0M parameter).
  • Analisis Rank Intrinsik: Analisis kesamaan subruang mengungkapkan bahwa arah singular teratas dari untuk dan saling tumpang tindih secara signifikan (kesamaan ternormalisasi untuk dimensi 1). Selain itu, memperkuat arah yang ada tetapi tidak terlalu ditekankan dalam , menunjukkan faktor amplifikasi untuk .

Keterbatasan dan pertanyaan terbuka

  • Batching Multi-Tugas: Ketika bobot rank rendah digabungkan ke dalam guna menghilangkan latensi inferensi, melakukan batching input untuk beberapa tugas secara simultan dalam satu forward pass menjadi tidak mudah dilakukan.
  • Pemilihan Lapisan Heuristik: Praktik saat ini bergantung pada heuristik empiris (mengadaptasi dan ) daripada kerangka pemilihan berprinsip untuk menentukan matriks mana yang harus diadaptasi di seluruh lapisan attention dan MLP.
  • Pergeseran Ranah Ekstrem: Untuk tugas hilir yang sangat berbeda dari distribusi pra-pelatihan (seperti mengadaptasi LLM bahasa Inggris ke bahasa target yang sangat berbeda), adaptasi rank rendah mungkin terbukti tidak memadai dibandingkan dengan adaptasi rank lebih tinggi atau adaptasi penuh.

Istilah kunci

Low-Rank Adaptation (LoRA)
Metode fine-tuning yang efisien secara parameter yang membekukan bobot model dasar dan melatih matriks dekomposisi rank rendah secara paralel dengan lapisan dense.
Intrinsic Rank
Dimensionalitas efektif yang rendah atau jumlah vektor singular yang diperlukan untuk menangkap adaptasi parameter yang bermakna selama transfer tugas khusus.
Adapter Layers
Modul bottleneck eksternal yang disisipkan secara berurutan ke dalam blok Transformer, yang memperkenalkan komputasi sekuensial yang tidak dapat diparalelkan dan memicu latensi inferensi.
Prefix Tuning
Strategi adaptasi yang menambahkan vektor kontinu yang dapat dilatih di awal token masukan atau status tersembunyi lapisan, sehingga mengurangi konteks sekuens yang tersedia.
Weight Folding / Weight Merging
Penjumlahan aritmetika dari matriks rank rendah langsung ke dalam matriks bobot pra-pelatihan untuk menghilangkan overhead runtime selama inferensi.
Grassmann Distance Subspace Similarity
Metrik yang mengukur tumpang tindih rentang kolom antara matriks vektor singular ortonormal dari pembaruan adaptasi.
Feature Amplification Factor
Rasio antara norma Frobenius dari dan proyeksi pada subruang singular , yang mengukur seberapa kuat arah spesifik tugas ditekankan.

Pertanyaan

Mengapa LoRA tidak menghasilkan latensi inferensi tambahan dibandingkan adapter?

Karena LoRA bersifat linear (), hasil kali rank rendah dapat dihitung secara eksplisit dan ditambahkan ke dalam sebelum disajikan (). Inferensi kemudian menjalankan perkalian matriks standar tanpa lapisan bottleneck sekuensial yang menyebabkan latensi pada arsitektur adapter.

Matriks bobot Transformer mana yang sebaiknya diterapkan LoRA?

Eksperimen pada GPT-3 menunjukkan bahwa mengadaptasi bobot proyeksi query () dan value () sekaligus memberikan performa terbaik pada anggaran parameter tertentu. Mengadaptasi beberapa matriks attention dengan rank yang lebih kecil (misalnya, ) mengungguli pengalokasian seluruh parameter ke satu jenis matriks saja dengan rank yang lebih tinggi.

Berapa rank $r$ yang cukup untuk mengadaptasi model bahasa besar?

Rank yang sangat kecil seperti , , atau sering kali sudah cukup untuk tugas hilir. Analisis kesamaan subruang mengungkapkan bahwa vektor-vektor singular teratas yang dipelajari dengan rank kecil tumpang tindih secara signifikan dengan yang dipelajari menggunakan rank lebih tinggi (seperti ), sedangkan rank yang lebih tinggi sebagian besar hanya menangkap derau optimasi acak.

Bagaimana LoRA menginisialisasi matriks rank rendahnya?

Matriks diinisialisasi menggunakan distribusi Gaussian acak, sedangkan matriks diinisialisasi ke nol. Hal ini memastikan bahwa pada awal pelatihan, sehingga forward pass pra-pelatihan model tetap tidak berubah.

Ulasan di halaman ini ditulis oleh AI dari makalah dan mungkin mengandung kesalahan. Baca makalahnya untuk detail.

Baca dengan terjemahan dan AI