ktg-plugin-marketplace/plugins/ms-ai-architect/skills/ms-ai-engineering/references/rag-architecture/rag-cost-optimization.md
Kjell Tore Guttormsen 82bd665ba0 chore(ms-ai-architect): KB checkpoint refresh — 30 files (critical 9 + high batch 1) [skip-docs]
- Critical bucket (9 files): substantive content updates basert på MCP-fetch
  - enterprise-governance: DSPM front door, AI-app-kategorier (3), single-tenant Entra ID
  - rag-cost-optimization, observability, ai-services-enterprise, multi-model-strategy: dato-bump
  - deterministic-cost: Copilot Credits offisiell common currency (2025-09-01), CCCU prepurchase
  - gpt5-gpt41-pricing: utvidet Copilot Studio modell-lineup (GPT-5.2, GPT-5.3, Claude 4.6, Grok 4.1)
  - vector-storage, request-batching: dato-bump (DS allerede dekkende)

- High batch 1 (21 files, 10-30): Last updated 2026-04→2026-05 dato-bump
  Substantive Microsoft Learn-endringer var marginale per fetch — kosmetiske oppdateringer.

Resterende: high batch 2 (filer 31-53, 23 filer) i ny sesjon. Se NEXT-SESSION-PROMPT.local.md.
2026-05-05 14:28:35 +02:00

23 KiB
Raw Blame History

RAG Cost Optimization and Efficiency

Last updated: 2026-05 Status: GA Category: RAG Architecture & Semantic Search


Introduksjon

Kostnadsoptimalisering av RAG-løsninger (Retrieval-Augmented Generation) handler om å balansere tre faktorer: kvalitet, ytelse og kostnad. En RAG-arkitektur har flere kostnadsdrivere fra embedding-generering og vektorindeksering til API-kall mot language models og lagring i Azure AI Search. Denne guiden dekker strategier for å redusere kostnader uten å ofre kvalitet, med fokus på Microsoft AI-stakken.

RAG-kostnader kan deles i to hovedkategorier: engangskostnader (data pipeline, embedding-generering, indeksering) og løpende driftskostnader (queries, inferencing, hosting). Begge kategoriene krever ulike optimeringsstrategier. Nøkkelen er å forstå hvilke komponenter som driver kostnadene, og implementere målrettede tiltak for hver av dem.

For offentlig sektor i Norge er kostnadseffektivitet spesielt viktig grunnet budsjettbegrensninger, anskaffelsesregler og krav til dokumentasjon. RAG-løsninger kan raskt bli kostbare hvis de ikke designes med kostnadsbevissthet fra start. Denne guiden gir konkrete verktøy og metoder for å holde kostnadene under kontroll.

Kjernekomponenter

1. Azure AI Search Tier Selection

Valg av Azure AI Search pricing tier er avgjørende for total kostnad:

Tier Use Case Storage QPM Limit Pris/mnd (estimat)
Free POC, testing 50 MB Begrenset NOK 0
Basic Små produksjonsløsninger 15 GB (services opprettet etter april 2024; eldre: 2 GB) Moderat ~NOK 700
S1 Standard produksjon 25 GB/partition Høy ~NOK 2,500
S2 Store løsninger 100 GB/partition Meget høy ~NOK 10,000
S3 HD Multitenant, mange små indekser 200 GB Høy ~NOK 20,000
L1/L2 Storage-optimized, sjeldne queries 1 TB+ Lavere ~NOK 15,000+

Viktig: Services opprettet etter april 2024 får større partitions til samme pris. Basic-tier: 15 GB per partisjon (eldre services: 2 GB). S1: 25 GB per partisjon. Tier switching er nå støttet — du kan bytte mellom Basic og Standard S1 direkte uten å recreate servicen. Verified (MCP 2026-04).

2. Token Cost Reduction Strategies

Azure OpenAI-kostnader er tokene-basert. Redusering av token-forbruk gir direkte kostnadsbesparelse:

