Coraz więcej firm trafia na tę samą sytuację: model frontier działa świetnie, ale w produkcji jest zbyt drogi lub zbyt wolny. Latencja 3–5 sekund jest nie do przyjęcia przy rekomendacjach inline w systemie MES. Koszty tysięcy wywołań dużego modelu API sumują się miesięcznie do kwot, których kontroler nie zaakceptuje. A wdrożenie na urządzeniu brzegowym z ograniczoną VRAM po prostu nie wchodzi w grę.
Właśnie tu wkracza destylacja modelu (knowledge distillation). To nie jest nowa technika — powstała w kontekście sieci klasyfikacyjnych ponad dekadę temu — jednak w erze dużych modeli językowych przeżywa renesans i stała się jednym z kluczowych narzędzi produkcyjnego wdrożenia. Ten artykuł wyjaśnia, jak destylacja działa, czym różni się od kwantyzacji, kiedy się opłaca i czego realistycznie można się po niej spodziewać.
Czym jest destylacja, a czym nie
Destylacja to transfer wiedzy z jednego modelu (nauczyciela) do drugiego, mniejszego (ucznia). Nauczyciel był trenowany długo i na dużej ilości danych — wykształcił zaawansowane wewnętrzne reprezentacje i zdolności, których nie da się bezpośrednio wydobyć z danych treningowych. Uczeń uczy się nie tylko z ostatecznych odpowiedzi, ale też z tego, *jak* nauczyciel rozumuje.
Ważne rozróżnienie, które w praktyce bywa mylone:
Destylacja ≠ kwantyzacja. Kwantyzacja to technika kompresji — reprezentujesz oryginalne wagi w niższej precyzji numerycznej (np. z FP16 do 4-bitowego integera przez format .gguf). Model pozostaje ten sam, tylko zajmuje mniej miejsca i działa szybciej przy inferencji, tracąc typowo ~1–3% jakości na benchmarkach. Kwantyzacja nie zmienia architektury ani liczby parametrów.
Destylacja zmienia jedno i drugie. Uczeń to inny model z mniejszą liczbą parametrów i potencjalnie inną architekturą. Celem nie jest skompresowanie nauczyciela, lecz przeniesienie jego zdolności do mniejszej struktury.
Destylacja ≠ dane syntetyczne. Gdy używasz modelu frontier do generowania przykładów treningowych dla mniejszego modelu, jest to tworzenie danych syntetycznych, nie klasyczna destylacja w technicznym sensie. W praktyce podejścia te się łączą, ale mechanizm jest inny — więcej na ten temat w artykule o danych syntetycznych do fine-tuningu.
Dwa podstawowe typy destylacji
Destylacja oparta na odpowiedziach (response-based)
Najprostsze podejście. Uczeń trenuje się na soft labels — są to pełne rozkłady prawdopodobieństwa produkowane przez nauczyciela na wyjściu (logity lub rozkłady softmax), a nie tylko twarda odpowiedź „prawidłowa/nieprawidłowa".
Dlaczego soft labels są cenniejsze od twardych? Gdy nauczyciel widzi pytanie o diagnozę problemu technicznego, jego rozkład wyjściowy może mówić: „60% prawdopodobieństwo A, 25% prawdopodobieństwo B, 15% prawdopodobieństwo C." Odzwierciedla to niepewność i zależności między opcjami. Twardy label to tylko „A." Uczeń trenując na soft labels otrzymuje gęstszy sygnał.
W praktyce dla LLM oznacza to, że uczeń widzi token po tokenie, jak nauczyciel rozkłada prawdopodobieństwa, i stara się naśladować te rozkłady — nie tylko odtwarzać końcowy tekst.
Destylacja oparta na cechach (feature-based)
Bardziej zaawansowane podejście. Uczeń stara się odtworzyć nie tylko wyjścia, ale też wewnętrzne stany modelu nauczyciela — aktywacje ukrytych warstw, wzorce uwagi (attention patterns), reprezentacje w przestrzeni embeddingów.
Zaleta: przenosi głębszą strukturę wiedzy. Wada: wymaga, by nauczyciel i uczeń mieli wystarczająco kompatybilną architekturę, co przy bardzo różnych rozmiarach komplikuje implementację. W praktyce destylacja oparta na cechach najczęściej stosowana jest przy trenowaniu modeli podobnej architektury, gdzie nauczyciel jest 2–4× większy.
Nowoczesne biblioteki łączą oba podejścia. Standardowa funkcja straty dla destylacji w TRL lub Axolotl zwykle obejmuje kombinację straty na logitach (dywergencja KL między rozkładami nauczyciela i ucznia) oraz straty na ground-truth labelach (klasyczna cross-entropia).
Kiedy destylacja się opłaca
Destylacja nie jest odpowiednia dla każdego przypadku. Widzieliśmy projekty, gdzie właściwy wybór podejścia od razu na początku oszczędzał miesiące pracy. Trzy sytuacje, w których destylacja wyraźnie wygrywa:
Latencja i wdrożenie brzegowe. Jeśli model musi działać lokalnie na urządzeniu z 4–8 GB VRAM — terminal przemysłowy, embedded controller, aplikacja mobilna — model frontier po prostu nie wchodzi w grę. Prawidłowo destylowany model wielkości 1B–4B jest w stanie na wąskiej domenie osiągnąć wyniki wystarczające dla danego przypadku użycia. Przykład: model językowy do klasyfikacji komunikatów o błędach z systemów SCADA nie musi mieć ogólnej wiedzy modelu 70B, ale musi być szybki i precyzyjny w tej konkretnej domenie.
Koszty przy dużej liczbie wywołań. Jeśli Twoja aplikacja wywołuje LLM tysiące lub dziesiątki tysięcy razy dziennie, różnica w cenie między wywołaniem frontier API a inferencją własnego modelu 7B jest rzędowa. Destylacja z drogiego frontieru jako nauczyciela do taniego w inferencji ucznia to tutaj standardowy wzorzec produkcyjny.
Środowiska regulowane lub air-gapped. Dane, które nie mogą opuścić Twojego perimetru, wymagają modelu lokalnego. Jeśli Twój ekspert domenowy to model frontier z cloud API (np. do adnotowania danych treningowych), destylacja przeniesie jego wiedzę do modelu, który możesz wdrożyć on-prem. Więcej o wymaganiach środowisk regulowanych w artykule On-prem LLM dla branż regulowanych.
Kiedy destylacja nie wystarcza: jeśli Twój przypadek użycia wymaga ogólnego rozumowania, złożonego multi-step reasoning lub pracy z długim kontekstem, mały uczeń nie dorówna dużemu modelowi niezależnie od jakości destylacji. Destylacja przenosi zdolności, ale nie czyni z ucznia innej architektury.
Realistyczne oczekiwania dotyczące jakości
To jest miejsce, gdzie widzimy największą rozbieżność między twierdzeniami marketingowymi a praktyką produkcyjną.
Co destylacja realistycznie osiągnie:
Dobrze destylowany uczeń na wąskiej domenie (dokumentacja techniczna, klasyfikacja, ekstrakcja danych strukturalnych) jest w stanie osiągnąć 85–95% jakości nauczyciela w tej konkretnej domenie, przy 5–20× mniejszym rozmiarze. DeepSeek opublikował na początku 2025 serię destylowanych modeli (w tym wersje o rozmiarze 1,5B–8B) ze swojego większego modelu reasoning, gdzie chain-of-thought reasoning udało się przenieść do znacznie mniejszych architektur z zachowaniem większości wydajności na zadaniach matematycznych i związanych z kodem.
Czego destylacja nie zachowa:
Ogólne zdolności nauczyciela przenoszone są słabo. Uczeń destylowany na dokumentację techniczną będzie gorzej pisał teksty marketingowe lub rozwiązywał dylematy etyczne. To cecha, nie błąd — specjalizacja jest zamierzona — ale trzeba to uwzględnić podczas projektowania systemu.
Długi kontekst i złożone rozumowanie to kolejny obszar, gdzie mały uczeń traci. Nauczyciel z kontekstem 1M tokenów przenosi tylko ułamek tej zdolności do ucznia z kontekstem 128K tokenów i mniejszą liczbą parametrów.
Praktyczna zasada: możesz destylować tak, by uczeń był rzędowo lepszy od bazowego modelu tej samości — ale nie możesz destylować tak, by uczeń był ogólnie tak samo dobry jak nauczyciel. Celem jest ukierunkowana doskonałość, nie ogólna równorzędność.
Relacja do fine-tuningu i danych syntetycznych
Destylacja, fine-tuning i dane syntetyczne to techniki komplementarne, nie alternatywne. Typowy pipeline produkcyjny wygląda tak:
- 1.Nauczyciel generuje dane treningowe — model frontier adnotuje, odpowiada i ocenia w Twojej domenie. To kombinacja destylacji (nauczyciel produkuje logity lub soft labels) i generowania danych syntetycznych (nauczyciel generuje teksty, które stają się przykładami treningowymi).
- 2.Uczeń trenuje się na tych danych — przez standardowy SFT (Supervised Fine-Tuning) lub z jawną funkcją straty destylacji, gdzie uczeń naśladuje rozkłady nauczyciela.
- 3.Opcjonalnie: alignment — DPO lub GRPO nad destylowanym uczniem, jeśli chcesz dostroić jego zachowanie zgodnie z preferencjami.
Ważny szczegół: jeśli nauczyciel generuje odpowiedzi, a uczeń trenuje się tylko na końcowych tekstach (bez dostępu do logitów), technicznie mówimy o treningu na danych syntetycznych, nie o destylacji w wąskim sensie. Wyniki mogą być podobne, ale mechanizm jest inny. Klasyczna destylacja z logitami zazwyczaj przenosi bogatszy sygnał.
Przy tworzeniu datasetu do destylacji obowiązują te same zasady co przy fine-tuningu ogólnie — więcej szczegółów w artykule Dataset do fine-tuningu — ile i jakiej jakości.
Praktyczne kroki do własnego destylowanego modelu
Jeśli chcesz wypróbować destylację w praktyce, taki pipeline działa dla większości domenowych przypadków użycia:
Krok 1 — Zdefiniuj domenę i zadanie. Im węższa domena, tym lepiej uczeń się nauczy. „Klasyfikacja kodów błędów obrabiarek CNC Fanuc" to lepszy zakres niż „dokumentacja przemysłowa."
Krok 2 — Przygotuj dane seed. Około 150–300 ręcznie zweryfikowanych przykładów (pytanie/odpowiedź, wejście/wyjście) z Twojej domeny. To jest fundament jakości — garbage in, garbage out obowiązuje tu podwójnie.
Krok 3 — Nauczyciel generuje rozszerzone dane. Uruchom model frontier na swoich przykładach seed, pozwól mu generować wariacje, odpowiadać na powiązane pytania, produkować wyjaśnienia chain-of-thought. Docelowy wolumen dla działającego SFT to typowo tysiące przykładów.
Krok 4 — Trening ucznia. Dla większości przypadków domenowych wystarczy standardowy SFT z Unsloth lub Axolotl na modelu o rozmiarze 1B–8B. Jeśli masz dostęp do logitów nauczyciela (model otwarty), dodaj funkcję straty destylacji (dywergencja KL) — TRL ma bezpośrednie wsparcie dla tego. Do produkcyjnego pipeline'u i wyboru metody polecam też przegląd SFT, DPO, GRPO — która metoda kiedy.
Krok 5 — Ewaluacja i porównanie. Mierz ucznia na holdout secie ze swojej domeny, porównaj z nauczycielem i z modelem bazowym bez destylacji. Interesuje Cię delta — o ile uczeń zbliżył się do nauczyciela względem baseline. Jeśli delta jest mniejsza niż 5–10% relatywnie, destylacja była udana.
Krok 6 — Wdrożenie. Destylowanego ucznia możesz skwantyzować (np. do formatu .gguf przez llama.cpp) dla dalszego zmniejszenia wymagań pamięciowych przy inferencji. vLLM lub Ollama obsługują serwowanie nawet dla małych zespołów bez infrastruktury DevOps.
Typowe błędy
Zbyt duży uczeń. Jeśli chcesz model mieszczący się na GPU 8 GB, nie zaczynaj od ucznia 13B. Destylacja nie przepisuje fizyki — mniejszy sprzęt wymaga mniejszego modelu.
Nauczyciel i uczeń z niekompatybilnych domen. Nauczyciel trenowany wyłącznie na angielskim kodzie będzie złym nauczycielem dla polskiego obsługi klienta. Nauczyciel musi być kompetentny w Twojej docelowej domenie — inaczej destylujemy złe zachowania.
Ignorowanie wyników na innych zadaniach. Destylacja może degradować zdolności ucznia na zadaniach spoza rozkładu treningowego. Jeśli Twój uczeń ma też inne zadania poza destylowaną domeną, zmierz je również. Katastroficzne zapominanie (catastrophic forgetting) jest realne także przy destylacji — nie tylko przy fine-tuningu.
Oczekiwanie, że mały uczeń osiągnie wydajność dużego we wszystkim. Najczęstsze błędne przekonanie. Destylacja to optymalizacja dla konkretnego wycinka zdolności, nie klonowanie nauczyciela.
Najczęstsze pytania
Czy destylacja to to samo co kwantyzacja?
Nie. Kwantyzacja kompresuje istniejący model przez obniżenie precyzji numerycznej wag — model pozostaje ten sam, tylko zajmuje mniej miejsca. Destylacja tworzy zupełnie nowy, mniejszy model, który trenuje się, by naśladować zachowanie większego. Oba podejścia są zazwyczaj łączone: najpierw destylujesz, potem kwantytujesz wynikowy model ucznia.
Ile danych potrzebuję do destylacji?
Zależy od przypadku użycia i od tego, czy używasz logitów nauczyciela, czy tylko jego wyjść (danych syntetycznych). Dla wąskiej destylacji domenowej przez SFT osiągalne wyniki są już przy tysiącach przykładów — jeśli są wysokiej jakości. Dla solidnego modelu produkcyjnego bez regresji licz na dziesiątki tysięcy przykładów. Danych seed wystarczy 150–300 ręcznie zweryfikowanych; resztę może wygenerować nauczyciel.
Czy mogę destylować z zamkniętego modelu API, do którego nie mam dostępu do logitów?
Tak, ale jest to niepełna destylacja — a właściwie trening na danych syntetycznych. Model frontier generuje odpowiedzi, Ty trenujesz ucznia na tych tekstach przez standardowy SFT. Wyniki mogą być dobre dla większości zadań domenowych, ale nie uzyskasz bogatszego sygnału z soft labels. Sprawdź przed użyciem warunki API konkretnego dostawcy — niektórzy wyraźnie zakazują trenowania na swoich wyjściach.
Kiedy lepiej destylować, a kiedy bezpośrednio fine-tunować?
Jeśli masz do dyspozycji dobry model bazowy wymaganego rozmiaru (np. Phi-4, Qwen3 4B, Gemma 3 4B) i masz wysokiej jakości dane domenowe, bezpośredni fine-tuning jest prostszy i szybszy. Destylacja wnosi wartość, gdy nauczyciel ma zdolności, których Twoje istniejące dane nie oddają — np. złożone rozumowanie, długi chain-of-thought lub niuansowaną niepewność w rozkładach.
Jakiego sprzętu potrzebuję do trenowania ucznia?
Tego samego co do standardowego LoRA lub QLoRA fine-tuningu modelu danego rozmiaru. Ucznia 1B–3B bez problemu trenujesz na RTX 3060 12 GB lub wyższej karcie. Uczeń 7B–8B z QLoRA działa na RTX 3090/4090. Trening jest zazwyczaj krótszy niż pełny pretraining — rzędowo godziny, nie dni.
*W MP Industrial Solutions pomagamy firmom przechodzić od obiecującego pilota do solidnego wdrożenia produkcyjnego — w tym w doborze właściwego modelu i techniki. Jeśli rozważasz, czy dla Twojego przypadku użycia lepsza będzie destylacja, bezpośredni fine-tuning, czy kombinacja z RAG — chętnie ocenimy konkretną sytuację.*
