Verifisert mot offisiell MS-doc (juni 2026): «Microsoft Foundry» er det gjeldende produkt-/portalnavnet; «Foundry (classic)» = gamle «Azure AI Foundry» (/azure/foundry/ vs /azure/foundry-classic/). Premiss bekreftet før sveip. Multi-regel, IKKE naiv s/Azure AI Foundry/Microsoft Foundry/ — MS dropper «Azure AI» (legger IKKE til «Microsoft») for to produktvarianter: - «Azure AI Foundry Agent[ Service|s]» → «Foundry Agent Service/Agents» (MS-form) - «Azure AI Foundry Models» → «Foundry Models» (i «Azure OpenAI in Foundry Models») - «Azure AI Foundry SDK» → «Microsoft Foundry SDK» (operatør-valg) - «Azure AI Foundry portal/project» + generisk → «Microsoft Foundry» - Pre-eksisterende «Microsoft Foundry Models» (4) normalisert → «Foundry Models» Bevart: «Azure OpenAI», «Azure AI Inference SDK», «Azure AI Search», «Azure AI Services», kode-IDer. Historisk ref «(tidligere Azure AI Foundry)» i model-catalog-2026.md beskyttet via lookbehind. URL /azure/ai-foundry/→ /azure/foundry/ kun i owasp-llm-top10 (KB-ref); docs/-filer deferred. Scope: skills (inkl. 3 SKILL.md) + commands + agents + README + CLAUDE. Ekskludert: docs/ (interne), playground/+tests/ fixtures (testdata), CHANGELOG.md (historisk logg), STATE.md (gitignored). 3 SKILL.md endret (advisor/engineering/security) → judge-cache teknisk invalidert for disse, men scorer uendret: advisor 91, eng/gov/infra/sec 96 (alle ≥90). validate 239/0. 0 «Azure AI Foundry» igjen (utenom bevart ref). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 KiB
Temperature, Sampling, and Generation Parameters
Last updated: 2026-02 Status: GA Category: Prompt Engineering & LLM Optimization
Introduksjon
Generation parameters er de kontrollerbare verdiene som påvirker hvordan store språkmodeller (LLMs) genererer tekst. Disse parametrene styrer alt fra kreativitet og variasjon til determinisme og lengde på output. Korrekt bruk av generation parameters er kritisk for å oppnå pålitelig, konsistent og formålstjenlig output fra Azure OpenAI-modeller.
Dette dokumentet dekker de viktigste generation parameters tilgjengelig i Microsoft AI-stakken, hvordan de fungerer, og best practices for praktisk bruk.
Viktig avgrensning: Generation parameters gjelder primært for GPT-baserte Chat Completion-modeller. Reasoning-modeller (o-series som o1, o3, o4-mini) støtter ikke temperature, top_p, frequency_penalty eller presence_penalty. Model Router vil automatisk ignorere disse parametrene hvis en reasoning-modell blir valgt.
Kjernekomponenter
1. Temperature
Område: 0.0 – 2.0 Default: 1.0 Type: Randomness control
Temperature kontrollerer tilfeldigheten i modellens output ved å justere sannsynlighetsfordelingen over mulige tokens.
| Temperature | Effekt | Bruksområde |
|---|---|---|
| 0.0 – 0.2 | Deterministisk, repeterende, fokusert | Legal dokumenter, faktabaserte svar, data extraction |
| 0.3 – 0.5 | Balansert, moderat variasjon | Forretningskommunikasjon, FAQ-svar, teknisk dokumentasjon |
| 0.6 – 0.9 | Kreativ, varierende, uforutsigbar | Brainstorming, storytelling, markedsføringstekst |
| 1.0 – 2.0 | Høy randomness, eksperimentell | Kreativ skriving, idégenerering, kunstneriske formål |
Teknisk forklaring: Temperature skalerer logits (modellens raw output-score) før softmax-transformasjon. Lavere temperature gjør at høyest-scorende tokens dominerer sannsynlighetsfordelingen, mens høyere temperature flater ut fordelingen og gir mindre sannsynlige tokens større sjanse.
Best practice (fra Microsoft docs):
- Juster enten temperature eller top_p — ikke begge samtidig
- For produksjonsscenarier: start med 0.2–0.3 og test iterativt
- For kreative use cases: start med 0.7–0.8
2. Top_p (Nucleus Sampling)
Område: 0.0 – 1.0 Default: 1.0 Type: Alternative randomness control
Top_p (nucleus sampling) velger tokens fra den minste mengden som summerer til probability mass p. Istedenfor å justere sannsynlighetsfordelingen (som temperature), filtrerer top_p bort tokens med lav sannsynlighet helt.
| Top_p | Effekt | Bruksområde |
|---|---|---|
| 0.1 | Kun topp 10% sannsynlige tokens | Deterministiske, faktabaserte svar |
| 0.5 | Topp 50% sannsynlige tokens | Balansert variasjon med kontroll |
| 0.9 | Topp 90% sannsynlige tokens | Kreativ output med noe begrensning |
| 1.0 | Alle tokens inkludert | Full randomness (kun begrenset av temperature) |
Forskjell fra temperature:
- Temperature: Justerer sannsynlighetsvekter for alle tokens
- Top_p: Fjerner tokens under en sannsynlighetsterskel
Best practice:
- Bruk top_p = 0.1–0.2 for strukturerte, pålitelige svar
- Øk til 0.7–0.9 for kreative scenarios
- Ikke kombiner med lave temperature-verdier (velg én tilnærming)
3. Frequency Penalty
Område: -2.0 til 2.0 Default: 0.0 Type: Repetition control
Frequency penalty reduserer sannsynligheten for tokens basert på hvor mange ganger de allerede har blitt brukt i genereringen. Jo flere ganger et ord har forekommet, jo mer straffes det.
| Verdi | Effekt |
|---|---|
| 0.0 | Ingen straff (default) |
| 0.5 | Moderat straff mot repetisjon |
| 1.0 | Betydelig reduksjon av repetisjon |
| 2.0 | Maksimal penalty (kan føre til unaturlig språk) |
Bruksområder:
- Redusere verbatim repetisjon i lange tekster
- Hindre modellen i å gjenta samme fraser eller setninger
- Øke vokabular-diversitet i kreativ skriving
Advarsel: Høye verdier (> 1.0) kan føre til semantisk inkonsistens eller unaturlig språk.
4. Presence Penalty
Område: -2.0 til 2.0 Default: 0.0 Type: Novelty control
Presence penalty reduserer sannsynligheten for tokens basert på om de allerede har forekommet (uavhengig av frekvens). Denne parameteren oppmuntrer modellen til å introdusere nye konsepter.
| Verdi | Effekt |
|---|---|
| 0.0 | Ingen straff (default) |
| 0.5 | Moderat oppmuntring til nye topics |
| 1.0 | Sterk fokus på nye emner |
| 2.0 | Maksimal penalty (kan føre til topic drift) |
Forskjell fra frequency penalty:
- Frequency penalty: Straffes proporsjonalt med hvor mange ganger et ord er brukt
- Presence penalty: Straffes binært — brukt én gang = samme straff som brukt ti ganger
Bruksområder:
- Brainstorming og idégenerering
- Unngå at modellen "fester seg" på ett tema
- Øke topical diversity i lange genereringer
5. Max Tokens / Max Completion Tokens
Type: Output length control
| Parameter | Beskrivelse | Nyeste modeller |
|---|---|---|
| max_tokens | Maksimalt antall tokens i completion (legacy parameter) | Alle modeller |
| max_completion_tokens | Total lengde inkludert visible + reasoning tokens | o-series, GPT-4o |
Viktig:
- Én token ≈ 4 tegn for engelsk tekst (varierer med språk og tokenizer)
- Total kontekstlengde = input tokens + output tokens
- Nyeste modeller (GPT-4o, o-series) støtter opptil 128,000 tokens total context
Best practice:
- Sett max_tokens basert på bruk: 50–100 for korte svar, 500–1000 for lengre tekst
- Overvåk
finish_reasoni API-respons:"length"indikerer at output ble trunkert
6. Seed (Reproducible Output)
Type: Determinism control Status: Preview (API version 2023-12-01-preview+)
Seed-parameteren lar deg be modellen om å sample deterministisk. Samme seed + samme parameters = (nesten) samme output.
Viktig advarsel (fra Microsoft docs):
"Determinism is not guaranteed. Even in cases where the seed parameter and
system_fingerprintare the same across API calls, it is currently not uncommon to still observe a degree of variability in responses."
Best practice:
- Bruk seed for testing og debugging
- Ikke stol på perfekt determinisme i produksjon
- Kombiner alltid med
system_fingerprint-monitoring for å detektere backend-endringer
Eksempel:
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Tell me a story"}],
seed=42,
temperature=0.2
)
7. Stop Sequences
Type: Output termination control Maksimum: 4 sekvenser
Stop sequences instruerer modellen til å avslutte generering når en spesifikk tekstsekvens oppstår (sekvensen inkluderes ikke i output).
Bruksområder:
- Strukturert output (stoppe ved delimiter som
---eller###) - Unngå at modellen genererer uønsket follow-up content
- Kontrollere format i multi-step generations
Eksempel:
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "List three colors"}],
stop=["4.", "\n\n"] # Stopp ved punkt 4 eller dobbel newline
)
Arkitekturmønstre
Mønster 1: Deterministisk faktabasert output
Use case: Legal dokumenter, data extraction, compliance rapporter
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "system", "content": "Extract key dates from the text."}],
temperature=0.0, # Deterministisk
max_tokens=200, # Kort, strukturert output
frequency_penalty=0.0 # Ingen straff (vi vil ha nøyaktig gjentakelse)
)
Rationale: Lav temperature sikrer konsistens, ingen penalties for å unngå endring av faktiske data.
Mønster 2: Kreativ content generation
Use case: Markedsføringstekst, storytelling, brainstorming
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Write a creative ad for a new coffee brand"}],
temperature=0.8, # Høy kreativitet
top_p=0.9, # IKKE anbefalt: bruk kun én av disse
presence_penalty=0.6, # Oppmuntre nye konsepter
frequency_penalty=0.3, # Reduser verbatim repetisjon
max_tokens=500
)
Advarsel: Bruk enten temperature=0.8 eller top_p=0.9, ikke begge.
Mønster 3: Azure OpenAI On Your Data
Use case: RAG-basert Q&A, grounded responses
Azure OpenAI On Your Data legger til egne system-parametere:
topNDocuments: Antall dokumenter hentet fra search (default: 5)strictness: Filtreringsterskel for relevans (1–5, default: 3)
Anbefaling:
- Kombiner med lav temperature (0.2–0.3) for faktabaserte svar
- Bruk
inScope=truefor å begrense svar til hentet data - Overvåk token-forbruk (meta-prompt, retrieved chunks, conversation history)
Mønster 4: Model Router med reasoning models
Microsoft Foundry Model Router kan automatisk velge mellom GPT-modeller og o-series reasoning models.
Viktig: Hvis Model Router velger en o-series model, ignoreres følgende parametere:
- temperature
- top_p
- frequency_penalty
- presence_penalty
- stop sequences
Alternativt støttet:
reasoning_effort(low, medium, high) — kun for o-series
Best practice: Unngå å sette parameters som ikke støttes av alle modeller i router-pool, eller implementer fallback-logikk.
Beslutningsveiledning
Decision Tree: Hvilke parametere skal jeg bruke?
Start: Hva er use case?
│
├─ Faktabasert / Deterministisk output?
│ └─ JA → temperature=0.0–0.2, max_tokens=< 500, ingen penalties
│
├─ Kreativ / Varierende output?
│ └─ JA → temperature=0.7–0.9 ELLER top_p=0.8–0.9
│ + presence_penalty=0.3–0.6 (hvis novelty ønskes)
│
├─ Unngå repetisjon?
│ └─ JA → frequency_penalty=0.3–0.7
│
├─ Testing / Debugging?
│ └─ JA → seed=<integer>, temperature=0.0
│
└─ Reasoning-oppgave?
└─ JA → Bruk o-series model, ignorer sampling parameters
Integrasjon med Microsoft-stakken
Azure OpenAI Service
API Versions:
- Reproducible output (seed):
2023-12-01-previeweller nyere - Latest stable:
2024-10-21 - Preview (o-series support):
2025-04-01-preview
Tilgjengelige parametere:
- Alle GPT-modeller: temperature, top_p, max_tokens, frequency_penalty, presence_penalty, stop, seed
- o-series (o1, o3, o4-mini): max_completion_tokens, reasoning_effort (IKKE temperature/top_p)
Copilot Studio
Copilot Studio eksponerer generation parameters via "Generative answers"-node:
| Parameter | Tilgjengelig? | Konfigurasjon |
|---|---|---|
| Temperature | ❌ Nei | Ikke konfigurerbar (settes automatisk av Copilot) |
| Max tokens | ✅ Ja | Via "Response length" slider |
| Top_p | ❌ Nei | Ikke tilgjengelig |
Konsekvens: Copilot Studio er optimalisert for default-verdier. For avansert parameter-kontroll, bruk Azure OpenAI direkte via Power Automate eller custom connectors.
Microsoft Agent Framework
Agent Framework (i Teams AI Library, Semantic Kernel) støtter generation parameters via CompletionConfiguration:
C# (Semantic Kernel):
var settings = new OpenAIPromptExecutionSettings
{
Temperature = 0.3,
TopP = 0.9,
FrequencyPenalty = 0.5,
PresencePenalty = 0.2,
MaxTokens = 500
};
var response = await kernel.InvokePromptAsync(prompt, new(settings));
Python (Semantic Kernel):
settings = AzureChatRequestSettings(
temperature=0.3,
top_p=0.9,
frequency_penalty=0.5,
presence_penalty=0.2,
max_tokens=500
)
Power Platform AI Builder
AI Builder eksponerer begrenset parameter-kontroll:
- Predefined prompts: Ingen konfigurasjon
- Custom prompts (GPT-modeller): Kun "Creativity" slider (mappes til temperature internt)
Anbefaling: For avansert kontroll, bruk Azure OpenAI custom connector i Power Automate.
Offentlig sektor (Norge)
Compliance-hensyn
Reproducible output (seed-parameter):
- ⚠️ Ikke garantert deterministisk — dokumenter dette i compliance-rapporter
- For juridisk/regulatorisk output: implementer menneske-i-loop validation uavhengig av seed
Data residency:
- Azure OpenAI i Norge: Alle API-parametere støttes (inkludert seed)
- Verifiser at seed-parameter ikke logger sensitive verdier (seed-verdien selv er ikke sensitiv, men kontekst kan være det)
Anbefalinger for offentlig sektor
| Scenario | Anbefaling |
|---|---|
| Saksbehandling | temperature=0.0–0.1, seed for testing, ingen penalties |
| Borgerservice chatbots | temperature=0.2–0.3, frequency_penalty=0.3 (unngå repetitive svar) |
| Dokumentgenerering | temperature=0.0, max_tokens basert på template, stop sequences for struktur |
| Internkommunikasjon | temperature=0.5–0.7, presence_penalty=0.3 (variasjon uten tap av kontroll) |
Prompt engineering-tips: Kombiner generation parameters med:
- Tydelige instruksjoner i system message
- Few-shot examples for konsistens
- Output format specification (JSON, markdown, etc.)
Kostnad og lisensiering
Token-forbruk
Generation parameters påvirker ikke direkte token-kostnad, men kan påvirke output-lengde:
| Parameter | Påvirkning på kostnad |
|---|---|
| max_tokens | Direkte tak på kostnad (setter hard grense) |
| temperature | Indirekte: høy temperature kan føre til lengre, mer varierte svar |
| penalties | Kan redusere repetisjon → kortere output → lavere kostnad |
Cost optimization:
- Sett alltid
max_tokensfor å unngå uventet lange svar - Bruk
max_completion_tokenspå o-series for å begrense reasoning + visible tokens
Modellpriser (Azue OpenAI, per 1000 tokens, ca. 2026-priser)
| Modell | Input | Output | Generation parameters support |
|---|---|---|---|
| GPT-4o | $5 | $15 | Full support |
| GPT-4o mini | $0.15 | $0.60 | Full support |
| GPT-3.5 Turbo | $0.50 | $1.50 | Full support |
| o1 | $15 | $60 | max_completion_tokens, reasoning_effort only |
| o3-mini | $1 | $4 | max_completion_tokens, reasoning_effort only |
(Priser er estimat i USD, verifiser offisielle Azure-priser)
NOK-estimat (1 USD ≈ 10 NOK):
- GPT-4o: 50 kr input / 150 kr output per 1M tokens
- GPT-4o mini: 1.5 kr input / 6 kr output per 1M tokens
Lisensiering
Generation parameters er tilgjengelige på alle Azure OpenAI-lisenser (ingen premium-funksjon).
M365 Copilot:
- Bruker Azure OpenAI under panseret, men parameters er ikke konfigurerbare av sluttbrukere
- Copilot for M365 settes automatisk av Microsoft (typisk temperature ≈ 0.3–0.5)
Power Platform:
- AI Builder: Begrenset kontroll (Creativity slider)
- Premium-lisens kreves for GPT-based AI Builder prompts
For arkitekten (Cosmo)
Når bruke hvilke parametere
Jeg bruker temperature for:
- ✅ Å kontrollere kreativitet vs. determinisme
- ✅ Testing av output-variasjon
- ✅ Når jeg vil ha én samlet "randomness"-kontroll
Jeg bruker top_p for:
- ✅ Når jeg vil filtrere ut low-probability tokens helt
- ✅ Finere kontroll over "long tail" i output-distribusjon
- ❌ Ikke sammen med temperature (velg én!)
Jeg bruker frequency_penalty for:
- ✅ Lange tekster hvor verbatim repetisjon er et problem
- ✅ Kreative scenarios hvor jeg vil øke vokabular-diversitet
Jeg bruker presence_penalty for:
- ✅ Brainstorming og idégenerering
- ✅ Når jeg vil at modellen skal utforske flere topics
- ⚠️ Forsiktig i strukturerte oppgaver (kan føre til topic drift)
Jeg bruker seed for:
- ✅ Testing og debugging
- ✅ Demonstrasjoner hvor jeg vil ha konsistent output
- ❌ Ikke som garanti for determinisme i produksjon
Troubleshooting
Problem: Modellen genererer samme svar hver gang Løsning: Øk temperature til 0.3–0.5, eller sett top_p=0.8–0.9
Problem: Output er for tilfeldig / inkonsistent Løsning: Senk temperature til 0.0–0.2, kombiner med seed
Problem: Modellen repeterer samme fraser Løsning: Øk frequency_penalty til 0.3–0.7
Problem: Modellen "fester seg" på ett tema Løsning: Øk presence_penalty til 0.3–0.5
Problem: Output kuttes av midt i setning
Løsning: Øk max_tokens, sjekk finish_reason i respons
Problem: Parameters fungerer ikke (o-series) Løsning: o-series ignorerer temperature/top_p/penalties — bruk reasoning_effort i stedet
Kombinasjoner å unngå
| Kombinasjon | Problem |
|---|---|
| temperature=0.8 + top_p=0.9 | Dobbel randomness-kontroll — bruk kun én! |
| temperature=0.0 + presence_penalty=1.0 | Motstridende: deterministisk vs. novelty-søkende |
| max_tokens=50 + temperature=0.9 | Kort output + høy randomness = inkonsistente resultater |
| seed=42 + temperature=1.5 | Seed fungerer best med lav temperature |
Testing og validering
Testmatrise for generation parameters:
test_configs = [
{"temperature": 0.0, "description": "Deterministisk baseline"},
{"temperature": 0.3, "description": "Produksjon (balansert)"},
{"temperature": 0.7, "description": "Kreativ variant"},
{"temperature": 0.0, "seed": 42, "description": "Reproducible test"}
]
for config in test_configs:
response = test_prompt(config)
print(f"{config['description']}: {response}")
Metrikkere å overvåke:
- Output-lengde (tokens)
- Variasjon mellom kjøringer (cosine similarity)
- Repetisjon-rate (n-gram overlap)
- Finish reason (
stopvs.length)
Arkitekturbeslutninger (ADR-integrasjon)
Når dokumentere parameter-valg i ADR:
- Produksjonssystemer med høye konsistenskrav → temperature < 0.3
- Kreative use cases → temperature > 0.6 eller top_p < 0.9
- Compliance-krav til reproducibility → seed-bruk (med disclaimer om ikke-garantert determinisme)
- Integrasjon med reasoning models → dokumenter at sampling parameters ignoreres
Eksempel ADR-snippet:
## Decision: Use temperature=0.2 for legal document generation
**Context:** Legal documents require high consistency and factual accuracy.
**Decision:** Set temperature=0.2, frequency_penalty=0.0, presence_penalty=0.0.
**Consequences:**
- ✅ Consistent output across runs
- ✅ Minimal creative variation
- ⚠️ Requires prompt engineering for output diversity (if needed)
Kilder og verifisering
Microsoft Learn dokumentasjon
- Prompt engineering techniques — Temperature and Top_p parameters
- Azure OpenAI REST API reference — Completions
- Reproducible output with seed parameter
- Model Router limitations (o-series)
Code samples
Validert dato
Alle kilder verifisert: 2026-02-04
Confidence markers:
- Temperature/top_p/max_tokens: ✅ Høy confidence (GA, veldokumentert)
- Frequency/presence penalties: ✅ Høy confidence (GA, veldokumentert)
- Seed (reproducible output): ⚠️ Moderat confidence (Preview, determinisme ikke garantert)
- o-series parameter-støtte: ✅ Høy confidence (dokumentert i Model Router guide)
For Cosmo: Dette dokumentet gir deg komplett oversikt over generation parameters. Bruk tabellene og decision trees aktivt i arkitekturrådgivning. Husk at temperature og top_p ikke skal brukes samtidig — dette er den vanligste feilen jeg ser i kundeimplementasjoner.
Når du rådgir om offentlig sektor, vekt konsistens og reproducibility (men vær ærlig om at seed ikke garanterer 100% determinisme). Kombiner alltid parameter-tuning med solid prompt engineering — parametere alene løser ikke dårlige prompts.