Input token optimization:

  • Chunk size tuning: Bruk minste chunk size som gir tilstrekkelig kontekst (512-1024 tokens typisk)
  • Retrieval filtering: Hent kun relevante chunks (k=3-5 i stedet for k=10)
  • Prompt compression: Fjern overflødig tekst fra system prompts
  • Query optimization: Pre-prosesser brukerqueries for å redusere lengde

Output token optimization:

  • max_tokens parameter: Sett eksplisitt grense for respons-lengde
  • Stream responses: Bruk streaming for bedre UX og kontroll
  • Stop sequences: Definer stop tokens for å unngå unødvendig generering

Batch processing:

  • Azure OpenAI Batch API: 50% rabatt sammenlignet med standard API
  • Ideal for offline-prosessering (dokumentanalyse, bulk-embedding)
  • 24-timers SLA, separat quota, ingen påvirkning av online workloads

3. Embedding Model Selection

Embedding models har direkte kostnad-påvirkning både i generering og lagring:

Model Dimensions Cost/1M tokens Storage Impact Use Case
text-embedding-ada-002 1536 ~NOK 1.00 Standard Legacy, deprecated
text-embedding-3-small 512-1536 ~NOK 0.20 Kompakt Kostnadseffektiv
text-embedding-3-large 1024-3072 ~NOK 1.30 Større Høy presisjon
Multilingual-e5-large 1024 Varierer Standard Flerspråklig

Dimensionality reduction:

  • text-embedding-3-* modeller støtter dimensionality reduction
  • Reduserer lagringskostnader i vektor-database
  • Minimal kvalitetstap for mange use cases (test før deployment)

Caching strategies:

  • Cache embeddings for repeterende queries
  • Bruk Azure Cache for Redis eller Cosmos DB
  • TTL-basert invalidering for fresh data

4. Index Size Management

Vector index størrelse påvirker både lagring og query-kostnader:

Compression techniques:

  • Scalar quantization: Reduserer vector storage med 75% (float32 → int8)
  • Binary quantization: 96.875% reduksjon, egnet for mange use cases
  • Azure AI Search støtter built-in compression (opptil 92.5% kostnadsreduksjon)

Incremental indexing:

  • Index kun nye/endrede dokumenter, ikke hele corpus
  • Bruk indexAction parameter i indexer-pipelines
  • Reduserer AI enrichment-kostnader ved re-indexing

Enrichment caching:

  • Cache AI enrichment-resultater i Azure Storage
  • Gjenbruk tidligere prosesserte data ved re-indexing
  • Lagringskostnad << enrichment-kostnad for store volumer

5. Query Optimization

Query-typer har ulik kostnad og performance-profil:

Query Type Speed Cost Accuracy When to Use
Vector only Rask Medium Høy semantic Semantic likhet viktig
Keyword only Raskest Lavest Høy presisjon Eksakte matches
Hybrid Moderat Høyere Best Balansert relevans
Semantic ranking Tregere Premium charge Svært høy Viktigste queries

Hybrid search optimization:

  • Kombiner keyword + vector for best relevans/kostnad-ratio
  • Bruk keyword pre-filtering før vector search
  • Progressive retrieval: start billig, eskalér ved behov

Semantic ranker (premium feature):

  • Koster per query (NOK ~0.50-2.00 per 1000 queries)
  • Bruk selektivt for høy-verdi queries
  • A/B-test mot hybrid search for ROI-validering

6. Scaling Strategies

Azure AI Search-kostnader skalerer ikke-lineært:

Dynamic scaling:

  • Scale up for indexing workloads, scale down for query-only periods
  • Automate scaling med Azure Functions/Logic Apps
  • Viktig: Doubling capacity > doubles cost på samme tier

Tier switching optimization:

  • S1 med mange replicas/partitions kan være dyrere enn S2 base
  • S2 har bedre compute og mer minne per SU
  • Kalkuler break-even point før scaling horisontalt

