Fine-tuning (deep learning) (PL)

From Systems analysis Wiki
Jump to navigation Jump to search

Dostrajanie (ang. Fine-tuning), znane również jako strojenie modelu, to metoda uczenia transferowego w uczeniu maszynowym, w której parametry wstępnie wytrenowanego modelu (pre-trained model) są adaptowane do rozwiązywania nowego, specyficznego zadania. Zamiast trenować model od podstaw, co wymaga ogromnych ilości danych i zasobów obliczeniowych, dostrajanie pozwala wykorzystać wiedzę już zakodowaną w wagach modelu i „dostroić" ją do konkretnych potrzeb.

Podejście to stało się de facto standardem w dziedzinie głębokiego uczenia, szczególnie w pracy z dużymi modelami językowymi (LLM) oraz modelami widzenia komputerowego.

Koncepcja

Proces dostrajania można podzielić na dwa główne etapy:

1. Wstępne trenowanie (Pre-training): Model (np. BERT lub GPT) jest trenowany na bardzo dużym i ogólnym zbiorze danych (np. cały internet) z wykorzystaniem zadania samo-nadzorowanego (np. przewidywanie następnego słowa). Na tym etapie model uczy się ogólnych wzorców, składni, semantyki oraz wiedzy o świecie.

2. Dostrajanie (Fine-tuning): Wstępnie wytrenowany model jest używany jako podstawa, a jego wagi są doszkalane na małym, lecz specyficznym dla zadania docelowego oznaczonym zbiorze danych.

Kluczowa idea polega na tym, że wiedza zdobyta podczas wstępnego trenowania jest uniwersalna i może być z powodzeniem przenoszona do rozwiązywania wielu innych, bardziej wyspecjalizowanych zadań.

Proces dostrajania

Typowy proces dostrajania obejmuje następujące kroki:

1. Wybór wstępnie wytrenowanego modelu: Wybierany jest model, którego podstawowe możliwości odpowiadają zadaniu docelowemu (np. BERT dla zadań rozumienia tekstu, GPT dla generowania).

2. Adaptacja architektury: Do wstępnie wytrenowanego modelu dodawana jest nowa, „głowicowa" warstwa (head), specyficzna dla zadania docelowego. Na przykład:

  • Dla klasyfikacji tekstu dodawana jest prosta warstwa w pełni połączona z funkcją softmax.
  • Dla rozpoznawania nazwanych encji (NER) klasyfikator dodawany jest do wyjścia każdego tokenu.

3. Trenowanie na docelowym zbiorze danych: Cały model (lub jego część) jest trenowany na nowym, oznaczonym zbiorze danych. Na tym etapie wagi modelu, w tym wagi wstępnie wytrenowanych warstw, są aktualizowane za pomocą gradientowego zejścia w celu minimalizacji funkcji straty na nowym zadaniu.

4. Użycie niższego współczynnika uczenia: Podczas dostrajania zazwyczaj stosowany jest znacznie niższy współczynnik uczenia niż podczas wstępnego trenowania. Jest to konieczne, aby nie „zniszczyć" użytecznej wiedzy już zakodowanej w wagach modelu, lecz jedynie ostrożnie ją skorygować.

Typy dostrajania

Pełne dostrajanie (Full Fine-tuning)

  • Zasada: Aktualizowane są wszystkie parametry wstępnie wytrenowanego modelu wraz z nową warstwą „głowicową".
  • Zalety: Potencjalnie zapewnia najlepszą wydajność, ponieważ cały model adaptuje się do nowego zadania.
  • Wady: Wymaga znacznych zasobów obliczeniowych i pamięci, gdyż konieczne jest przechowywanie i aktualizowanie gradientów dla wszystkich parametrów. Istnieje ryzyko katastrofalnego zapominania, kiedy model „zapomina" ogólną wiedzę zdobytą podczas wstępnego trenowania.

Parametryczno-wydajne dostrajanie (Parameter-Efficient Fine-Tuning, PEFT)

Jest to rodzina metod mających na celu redukcję kosztów obliczeniowych podczas dostrajania. Główna idea polega na zamrożeniu większości parametrów wstępnie wytrenowanego modelu i trenowaniu jedynie niewielkiej liczby nowych lub wybranych istniejących parametrów.

  • Przykłady metod PEFT:
    • Adaptery (Adapters): Do architektury Transformera wstawiane są małe, dodatkowe warstwy-adaptery i trenowane są tylko one.
    • LoRA (Low-Rank Adaptation): Zamiast aktualizowania pełnych macierzy wag, LoRA trenuje ich niskostopniowe aktualizacje. Pozwala to zmniejszyć liczbę trenowanych parametrów tysiące razy.
    • Strojenie promptów (Prompt Tuning): Do danych wejściowych dodawane są trenowalne wektory-„prompty", które są dostrajane do rozwiązania zadania, podczas gdy sam model pozostaje zamrożony.
  • Zalety PEFT:
    • Wydajność: Znacząco zmniejsza wymagania dotyczące pamięci i obliczeń.
    • Modularność: Umożliwia łatwą adaptację jednego wstępnie wytrenowanego modelu do wielu zadań, przechowując jedynie niewielkie zestawy zaadaptowanych wag dla każdego z nich.

Dostrajanie na instrukcjach (Instruction Tuning)

Jest to specyficzny typ dostrajania, mający na celu poprawę zdolności LLM do podążania za instrukcjami w języku naturalnym.

  • Zasada działania: Model jest dostrajany na zbiorze danych składającym się z par „instrukcja — oczekiwane wyjście".
  • Cel: Poprawa zdolności generalizacji modelu na nowe, wcześniej niewidziane zadania, które mogą być opisane w formie instrukcji. Modele takie jak InstructGPT i FLAN-T5 są wyraźnymi przykładami tego podejścia.

Literatura

  • Howard, J.; Ruder, S. (2018). Universal Language Model Fine-tuning for Text Classification. arXiv:1801.06146.
  • Houlsby, N. et al. (2019). Parameter-Efficient Transfer Learning for NLP. arXiv:1902.00751.
  • Pfeiffer, J. et al. (2020). AdapterFusion: Non-Destructive Task Composition for Transfer Learning. arXiv:2005.00247.
  • Hu, E. J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models. arXiv:2106.09685.
  • Lester, B.; Al-Rfou, R.; Constant, N. (2021). The Power of Scale for Parameter-Efficient Prompt Tuning. arXiv:2104.08691.
  • Ben Zaken, A.; Goldberg, Y.; Ravfogel, S. (2022). BitFit: Simple Parameter-Efficient Fine-Tuning for Transformer-based Masked Language-Models. ACL 2022.
  • Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
  • Han, Z. et al. (2024). Parameter-Efficient Fine-Tuning for Large Models: A Comprehensive Survey. arXiv:2403.14608.
  • Bian, J. et al. (2025). A Survey on Parameter-Efficient Fine-Tuning for Foundation Models in Federated Learning. arXiv:2504.21099.
  • Li, X. et al. (2025). Revisiting Fine-Tuning: A Survey of Parameter-Efficient Techniques and Future Directions. Preprints.org.

Zobacz też

  • Duże modele językowe
  • BERT
  • GPT