Wasz wybór

Powiązane artykuły

Fine-tuning modeli AI — czym jest dostrajanie i kiedy warto je stosować

Fine tuning AI to jedna z tych technik, które brzmią skomplikowanie, a po bliższym poznaniu okazują się bardzo konkretnym narzędziem z jasno określonymi przypadkami użycia. Chodzi o to, żeby wziąć model językowy wytrenowany na ogromnych zbiorach danych i nauczyć go czegoś bardziej specyficznego — konkretnego stylu pisania, dziedziny wiedzy, formatu odpowiedzi. Nie od zera, lecz na bazie gotowych fundamentów.

Zanim zdecydujemy, czy dostrajanie modelu jest właściwą drogą, warto rozumieć, czym dokładnie się różni od innych technik i kiedy realnie ma sens ekonomiczny. Odpowiedź nie jest tak oczywista, jak mogłoby się wydawać.

Czym jest fine-tuning i jak różni się od trenowania od zera

Fine-tuning co to właściwie znaczy w praktyce? Model językowy jak GPT-4 czy Llama 3 przeszedł pre-training na setkach miliardów tokenów tekstu z internetu, książek, kodu i innych źródeł. Ten etap zajął tygodnie na klastrach tysięcy GPU i pochłonął miliony dolarów. Fine-tuning to kolejny, znacznie krótszy etap — model „widzi” nowy, wyspecjalizowany zbiór danych i dostosowuje swoje wagi tak, żeby lepiej odpowiadał na pytania z tej domeny.

Czym jest fine-tuning i jak różni się od trenowania od zera

Transfer learning jako koncepcja leżąca u podstaw fine-tuningu mówi, że wiedza ogólna zdobyta w pre-trainingu nie ginie — model przenosi ją do nowego zadania i nadbudowuje nad nią wiedzę specjalistyczną. To jak z lekarzem, który po ukończeniu medycyny ogólnej specjalizuje się w kardiologii. Nie uczy się czytać ani pisać od nowa, korzysta z całego dotychczasowego aparatu poznawczego.

Trenowanie od zera wymagałoby zebrania miliardów przykładów, miesięcy obliczeń i budżetu, którego większość organizacji po prostu nie ma. Fine-tuning robi różnicę przy zbiorach rzędu kilku tysięcy przykładów i czasie mierzonym w godzinach. Granica między tymi podejściami jest wyraźna zarówno kosztowo, jak i technicznie.

Warto odróżnić też fine-tuning od instruction tuningu i RLHF. Instruction tuning uczy model odpowiadania na polecenia w naturalnym języku, RLHF (reinforcement learning from human feedback) kształtuje zachowanie modelu przez ludzkie oceny odpowiedzi. Fine-tuning to szerszy termin, który może obejmować oba te procesy, ale najczęściej rozumiemy go jako dostrajanie do konkretnego zbioru par pytanie-odpowiedź lub tekstu z danej domeny.

Metody efektywnego dostrajania — PEFT, LoRA i QLoRA

Klasyczny fine-tuning polega na aktualizacji wszystkich wag modelu. Przy modelu mającym 7 miliardów parametrów oznacza to ogromne zapotrzebowanie na pamięć GPU i czas obliczeń. PEFT, czyli Parameter-Efficient Fine-Tuning, zmienia to podejście — zamiast aktualizować wszystkie wagi, modyfikujemy tylko niewielki ich podzbiór lub dodajemy lekkie moduły uczące się.

Metody efektywnego dostrajania — PEFT, LoRA i QLoRA

LoRA (Low-Rank Adaptation) to najszerzej stosowana technika PEFT. Zamiast bezpośrednio modyfikować macierze wag modelu, dodaje się dwie mniejsze macierze, których iloczyn reprezentuje aktualizację. Jeśli oryginalna macierz ma wymiar 4096×4096, LoRA dodaje dwie macierze o wymiarach 4096×8 i 8×4096 — zamiast modyfikować ponad 16 milionów parametrów, uczymy się tylko 65 tysięcy. Parametr rank (zazwyczaj 4–64) kontroluje pojemność adaptacji: wyższy rank to większa elastyczność, ale też więcej pamięci.

