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),peftdla 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.