AI Engineering Academy · Lekcja

Kiedy fine-tuning przewyższa promptowanie

Wskaż przypadki użycia, w których fine-tuning przynosi większe korzyści niż prompt engineering: spójne przestrzeganie stylu, zastrzeżona wiedza domenowa, niższe koszty tokenów dzięki krótszym promptom oraz mniejsze opóźnienia.

Lekcja 1 z 413 kroki

Kiedy fine-tuning przewyższa promptowanie to bezpłatna lekcja AI Engineering Academy na CoddyKit. To lekcja 1 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 Engineering Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.

Kluczowy kompromis

Gdy potrzebuje Pan / potrzebuje Pani, aby LLM działał w określony sposób, ma Pan / ma Pani dwie podstawowe możliwości: prompt engineering (przekazywanie modelowi instrukcji podczas inferencji za pomocą starannie przygotowanych promptów) albo fine-tuning (uczenie modelu nowych zachowań na przykładach). Obie metody mogą zapewnić podobne wyniki w przypadku wielu zadań, ale znacznie różnią się kosztem, szybkością, elastycznością i maksymalną osiągalną jakością.

Kiedy promptowanie jest lepsze

Promptowanie jest niemal zawsze właściwym punktem wyjścia. Nie wymaga infrastruktury treningowej, pozwala uzyskać wyniki w ciągu kilku godzin, można je natychmiast aktualizować bez ponownego trenowania i dobrze sprawdza się w zadaniach, które model bazowy już obsługuje na odpowiednim poziomie. Proszę zacząć od promptowania w przypadku: zadań, w których GPT-4o lub Claude już daje akceptowalne wyniki po otrzymaniu jasnych instrukcji, szybko zmieniających się wymagań, zastosowań o małym wolumenie oraz sytuacji, w których dopiero poznaje Pan / poznaje Pani obszar problemu.

# Prompting is sufficient for most well-defined tasks
system_prompt = '''
You are a customer support agent for TechCorp. Your tone is friendly but professional.
Always:
1. Acknowledge the customer's issue in the first sentence
2. Provide step-by-step solutions with numbered lists
3. End with 'Is there anything else I can help you with?'
Never: reveal pricing, discuss competitors, or make promises about future features.
'''

# With clear instructions, GPT-4o handles this well - no fine-tuning needed
# Before investing in fine-tuning, prove prompting is insufficient

Spójność stylu i zgodność z formatem

Fine-tuning wygrywa, gdy potrzebny jest sztywno ujednolicony format wyników, którego promptowanie nie zapewnia niezawodnie. Jeśli aplikacja wymaga stuprocentowej zgodności z określonym schematem JSON, precyzyjnie ustrukturyzowanym formatem dokumentu albo bardzo specyficznym stylem pisania, różniącym się od naturalnych wyników modelu, fine-tuning na kilkuset przykładach może zapewnić niemal idealną spójność, której nie zagwarantuje nawet najstaranniej opracowany prompt.

# Problem: prompting gives 90% format compliance - 10% failures cause downstream errors
# Prompt approach (unreliable)
system = 'Always respond with JSON: {"category": "...", "priority": 1-5, "tags": [...]}'
# 1 in 10 responses adds explanation text, omits a field, or uses strings for priority

# Fine-tuned approach: train on 500 examples of perfect output
# Training example format:
train_example = {
    'messages': [
        {'role': 'system', 'content': 'Classify customer support tickets.'},
        {'role': 'user', 'content': 'My order is late and I need it for tomorrow.'},
        {'role': 'assistant', 'content': '{"category": "shipping", "priority": 4, "tags": ["late_delivery", "urgent"]}'}
    ]
}
# After fine-tuning: 99.5%+ format compliance with minimal system prompt

Własna wiedza domenowa

