PEFT (Parameter-Efficient Fine-Tuning) (PL)

From Systems analysis Wiki
Jump to navigation Jump to search

Parametrooszczędne dostrajanie (ang. Parameter-Efficient Fine-Tuning, PEFT) — to zbiór metod adaptacji dużych wstępnie wytrenowanych modeli, takich jak duże modele językowe (LLM), do specyficznych zadań przy minimalnych kosztach obliczeniowych i zasobowych. W przeciwieństwie do tradycyjnego pełnego dostrajania (full fine-tuning), które wymaga aktualizacji wszystkich parametrów modelu, metody PEFT koncentrują się na modyfikacji jedynie niewielkiej części wag (mniej niż 1–5% łącznej liczby), pozostawiając główną część modelu niezmienioną („zamrożoną\")[1].

Podejście to pozwala znacząco zmniejszyć wymagania dotyczące pamięci, przestrzeni dyskowej i czasu trenowania, czyniąc proces adaptacji potężnych modeli fundamentalnych bardziej dostępnym i odpornym na problem katastroficznego zapominania[2].

Problemy pełnego dostrajania

Tradycyjne pełne dostrajanie, podczas którego aktualizowane są wszystkie parametry modelu, napotyka szereg krytycznych problemów, które stały się katalizatorem dla opracowania PEFT:

  • Wysokie koszty obliczeniowe: Aktualizacja setek miliardów parametrów wymaga ogromnych mocy obliczeniowych (wysokowydajnych GPU/TPU) oraz dużej ilości pamięci wideo (VRAM), co sprawia, że proces jest kosztowny i niedostępny dla wielu badaczy.
  • Nieefektywność przechowywania: Dla każdego nowego zadania konieczne jest przechowywanie pełnej, wielogigabajtowej kopii modelu, co prowadzi do wykładniczego wzrostu wymagań dotyczących przestrzeni dyskowej.
  • Katastroficzne zapominanie (Catastrophic Forgetting): Model, adaptując się do nowych danych, „zapomina" ogólną wiedzę zdobytą na etapie wstępnego trenowania, co obniża jego wydajność na innych zadaniach.
  • Ryzyko przeuczenia (Overfitting): Na małych zbiorach danych modele z miliardami parametrów mają tendencję do „zapamiętywania" przykładów treningowych zamiast uczenia się uogólniających wzorców[2].

Taksonomia metod PEFT

Metody PEFT można sklasyfikować według sposobu, w jaki modyfikują parametry modelu. Istnieją trzy główne kategorie: addytywne, selektywne i reparametryzacyjne[3].

Metody addytywne

Metody te zamrażają wszystkie oryginalne wagi modelu i dodają nowe, niewielkie moduły treningowe.

  • Adaptery (Adapters): Najwcześniejsza metoda addytywna. Małe moduły neuronowe o architekturze \"wąskiego gardła\" są wstawiane między warstwy transformera. Trenowane są tylko wagi tych adapterów[4].
  • Metody oparte na \"miękkich\" promptach (Soft Prompts): Zamiast modyfikować wagi modelu, metody te dodają do danych wejściowych treningowe wektory („wirtualne tokeny"), które kierują zachowaniem modelu. Kluczowe warianty:
    • Prompt Tuning: Dodaje treningowe wektory tylko do wejściowych embeddingów.
    • Prefix-Tuning: Dodaje treningowe prefiksy wektorowe do ukrytych stanów na każdej warstwie mechanizmu uwagi, zapewniając bardziej precyzyjną kontrolę[5].
    • P-Tuning v2: Uogólnienie idei Prefix-Tuning, które stosuje treningowe prompty na wszystkich warstwach modelu, osiągając wydajność porównywalną z pełnym dostrajaniem[6].

Metody selektywne

Metody te nie dodają nowych parametrów, lecz wybierają i dostrajają niewielki podzbiór już istniejących.

  • BitFit: Ekstremalnie oszczędna metoda, która dostraja tylko wektory przesunięcia (bias terms) oraz parametry warstw normalizacji, aktualizując mniej niż 0,1% łącznej liczby parametrów.
  • Różnicowe przycinanie (Diff Pruning): Wykorzystuje treningową maskę do dynamicznego określania, które wagi mają być aktualizowane w trakcie trenowania[3].

Metody reparametryzacyjne

Kategoria ta opiera się na hipotezie, że zmiany wag podczas adaptacji modelu mają niski „wewnętrzny rząd". Zamiast aktualizować pełnowymiarowe macierze wag, metody te aktualizują ich niskorangowe reprezentacje.

  • LoRA (Low-Rank Adaptation): Najpopularniejsza metoda PEFT na dzień dzisiejszy. Zakłada, że aktualizację macierzy wag `ΔW` można aproksymować iloczynem dwóch niskorangowych macierzy: `ΔW = BA`. W procesie dostrajania oryginalna macierz `W` jest zamrażana, a trenowane są tylko `A` i `B`[7].
  • QLoRA: Łączy LoRA z technikami kwantyzacji w celu dalszego zmniejszenia wymagań pamięciowych, umożliwiając dostrajanie modeli z 65 mld parametrów na pojedynczym konsumenckim GPU[8].