Replica vs. partition tuning:

  • Partitions: Øker storage og indexing throughput
  • Replicas: Øker query capacity og redundans
  • Legg til partitions kun når index size eller ingestion krever det
  • Legg til replicas kun når QPS er for høyt eller HA trengs

Arkitekturmønstre

1. Tiered Search Architecture

Konsept: Bruk billige søk først, eskalér til dyre kun ved behov.

Implementering:

User Query
    ↓
1. Keyword Search (billigst, raskest)
   ↓ [hvis < 5 resultater med score > 0.8]
2. Vector Search (dyrere, saktere)
   ↓ [hvis < 3 resultater med score > 0.85]
3. Hybrid + Semantic Ranker (dyrest, best)

Fordeler:

  • Reduserer kostnad for 70-80% av queries
  • Bedre latency for enkle queries
  • Bevarer kvalitet for komplekse queries

Ulemper:

  • Kompleksitet i query-routing logikk
  • Potential for inkonsistent UX
  • Krever grundig testing av thresholds

2. Smart Caching with Embeddings

Konsept: Cache både embeddings og query-resultater for å redusere API-kall.

Implementering:

Query → Hash → Cache Lookup (Redis)
  ↓ [cache miss]
Generate Embedding (Azure OpenAI)
  ↓
Store in Cache (TTL: 7 days)
  ↓
Vector Search → Cache Results (TTL: 1 hour)

Fordeler:

  • Eliminerer duplicate embedding-generering
  • Reduserer Azure OpenAI API-kostnader med 40-60%
  • Raskere response times

Ulemper:

  • Cache-infrastruktur koster (men mindre enn API-kall)
  • TTL-tuning krever monitorering
  • Stale data-risiko for dynamiske corpus

3. Model Cascading

Konsept: Bruk billige modeller for enkle oppgaver, dyre for komplekse.

Implementering:

Simple Query → GPT-4o-mini (billig, rask)
  ↓ [hvis confidence < 0.7]
Complex Query → GPT-4o (dyrere, smartere)
  ↓ [hvis krever reasoning]
Multi-step Task → GPT-4o + reasoning mode

Fordeler:

  • Optimaliserer kostnad per query-type
  • GPT-4o-mini kan være 10x billigere
  • Bevarer kvalitet for viktige queries

Ulemper:

  • Confidence scoring krever testing
  • Latency øker ved escalation
  • Kompleks orchestration-logikk

Beslutningsveiledning

Når skal jeg velge Basic vs. S1?

Scenario Anbefaling Begrunnelse
Pilot med < 10K dokumenter Basic Koster ~1/3 av S1, tilstrekkelig for testing
Produksjon < 100K dokumenter Basic Kan skalere til 3 replicas for HA; 15 GB/partisjon gir god buffer
Produksjon > 100K dokumenter S1 Bedre partition size, raskere indexing
Multitenant med mange små indekser S3 HD Optimalisert for høy index-count
Stort arkiv, sjeldne queries L1/L2 Beste storage/kostnad-ratio

Vanlige feil

  1. Over-embedding: Generere embeddings for alt innhold, også metadata/headers
    • Fix: Kun embed semantisk meningsfylt tekst
  2. Over-indexing: Re-index hele corpus ved små endringer
    • Fix: Incremental indexing + enrichment cache
  3. Over-retrieving: Hente k=10-20 chunks per query
    • Fix: Start med k=3-5, øk kun hvis nødvendig
  4. Ignoring compression: Bruke full float32 vectors
    • Fix: Aktiver scalar/binary quantization i Azure AI Search
  5. No caching: Generere embeddings på nytt for like queries
    • Fix: Implementer embedding cache med Redis

Røde flagg

  • Token usage øker > 50% per måned uten økning i brukere → sjekk for ineffektive prompts
  • Index size > 10x source data → sjekk for duplikater eller unødvendig enrichment
  • Query latency > 2 sekunder → vurder høyere tier eller optimalisering
  • Costs > NOK 50,000/mnd for < 10,000 queries/dag → arkitektur-review nødvendig