Fine-tuning jest właściwym wyborem, gdy model musi przyswoić wiedzę, której nie ma w publicznych danych treningowych: wewnętrzne konwencje programistyczne firmy, zastrzeżoną taksonomię klasyfikowania dokumentów, specjalistyczną terminologię prawniczą lub medyczną w niszowej dziedzinie albo określony sposób komunikacji i wytyczne stylistyczne marki. Tej wiedzy nie da się skutecznie przekazać za pomocą przykładów w promptach, ponieważ liczba przykładów przekracza pojemność okna kontekstowego.

# Example: Internal code style with dozens of company-specific conventions
# Too many rules to fit in a prompt effectively:

# Company conventions (partial list of 200+):
# - Use AppException instead of RuntimeError
# - Repositories are named FooRepository not FooRepo
# - Service methods use handle_verb_noun naming not do_action
# - Config values go through AppConfig.get(), never os.environ directly
# - ... 196 more conventions

# Prompting: you can include ~20 conventions before the model starts ignoring them
# Fine-tuning: train on 1000 examples of compliant vs. non-compliant code
# Result: model learns ALL conventions and applies them automatically

Obniżenie kosztu tokenów dzięki krótszym promptom

Ważnym argumentem ekonomicznym za fine-tuningiem jest kompresja promptu. Złożony prompt systemowy może zawierać 2000 tokenów. Jeśli wywołuje Pan / wywołuje Pani API 10 milionów razy dziennie, te 2000 tokenów kosztuje dziesiątki tysięcy dolarów miesięcznie. Model po fine-tuningu można sterować znacznie krótszym promptem (50–100 tokenów), ponieważ szczegółowe instrukcje są już zapisane w wagach modelu. Przy dużej skali może to obniżyć koszty tokenów wejściowych o 90% lub więcej.

COST_PER_1K_TOKENS_INPUT = 0.0050  # gpt-4o
DAILY_REQUESTS = 10_000_000

# Base model with detailed prompt
base_prompt_tokens = 2000
daily_input_tokens_base = DAILY_REQUESTS * base_prompt_tokens
daily_cost_base = (daily_input_tokens_base / 1000) * COST_PER_1K_TOKENS_INPUT

# Fine-tuned model with short prompt
fine_tuned_prompt_tokens = 50
daily_input_tokens_ft = DAILY_REQUESTS * fine_tuned_prompt_tokens
daily_cost_ft = (daily_input_tokens_ft / 1000) * COST_PER_1K_TOKENS_INPUT

print(f'Base model daily input cost: ${daily_cost_base:,.2f}')
print(f'Fine-tuned model daily input cost: ${daily_cost_ft:,.2f}')
print(f'Monthly savings: ${(daily_cost_base - daily_cost_ft) * 30:,.2f}')
# Base: $100,000/day. Fine-tuned: $2,500/day. Savings: ~$2.9M/month

Skrócenie opóźnienia

Modele po fine-tuningu mogą skrócić opóźnienie na dwa sposoby. Po pierwsze, krótsze prompty oznaczają, że model przetwarza mniej tokenów wejściowych, co bezpośrednio skraca czas do wygenerowania pierwszego tokena. Po drugie, modele po fine-tuningu często szybciej dochodzą do właściwego formatu (odpowiedź zawiera mniej tokenów, zanim przejdzie do właściwej odpowiedzi), co zmniejsza łączną liczbę tokenów wyjściowych i czas generowania. W aplikacjach wrażliwych na opóźnienia oba efekty sumują się i zapewniają odczuwalną poprawę.

# Latency comparison (approximate)

# Base model with 2000-token prompt:
# - Input tokens processed: 2000 + 50 (user query) = 2050
# - Response: often starts with 'Sure! Here is...' (5-10 unnecessary tokens)
# - TTFT: ~800ms (more tokens to process)

# Fine-tuned model with 50-token prompt:
# - Input tokens processed: 50 + 50 (user query) = 100
# - Response: starts directly with the answer (no preamble)
# - TTFT: ~100ms (few tokens to process)