QLoRA idzie o krok dalej. Kwantyzuje bazowy model do 4 bitów (zamiast standardowych 16 lub 32), co czterokrotnie redukuje zużycie pamięci GPU, a następnie trenuje adaptery LoRA w wyższej precyzji. W praktyce pozwala to przeprowadzić fine-tuning modelu 7B na karcie graficznej z 16 GB VRAM — czyli sprzęcie dostępnym dla indywidualnych deweloperów.

Porównanie tych podejść w liczbach:

MetodaParametrów do trenowaniaWymagania VRAM (model 7B)Czas treningu
Full fine-tuning100% (~7B)~80 GBGodziny–dni
LoRA (rank 16)<0,5% (~30M)~24 GB1–4 godziny
QLoRA (rank 16)<0,5% (~30M)~10–16 GB2–6 godzin

Dostrajanie modelu metodą LoRA lub QLoRA pozwala osiągnąć wyniki zbliżone do pełnego fine-tuningu przy ułamku kosztów obliczeniowych. W większości zastosowań komercyjnych właśnie QLoRA stała się domyślnym wyborem.

Ile realnie kosztuje fine-tuning AI — czas, dane i compute

Koszty fine-tuningu składają się z trzech elementów: przygotowania danych, obliczeniowego kosztu treningu i późniejszego serwowania modelu. Każdy z nich może zepsuć projekt, jeśli zostanie niedoszacowany.

Ile realnie kosztuje fine-tuning AI — czas, dane i compute

Przygotowanie danych pochłania zwykle 60–80% całego czasu projektu. Dobry zbiór treningowy to nie przypadkowe przykłady, lecz starannie dobrane pary input-output, które reprezentują pożądane zachowanie modelu. Dla zadania klasyfikacji dokumentów prawnych potrzeba minimum 500–2000 oznaczonych przykładów, dla generowania tekstów w konkretnym stylu — zazwyczaj 1000–5000. Poniżej tych wartości model może co prawda „zapamiętać” przykłady, ale słabo generalizuje na nowe dane.

  • Oznaczenie 1000 przykładów przez ekspertów domenowych: od 20 do 200 roboczogodzin zależnie od złożoności
  • Koszt treningu QLoRA modelu 7B na własnej infrastrukturze: 2–8 USD za godzinę na GPU A100 w chmurze
  • Fine-tuning GPT-3.5 przez API OpenAI: około 8 USD za milion tokenów treningowych (dane z 2024 roku)
  • Hosting fine-tuningowego modelu open source: od 150 USD miesięcznie za dedykowaną instancję GPU

Fine-tuning ChatGPT przez API OpenAI to opcja dla tych, którzy nie chcą zarządzać infrastrukturą. Interfejs jest prosty — przesyłamy plik JSONL z przykładami, uruchamiamy job i po kilku godzinach dostajemy endpoint do własnego modelu. Wadą jest brak kontroli nad architekturą i zależność od cen OpenAI. Zaletą — zero konfiguracji po stronie infrastruktury.

Realny projekt fine-tuningu od etapu zbierania danych do produkcji zajmuje zazwyczaj 2–6 tygodni. Najbardziej niedoszacowanym kosztem jest iteracja — rzadko kiedy pierwszy zbiór treningowy daje zadowalające wyniki i trzeba przeprowadzić kilka cykli ewaluacja-poprawa danych-retrenowanie.

Fine-tuning vs prompt engineering vs RAG — kiedy wybrać co

Fine-tuning vs prompt engineering to pytanie, które pojawia się przy każdym projekcie z modelami językowymi. Odpowiedź zależy od kilku zmiennych, które warto przeanalizować przed podjęciem decyzji.

Prompt engineering wystarczy, gdy model w swej bazowej formie już posiada wiedzę potrzebną do zadania, a wystarczy ją odpowiednio „wywołać”. Jeśli potrzebujemy podsumowań dokumentów, tłumaczeń, odpowiedzi na pytania z dostarczonym kontekstem — nawet rozbudowany prompt z kilkoma przykładami (few-shot) zazwyczaj rozwiązuje problem. Koszt: godziny pracy, zero compute. Ograniczenie: brak spójności zachowania, podatność na zmiany modelu przez dostawcę.

