Weź dwa modele o zbliżonej liczbie parametrów, od dwóch różnych dostawców. Zadaj im to samo pytanie. Jeden odpowie w trzech zdaniach, drugi w trzech akapitach. Jeden odmówi, drugi nie. Jeden zacznie od zastrzeżeń, drugi od konkretu.
Różnica prawie nigdy nie leży w rozmiarze ani w architekturze — te bywają niemal identyczne. Leży w tym, co się z modelem robiło po tym, jak nauczył się języka.
Trzy etapy, trzy różne rzeczy
Trening dużego modelu to nie jeden proces, tylko trzy, następujące po sobie i robiące co innego.
Pierwszy uczy języka. Drugi uczy formy odpowiedzi. Trzeci uczy tego, które odpowiedzi są lepsze. Wiedza pochodzi niemal wyłącznie z pierwszego, a charakter — z dwóch pozostałych.
Pretraining: nauka języka
Pretraining to etap najdłuższy i najdroższy. Model przechodzi przez ogromny zbiór tekstów i za każdym razem próbuje przewidzieć kolejny token. Kiedy się myli, wagi są korygowane. Powtarzane biliony razy.
Nie ma tu żadnych etykiet, ocen ani przykładów „dobrej odpowiedzi”. Sygnałem uczącym jest sam tekst — model uczy się przez zgadywanie, co będzie dalej, i sprawdzanie, czy trafił.
Efektem jest model bazowy. Zna wzorce języka, ma w sobie mnóstwo faktów i potrafi dokończyć dowolny tekst. Nie ma natomiast żadnego nawyku bycia asystentem. Zapytany „Jaka jest stolica Polski?” równie chętnie odpowie, co dopisze kolejne pytania z listy — bo w danych treningowych pytania często występowały seriami. Nie odmawia niczego, nie zna formatu rozmowy i nie wie, że ma się zatrzymać.
To jest istotne, bo model bazowy pokazuje, co naprawdę pochodzi z wiedzy, a co z tresury.
SFT: nauka formy
Drugi etap to dostrajanie na przykładach. Model dostaje tysiące par: polecenie i odpowiedź, którą uznano za dobrą. Uczy się przewidywać taką odpowiedź po takim poleceniu — nadal tym samym mechanizmem przewidywania kolejnego tokenu, tylko na innym materiale.
Tu powstaje wszystko, co sprawia, że rozmowa z modelem w ogóle wygląda jak rozmowa. Format czatu. Zatrzymywanie się w odpowiednim momencie. Odnoszenie się do pytania zamiast jego kontynuowania. Struktura odpowiedzi.
Warto zauważyć, czego tu nie ma: nowej wiedzy o świecie. Kilka tysięcy przykładów to nic wobec skali pretrainingu. Ten etap kształtuje zachowanie, nie zawartość.
RLHF: nauka preferencji
Trzeci etap idzie dalej. Zamiast pokazywać modelowi jedną poprawną odpowiedź, pokazuje się kilka i pyta, która jest lepsza. Na zebranych ocenach trenuje się osobny model oceniający, a potem główny model jest dostrajany tak, żeby produkować odpowiedzi wysoko punktowane przez ten ocenianiacz.
To jest RLHF — uczenie ze wzmocnieniem z ludzkiego feedbacku. Istnieją warianty, w których oceniającym jest inny model zamiast człowieka, ale zasada pozostaje.
I to jest miejsce, w którym model dostaje charakter. Ton. Skłonność do zastrzeżeń. Granice, przy których odmawia. Długość odpowiedzi. To wszystko nie wyłoniło się samo — zostało wypracowane, bo ktoś oceniał jedne odpowiedzi wyżej niż drugie.
Za co się płaci
Tu warto być uczciwym, bo ten etap ma znane koszty uboczne.
Model uczy się tego, co oceniający lubili, a nie tego, co prawdziwe. Ludzie systematycznie wyżej oceniają odpowiedzi pewne siebie niż niepewne, dłuższe niż krótsze, zgadzające się z pytającym niż podważające jego założenie. Model dostrojony do takich preferencji przejmuje te skłonności — stąd bierze się tendencja do przytakiwania i do rozwlekłości, którą widać w praktycznie każdym dużym modelu.
To ma bezpośredni związek z halucynacjami. Odpowiedź „nie wiem” bywa oceniana gorzej niż odpowiedź konkretna, choć błędna — bo błąd nie zawsze jest widoczny dla oceniającego, a niepewność zawsze.
Zdolności czasem cierpią. Dostrajanie pod preferencje potrafi nieznacznie pogorszyć wyniki w zadaniach czysto rozumowych. To jeden z powodów, dla których część zastosowań badawczych wciąż sięga po modele bazowe.
Data odcięcia
Skoro wiedza pochodzi z pretrainingu, jest zamrożona w momencie zakończenia zbierania danych.
Model nie dowie się o niczym późniejszym — nie dlatego, że ktoś zapomniał go zaktualizować, tylko dlatego, że nowa informacja nie ma jak trafić do wag. Jedyna droga prowadzi przez kontekst: wyszukiwanie, RAG albo wklejenie wprost w prompcie.
Warto przy tym wiedzieć, że data odcięcia to nie ostra granica. Wydarzenia z ostatnich miesięcy przed odcięciem są w danych reprezentowane słabo, bo internet nie zdążył ich jeszcze opisać. Model potrafi więc „znać” coś powierzchownie i mylić się w szczegółach, mimo że formalnie mieści się to w zakresie jego wiedzy.
Fine-tuning nie dodaje wiedzy
To najkosztowniejsze nieporozumienie w tym temacie i warto je rozstrzygnąć wprost, bo pada w prawie każdej rozmowie o wdrożeniu.
Pytanie brzmi zwykle: „mamy tysiąc dokumentów firmowych, może wytrenujmy własny model?”. Odpowiedź w niemal wszystkich przypadkach brzmi: nie tędy.
Fine-tuning to ten sam mechanizm co SFT — dostrajanie na przykładach. Kształtuje formę: ton, format wyjścia, sposób odpowiadania, trzymanie się schematu. Robi to bardzo dobrze i jest właściwym narzędziem, gdy model ma pisać w waszym stylu albo zawsze zwracać strukturę w ustalonym kształcie.
Nie jest natomiast sposobem na wstrzyknięcie faktów. Wiedza wgrana w wagi jest rozmyta, niesprawdzalna i nieaktualizowalna — nie da się jej podejrzeć, nie da się jej poprawić bez ponownego treningu i nie da się wskazać źródła odpowiedzi. Do faktów służy kontekst, czyli RAG.
Reguła kciuka: jeśli problemem jest „model nie wie”, to RAG. Jeśli problemem jest „model wie, ale odpowiada nie tak jak chcemy”, to fine-tuning.
Co z tego wynika przy budowaniu
Zmiana modelu pod agentem wymaga ponownej ewaluacji. Skoro charakter pochodzi z etapów po pretrainingu, a te są u każdego dostawcy inne, ta sama instrukcja da inne zachowanie. Prompt dopracowany pod jeden model nie jest przenośny.
Aktualizacja modelu po stronie dostawcy też to zmienia. Nowa wersja przechodzi nowe dostrajanie. Agent, który działał, może zacząć zachowywać się inaczej bez jednej zmiany w twoim kodzie — to najczęstsza przyczyna cichej regresji i główny argument za monitoringiem po wdrożeniu.
Skład danych treningowych decyduje o polszczyźnie. Model trenowany głównie na angielskim będzie gorszy w polskim niezależnie od pozycji w ogólnych rankingach. To argument za testowaniem na własnych, polskich danych zamiast na benchmarkach.
Jak to sprawdzić u siebie
Najbardziej wymowne jest zestawienie modelu bazowego z jego dostrojoną wersją — tej samej rodziny, tego samego rozmiaru, różniących się wyłącznie tym, co działo się po pretrainingu.
from transformers import pipeline
prompt = "Jaka jest stolica Polski?"
for nazwa in ["Qwen/Qwen2.5-0.5B", "Qwen/Qwen2.5-0.5B-Instruct"]:
gen = pipeline("text-generation", model=nazwa)
wynik = gen(prompt, max_new_tokens=60, do_sample=False)[0]["generated_text"]
print(f"\n--- {nazwa} ---\n{wynik}")
Model bazowy zwykle nie odpowiada — kontynuuje. Dopisze kolejne pytania, zacznie listę, wpadnie w rytm quizu albo przejdzie do zupełnie innego tematu. Model dostrojony odpowie i się zatrzyma.
Oba wiedzą to samo. Różni je wyłącznie to, że jeden nauczył się, że po pytaniu powinna iść odpowiedź.
Jeśli masz mocniejszą maszynę, warto powtórzyć to na większej parze — kontrast bywa jeszcze wyraźniejszy. A jeśli chcesz zobaczyć skutki trzeciego etapu, poproś oba modele o coś, czego dostrojony powinien odmówić.
Co dalej
Wiemy już, skąd model ma wiedzę i charakter. Pozostaje pytanie, co się dzieje, gdy faktycznie odpowiada — bo między gotowym modelem a tekstem na ekranie stoi jeszcze jedna warstwa, i to ona decyduje, dlaczego ta sama odpowiedź nigdy nie wraca dwa razy.
O tym jest artykuł szósty: Inference — jak powstaje odpowiedź, token po tokenie.





