Integrasjon med Microsoft-stakken

Azure Cost Management

Setup:

# Opprett budget alert via Azure CLI
az consumption budget create \
  --name "AI-Search-Monthly-Budget" \
  --amount 10000 \
  --time-grain Monthly \
  --category Cost \
  --resource-group <rg-name>

Best practices:

  • Sett budgets per resource group (Search, OpenAI separat)
  • Opprett alerts på 50%, 80%, 100% av budget
  • Exporter cost data til Power BI for analyse

Azure Monitor

Key metrics å overvåke:

Metric Threshold Action
QPS (Queries/sec) > 80% av tier limit Øk replicas eller tier
Throttled queries > 5% Øk capacity eller optimaliser queries
Index size growth > 20%/mnd Review chunking strategy
Token usage trend > 30% økning Audit prompt efficiency

Alerting-regel eksempel:

AzureDiagnostics
| where ResourceProvider == "MICROSOFT.SEARCH"
| where OperationName == "Query.Search"
| summarize AvgDuration=avg(DurationMs), Count=count() by bin(TimeGenerated, 1h)
| where AvgDuration > 2000 // Alert hvis avg > 2 sekunder

Azure Advisor

Azure Advisor gir automatiske cost optimization-anbefalinger:

  • Right-sizing: Forslag til tier-nedgradering hvis under-utilized
  • Idle resources: Detekterer ubrukte search services
  • Reservation recommendations: RI-forslag for predictable workloads

Aksjonspunkt: Reviewer Advisor recommendations månedlig.

Offentlig sektor (Norge)

Budsjettplanlegging

Anskaffelsescykluser:

  • Årlige budsjetter krever presis kostnadsprediksjon
  • Bruk 6-måneders pilot med 1-5% av data for estimering
  • Buffer med 20-30% for uforutsett vekst

Kostnadsfordelingsmodell for delt infrastruktur:

Kostnadselement Allokering Metode
Azure AI Search base Per avdeling Fixed % basert på index size
Azure OpenAI tokens Per query Pay-per-use tracking med tags
Storage (embeddings) Per prosjekt Direkte kostnad per resource group

Anskaffelsesregler

LDO-kompabilitet (Lov om offentlige anskaffelser):

  • Azure Enterprise Agreements (EA) er pre-approved for stat
  • Commitment-based pricing krever godkjenning for > NOK 100,000
  • Dokumenter cost-benefit analysis for RAG vs. alternativer

Multi-year contracts:

  • Azure Reservations (1-3 år) gir 30-60% rabatt
  • Krev break-even analysis og usage forecasting
  • Kun for stabile workloads (produksjon, ikke pilot)

Kostnadsrapportering

Kvartalsrapportering til departement:

Q1 2026 RAG Cost Breakdown:
- Azure AI Search (S1, 2 replicas): NOK 5,000
- Azure OpenAI (gpt-4o, 10M tokens): NOK 12,000
- Storage (embeddings + cache): NOK 800
- Networking: NOK 200
Total: NOK 18,000

Metrics:
- 25,000 queries served
- NOK 0.72 per query
- 95% user satisfaction

KPI-er for cost efficiency:

  • Cost per query (target: < NOK 1.00 for offentlig sektor)
  • Cost per user (monthly active users)
  • ROI: Time saved × hourly rate > RAG costs

Kostnad og lisensiering

Azure AI Search Pricing (Norge, 2026)

Tier Hourly Rate (NOK) Monthly (730 hrs) Search Units (SU) Note
Free 0.00 0 1 50 MB, 1 index limit
Basic ~1.00 ~730 1-3 15 GB per partition (etter april 2024)
S1 ~3.50 ~2,555 1-36 25 GB per partition
S2 ~13.50 ~9,855 1-36 100 GB per partition
S3 ~27.00 ~19,710 1-36 200 GB per partition
S3 HD ~27.00 ~19,710 1-36 Optimalisert for mange indekser
L1 ~20.00 ~14,600 1-12 1 TB per partition
L2 ~40.00 ~29,200 1-12 2 TB per partition

