ML Atlas

08 · LLM · 4 min czytania · aktualizacja

Na czym polega fine-tuning LLM i kiedy warto dostrajać model?

W skrócie

Dostrajanie to dalszy trening gotowego modelu na mniejszym, wyspecjalizowanym zbiorze. Zmienia zachowanie i styl modelu, ale słabo dodaje mu nową wiedzę.

Co to jest

Dostrajanie (ang. fine-tuning) to kontynuacja treningu wytrenowanego wcześniej modelu na nowym, zwykle znacznie mniejszym zbiorze danych, tak by lepiej wykonywał określone zadanie lub zachowywał się w określony sposób. Wagi startują z wartości z pretreningu, a nie z losowych, więc wystarczy od kilkuset do kilkudziesięciu tysięcy przykładów zamiast bilionów tokenów.

W świecie LLM najważniejszą odmianą jest dostrajanie na instrukcjach (instruction tuning, supervised fine-tuning, SFT): model uczy się na parach „polecenie → wzorcowa odpowiedź”. To ono zamienia model bazowy, który tylko kontynuuje tekst, w asystenta odpowiadającego na pytania. Dalej zwykle następuje uczenie z preferencji (RLHF, DPO).

Dostrajanie stosuje się też do wąskich zadań: klasyfikacji zgłoszeń, ekstrakcji pól z dokumentów, odpowiedzi w stałym formacie i stylu, pracy w specjalistycznym żargonie.

Mechanizm — dlaczego tak działa

Transfer wiedzy. Pretrening wyposaża model w ogólne reprezentacje języka i świata. Dostrajanie nie buduje ich od nowa, tylko przesuwa wagi w niewielkim stopniu, by te reprezentacje wykorzystać pod nowe zadanie. Dlatego mała porcja danych wystarcza — model nie uczy się języka, tylko tego, czego od niego chcemy.

Ta sama strata, inne dane. Technicznie SFT to wciąż przewidywanie następnego tokenu z entropią krzyżową. Różnica polega na danych i na tym, że stratę liczy się zwykle tylko na tokenach odpowiedzi, a nie polecenia — model ma się uczyć odpowiadać, a nie pisać pytania.

Dostrajanie zmienia zachowanie, nie wiedzę. Wiele obserwacji wskazuje, że wiedza modelu pochodzi głównie z pretreningu, a dostrajanie uczy formatu, tonu i tego, które umiejętności uruchamiać. Zhou i in. (2023) uzyskali dobrego asystenta po dostrojeniu na zaledwie tysiącu starannie dobranych przykładów. Próba „wgrania” nowych faktów przez dostrajanie bywa zawodna: model uczy się ich wolno i może zacząć pewniej halucynować. Do aktualnej, sprawdzalnej wiedzy lepiej nadaje się RAG.

Ryzyko zapominania. Agresywne dostrajanie wąskim zbiorem nadpisuje wcześniejsze umiejętności — to katastroficzne zapominanie. Model świetny w klasyfikacji zgłoszeń może gorzej pisać czy rozumować. Pomagają mały współczynnik uczenia, mało epok, mieszanie danych ogólnych z wyspecjalizowanymi i metody parametrooszczędne (LoRA), które zostawiają oryginalne wagi nietknięte.

Koszt pamięci. Pełne dostrajanie wymaga przechowywania nie tylko wag, ale też gradientów i stanu optymalizatora. Adam trzyma dla każdego parametru dwie dodatkowe średnie, a trening w mieszanej precyzji — dodatkową 32-bitową kopię wag. To sprawia, że trening zajmuje wielokrotnie więcej pamięci niż samo uruchomienie modelu.

Na przykładzie

Policzmy pamięć dla pełnego dostrajania modelu 7 mld parametrów Adamem w mieszanej precyzji. Według zestawienia Rajbhandariego i in. (2020) potrzeba 16 bajtów na parametr: 2 B na wagi fp16, 2 B na gradienty fp16 i 12 B na stan optymalizatora (32-bitowa kopia wag oraz dwie średnie Adama po 4 B). Daje to 7·10⁹ · 16 B = 112 GB — bez aktywacji, które dokładają kolejne gigabajty zależnie od długości sekwencji i rozmiaru batcha.

Dla porównania samo uruchomienie tego modelu w fp16 wymaga 7·10⁹ · 2 B = 14 GB. Pełne dostrajanie potrzebuje więc ośmiokrotnie więcej pamięci niż inferencja, czyli kilku dużych kart GPU. Dlatego w praktyce dominują metody takie jak LoRA i QLoRA, które trenują ułamek procenta parametrów i mieszczą się na jednej karcie. A że dostrojenie małego modelu bywa skuteczniejsze niż prompt dużego, pokazali Ouyang i in. (2022): oceniający woleli odpowiedzi InstructGPT z 1,3 mld parametrów od odpowiedzi 175-miliardowego GPT-3.

W praktyce

  • Zanim zaczniesz: sprawdź, czy dobry prompt z przykładami albo RAG nie wystarczą. Dostrajanie ma sens przy stałym zadaniu, dużym wolumenie i jasnym kryterium jakości.
  • Narzędzia: transformers (Trainer), trl (SFTTrainer), peft dla LoRA; dane w formacie czatu z szablonem zgodnym z modelem (tokenizer.apply_chat_template).
  • Typowe ustawienia SFT: 1–3 epoki, mały współczynnik uczenia (rzędu 10⁻⁵ dla pełnego dostrajania, 10⁻⁴ dla LoRA), rozgrzewka i harmonogram kosinusowy.
  • Jakość danych bije ilość: kilkaset czystych, spójnych przykładów zwykle daje więcej niż tysiące zaszumionych.
  • Zawsze miej zbiór walidacyjny z tego samego rozkładu i porównanie z modelem przed dostrojeniem — także na zadaniach ogólnych, by wykryć zapominanie.

Najczęstsze pytania

Fine-tuning czy RAG?
RAG do wiedzy: faktów, dokumentów, rzeczy, które się zmieniają i które trzeba cytować. Dostrajanie do zachowania: formatu, stylu, wąskiej umiejętności, krótszych promptów. Często łączy się oba podejścia.
Ile przykładów potrzeba do dostrojenia?
Do zmiany formatu i stylu często wystarcza kilkaset dobrych przykładów. Do trudniejszych zadań, np. specjalistycznej ekstrakcji, przydaje się kilka tysięcy. Liczy się różnorodność i spójność bardziej niż sama liczba.
Czy dostrajanie może pogorszyć model?
Tak. Może wywołać katastroficzne zapominanie, przeuczenie na małym zbiorze, a nawet osłabić zabezpieczenia wyuczone wcześniej. Dlatego ewaluacja przed i po dostrojeniu jest obowiązkowa.

Źródła

  • Howard J., Ruder S., 2018, „Universal Language Model Fine-tuning for Text Classification”, ACL 2018.
  • Wei J. i in., 2022, „Finetuned Language Models Are Zero-Shot Learners”, ICLR 2022.
  • Ouyang L. i in., 2022, „Training language models to follow instructions with human feedback”, NeurIPS 2022.
  • Zhou C. i in., 2023, „LIMA: Less Is More for Alignment”, NeurIPS 2023.
  • Rajbhandari S. i in., 2020, „ZeRO: Memory Optimizations Toward Training Trillion Parameter Models”, SC20.

Zobacz też