0Pricing
AI Prompt Engineering · Lekcja

Kiedy dostrajać model

Sygnały wskazujące na ograniczenia promptowania

Kiedy dostrajać model to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Dostrajanie wymaga dowodów

Dostrajanie jest uzasadnione tylko wtedy, gdy można wskazać dane pokazujące, że promptowanie osiągnęło granicę możliwości. Wyzwalaczem nigdy nie powinno być przeczucie — powinien nim być wydzielony zbiór ewaluacyjny, na którym najlepszy prompt, jaki można uczciwie skonstruować, zatrzymuje się poniżej wymaganego poziomu jakości mimo przejścia przez całą drabinę optymalizacji.

  • Dostrajanie wymienia elastyczność na spójność, niższy koszt pojedynczego wywołania i wyuczone zachowanie
  • Koszt obejmuje potok danych, infrastrukturę ewaluacyjną oraz ponowne dostrajanie przy zmianach modelu bazowego
  • Należy umieć wskazać konkretny problem, którego promptowanie nie potrafiło rozwiązać

Sygnał 1: Plateau promptu

Najwyraźniejszym sygnałem jest plateau na zamrożonym zbiorze ewaluacyjnym. Dodaje się przykłady, przeprowadza dekompozycję i dodaje weryfikatory — wynik przestaje się poprawiać, a błędy pozostają systematyczne, a nie losowe.

Systematyczne błędy resztkowe — model konsekwentnie nie radzi sobie z tą samą konstrukcją — oznaczają, że trudno wywołać dane zachowanie za pomocą instrukcji. Jest to problem, który można rozwiązać przez dostrajanie. Losowe, rozproszone błędy zazwyczaj oznaczają, że prompt lub dane wciąż zawierają szum — należy zamiast tego kontynuować iteracje.

# Track eval score vs prompt-iteration; flat tail = plateau
scores = [0.62, 0.71, 0.78, 0.79, 0.795, 0.796]  # diminishing returns
def plateaued(scores, window=3, eps=0.01):
    tail = scores[-window:]
    return (max(tail) - min(tail)) < eps

print(plateaued(scores))  # True -> prompting has stalled

Sygnał 2: Długość promptu staje się produktem

Gdy prompt rozrósł się do tysięcy tokenów przykładów i reguł tylko po to, aby utrzymać jakość, przy każdym wywołaniu ponosi się koszt opóźnienia i pieniędzy związany z symulowaniem wyuczonego zachowania.

Jeśli te tokeny opisują stabilne, powtarzalne zachowanie — stały format, spójny styl lub decyzję routingu — dostrajanie może wbudować je w wagi, zmniejszając prompt o rząd wielkości przy zachowaniu tego zachowania. Jest to destylacja promptu, czyli najczęstszy uzasadniony przypadek użycia dostrajania.

Sygnał 3: Twarda granica opóźnienia lub kosztu

Jeśli mniejszy, szybszy i tańszy model ma na wąskim zadaniu dorównać zachowaniu większego modelu, właściwym narzędziem jest dostrajanie. Destyluje się wyniki dużego modelu do małego dostrojonego modelu.

Jest to uzasadnione, gdy wolumen przekracza próg rentowności, limit opóźnienia jest napięty, a zadanie jest na tyle wąskie, że mały model może je opanować. Poza tymi warunkami narzut inżynieryjny nie jest wart ponoszenia.

# Distillation data: teacher (big model) labels -> student (small) trains
def make_distill_pair(prompt, teacher_fn):
    completion = teacher_fn(prompt)  # high-quality big-model output
    return {'messages': [
        {'role': 'user', 'content': prompt},
        {'role': 'assistant', 'content': completion},
    ]}

Sygnał 4: Specyficzny format lub styl

Niektóre wyniki są tak specyficzne, że ich opisanie kosztuje więcej niż pokazanie ich na dużą skalę: zastrzeżony DSL, firmowy styl pisania z tysiącem drobnych reguł czy sztywny schemat domenowy z niezliczonymi polami warunkowymi.

Gdy zgodność z formatem musi być niemal idealna, a reguł jest zbyt wiele, aby wyliczyć je w promptcie, setki przykładów uczą wzorca bardziej niezawodnie niż opis. Dostrajanie świetnie radzi sobie z internalizowaniem niejawnej struktury, która opiera się jawnym instrukcjom.

Sygnał 5: Zachowanie, któremu model się opiera

Czasami model sprzeciwia się instrukcji: wciąż dodaje zabronione zastrzeżenia, odmawia wykonania nieszkodliwego zadania albo pod obciążeniem wraca do domyślnego stylu. Jeśli stanowcze, powtarzane instrukcje wraz z przykładami nie potrafią niezawodnie stłumić tego zachowania, opór ten wynika z wcześniejszego założenia zapisanego w bazowych wagach.

Dostrajanie może nadpisać takie założenia. Najpierw należy jednak sprawdzić, czy opór jest rzeczywisty, a nie wynika z niejasnego promptu — błędne przypisanie przyczyny prowadzi do niepotrzebnych uruchomień trenowania.

Sygnały przeciwne: kiedy NIE dostrajać

