AI Engineering Academy · Lektion

När fine-tuning överträffar prompting

Identifiera användningsfall där fine-tuning lönar sig bättre än prompt engineering: konsekvent stilföljsamhet, proprietär domänkunskap, lägre tokenkostnader genom kortare prompts och kortare fördröjning.

Lektion 1 av 413 steg

När fine-tuning överträffar prompting är en gratis lektion i AI Engineering Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI Engineering Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI Engineering Academy innehåller totalt 4 lektioner.

Den centrala avvägningen

När Ni behöver att en LLM ska bete sig på ett specifikt sätt har Ni två grundläggande alternativ: prompt engineering (instruera modellen om vad den ska göra vid inferenstillfället med hjälp av noggrant utformade prompter) eller fine-tuning (lär modellen nya beteenden genom att träna den på exempel). Båda kan ge liknande resultat för många uppgifter, men de skiljer sig markant åt vad gäller kostnad, hastighet, flexibilitet och hur hög kvalitetsnivå de kan nå.

När prompting är bättre

Prompting är nästan alltid rätt utgångspunkt. Det kräver ingen träningsinfrastruktur, ger resultat inom några timmar, kan uppdateras direkt utan omträning och fungerar bra för uppgifter som basmodellen redan hanterar på ett kompetent sätt. Börja med prompting för uppgifter där GPT-4o eller Claude redan ger godtagbara resultat med tydliga instruktioner, snabbt föränderliga krav, användningsfall med låg volym och situationer där Ni fortfarande utforskar problemområdet.

# 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

Konsekvent stil och formatföljsamhet

Fine-tuning är bättre när Ni behöver ett strikt konsekvent utdataformat som prompting inte kan leverera på ett tillförlitligt sätt. Om Er applikation kräver 100-procentig följsamhet till ett specifikt JSON-schema, ett exakt strukturerat dokumentformat eller en mycket specifik skrivstil som skiljer sig från modellens naturliga utdata, kan fine-tuning med några hundra exempel uppnå nästan perfekt konsekvens som inte ens den mest noggrant utformade prompten kan matcha.

# 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

Proprietär domänkunskap

Fine-tuning är rätt val när modellen behöver lära sig kunskap som inte finns i offentliga träningsdata: företagets interna kodkonventioner, en proprietär taxonomi för dokumentklassificering, specialiserad juridisk eller medicinsk terminologi inom ett nischat område eller de specifika röst- och stilriktlinjerna för Ert varumärke. Denna kunskap kan inte förmedlas effektivt genom exempel i prompten, eftersom mängden exempel överstiger det som ryms i ett kontextfönster.

# 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

Minskade tokenkostnader genom kortare prompter

Ett viktigt ekonomiskt argument för fine-tuning är promptkomprimering. En komplex systemprompt kan bestå av 2 000 tokens. Om Ni anropar API:et 10 miljoner gånger per dag kostar dessa 2 000 tokens tiotusentals dollar i månaden. En fine-tunad modell kan styras med en mycket kortare prompt (50–100 tokens), eftersom de detaljerade instruktionerna nu är inbyggda i modellvikterna. I stor skala kan detta minska kostnaderna för indatatokens med 90 procent eller mer.

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

Förbättrad fördröjning

Fine-tunade modeller kan förbättra fördröjningen på två sätt. För det första innebär kortare prompter att modellen bearbetar färre indatatokens, vilket direkt minskar tiden till den första token. För det andra konvergerar fine-tunade modeller ofta snabbare till rätt format (färre tokens i svaret innan det faktiska svaret börjar), vilket minskar det totala antalet utdatatokens och genereringstiden. För applikationer där fördröjning är kritisk förstärker dessa båda effekter varandra och ger betydande förbättringar.

# 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')

Minimikrav på datamängden

Fine-tuning kräver träningsdata – och detta är ofta det största praktiska hindret. En tumregel är att Ni behöver minst 50–100 högkvalitativa exempel för att se någon meningsfull förbättring jämfört med basmodellen, 500–1 000 exempel för tillförlitlig stil- och formatföljsamhet samt 1 000–10 000 exempel för att modellen ska tillägna sig betydande domänkunskap. Under 50 exempel ger prompting med samma exempel i kontexten (few-shot) vanligtvis bättre resultat än 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.'