RAG (Retrieval-Augmented Generation) rozwiązuje inny problem niż fine-tuning. Gdy potrzebujemy, żeby model korzystał z aktualnych lub prywatnych dokumentów, których nie widział podczas treningu, RAG podaje mu te dokumenty w czasie rzeczywistym jako kontekst. Fine-tuning nie jest właściwym narzędziem do „wstrzykiwania faktów” — model może je zapamiętać, ale będzie je halucynował z mniejszą wiarygodnością niż przy retrieval.

Fine-tuning ma przewagę, gdy:

  • Potrzebujemy bardzo spójnego stylu lub formatu odpowiedzi, którego nie da się osiągnąć promptem
  • Model musi opanować specjalistyczne słownictwo lub konwencje notacji nieobecne w jego treningu
  • Wykonujemy miliony zapytań dziennie i krótszy prompt przekłada się na realne oszczędności
  • Zadanie wymaga zachowań trudno opisywalnych słownie, łatwych do pokazania na przykładach

Proste drzewo decyzyjne: czy model bazowy radzi sobie z zadaniem przy dobrym prompcie? Jeśli tak — prompt engineering. Czy problem dotyczy braku aktualnych danych? RAG. Czy problem to spójność stylu, format, specjalistyczna domena i mamy co najmniej 500 dobrych przykładów? Fine-tuning.

Praktyczny przykład: dostrajanie modelu open source na własnych danych

Przeprowadźmy przez konkretny scenariusz: firma ubezpieczeniowa chce dostroić model do automatycznej klasyfikacji i wstępnej analizy szkód na podstawie opisów klientów. Zbiór danych to 2000 historycznych zgłoszeń z etykietami kategorii i ważności.

Przygotowanie danych zaczynamy od ujednolicenia formatów — każdy przykład to JSON z polami instruction, input i output. Pole instruction definiuje zadanie („Sklasyfikuj zgłoszenie szkody i oceń pilność”), input to opis klienta, output to oczekiwana odpowiedź w określonym formacie. Zbiór dzielimy na treningowy (80%), walidacyjny (10%) i testowy (10%).

Do fine-tuningu wybieramy Mistral 7B lub Llama 3 8B — modele o otwartej licencji, dobrze dokumentowane, z szerokim wsparciem narzędziowym. Używamy biblioteki transformers i peft od Hugging Face z konfiguracją QLoRA: kwantyzacja 4-bit, rank LoRA równy 16, alfa 32. Trening na jednej karcie A100 40 GB w chmurze zajmuje około 3 godzin i kosztuje poniżej 30 USD.

Po treningu ewaluujemy model na zbiorze testowym. Miary jakości dobieramy do zadania: accuracy dla klasyfikacji kategorii, F1-score dla detekcji pilności. Jeśli wyniki są niesatysfakcjonujące, najczęstsze przyczyny to zbyt mało przykładów dla rzadkich kategorii, niespójne etykietowanie w danych lub zbyt niski rank LoRA.

Gotowy adapter LoRA waży zaledwie kilkadziesiąt megabajtów i ładujemy go na wierzch bazowego modelu przy starcie serwera. Latencja odpowiedzi w produkcji jest praktycznie identyczna jak dla modelu bazowego — adapter nie wydłuża inferencji. Model wdrażamy przez vLLM lub TGI (Text Generation Inference), które obsługują zarówno batching, jak i kwantyzację produkcyjną.

Cały projekt od danych do wdrożenia zajął trzy tygodnie, z czego tydzień pochłonęło oczyszczenie i relabelowanie danych po pierwszym, niezadowalającym cyklu treningowym. To dobra ilustracja ogólnej zasady: jakość danych decyduje o jakości modelu znacznie bardziej niż dobór hiperparametrów czy architektury.

Fine tuning AI nie jest srebrną kulą — ale w odpowiednim kontekście, z dobrymi danymi i realistycznym budżetem, pozwala uzyskać zachowanie modelu nieosiągalne żadną inną metodą. Organizacje, które to rozumieją, traktują dostrajanie modelu nie jako jednorazowy projekt, lecz jako ciągły proces: zbieranie danych z produkcji, regularne retrenowanie i ewaluacja stają się częścią cyklu życia produktu.

Natalia Grzybowska
Natalia Grzybowska
Junior SEO Specialist Natalia specjalizuje się w SEO, skupiając się na stabilnym wzroście widoczności stron w wynikach wyszukiwania. Z zaangażowaniem analizuje dane, optymalizuje treści i nieustannie szuka sposobów na poprawę pozycji w Google.
Popularne