Autor: Damian Siembor · Opublikowano 31 października 2026
Fine-tuning Bielika na własnych danych: ile to kosztuje i co dostajesz
Jak dostroić Bielika 11B na własnym JSONL: format danych, koszt pakietu, dwa prawdziwe przebiegi (wydźwięk recenzji i pytania egzaminacyjne), dane osobowe i granice metody.
Bielik 11B v3 Instruct to polski model otwarty, rozwijany przez społeczność SpeakLeash. W katalogu finetuna jest wyborem dla danych po polsku. Ten poradnik pokazuje, jak go dostroić na własnym pliku JSONL, ile to kosztuje, co dostajesz na końcu i kiedy lepiej tego nie robić. Liczby pochodzą z dwóch publicznych raportów, w których Bielik został dostrojony na danych polskich.
Do czego fine-tuning Bielika się nadaje
Fine-tuning uczy model, jak odpowiadać: jakim formatem, jakim tonem, z jaką długością, jedną etykietą z ustalonego zbioru. Nie uczy faktów z Twoich dokumentów. Dostrojony model nadal nie zna cennika z zeszłego miesiąca. Do faktów służy wyszukiwanie w dokumentach (RAG), opisane wporadniku o fine-tuningu i RAG (po angielsku).
Dobre zadania są wąskie i mają jedną poprawną postać odpowiedzi: klasyfikacja zgłoszeń, wydźwięk recenzji, wyciąganie pól z tekstu do JSON-a, przepisywanie na styl firmy. Zanim cokolwiek zapłacisz, uruchom 20 prawdziwych wejść na modelu bazowym z dobrym promptem i dwoma przykładami. Jeśli to wystarcza, fine-tuning nie jest Ci potrzebny.
Dane: JSONL, jeden przykład w wierszu
Plik to JSONL: jeden obiekt JSON na wiersz. Najogólniejsza forma to lista wiadomości, w której ostatnia jest od asystenta. Cały przykład to jedna linia pliku, bez łamania wiersza wewnątrz JSON-a. Poniższy wiersz napisałem na potrzeby tego poradnika. Nie pochodzi z opublikowanego zbioru:
{"messages": [{"role": "system", "content": "Oceniasz wydźwięk polskich recenzji. Odpowiadasz jednym słowem: pozytywna, negatywna, neutralna albo niejednoznaczna."}, {"role": "user", "content": "Recenzja:\nBateria padła po tygodniu, a obsługa nie odpowiedziała."}, {"role": "assistant", "content": "negatywna"}]}finetuna przyjmuje też krótsze formy, prompt i completion oraz instruction, input i output. Każdy wiersz jest sprawdzany w przeglądarce, zanim cokolwiek zostanie wysłane. Kilka zasad:
- Odpowiedzi w całym pliku muszą mieć ten sam format. Jeśli połowa ma JSON w bloku
```, a połowa nie, model nauczy się obu. - Pole „prompt systemowy" na stronie nowego joba trafia do Modelfile dla Ollamy i nie jest używane w treningu. Jeśli chcesz, żeby model się go nauczył, wpisz go w wiersze danych.
- Przykłady dłuższe niż 2048 tokenów są ucinane. Token to kawałek słowa, w języku angielskim średnio około 3/4 słowa.
- Usuń duplikaty sam. Zbiór walidacyjny to losowe 5% pliku (najwyżej 500 przykładów), odłożone poza trening, żeby sprawdzić na nich model. Bliska kopia w treningu zawyża wynik.
Dwa prawdziwe przebiegi
| Zadanie | Przykłady | Epoki | Tokeny treningowe | Czas GPU | Loss walidacyjny, baza → po treningu |
|---|---|---|---|---|---|
| Wydźwięk recenzji (PolEmo 2.0) | 2000 | 1 | 688,2 tys. | 11,6 min | 1,809 → 1,078 |
| Pytania egzaminacyjne PES/LEK | 1297 | 2 | 4,13 mln | 129,3 min | 1,038 → 0,439 |
Raporty są po angielsku. W raporcie o wydźwięku 19 z 20 recenzji spoza treningu jest po polsku, a jedna po angielsku (zbiór PolEmo ma kilka takich wpisów). Pytania w raporcie medycznym są po polsku, z pojedynczymi angielskimi terminami. W tabeli niżej epoka to jedno pełne przejście przez plik. Loss walidacyjny mówi, jak daleko odpowiedzi modelu są od Twoich na przykładach odłożonych poza trening (niżej znaczy lepiej).
Wydźwięk. Zbiór to 2000 recenzji, po 500 na każdą z czterech etykiet. Bielik odpowiada jednym słowem już bez treningu, gdy się go o to poprosi, więc to zadanie jest łatwe dla modelu bazowego. Na 20 recenzjach spoza treningu model bazowy trafił etykietę 15 razy, dostrojony 20. Pudła bazowego to recenzje neutralne i niejednoznaczne. Przy takiej próbie to test dymny, nie benchmark, ale pokazuje, na czym fine-tuning pomaga: na granicach między etykietami, które są specyficzne dla Twoich danych.
Egzaminy lekarskie. To przykład, że loss nie mówi wszystkiego. Loss spadł z 1,038 do 0,439, ale na 19 pytaniach spoza treningu ze znaną odpowiedzią bazowy Bielik wybrał właściwą literę 8 razy, a dostrojony 10. To dwie odpowiedzi więcej z dziewiętnastu, a nie dowód, że model nauczył się medycyny. Wyraźnie zmienił się styl: dostrojony model rozumuje tak jak zbiór, czyli najpierw po angielsku, potem po polsku omawia każdą opcję, a odpowiedzi ma długie. W 4 z 19 doszedł do limitu długości, zanim podał literę. Wniosek: model odtwarza język i wzorzec Twoich danych. Jeśli dane są częściowo po angielsku, odpowiedzi też będą.
Ile to kosztuje
Cena zależy od pakietu, czyli od liczby tokenów treningowych (tokeny zbioru razy liczba epok), a nie od minut GPU:
| Pakiet | Cena | Do | Zwykle gotowe |
|---|---|---|---|
| S | 5 USD | 20 mln tokenów | po kilku godzinach |
| M | 13 USD | 100 mln tokenów | po około dobie |
| L | 39 USD | 500 mln tokenów | po 2 do 3 dniach |
Ceny są w dolarach i zawierają VAT. Oba przebiegi powyżej mieszczą się w pakiecie S. Opcja Secure, czyli GPU w centrum danych, dodaje 50% (S wychodzi wtedy 7,50 USD). Płacisz po sprawdzeniu pliku. Jeśli zadanie padnie po naszej stronie, uruchamiamy je ponownie. Jeśli padnie drugi raz, oddajemy całą cenę. Jeśli się uda, a wynik rozczaruje, zwrotu nie ma.
Dane osobowe i poufne
To najczęstszy powód, dla którego polska firma nie powinna kliknąć „zleć" bez zastanowienia. Domyślne GPU Community to maszyny pojedynczych hostów w sieci RunPod. Według regulaminu na tym poziomie plik nie może zawierać danych osobowych, danych o zdrowiu ani finansowych, ani niczego objętego poufnością. Poziom Secure to GPU w centrum danych, dopuszcza dane osobowe i obejmuje go umowa powierzenia z art. 28 RODO, zapisana w sekcji 6 regulaminu (dostępnego po angielsku). Opcja „Keep the GPU in the EU" utrzymuje GPU w Unii i kosztuje tyle samo co zwykłe Secure. Pliki leżą na Cloudflare R2 z jurysdykcją UE, a zbiór i wyniki są usuwane 14 dni po dostarczeniu.
To nie jest porada prawna. Jeśli Twoje dane zawierają dane osobowe lub dane szczególnych kategorii, przeczytaj regulamin i porozmawiaj z osobą odpowiedzialną za ochronę danych, zanim zdecydujesz. Najbezpieczniej jest zanonimizować dane przed wysłaniem.
Uruchomienie wyniku
Dostajesz sześć plików, w tym dwa pliki GGUF dla Bielika: około 6,7 GB w q4_k_m i około 11,9 GB w q8_0. To kwantyzacje, czyli mniejsze i trochę mniej dokładne kopie modelu. Dostajesz też Modelfile i adapter LoRA (około 104 MB). W Ollamie wystarczą dwa polecenia w folderze z plikami:
ollama create bielik-moj -f Modelfile
ollama run bielik-mojOpis pliku Modelfile, wyboru między q4_k_m i q8_0 i diagnozowania dziwnych odpowiedzi znajdziesz w poradniku o GGUF i Ollamie (po angielsku). finetuna nie hostuje modelu, więc uruchamianie modelu jest po Twojej stronie.
Czego ten fine-tuning nie robi
- To jest QLoRA: adapter na modelu w 4 bitach, ze stałymi ustawieniami (r 16, alpha 32, tempo uczenia 0,0002). Nie ma pełnego fine-tuningu ani strojenia preferencji.
- Nie dodaje wiedzy, która się zmienia. Do tego jest RAG.
- Nie naprawi niespójnych danych. Jeśli dwie osoby w zespole napisałyby tę samą odpowiedź inaczej, model odziedziczy tę rozbieżność.
- Licencje: przed użyciem komercyjnym sprawdź licencję modelu bazowego i zbioru danych. Zbiory z raportów mają CC BY-SA 4.0 (PolEmo 2.0) i CC BY 4.0 (zbiór medyczny).
Raport medyczny jest do nauki, nie do porad medycznych. Dostrojony model nie nadaje się do podejmowania decyzji klinicznych.
Dowód: prawdziwe przebiegi
- Wydźwięk polskich recenzji na Bieliku 11B:Bielik 11B v3 Instruct, 2000 przykładów, 1 epoka, loss walidacyjny 1.809 → 1.078, 11.6 min GPU.Otwórz raport.
- Rozumowanie na polskich egzaminach lekarskich na Bieliku 11B:Bielik 11B v3 Instruct, 1297 przykładów, 2 epoki, loss walidacyjny 1.038 → 0.439, 129.3 min GPU.Otwórz raport.