De dolda kostnaderna för fine-tuning

Fine-tuning medför betydande dolda kostnader utöver beräkningskostnaden. Ni behöver: infrastruktur för att köra träningen (GPU-timmar eller en hanterad tjänst), en process för insamling och kvalitetskontroll av datamängden, utvärdering för att verifiera att den fine-tunade modellen faktiskt förbättrar målmåttet, en driftsättningspipeline för den anpassade modellen samt en löpande underhållsprocess för omträning när basmodellen uppdateras eller kraven förändras. Dessa kostnader är verkliga och måste vägas mot fördelarna.

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'
}

Kunskapens aktualitet: RAG kontra fine-tuning

Fine-tuning kan inte uppdatera kunskap i realtid. En fine-tunad modells kunskap är låst vid tidpunkten för träningen. För användningsfall som kräver aktuell information (aktuella händelser, priser i realtid, föränderliga regler) är RAG alltid bättre, eftersom metoden kan hämta färsk information när frågan ställs. Fine-tuning är bäst för beständig kunskap som sällan förändras: företagets skrivstil, taxonomin för produktkategorisering eller den tekniska vokabulären inom en väletablerad domän.

# 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'

Det ideala beslutsramverket för fine-tuning

Använd detta beslutsramverk innan Ni satsar på fine-tuning. Först ska Ni bevisa behovet: kör Er bästa prompt genom 1 000 verkliga exempel och mät felfrekvensen. Därefter ska Ni kvantifiera nyttan: uppskatta avkastningen på investeringen från förbättrad träffsäkerhet, lägre tokenkostnader eller bättre fördröjning. Sedan ska Ni bedöma genomförbarheten: har Ni fler än 500 högkvalitativa träningsexempel? Slutligen ska Ni jämföra alternativen: skulle en mindre modell med en bättre prompt kunna matcha prestandan hos en större modell med en komplex prompt?

Kombinera prompting och fine-tuning

De bästa produktionssystemen kombinerar ofta båda metoderna. Fine-tuna beständiga egenskaper (utdataformat, ton, domänvokabulär) som sällan förändras och använd prompter för dynamiska egenskaper (uppgiftskontext, hämtade dokument, användarpreferenser) som ändras för varje begäran. Denna kombination ger Er fine-tuningens tillförlitlighet och kostnadseffektivitet utan att Ni behöver ge avkall på promptingens flexibilitet.

Snabbtest

Testa Er förståelse av när fine-tuning är bättre än prompting utifrån den här lektionen.

Sammanfattning av lektionen

I den här lektionen har Ni lärt Er att prompting nästan alltid är rätt utgångspunkt tack vare lägre kostnad och snabbare iterationer, att fine-tuning är bäst för konsekvent formatföljsamhet, proprietär domänkunskap och minskade tokenkostnader vid hög volym samt att kunskapens aktualitet är RAG:s område – fine-tuning kan inte uppdatera det modellen vet under körning. Härnäst förbereder vi en högkvalitativ träningsdatamängd för fine-tuning.

Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”När fine-tuning överträffar prompting” gratis?

Ja – hela texten till ”När fine-tuning överträffar prompting” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI Engineering Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i AI Engineering Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”När fine-tuning överträffar prompting”?

Identifiera användningsfall där fine-tuning lönar sig bättre än prompt engineering: konsekvent stilföljsamhet, proprietär domänkunskap, lägre tokenkostnader genom kortare prompts och kortare fördröjn… Ni övar på AI Engineering Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI Engineering Academy?

Du behöver inga förkunskaper. Utbildningen i AI Engineering Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”När fine-tuning överträffar prompting”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI Engineering Academy-lektionen?

Ja. Varje AI Engineering Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. När fine-tuning överträffar prompting
  2. Förbered ett högkvalitativt träningsdataset
  3. LoRA-fine-tuning med Hugging Face PEFT
  4. Utvärdera och distribuera er fine-tunade modell
← Tillbaka till AI Engineering Academy