# For classification tasks (short outputs), this is a 5-8x latency improvement
# For generation tasks, improvement is less dramatic but still significant

print('Fine-tuning trades upfront training cost for per-request latency+cost savings')

Minimalna ilość danych

Fine-tuning wymaga danych treningowych — i często jest to największa praktyczna przeszkoda. Ogólna zasada jest następująca: potrzeba co najmniej 50–100 przykładów wysokiej jakości, aby zauważyć istotną poprawę względem modelu bazowego, 500–1000 przykładów, aby uzyskać niezawodną zgodność ze stylem i formatem, oraz 1000–10 000 przykładów, aby model znacząco przyswoił wiedzę domenową. Przy mniej niż 50 przykładach promptowanie z użyciem tych samych przykładów w kontekście (few-shot) zwykle daje lepsze wyniki niż fine-tuning.

def estimate_fine_tuning_feasibility(num_examples: int, task_type: str) -> str:
    if num_examples < 50:
        return 'Insufficient data. Use few-shot prompting with these examples instead.'
    
    if task_type == 'format_adherence' and num_examples >= 100:
        return 'Fine-tuning recommended. Format consistency issues are hard to solve with prompting.'
    
    if task_type == 'style_matching' and num_examples >= 300:
        return 'Fine-tuning recommended. Consistent style requires enough examples to learn the distribution.'
    
    if task_type == 'domain_knowledge' and num_examples >= 500:
        return 'Fine-tuning recommended if knowledge is truly proprietary.'
    
    return 'Continue with advanced prompting (chain-of-thought, structured output) and revisit fine-tuning when you have more data.'

Ukryte koszty fine-tuningu

Fine-tuning wiąże się ze znaczącymi ukrytymi kosztami wykraczającymi poza opłaty za moc obliczeniową. Potrzebne są: infrastruktura do uruchamiania treningu (godziny pracy GPU lub zarządzana usługa), proces gromadzenia danych i kontroli ich jakości, ewaluacja sprawdzająca, czy model po fine-tuningu rzeczywiście poprawia docelową metrykę, pipeline wdrażania modelu niestandardowego oraz stały proces utrzymania i ponownego trenowania modelu po aktualizacji modelu bazowego lub zmianie wymagań. Koszty te są realne i należy je zestawić z korzyściami.

fine_tuning_total_cost = {
    'data_collection_and_QA': '$5,000-$50,000',  # human annotation or LLM-generated
    'training_compute': '$50-$5,000',             # depends on model size and data volume
    'evaluation_pipeline': '$500-$2,000',         # building eval harness
    'deployment_infra': '$200-$2,000/month',      # serving the custom model
    'maintenance': '$1,000-$5,000/year',          # retraining when things change
    'opportunity_cost': 'weeks to months',        # time to build vs. prompt iteration
}

# Compare to prompting costs:
prompting_costs = {
    'data_needed': None,  # no training data required
    'infra': '$0 (uses existing API)',
    'maintenance': 'update prompts when needed',
    'time_to_production': 'hours to days'
}

Aktualność wiedzy: RAG a fine-tuning

Fine-tuning nie może aktualizować wiedzy w czasie rzeczywistym. Wiedza modelu po fine-tuningu jest zamrożona w chwili trenowania. W zastosowaniach wymagających aktualnych informacji (bieżące wydarzenia, aktualne ceny, zmieniające się przepisy) RAG jest zawsze lepszym rozwiązaniem, ponieważ może pobierać świeże informacje w chwili zapytania. Fine-tuning sprawdza się w przypadku trwałej wiedzy, która rzadko się zmienia: stylu pisania firmy, taksonomii kategoryzowania produktów lub ustalonego słownictwa technicznego danej dziedziny.

# Decision guide: RAG vs Fine-tuning vs Prompting