Równie ważne jest rozpoznawanie fałszywych alarmów. Nie należy dostrajać, gdy:

  • problemem jest wiedza — należy ją pobrać; dostrajanie utrwala nieaktualne i stratne fakty
  • specyfikacja wciąż zmienia się co tydzień — konieczne byłoby ciągłe ponowne trenowanie
  • dostępnych jest mniej niż kilkaset czystych przykładów — sygnał jest zbyt słaby, a ryzyko przeuczenia wysokie
  • błędy są losowe, a nie systematyczne — dane lub prompt wciąż zawierają szum
  • brakuje harnessu ewaluacyjnego — nie można stwierdzić, czy dostrajanie w ogóle pomogło

Bramka gotowości danych

Jakość dostrajania jest ograniczona jakością danych. Przed podjęciem decyzji należy przejść przez bramkę gotowości: zgromadzić wystarczającą liczbę przykładów, zrównoważyć je pod kątem istotnych przypadków, zapewnić spójność etykiet i wyeliminować wyciek danych zawyżający wyniki ewaluacji.

Kilkuset starannie wyselekcjonowanych przykładów jest lepszych niż dziesiątki tysięcy zaszumionych. Jeśli etykiety są ze sobą niespójne, model nauczy się tego szumu.

def data_ready(examples, min_n=300, max_dupe_ratio=0.05):
    n = len(examples)
    texts = [e['messages'][0]['content'] for e in examples]
    dupe_ratio = 1 - (len(set(texts)) / n)
    return n >= min_n and dupe_ratio <= max_dupe_ratio

# Returns False until you have enough deduped, curated examples

Wybór metody dostrajania

Nie każde dostrajanie polega na trenowaniu wszystkich wag. Metodę należy dopasować do sygnału:

  • LoRA / adaptery — tanie, szybkie i odwracalne; idealne do destylacji stylu i formatu
  • Pełne dostrajanie — cięższe; przeznaczone do głębokich zmian zachowania w wydajnych modelach otwartych
  • Dostrajanie preferencji (w stylu DPO) — gdy dostępne są pary ocen dobry/zły zamiast referencyjnych odpowiedzi

Należy zacząć od najlżejszej metody, jakiej wymaga dany sygnał. Adaptery w stylu LoRA wystarczają w większości przypadków produkcyjnych przy ułamku kosztu.

Protokół przed rozpoczęciem

Przed uruchomieniem trenowania należy z góry ustalić eksperyment, aby jego wynik dało się zinterpretować:

  • Zamrozić wydzielony zbiór ewaluacyjny, którego model nigdy nie zobaczy podczas trenowania
  • Zapisać najlepszy wynik bazowy uzyskany wyłącznie za pomocą promptu na tym zbiorze
  • Z góry określić docelową poprawę i górny limit kosztu
  • Zdefiniować wycofanie zmian: jeśli dostrojony model nie przewyższy wyniku bazowego o zakładaną wartość, należy wdrożyć prompt

Bez ustalonego z góry wyniku bazowego i celu nie można dowieść, że dostrajanie było warte poniesionych kosztów.

Połączenie sygnałów

Sygnały należy połączyć w jedną bramkę decyzyjną. Dostrajanie można rozpocząć tylko wtedy, gdy promptowanie osiągnęło plateau, dane są gotowe, a problem dotyczy zachowania — nie wtedy, gdy pojedynczy sygnał pojawi się w izolacji.

def should_fine_tune(plateaued, data_ready, gap_is_behavior,
                     spec_stable, has_eval_harness):
    return all([
        plateaued,        # prompting stalled on frozen eval
        data_ready,       # enough clean, deduped examples
        gap_is_behavior,  # not a knowledge gap (else use RAG)
        spec_stable,      # task definition has settled
        has_eval_harness, # can measure the lift
    ])

print(should_fine_tune(True, True, True, True, True))  # True -> proceed

Szybki test

Na zamrożonym zbiorze ewaluacyjnym błędy modelu są losowe i rozproszone po wielu różnych typach danych wejściowych, a wynik wciąż wyraźnie się poprawia po zmianie przykładów. Co to wskazuje na temat gotowości do dostrajania?

Podsumowanie

Dostrajać należy na podstawie dowodów, nie intuicji. Uzasadnione sygnały to: rzeczywiste plateau z systematycznymi błędami, długość promptu, która stała się produktem, twarda granica opóźnienia lub kosztu, specyficzne formaty albo zachowanie, któremu model bazowy się opiera.

  • Sygnały przeciwne: luki w wiedzy, zmieniające się specyfikacje, zbyt mało danych, losowe błędy i brak harnessu ewaluacyjnego
  • Przed trenowaniem należy przejść przez bramkę gotowości danych — wynik jest ograniczony ich jakością
  • Należy wybrać najlżejszą metodę, której wymaga sygnał, zaczynając od LoRA
  • Z góry ustalić zamrożoną ewaluację, wynik bazowy, docelową poprawę i procedurę wycofania zmian
  • Kontynuować tylko wtedy, gdy jednocześnie występują plateau, gotowość danych i luka dotycząca zachowania

Często zadawane pytania

Czy lekcja „Kiedy dostrajać model” jest bezpłatna?

Tak — pełny tekst „Kiedy dostrajać model” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Kiedy dostrajać model”?

Sygnały wskazujące na ograniczenia promptowania Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?

Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Kiedy dostrajać model”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?

Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kiedy wystarczy promptowanie
  2. Kiedy dostrajać model
  3. Podejście hybrydowe: promptowanie i lekkie dostrajanie
  4. Ocena decyzji
← Powrót do AI Prompt Engineering