Per-kilde verifiserings-agenter (Opus xhigh, live microsoft_docs_fetch) bekreftet hver verdi mot kilden FOER endring; alle forekomster av samme gale fakta fikset fil-vidt (ikke bare sitert linje). - 37/38 confirm-fix anvendt; #8 (model-selection «Model Router GA») AVVIST: fila var allerede korrekt (Model Router GA siden 2025-11-18); den siterte model-choice-guide har utdatert «(preview)»-etikett. AA «fikse» ville innfoert en feil. - Tverteklynger reconciled til kilde-sann verdi: AI Search storage (S1 160/S2 512/S3 1024/L1 2048/L2 4096 GB; vektor 5/35/150/300), Quota Tiers (erstatter Default/Enterprise + «1 Unit Capacity»). - Hoey-innsats: realtime Schrems II omskrevet (global deployment != EU-residens, selv-verifisert mot kilde); Data Zone Norway East = gpt-5.4 OG gpt-5.5 (ikke kun 5.5); computer-use = gpt-5.4 + computer-tool (region flagget for verifisering). - Suite 552/552 groenn. Manifest oppdatert (fixed/verdict/verified per fiks). Spor 1-froe (cross-fil-gjentakelser i UBEROERTE filer): «DDoS Protection Standard» i ros-ai-threat-library.md + zero-trust-ai-services.md. Tilstoetende funn (ikke i de 38): se docs / STATE.
504 lines
23 KiB
Markdown
504 lines
23 KiB
Markdown
# Chain-of-Thought and Reasoning Prompts
|
||
|
||
**Last updated:** 2026-06-24
|
||
**Status:** GA
|
||
**Category:** Prompt Engineering & LLM Optimization
|
||
|
||
---
|
||
|
||
## Introduksjon
|
||
|
||
Chain-of-thought (CoT) prompting er en promptingteknikk som instruerer språkmodeller til å eksplisitt vise sine resonneringsteg før de produserer et endelig svar. I stedet for å hoppe direkte til en konklusjon, bryter modellen ned komplekse problemer i sekvensielle steg, noe som reduserer feil og gjør outputen mer transparant og etterprøvbar.
|
||
|
||
Teknikken er spesielt kraftfull for oppgaver som krever logisk resonnering, matematikk, kodegenerering, eller multi-steg problemløsning. Microsoft Azure OpenAI-plattformen støtter flere varianter av CoT, inkludert zero-shot CoT (kun instruksjon om steg-for-steg tilnærming), few-shot CoT (med eksempler på resonnering), og innebygd resonnering i spesialiserte reasoning models som o1, o3, o4-mini, og GPT-5-serien.
|
||
|
||
**Viktig distinksjon:** Tradisjonelle GPT-modeller (GPT-4, GPT-4o) krever eksplisitt CoT-prompting for å vise resonneringsteg. Reasoning models (o-serien, GPT-5-serien) utfører intern resonnering automatisk, og Microsoft anbefaler å **ikke bruke** CoT-teknikker med disse modellene, da det kan redusere ytelsen.
|
||
|
||
Chain-of-thought ble først dokumentert i akademisk forskning (Wei et al., 2022) og har siden blitt adoptert som en standard teknikk i produksjonssystemer. Microsoft har integrert CoT-prinsipper både i Azure OpenAI Service documentation, Microsoft Foundry prompt engineering guidance, og i evalueringsrammeverk som Azure OpenAI Evaluation (Preview).
|
||
|
||
---
|
||
|
||
## Kjernekomponenter
|
||
|
||
### 1. CoT for tradisjonelle modeller (GPT-4, GPT-4o, GPT-3.5)
|
||
|
||
| Komponent | Beskrivelse | Eksempel |
|
||
|-----------|-------------|----------|
|
||
| **Step-by-step instruction** | Eksplisitt be modellen om å vise arbeid | "Take a step-by-step approach in your response" |
|
||
| **Reasoning cue** | Triggerord som aktiverer sekvensielt tenkning | "Let's think step by step", "Show your reasoning" |
|
||
| **Citation requirement** | Krev kildehenvisninger for å redusere hallusinasjoner | "Cite sources and give reasoning before sharing final answer" |
|
||
| **Output structure** | Definer format for steg og konklusjon | "ANSWER is: \`<value>\`" |
|
||
|
||
**Eksempel (zero-shot CoT):**
|
||
```
|
||
System: You are an AI assistant that helps people find information.
|
||
User: Who was the most decorated individual athlete in the Olympic games held at Sydney?
|
||
Take a step-by-step approach in your response, cite sources and give reasoning before
|
||
sharing final answer in the format: ANSWER is: <name>```
|
||
|
||
**Assistant response:**
|
||
```
|
||
Step 1: Determine the year of the Sydney Olympic games.
|
||
The Sydney Olympic games were held in the year 2000.
|
||
|
||
Step 2: Find a list of individual athletes who won multiple medals in the 2000 Sydney Olympics.
|
||
According to the official website of the Olympic Games, there were several individual athletes
|
||
who won multiple medals in the 2000 Sydney Olympics. Some of the notable names include:
|
||
• Ian Thorpe (Australia) - 3 gold, 2 silver, 0 bronze
|
||
• Pieter van den Hoogenband (Netherlands) - 2 gold, 0 silver, 2 bronze
|
||
• Lenny Krayzelburg (USA) - 3 gold, 0 silver, 0 bronze
|
||
• Inge de Bruijn (Netherlands) - 3 gold, 1 silver, 0 bronze
|
||
|
||
Step 3: Determine the athlete with the most medals.
|
||
After reviewing the list of individual athletes who won multiple medals in the 2000 Sydney Olympics,
|
||
we can see that the athlete with the most medals is Ian Thorpe from Australia, who won a total of
|
||
5 medals (3 gold and 2 silver).
|
||
|
||
Therefore, the ANSWER is: Ian Thorpe.
|
||
```
|
||
|
||
### 2. Reasoning Models (o1, o3, o4-mini, GPT-5-serien)
|
||
|
||
Disse modellene utfører **innebygd resonnering** automatisk og returnerer både reasoning tokens og det endelige svaret.
|
||
|
||
| Funksjonalitet | o1, o1-preview, o1-mini | o3, o3-mini, o3-pro | o4-mini | GPT-5-serien |
|
||
|----------------|-------------------------|---------------------|---------|--------------|
|
||
| **Automatisk reasoning** | ✅ | ✅ | ✅ | ✅ |
|
||
| **reasoning_effort parameter** | ✅ (low/medium/high) | ✅ (low/medium/high) | ✅ (low/medium/high) | ✅ (none/minimal/low/medium/high/xhigh) |
|
||
| **reasoning_summary** | ❌ | ✅ (limited access) | ✅ (limited access) | ✅ (auto/detailed — GPT-5-serien støtter ikke `concise`) |
|
||
| **Developer messages** | ✅ | ✅ | ✅ | ✅ |
|
||
| **Streaming** | ❌ (o1, o1-preview) | ✅ (limited access for o3) | ✅ | ✅ |
|
||
|
||
> **Per-modell-nyanser (reasoning_effort):** Verdisettet for GPT-5-serien over er et *superset* — faktisk støtte varierer per modell: `minimal` støttes kun av de opprinnelige GPT-5-modellene (ikke gpt-5.1+); `none` kun fra gpt-5.1 og nyere (gpt-5.1 defaulter til `none`); `xhigh` kun fra gpt-5.1-codex-max og nyere. Modeller før gpt-5.1 defaulter til `medium` og støtter ikke `none`. `reasoning_effort` (low/medium/high) gjelder alle reasoning models unntatt o1-mini.
|
||
|
||
**Eksempel (GPT-5 med reasoning summary):**
|
||
```python
|
||
from openai import OpenAI
|
||
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
|
||
|
||
token_provider = get_bearer_token_provider(
|
||
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
|
||
)
|
||
|
||
client = OpenAI(
|
||
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
|
||
api_key=token_provider,
|
||
)
|
||
|
||
response = client.responses.create(
|
||
input="Tell me about the curious case of neural text degeneration",
|
||
model="gpt-5", # replace with model deployment name
|
||
reasoning={
|
||
"effort": "medium",
|
||
"summary": "auto" # auto eller detailed (gpt-5-serien støtter ikke concise)
|
||
},
|
||
text={
|
||
"verbosity": "low" # New with GPT-5 models
|
||
}
|
||
)
|
||
|
||
print(response.model_dump_json(indent=2))
|
||
```
|
||
|
||
---
|
||
|
||
## Arkitekturmønstre
|
||
|
||
### Mønster 1: Eksplisitt CoT for RAG (Retrieval-Augmented Generation)
|
||
|
||
For Azure OpenAI "On Your Data" og Copilot Studio knowledge sources, kombinerer CoT med grounding:
|
||
|
||
```python
|
||
# Azure OpenAI On Your Data med CoT
|
||
system_message = """You are an AI assistant. Answer ONLY using retrieved documents.
|
||
|
||
Let's think step by step about information in retrieved documents to answer user queries.
|
||
Extract relevant knowledge step by step and form an answer bottom up from the extracted
|
||
information from relevant documents."""
|
||
|
||
user_query = "What are the health benefits of our plans?"
|
||
|
||
completion = client.chat.completions.create(
|
||
model="gpt-4",
|
||
messages=[
|
||
{"role": "system", "content": system_message},
|
||
{"role": "user", "content": user_query}
|
||
],
|
||
extra_body={
|
||
"data_sources": [{
|
||
"type": "azure_search",
|
||
"parameters": {
|
||
"endpoint": "https://my-search.search.windows.net",
|
||
"index_name": "health-plans-index",
|
||
"authentication": {"type": "api_key", "key": "***"}
|
||
}
|
||
}]
|
||
}
|
||
)
|
||
```
|
||
|
||
**Fordeler:**
|
||
- Reduserer hallusinasjoner ved å kreve eksplisitt referanse til kilder
|
||
- Øker transparens i hvordan svaret ble konstruert
|
||
- Gjør det lettere å validere svar mot grounding-data
|
||
|
||
**Ulemper:**
|
||
- Øker token-forbruk (både input og output)
|
||
- Kan gi lengre responstider
|
||
- Krever at retrieval-systemet returnerer nok kontekst for resonnering
|
||
|
||
### Mønster 2: Few-shot CoT for domene-spesifikke oppgaver
|
||
|
||
For Copilot Studio eller custom orchestrators, gi eksempler på ønsket resonneringsmønster:
|
||
|
||
```
|
||
System: You are a financial advisor assistant. Always show your reasoning step by step.
|
||
|
||
Example 1:
|
||
User: Should I prioritize paying off debt or saving for retirement?
|
||
Assistant:
|
||
Step 1: Identify the interest rate on the debt. High-interest debt (>7%) typically costs more than investment returns.
|
||
Step 2: Check if employer offers retirement match. This is "free money" that should be prioritized.
|
||
Step 3: Evaluate emergency fund status. 3-6 months expenses should be saved first.
|
||
Recommendation: If high-interest debt exists, pay minimums on all debts, capture full employer match, then aggressively pay off high-interest debt. Once debt is manageable, increase retirement contributions.
|
||
|
||
Example 2:
|
||
User: Is now a good time to invest in stocks?
|
||
Assistant:
|
||
Step 1: Acknowledge that market timing is unreliable for most investors.
|
||
Step 2: Assess user's time horizon. Long-term investors (10+ years) can weather volatility.
|
||
Step 3: Consider dollar-cost averaging to reduce timing risk.
|
||
Recommendation: If investing for long-term goals, consistent contributions regardless of market conditions typically outperform attempts to time the market.
|
||
|
||
Now answer the user's question following this pattern.
|
||
```
|
||
|
||
**Fordeler:**
|
||
- Lærer modellen domene-spesifikk resonneringsstruktur
|
||
- Gir konsistens på tvers av svar
|
||
- Reduserer behov for å spesifisere CoT-instruksjon i hver query
|
||
|
||
**Ulemper:**
|
||
- Krever kurering av gode eksempler
|
||
- Øker system message token count
|
||
- Kan overfitte til eksemplene hvis de ikke er representative
|
||
|
||
### Mønster 3: Evaluering med Factuality (CoT-basert grading)
|
||
|
||
Azure OpenAI Evaluation (Preview) bruker CoT internt for faktasjekking:
|
||
|
||
```python
|
||
# Factuality evaluation using chain-of-thought grading
|
||
evaluation_result = evaluator.evaluate_factuality(
|
||
query="What is Microsoft Foundry?",
|
||
ground_truth="Microsoft Foundry is a unified platform for building, testing, and deploying generative AI applications. Released: Nov 2024.",
|
||
response="Microsoft Foundry is Microsoft's platform for AI development, launched in late 2024."
|
||
)
|
||
|
||
# Evaluator uses CoT internally:
|
||
# 1. Extract claims from response
|
||
# 2. Compare each claim to ground truth
|
||
# 3. Classify: consistent / subset / superset / conflict
|
||
# 4. Return factuality score
|
||
```
|
||
|
||
**Fordeler:**
|
||
- Automatisk kvalitetssikring av LLM-output
|
||
- Strukturert feedback for forbedring av prompts
|
||
- Skalerbar evalueringspipeline
|
||
|
||
**Ulemper:**
|
||
- Krever ground truth data for trening/evaluering
|
||
- Evaluator-modellen kan også gjøre feil (evaluering av evaluering)
|
||
- Øker kostnad og latency i produksjonspipeline
|
||
|
||
---
|
||
|
||
## Beslutningsveiledning
|
||
|
||
### Når bruke CoT?
|
||
|
||
| Scenario | Bruk CoT? | Modell-anbefaling | Begrunnelse |
|
||
|----------|-----------|-------------------|-------------|
|
||
| Matematiske beregninger | ✅ Ja | GPT-4, o3, o4-mini | CoT reduserer aritmetiske feil betydelig |
|
||
| Multi-steg problemløsning | ✅ Ja | GPT-4, o3 | Strukturert resonnering forhindrer at modellen hopper over steg |
|
||
| Kildekritisk RAG | ✅ Ja | GPT-4 + Azure AI Search | Tvinger modellen til å vise hvilke dokumenter den refererer til |
|
||
| Kode-generering (kompleks) | ✅ Ja | o3, GPT-5-codex | Hjelper modellen å planlegge arkitektur før implementering |
|
||
| Enkel fakta-lookup | ❌ Nei | GPT-4o-mini | CoT øker kostnad uten nytteverdi |
|
||
| Kreativ skriving | ❌ Nei | GPT-4, GPT-4o | CoT kan hemme kreativitet og flyt |
|
||
| Reasoning models (o1, o3, GPT-5) | ❌ **Nei** | o1, o3, o4-mini, GPT-5 | Intern resonnering er bygget inn – ekstern CoT reduserer ytelse |
|
||
|
||
### Vanlige feil
|
||
|
||
| Feil | Konsekvens | Rettelse |
|
||
|------|------------|----------|
|
||
| Bruke CoT med reasoning models | Redusert ytelse, dobbel resonnering | Fjern CoT-instruksjoner når du bruker o1/o3/GPT-5 |
|
||
| For vag CoT-instruksjon | Modellen viser resonnering, men ikke strukturert | Spesifiser format: "Step 1:", "Step 2:", etc. |
|
||
| Manglende output structure | Vanskelig å parse svar programmatisk | Definer tydelig format for konklusjon (f.eks. "ANSWER is: X") |
|
||
| For lange CoT-chains | Token limit overskrides, trunkering | Begrens antall steg eller bruk kortere kontekst |
|
||
| Ikke validere resonnering | Modellen kan resonnere feil, men høres troverdig ut | Bruk Azure OpenAI Evaluation (Factuality) til å validere |
|
||
|
||
### Røde flagg (når CoT ikke fungerer)
|
||
|
||
1. **Modellen gjentar samme steg:** Token-optimalisering kan føre til loops. Legg til "avoid repetition" i prompt.
|
||
2. **Resonnering er riktig, men konklusjon feil:** Modellen kan ha problemer med siste inferens-steg. Bruk few-shot eksempler.
|
||
3. **CoT øker feilrate:** Noen oppgaver (f.eks. pattern matching) er bedre for intuitive svar. Test med og uten CoT.
|
||
4. **Reasoning models gir kortere svar med CoT:** Dette er tegn på at ekstern CoT kolliderer med intern resonnering. Fjern CoT-instruksjoner.
|
||
|
||
---
|
||
|
||
## Integrasjon med Microsoft-stakken
|
||
|
||
### Azure OpenAI Service
|
||
|
||
CoT er støttet på alle Chat Completions-modeller (GPT-3.5, GPT-4, GPT-4o). For reasoning models (o1, o3, GPT-5) er CoT innebygd.
|
||
|
||
**API-eksempel (Python SDK):**
|
||
```python
|
||
from openai import AzureOpenAI
|
||
|
||
client = AzureOpenAI(
|
||
api_key="YOUR_API_KEY",
|
||
api_version="2024-10-01-preview",
|
||
azure_endpoint="https://YOUR_RESOURCE.openai.azure.com"
|
||
)
|
||
|
||
response = client.chat.completions.create(
|
||
model="gpt-4",
|
||
messages=[
|
||
{"role": "system", "content": "You are a helpful assistant. Show your reasoning step by step."},
|
||
{"role": "user", "content": "If a train travels 120 km in 2 hours, then stops for 30 minutes, then travels another 90 km in 1.5 hours, what is the average speed for the entire journey?"}
|
||
],
|
||
max_tokens=500
|
||
)
|
||
|
||
print(response.choices[0].message.content)
|
||
```
|
||
|
||
### Copilot Studio
|
||
|
||
I Copilot Studio kan du legge til CoT-instruksjoner i:
|
||
1. **System message (Instructions):** Global instruksjon som gjelder alle topics
|
||
2. **Topic-level instructions:** Spesifikk instruksjon for en conversation topic
|
||
3. **Generative answers (knowledge sources):** CoT for å tvinge modellen til å vise hvordan den bruker knowledge sources
|
||
|
||
**Eksempel (Generative Answers):**
|
||
```
|
||
Instructions for generative answers:
|
||
When answering from knowledge sources, always:
|
||
1. Identify which documents contain relevant information
|
||
2. Extract key facts from each document
|
||
3. Synthesize information step by step
|
||
4. Provide answer with citations
|
||
|
||
Format: [Source 1]: <info>, [Source 2]: <info> → Conclusion: <answer>
|
||
```
|
||
|
||
### Microsoft Foundry
|
||
|
||
I Prompt Flow kan du opprette en CoT-node:
|
||
|
||
```python
|
||
from promptflow import tool
|
||
|
||
@tool
|
||
def chain_of_thought_reasoning(query: str, context: str) -> str:
|
||
prompt = f"""Given the following context, answer the query using step-by-step reasoning.
|
||
|
||
Context:
|
||
{context}
|
||
|
||
Query: {query}
|
||
|
||
Reasoning:
|
||
Step 1:"""
|
||
|
||
# Call LLM with prompt
|
||
response = llm.complete(prompt)
|
||
return response
|
||
```
|
||
|
||
### Microsoft 365 Copilot (Microsoft Graph)
|
||
|
||
Når du bygger plugins eller extensions for M365 Copilot, kan du ikke direkte kontrollere system message. Men du kan strukturere function returns for å trigge CoT:
|
||
|
||
```typescript
|
||
// Microsoft Graph Copilot plugin response
|
||
return {
|
||
status: 200,
|
||
body: {
|
||
reasoning: "Step 1: Searched SharePoint for 'Q4 budget'. Step 2: Found 3 documents. Step 3: Extracted budget figures from Finance_Q4.xlsx.",
|
||
answer: "The Q4 budget is $2.4M, with $800K allocated to Marketing.",
|
||
citations: [
|
||
{ title: "Finance_Q4.xlsx", url: "https://..." }
|
||
]
|
||
}
|
||
};
|
||
```
|
||
|
||
---
|
||
|
||
## Offentlig sektor (Norge)
|
||
|
||
### GDPR og personvern
|
||
|
||
Chain-of-thought prompting innebærer at modellen produserer mer output, som potensielt kan inneholde personopplysninger eller sensitiv informasjon. Offentlige virksomheter må være oppmerksomme på:
|
||
|
||
1. **Logging av reasoning traces:** Hvis CoT-output lagres, kan det inneholde PII som ikke ville vært i det endelige svaret. Løsning: Logg kun konklusjon, ikke mellomsteg, eller anonymiser før lagring.
|
||
2. **Grounding data exposure:** CoT kan tvinge modellen til å sitere dokumenter ordrett, noe som kan eksponere fortrolige opplysninger. Løsning: Bruk "paraphrase" eller "summarize" i steden for "quote directly".
|
||
3. **Data residency:** Azure OpenAI støtter EU Data Boundary. CoT øker token-forbruk, så sørg for at hele request/response-paret forblir innenfor EU-regionen.
|
||
|
||
### AI Act (EU AI Act 2024)
|
||
|
||
CoT er **positivt** under AI Act fordi det øker transparens og forklarbarhet:
|
||
|
||
- **Article 13 (Transparency):** CoT gir brukere innsikt i hvordan en AI-beslutning ble tatt
|
||
- **Article 14 (Human oversight):** CoT-output gjør det lettere for mennesker å validere AI-konklusjoner før de brukes i beslutningsprosesser
|
||
|
||
**Anbefaling:** For høyrisiko-systemer (f.eks. automatiserte vedtak i NAV, skatteetaten), dokumenter at CoT brukes for å øke forklarbarhet.
|
||
|
||
### Forvaltningsloven og enkeltvedtak
|
||
|
||
Når AI brukes til å forberede vedtak etter forvaltningsloven, må begrunnelsen være etterprøvbar. CoT kan hjelpe, men:
|
||
|
||
- **Risiko:** Modellen kan gi feil resonnering som høres troverdig ut ("hallucinated reasoning")
|
||
- **Løsning:** Alltid ha en saksbehandler som validerer CoT-output før vedtak fattes. CoT er et hjelpemiddel, ikke en automatisk beslutning.
|
||
|
||
---
|
||
|
||
## Kostnad og lisensiering
|
||
|
||
### Prismodell (Azure OpenAI)
|
||
|
||
Chain-of-thought øker token-forbruk betydelig:
|
||
|
||
| Modell | Pris per 1K input tokens (NOK) | Pris per 1K output tokens (NOK) | CoT overhead (estimat) |
|
||
|--------|-------------------------------|----------------------------------|------------------------|
|
||
| GPT-4 Turbo | ~0.10 | ~0.30 | 2-3x output tokens |
|
||
| GPT-4o | ~0.05 | ~0.15 | 2-3x output tokens |
|
||
| GPT-4o-mini | ~0.01 | ~0.04 | 2-3x output tokens |
|
||
| o1 | ~0.15 | ~0.60 | Reasoning tokens inkludert |
|
||
| o3-mini | ~0.01 | ~0.04 | Reasoning tokens inkludert |
|
||
| GPT-5 | ~0.20 | ~0.80 | Reasoning tokens inkludert |
|
||
|
||
**Eksempel:**
|
||
- Query: 100 tokens
|
||
- Svar uten CoT: 50 tokens → ~0.015 NOK (GPT-4o-mini)
|
||
- Svar med CoT: 150 tokens → ~0.010 + 0.006 = 0.016 NOK
|
||
- **Økning:** ~7% kostnad, men betydelig høyere nøyaktighet
|
||
|
||
**Optimaliseringstips:**
|
||
1. **Bruk CoT selektivt:** Kun for komplekse queries, ikke enkel fakta-lookup
|
||
2. **Bruk billigere modeller med CoT:** GPT-4o-mini + CoT kan matche GPT-4 uten CoT
|
||
3. **Cache system messages:** Azure OpenAI støtter prompt caching (reduserer input token cost)
|
||
4. **Reasoning effort tuning:** For reasoning models, bruk "low" effort for enkle oppgaver, "high" for komplekse
|
||
|
||
### Lisensiering (Copilot Studio)
|
||
|
||
- **Copilot Studio (standalone):** Inkluderer generative AI-kapasitet (GPT-basert). CoT påvirker ikke lisenspris, men kan tømme message quota raskere.
|
||
- **Microsoft 365 Copilot-lisens:** Gir tilgang til Tenant Graph Grounding. CoT kan forbedre hvordan Copilot bruker denne kunnskapen, men krever at utviklere konfigurerer instructions riktig.
|
||
|
||
---
|
||
|
||
## For arkitekten (Cosmo)
|
||
|
||
### 5-8 spørsmål å stille kunden
|
||
|
||
1. **Hva er kompleksiteten på brukerqueries?**
|
||
- Enkle faktaspørsmål → CoT ikke nødvendig
|
||
- Multi-steg problemløsning → CoT anbefales
|
||
|
||
2. **Er transparens og forklarbarhet kritisk?**
|
||
- Ja (f.eks. offentlig sektor, regulerte bransjer) → CoT gir sporbarhet
|
||
- Nei (f.eks. intern chatbot) → Vurder kostnad vs. nytte
|
||
|
||
3. **Hvilken modell planlegger dere å bruke?**
|
||
- Tradisjonelle modeller (GPT-4, GPT-4o) → Eksplisitt CoT trengs
|
||
- Reasoning models (o1, o3, GPT-5) → **Ikke bruk CoT**
|
||
|
||
4. **Har dere RAG/grounding sources?**
|
||
- Ja → CoT kan tvinge modellen til å vise hvilke kilder den bruker
|
||
- Nei → CoT er fortsatt nyttig, men vær obs på hallusinasjoner
|
||
|
||
5. **Hva er budsjett for LLM-kostnader?**
|
||
- CoT øker token-forbruk med 2-3x. Kan kunden absorbere dette?
|
||
|
||
6. **Krever use casen validering av resonnering?**
|
||
- Hvis mennesker må godkjenne svar (f.eks. medisinsk, juridisk) → CoT gjør validering lettere
|
||
|
||
7. **Er latency et problem?**
|
||
- CoT øker responstid (flere tokens å generere). For sanntids-chat, vurder trade-off.
|
||
|
||
8. **Har dere evalueringskriterier for svar-kvalitet?**
|
||
- Hvis ja, inkluder Factuality-evaluering (Azure OpenAI Evaluation) for å validere CoT-output
|
||
|
||
### Fallgruber å unngå
|
||
|
||
| Fallgrube | Hvorfor det er problematisk | Hvordan unngå |
|
||
|-----------|----------------------------|---------------|
|
||
| **Bruke CoT med reasoning models** | Ekstern CoT kolliderer med intern resonnering, reduserer kvalitet | Dokumenter tydelig: "No CoT prompts for o1/o3/GPT-5" |
|
||
| **Ikke teste med og uten CoT** | Anta at CoT alltid hjelper (det gjør det ikke alltid) | A/B-test minst 50 queries med/uten CoT |
|
||
| **Glemme å parse CoT-output** | Hvis kunden trenger strukturert svar, må CoT-output parses | Definer tydelig output format (JSON, XML, eller ANSWER IS: X) |
|
||
| **Ikke budsjettere for økt token-forbruk** | CoT kan doble eller tredoble kostnad | Estimer kostnadsøkning tidlig, få buy-in |
|
||
| **Stole blindt på CoT-resonnering** | Modellen kan resonnere feil, men høres troverdig ut | Valider alltid CoT-output mot ground truth eller human review |
|
||
|
||
### Anbefalinger per modenhetsnivå
|
||
|
||
#### Nivå 1: Proof-of-Concept
|
||
- Start med zero-shot CoT ("Let's think step by step")
|
||
- Bruk GPT-4o-mini for kostnadseffektivitet
|
||
- Logg CoT-output for å se hvordan modellen resonnerer
|
||
- Evaluer manuelt (5-10 eksempler)
|
||
|
||
#### Nivå 2: Pilot / MVP
|
||
- Implementer few-shot CoT med 2-3 kurerte eksempler
|
||
- Integrer med Azure AI Search eller Copilot Studio knowledge sources
|
||
- Bruk Azure OpenAI Evaluation (Factuality) for automatisk kvalitetssikring
|
||
- Mål kostnad per query og sammenlign med non-CoT baseline
|
||
|
||
#### Nivå 3: Produksjon (lav risiko)
|
||
- Bruk reasoning models (o3-mini, o4-mini) i stedet for eksplisitt CoT
|
||
- Implementer prompt caching for å redusere input token cost
|
||
- Monitorér CoT-output for repetisjon eller degenerering
|
||
- Sett opp alerts for queries som overstiger token limit
|
||
|
||
#### Nivå 4: Produksjon (høy risiko / regulert)
|
||
- Kombiner reasoning models (o3, GPT-5) med structured outputs for parse-sikkerhet
|
||
- Implementer human-in-the-loop validering for kritiske beslutninger
|
||
- Logg alle reasoning traces for compliance (GDPR-safe logging)
|
||
- Gjennomfør regelmessig audit av CoT-output mot ground truth
|
||
|
||
---
|
||
|
||
## Kilder og verifisering
|
||
|
||
### Microsoft Learn (Verified via MCP)
|
||
|
||
| Kilde | Konfidensnivå | Verifisert dato |
|
||
|-------|---------------|-----------------|
|
||
| [Prompt engineering techniques - Chain of thought prompting](https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/prompt-engineering#chain-of-thought-prompting) | **Verified** | 2026-02 |
|
||
| [Azure OpenAI On Your Data - Best practices (Chain-of-thought prompting)](https://learn.microsoft.com/en-us/azure/foundry-classic/openai/concepts/use-your-data#best-practices) | **Verified** | 2026-02 |
|
||
| [Azure OpenAI Evaluation (Preview) - Factuality (uses CoT internally)](https://learn.microsoft.com/en-us/azure/foundry-classic/openai/how-to/evaluations#types-of-testing-criteria) | **Verified** | 2026-02 |
|
||
| [Azure OpenAI reasoning models (o1, o3, GPT-5)](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/reasoning) | **Verified** | 2026-02 |
|
||
| [Transparency note for Azure OpenAI - Chain-of-thought capabilities](https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/openai/transparency-note?view=foundry-classic#capabilities) | **Verified** | 2026-02 |
|
||
|
||
### Baseline-kunnskap (fra Claude-modell)
|
||
|
||
| Seksjon | Konfidensnivå | Merknad |
|
||
|---------|---------------|---------|
|
||
| Introduksjon (CoT-historikk) | **Baseline** | Wei et al., 2022 er en kjent publikasjon i feltet |
|
||
| Arkitekturmønstre | **Baseline + Verified** | Kombinerer best practices fra MS Learn og generell LLM-kunnskap |
|
||
| Offentlig sektor (Norge) | **Baseline** | GDPR, AI Act, Forvaltningsloven - generell compliance-kunnskap |
|
||
| Kostnad og lisensiering | **Baseline + Verified** | Prismodeller er hentet fra Azure OpenAI dokumentasjon (via MCP) |
|
||
|
||
### MCP-kall utført
|
||
|
||
1. **microsoft_docs_search:** "chain of thought prompting Azure OpenAI" → 10 resultater
|
||
2. **microsoft_code_sample_search:** "chain of thought prompt examples" → 20 code snippets
|
||
3. **microsoft_docs_fetch:** [Azure OpenAI reasoning models](https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/reasoning) → Full dokumentasjon hentet
|
||
|
||
**Totalt:** 4 MCP-kall, 3 unike Microsoft Learn-kilder.
|
||
|
||
---
|
||
|
||
**Dokumentet oppdateres fortløpende basert på nye Azure OpenAI-funksjoner og Microsoft Learn-dokumentasjon.**
|