def choose_approach(requirements: dict) -> str:
    if requirements.get('knowledge_changes_frequently'):  # pricing, news, live data
        return 'RAG - knowledge must be updatable at query time'
    
    if requirements.get('needs_consistent_format') and requirements.get('high_volume'):
        return 'Fine-tuning - format adherence + cost savings at scale'
    
    if requirements.get('proprietary_domain_vocabulary'):
        return 'Fine-tuning - model needs to learn new terminology'
    
    if requirements.get('low_volume') or requirements.get('still_exploring'):
        return 'Prompting - fastest iteration, lowest cost'
    
    if requirements.get('combination_needed'):  # most production systems
        return 'Fine-tuning for style/format + RAG for dynamic knowledge'

Optymalny schemat decyzyjny dotyczący fine-tuningu

Przed zdecydowaniem się na fine-tuning proszę skorzystać z tego schematu decyzyjnego. Po pierwsze, proszę potwierdzić potrzebę: należy uruchomić najlepszy prompt na 1000 rzeczywistych przykładach i zmierzyć odsetek błędów. Po drugie, proszę określić korzyści ilościowo: należy oszacować ROI wynikający z większej dokładności, niższych kosztów tokenów lub mniejszego opóźnienia. Po trzecie, proszę ocenić wykonalność: czy ma Pan / ma Pani ponad 500 przykładów treningowych wysokiej jakości? Na koniec proszę porównać alternatywy: czy mniejszy model z lepszym promptem mógłby dorównać wydajnością większemu modelowi złożonym promptem?

Łączenie promptowania i fine-tuningu

Najlepsze systemy produkcyjne często łączą oba podejścia. Fine-tuning należy stosować do trwałych właściwości (formatu wyników, tonu wypowiedzi, słownictwa domenowego), które rzadko się zmieniają, a prompty do dynamicznych właściwości (kontekstu zadania, pobranych dokumentów, preferencji użytkownika), które zmieniają się przy każdym żądaniu. Takie połączenie zapewnia niezawodność i efektywność kosztową fine-tuningu bez rezygnowania z elastyczności promptowania.

Szybki test

Proszę sprawdzić, czy rozumie Pan / rozumie Pani, kiedy fine-tuning jest lepszy od promptowania.

Podsumowanie lekcji

W tej lekcji nauczył się Pan / nauczyła się Pani, że promptowanie jest niemal zawsze właściwym punktem wyjścia ze względu na niższy koszt i szybsze iteracje, fine-tuning sprawdza się w przypadku spójnej zgodności z formatem, własnej wiedzy domenowej i obniżenia kosztu tokenów przy dużym wolumenie, a aktualność wiedzy to domena RAG — fine-tuning nie może aktualizować wiedzy modelu w czasie działania. W następnej części przygotujemy wysokiej jakości zbiór danych treningowych do fine-tuningu.

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Kiedy fine-tuning przewyższa promptowanie” jest bezpłatna?

Tak — pełny tekst „Kiedy fine-tuning przewyższa promptowanie” 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 Engineering Academy, przejdź na CoddyKit PRO. Kurs AI Engineering Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Kiedy fine-tuning przewyższa promptowanie”?

Wskaż przypadki użycia, w których fine-tuning przynosi większe korzyści niż prompt engineering: spójne przestrzeganie stylu, zastrzeżona wiedza domenowa, niższe koszty tokenów dzięki krótszym prompto… Ćwiczysz AI Engineering Academy 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 Engineering Academy?

Nie wymagamy żadnego doświadczenia. AI Engineering Academy 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 1 z 4.

Ile czasu zajmuje lekcja „Kiedy fine-tuning przewyższa promptowanie”?

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 Engineering Academy?

Tak. Każda lekcja AI Engineering Academy 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 fine-tuning przewyższa promptowanie
  2. Przygotowanie wysokiej jakości zbioru treningowego
  3. Fine-tuning LoRA z Hugging Face PEFT
  4. Ocena i wdrażanie dostrojonego modelu
← Powrót do AI Engineering Academy