Viktig: Kostnader = Base rate × (replicas × partitions). Eks: S1 med 2 replicas og 2 partitions = 4 SU = NOK 10,220/mnd.

Azure OpenAI Pricing (Norge, 2026)

Model Input (per 1M tokens) Output (per 1M tokens) Use Case
gpt-4o ~NOK 50 ~NOK 150 Høy kvalitet, produksjon
gpt-4o-mini ~NOK 1.5 ~NOK 6 Kostnadseffektiv, enkle tasks
text-embedding-3-small ~NOK 0.20 N/A Embeddings, budget-vennlig
text-embedding-3-large ~NOK 1.30 N/A Embeddings, best performance

Batch API: 50% rabatt på alle modeller (gjelder kun async workloads).

Premium Features (tilleggskostnader)

Feature Kostnad Påvirkning
Semantic Ranker ~NOK 5.00 per 1000 queries Bedre relevans, dyrere
AI Enrichment (OCR, entities) Per 1000 transactions Variable, kan være høye
Enrichment Cache Azure Storage rate Lav (< NOK 50/mnd typisk)
Knowledge Store Azure Storage rate Lav, avhenger av volum
Customer-managed keys Azure Key Vault rate ~NOK 50/mnd

ROI Calculation Framework

Eksempel: Dokumentsøk for 50 saksbehandlere

Før RAG:

  • 30 min/dag manuell søking per person
  • 50 personer × 30 min × 220 dager/år = 5,500 timer
  • Timerate: NOK 600 → Årlig kostnad: NOK 3,300,000

Med RAG:

  • 10 min/dag RAG-søk (20 min spart)
  • 3,667 timer spart × NOK 600 = NOK 2,200,000 besparelse
  • RAG infrastructure: NOK 250,000/år
  • Netto besparelse: NOK 1,950,000 (591% ROI)

Break-even: 2-3 måneder for typisk offentlig sektor use case.

For arkitekten (Cosmo)

Spørsmål å stille kunden

  1. "Hva er dagens månedsbudsjett for denne løsningen, og hva er akseptabel kostnad per query?"

    • Hjelper sette cost constraints fra start
    • Typisk target: NOK 0.50-2.00 per query avhengig av kompleksitet
  2. "Hvor mange dokumenter skal indekseres, og hvor ofte endres de?"

    • Bestemmer incremental vs. full re-indexing strategi
    • Statisk corpus → billigere, dynamisk → trenger caching
  3. "Hva er forventet query volume, og er det forutsigbart (daglig/ukentlig mønster)?"

    • Forutsigbart → commitment pricing mulig (30-60% rabatt)
    • Uforutsigbart → pay-as-you-go, men dyrere
  4. "Hvor viktig er semantic quality vs. eksakt keyword matching?"

    • Høy semantic need → må investere i vector search
    • Keyword-tungt → kan spare på hybrid search
  5. "Skal dette være multitenant, og trenger vi cost tracking per bruker/avdeling?"

    • Bestemmer tagging-strategi i Azure
    • Påvirker index design (shared vs. separate indexes)
  6. "Hva er tolerance for query latency? (< 1s, < 2s, < 5s?)"

    • Lavere latency → høyere tier nødvendig → dyrere
    • Høyere tolerance → kan optimalisere kostnad
  7. "Har dere eksisterende Azure EA eller commitment-avtaler?"

    • Kan påvirke pricing significantly
    • Reserved instances tilgjengelig?
  8. "Trenger dere compliance-features som customer-managed keys?"

    • Legger til NOK 50-100/mnd i Key Vault-kostnader
    • Kan kreve høyere tiers