Porównanie wydajności i zasobów

Metody PEFT pozwalają osiągać wydajność porównywalną z pełnym dostrajaniem przy radykalnym obniżeniu kosztów.

Porównanie wydajności i efektywności metod PEFT
Model Metoda Treningowe parametry (%) Wynik na benchmarku (Avg. Accuracy) Źródło
BERT-Large Pełne dostrajanie 100% 80.4 (GLUE) [4]
BERT-Large Adapters 3.6% 80.0 (GLUE) [4]
LLaMA-7B LoRA 0.83% 74.7% [9]
LLaMA-7B DoRA (wariant LoRA) 0.84% 78.1% [9]

Kluczowe zalety PEFT w zakresie oszczędności zasobów:

  • Pamięć GPU (VRAM): Dla modelu LLaMA 65B pełne dostrajanie teoretycznie wymaga >780 GB VRAM, podczas gdy QLoRA pozwala go dostrajać na GPU z <48 GB VRAM[8].
  • Przestrzeń dyskowa: Punkty kontrolne (checkpointy) zapisywane po PEFT zajmują megabajty, a nie gigabajty. Pozwala to przechowywać setki „adapterów\" dla różnych zadań w przestrzeni, którą zajęłby jeden w pełni dostrojony model.

Obszary zastosowań

Pierwotnie opracowane dla NLP, metody PEFT zostały z powodzeniem zaadaptowane do szerokiego zakresu zadań:

  • Widzenie komputerowe (CV) i modele multimodalne (VLM): Adaptacja modeli takich jak Vision Transformer (ViT) i Segment Anything Model (SAM) do zadań segmentacji obrazów, w tym w biomedycynie.
  • Generowanie i analiza kodu: Dostrajanie LLM do specyfiki konkretnych projektów programistycznych, wewnętrznych API lub baz kodu.
  • Modele generatywne: „Stylizacja" modeli generowania obrazów, takich jak Stable Diffusion, za pomocą adapterów LoRA (technika Dreambooth).
  • Synteza mowy: Adaptacja modeli do generowania mowy z określonym głosem, intonacją lub zabarwieniem emocjonalnym.

Odnośniki

  • Repozytorium biblioteki PEFT na GitHub
  • Oficjalna dokumentacja biblioteki PEFT od Hugging Face

Literatura

  • Hu, E.J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. arXiv:2305.14314.
  • Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. ICML 2019.
  • Li, X.L.; Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. arXiv:2101.00190.
  • Liu, X. et al. (2022). P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks. arXiv:2110.07602.
  • Ben Zaken, E.; Ravfogel, S.; Goldberg, Y. (2021). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-Based Masked Language Models. arXiv:2106.10199.
  • Guo, D.; Rush, A.M.; Kim, Y. (2020). Parameter-Efficient Transfer Learning with Diff Pruning. arXiv:2012.07463.
  • Jiang, Z. et al. (2024). MoRA: High-Rank Updating for Parameter-Efficient Fine-Tuning. arXiv:2405.12130.
  • Mao, K. et al. (2024). A Survey on LoRA of Large Language Models. arXiv:2407.11046.
  • Chen, S. et al. (2024). Parameter-Efficient Fine Tuning: A Comprehensive Analysis Across Applications. arXiv:2404.13506.
  • Zhang, J. et al. (2025). Parameter-Efficient Fine-Tuning for Foundation Models. arXiv:2501.13787.

Przypisy

  1. «Parameter-Efficient Fine-Tuning for Foundation Models». arXiv:2501.13787. [1]
  2. 2.0 2.1 «5 Problems Encountered Fine-Tuning LLMs with Solutions». Machine Learning Mastery. [2]
  3. 3.0 3.1 «PEFT: Parameter-Efficient Fine-Tuning Methods for LLMs». Hugging Face Blog. [3]
  4. 4.0 4.1 4.2 Houlsby, N., et al. «Parameter-Efficient Transfer Learning for NLP». Proceedings of the 36th International Conference on Machine Learning. [4]
  5. Li, X.L., Liang, P. «Prefix-Tuning: Optimizing Continuous Prompts for Generation». arXiv:2101.00190. [5]
  6. Liu, X., et al. «P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks». arXiv:2110.07602. [6]
  7. Hu, E.J., et al. «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685. [7]
  8. 8.0 8.1 Dettmers, T., et al. «QLoRA: Efficient Finetuning of Quantized LLMs». arXiv:2305.14314. [8]
  9. 9.0 9.1 «Parameter Efficient Fine Tuning: A Comprehensive Analysis Across Applications». arXiv:2404.13506. [9]