Fallgruver å unngå

  1. "One-size-fits-all embedding model"

    • Mange velger text-embedding-3-large for alt
    • Vurder -small for metadata/tags, -large for hoveddokumenter
  2. "No baseline measurement"

    • Start pilot uten å måle initial costs
    • Implementer cost tracking fra dag 1 (Azure tags, Cost Management)
  3. "Ignoring regional pricing differences"

    • Azure OpenAI priser varierer per region
    • Sweden Central ofte billigere enn Norway East (men vurder dataresidency)
  4. "Over-engineering for pilot phase"

    • Bruker S2 for 1000-dokument POC
    • Start med Basic, skalér etterhvert som behov vises
  5. "No query optimization"

    • Sender hele dokumenter som context til LLM
    • Chunk smart, retrieve relevant, summarize før sending
  6. "Static scaling"

    • Provisionerer for peak load 24/7
    • Implementer dynamic scaling for natt/helg (kan spare 30-40%)

Anbefalinger per modenhetsnivå

Level 1: Pilot/POC (0-3 måneder)

  • Tier: Basic eller Free
  • Embedding: text-embedding-3-small
  • LLM: gpt-4o-mini (95% av queries), gpt-4o (5% komplekse)
  • Caching: Ikke nødvendig ennå
  • Monitoring: Gratis Azure Monitor alerts
  • Estimert kostnad: NOK 1,000-5,000/mnd

Level 2: Production MVP (3-12 måneder)

  • Tier: S1 (1 partition, 2 replicas for HA)
  • Embedding: text-embedding-3-large (testing for quality)
  • LLM: gpt-4o (produksjon), cascading til gpt-4o-mini
  • Caching: Redis Cache for embeddings (Basic tier)
  • Monitoring: Custom dashboards i Azure Monitor
  • Estimert kostnad: NOK 15,000-50,000/mnd

Level 3: Enterprise Scale (12+ måneder)

  • Tier: S2 eller S3 (multi-replica, multi-partition)
  • Embedding: Fine-tuned custom embeddings (vurder)
  • LLM: gpt-4o med Provisioned Throughput (commitment pricing)
  • Caching: Redis Premium + enrichment cache
  • Monitoring: Azure Monitor Workbooks + Power BI dashboards
  • Estimert kostnad: NOK 100,000-500,000/mnd (avhenger av scale)

Level 4: Optimalisert/Mature (18+ måneder)

  • Tier: Multi-tier architecture (L1/L2 for archival, S3 for active)
  • Embedding: Custom fine-tuned, dimensionality reduction
  • LLM: Model cascading, batch processing for non-urgent
  • Caching: Multi-layer (Redis + CDN for static content)
  • Monitoring: Predictive cost analytics, automated optimization
  • Estimert kostnad: Varierer, men typisk 30-50% lavere enn Level 3 for samme throughput

Kilder og verifisering

Microsoft Learn Resources (Verified 2026-02)

Azure AI Search Cost Management:

Azure OpenAI Cost Management:

RAG Architecture & Optimization:

Cloud Adoption Framework:

Azure Databricks (Reference):

Konfidensnivå per seksjon

Seksjon Confidence Grunnlag
Azure AI Search Tier Selection Verified Microsoft Learn pricing docs, feb 2026
Token Cost Reduction Verified Azure OpenAI official docs
Embedding Model Pricing Verified Pricing page + docs
Index Compression Verified Tech Community blog (92.5% compression)
Batch API Pricing Verified Official docs (50% discount)
Semantic Ranker Costs Verified Pricing page
Norwegian Pricing Estimates Baseline USD → NOK conversion (11.5 rate), approximate
ROI Calculations Baseline Industry estimates + model knowledge
Public Sector Best Practices Baseline General knowledge + Azure CAF guidance

Viktig: Prisestimatene i NOK er basert på USD-priser konvertert med kurs 11.5. Alltid verifiser gjeldende priser på Azure Pricing Calculator før budsjettplanlegging.


Document version: 1.0 Research sources: 13 Microsoft Learn articles MCP calls: 3 (search) + 2 (fetch) = 5 total Last validated: 2026-04-09