ms-ai-architect/skills/ms-ai-engineering/references/mlops-genaiops/cost-optimization-mlops-pipelines.md
Kjell Tore Guttormsen de0d94cbc1 feat(ms-ai-architect): R22 decision-b Enhet 3 — Status-backfill 25 none + ai-act dual-header-dedup 4 (Missing Status/Last-updated 29+4→0) [skip-docs]
To operasjoner, én økt (⊥ R7), begge ren metadata-normalisering (verdi aldri fabrikkert).

Premiss-korreksjon (ground truth 2026-07-07): roadmap sa «27 none + 4 ai-act».
Målt: 29 mangler bold **Status:** = 25 rene none + 4 ai-act (plain Status: GA).
De «27» inkluderte 2 for mye — 2 filer (custom-dashboards-ai-operations,
zero-trust-ai-services) har bold **Status:** KUN forbi byte 500 (present for
full-fil-audit, usynlig for 500B header-parser) → egen header-slanking-residual
(§8-register), utenfor Enhet 3.

Op A — Status-backfill 25 rene none: utvidet backfill-status.mjs MANIFEST 14→39
(samme statusForFile + insertMetaField + hard per-fil-invariant, idempotent skip
på de 14 R21-gjorte). Alle 25 → **Status:** Established Practice (ingen matcher
template|matrix|benchmarks|register). Diff +25/-0.

Op B — ai-act dual-header-dedup (4 filer): ny driver dedup-plain-header.mjs + 2
rene primitiver i transform.mjs — boldifyPlainField (plain→bold, verdi bevart
byte-eksakt, header-scoped, idempotent) + dropRedundantPlainField (sletter plain
KUN når bold m/ identisk verdi beviser redundans; kaster ved avvik/manglende bold).
Per fil: plain Last updated: + Status: GA → bold (2026-06-18/2026-02, GA bevart),
redundant plain Category: fjernet. Hard per-fil-invariant (net -1 linje, begge
felt bold m/ bevart verdi, ingen plain-header igjen, body byte-identisk). Diff -12/+8.

Verifisering: test-backfill-status 8/8 + test-dedup-plain-header 13/13; audit
Missing Status 29→0, Missing English Last updated 4→0; skills-diff 29 filer
+33/-12 (kun **Status:** + 8 bold-swaps), diff-kontekst inspisert per fil; begge
drivere idempotent (re-run 0 writes); suite 806/806 exit 0; none=8 uendret (Enhet 4).
2026-07-07 07:45:27 +02:00

577 lines
23 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kostnadsoptimalisering i MLOps-pipelines
**Last updated:** 2026-04
**Category:** MLOps & GenAIOps
**Relevans:** Azure Machine Learning, MLOps-implementering, FinOps for AI
**Type:** reference
**Source:** https://learn.microsoft.com/azure/machine-learning/concept-ml-pipelines
**Status:** Established Practice
## Innhold
- [Introduksjon](#introduksjon)
- [Kjernekomponenter](#kjernekomponenter)
- [Arkitekturmønstre](#arkitekturmønstre)
- [Beslutningsveiledning](#beslutningsveiledning)
- [Integrasjon med Microsoft-stakken](#integrasjon-med-microsoft-stakken)
- [Offentlig sektor (Norge)](#offentlig-sektor-norge)
- [Kostnad og lisensiering](#kostnad-og-lisensiering)
- [For arkitekten (Cosmo)](#for-arkitekten-cosmo)
- [Kilder og verifisering](#kilder-og-verifisering)
## Introduksjon
Kostnadsoptimalisering i MLOps-pipelines handler om å maksimere verdien av ML-investeringer gjennom strategisk ressursbruk. Med kontinuerlig trening, retrening og utvikling av maskinlæringsmodeller kan compute-kostnadene raskt eskalere — særlig for deep learning-modeller på GPU-er. En systematisk tilnærming til kostnadsoptimalisering sikrer at organisasjoner kan skalere ML-operasjoner uten at budsjettet sprekker.
**Nøkkelinnsikt (høy konfidensgrad):** Azure Machine Learning pipelines er designet for kostnadsreduksjon gjennom to hovedmekanismer: (1) gjenbruk av output fra uendrede steg, og (2) mulighet til å kjøre hvert steg på den mest kostnadseffektive compute-ressursen for oppgaven.
## Kjernekomponenter
### 1. Compute-optimalisering
**AmlCompute clusters (managed compute)**
Azure Machine Learning-brukere bør som standard bruke AmlCompute (Azure Machine Learning compute cluster) fremfor ukontrollerte VM-instanser. AmlCompute tilbyr:
- Enterprise-grade sikkerhet, compliance og governance
- Automatisk skalering basert på workload
- Støtte for både GPU og CPU i ulike størrelser
- Integrert støtte for Reserved VM Instances (opptil 72% rabatt)
**Autoskalering av treningsklynger (kritisk for kostnadsreduksjon):**
```python
from azure.ai.ml.entities import AmlCompute
# Best practice: min_instances=0 for å unngå kostnader når ingen jobber kjører
cluster = AmlCompute(
name="cost-optimized-cluster",
type="amlcompute",
size="STANDARD_DS3_V2",
min_instances=0, # KRITISK: skaler ned til 0 når idle
max_instances=4,
idle_time_before_scale_down=120, # 120 sek = default, vurder 60-180 basert på workload
tier="Dedicated"
)
ml_client.compute.begin_create_or_update(cluster).result()
```
**Viktige konfigurasjoner:**
- **`min_instances=0`** — obligatorisk for å unngå kostnader når ingen jobber kjører. Enhver verdi > 0 holder noder kjørende selv når de ikke brukes.
- **`idle_time_before_scale_down`** — default 120 sekunder. Reduser til 60 sek for mindre iterativ eksperimentering, øk til 180+ sek for høyiterativ dev/test for å unngå konstant skalering opp/ned.
- **`tier="LowPriority"`** — for batch-workloads som ikke er tidskritiske, bruk low-priority VMs (preemptible, men vesentlig billigere). Egnet for batch-inferens og deep learning-trening med checkpointing.
### 2. Compute instance-schedulering
Compute instances forblir på som standard, og akkumulerer kostnad kontinuerlig. To strategier (begge nå GA): Verified (MCP 2026-04)
- **Idle shutdown:** Automatisk avslutning når VM har vært idle i spesifisert periode
- **Scheduled start/stop:** Planlegg start/stopp basert på kjente arbeidstider
**Bruk når:** Utviklere bruker notebooks i forutsigbare arbeidstider (f.eks. 08:00-16:00 norsk tid).
### 3. Reserved VM Instances
For stabil, forutsigbar ML-workload: kjøp 1-årig eller 3-årig reserved instances.
- Rabatt: opptil 72% av pay-as-you-go-pris
- Automatisk anvendt på AmlCompute-forbruk
- Beste case: organisasjoner med langsiktig, jevn treningslast (ikke sporadisk eksperimentering)
**Konfidensvurdering (medium):** Microsoft dokumenterer "opptil 72%", men faktisk rabatt avhenger av VM-type og region. Typisk: 30-50% i Norge-regioner (West Europe, North Europe) basert på januar 2026-priser.
### 4. Parallellisering av trening
ParallelComponent i Azure ML lar deg kjøre oppgaver på mange små noder i parallell (horisontal skalering).
```python
from azure.ai.ml.entities import ParallelComponent
# Eksempel: kjør datasett-prosessering på 4 mindre noder i stedet for 1 stor
# Trade-off: parallelisering har overhead, men kan være kostnadseffektiv
```
**Når det fungerer:**
- Oppgaver som kan deles opp naturlig (f.eks. datasett-splitting, hyperparam-tuning)
- Mange små VMs er billigere enn én stor GPU-VM for oppgaven
**Når det ikke fungerer:**
- Oppgaver med høy inter-node-kommunikasjon (distribuert deep learning med små batch-størrelser)
- Overhead ved parallelisering overstiger tidsbesparelsen
### 5. Job termination policies
**Hyperparameter tuning:**
```python
from azure.ai.ml import automl
# Early termination policies: Bandit, Median stopping, Truncation selection
training_node = automl.forecasting(
training_data=train_data,
target_column_name="target",
primary_metric="normalized_root_mean_squared_error",
n_cross_validations="auto"
)
training_node.set_limits(
timeout_minutes=120, # Maks total kjøretid
trial_timeout_minutes=30, # Maks per trial
max_concurrent_trials=4, # Parallelitet
enable_early_stopping=True # Stop dårlige kjøringer tidlig
)
```
**RunConfiguration:**
```python
# max_run_duration_seconds for å stoppe runaway jobs
run_config.max_run_duration_seconds = 3600 # 1 time maks
```
### 6. Pipeline output-gjenbruk (reuse)
Azure ML pipelines gjenbruker automatisk output fra uendrede komponenter:
**Scenario:** Du har en 4-stegs pipeline (data prep → feature engineering → training → evaluation). Hvis kun evaluation-koden endres, gjenbrukes output fra de tre første stegene — kun siste steg kjører på nytt.
**Kostnadsbesparelse:** Kan redusere pipeline-kjøretid og -kostnad med 50-90% i iterative utviklingsfaser.
**Debugging reuse-problemer:** Bruk pipeline graph comparison-funksjonen i Azure ML Studio for å sammenligne to pipeline-kjøringer og identifisere hvilke steg som endret seg. Se også `how-to-debug-pipeline-reuse-issues` guide fra Microsoft Learn. Typiske årsaker til at gjenbruk ikke skjer: endringer i data, kode, miljø eller compute-konfigurasjon. Verified (MCP 2026-04).
### 7. Data retention og sletting
Hver pipeline-kjøring genererer intermediate datasets. Over tid fyller disse storage-kontoen.
**Løsning:** Azure Blob Storage lifecycle management policies.
```json
{
"rules": [
{
"enabled": true,
"name": "delete-old-pipeline-artifacts",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 90
}
}
},
"filters": {
"blobTypes": ["blockBlob"],
"prefixMatch": ["azureml/pipeline-runs/"]
}
}
}
]
}
```
**Best practice (høy konfidensgrad):** Slett intermediate artifacts eldre enn 90 dager, behold kun final models og metrics.
### 8. Regionsplassering
**Regel:** Deploy alle ressurser (workspace, compute, storage, data) i samme Azure-region.
**Hvorfor:** Cross-region data transfer koster (Azure outbound bandwidth charges). Latency øker også.
**For Norge:** West Europe (Amsterdam) eller North Europe (Dublin) er vanlige valg. Vurder Norway East/West hvis data residency-krav krever det (men dyrere compute).
### 9. Managed online endpoints autoscaling
For inference-endepunkter:
```python
# Azure Monitor autoscaling rules
- Metrics-based: CPU utilization > 70% scale up
- Schedule-based: scale opp kl. 08:00, ned kl. 17:00
- Kombinasjon av begge
```
**Konfigurasjon:** Bruk Azure Monitor autoscale feature, integrert med managed online endpoints.
### 10. Feilet deployments cleanup
Feilet deployments kan fortsatt ha allokert compute (VMs for managed endpoints).
**Aksjon:** Slett feilet deployments umiddelbart etter debugging for å stoppe kostnadspåløp.
### 11. Workspace-level quotas
Sett kvoter per VM-familie på workspace-nivå for å unngå ukontrollert ressursforbruk:
```plaintext
Azure Portal → ML Workspace → Support + Troubleshooting → Usage + quotas
→ Set workspace-level quota by VM family
```
**Bruk:** Begrens antall GPU-instanser per workspace for dev-miljøer, høyere quota for prod.
## Arkitekturmønstre
### Mønster 1: Development → Staging → Production med kostnadsdifferensiering
**Development:**
- Små compute clusters (max 2-4 noder)
- Low-priority VMs der mulig
- Aggressive idle shutdown (60 sek)
- Små datasett (sampling/anonymisering)
**Staging:**
- Medium clusters (max 10 noder)
- Dedicated VMs
- Standard idle shutdown (120 sek)
- Full data, men begrenset retrening-frekvens
**Production:**
- Auto-scaling clusters (0 til 50+ noder)
- Reserved instances for baseline-load
- Spot/low-priority for burst-kapasitet
- Lifecycle policies for artifact cleanup
### Mønster 2: Cost-aware pipeline routing
Bruk Azure ML compute context selection per pipeline-steg:
```python
@pipeline()
def cost_optimized_pipeline():
# CPU-intensiv data prep → low-priority CPU cluster
prep_step = prep_component(...)
prep_step.compute = "cpu-lowpri-cluster"
# GPU-trening → reserved GPU cluster (baseline) eller spot GPU (burst)
train_step = train_component(prep_step.outputs.data)
train_step.compute = "gpu-reserved-cluster"
# Evaluation → serverless compute (pay-per-execution)
eval_step = eval_component(train_step.outputs.model)
eval_step.compute = "serverless"
```
### Mønster 3: Progressive model development
**Fase 1 (exploration):** Små modeller, små datasett, CPU compute → lav kostnad, rask iterasjon
**Fase 2 (optimization):** Full datasett, hyperparameter tuning, GPU compute med early termination
**Fase 3 (production training):** Full pipeline, optimalisert compute, scheduled retraining
**Kostnadseffekt:** Unngå å bruke dyre GPU-ressurser i tidlig eksperimentering.
## Beslutningsveiledning
### Scenario 1: Daglig retrening av forecasting-modell
**Kontekst:** 1 GB datasett, 30 min treningtid på STANDARD_DS3_V2.
**Anbefaling:**
- **Compute:** AmlCompute cluster, min=0, max=1, dedicated
- **Scheduling:** Azure ML scheduled pipeline (daily 02:00 UTC)
- **Cost optimization:** Reserved instance (1-year) for predictable daglig kjøring → ~40% besparelse vs. pay-as-you-go
- **Total monthly cost (estimat, medium konfidensgrad):** ~NOK 800-1200 (basert på West Europe pricing jan 2026)
### Scenario 2: Iterativ deep learning-eksperimentering
**Kontekst:** Computer vision, trenger GPU, 10-20 eksperimenter/dag, variabel kjøretid.
**Anbefaling:**
- **Compute:** AmlCompute GPU cluster, min=0, max=4, low-priority
- **Termination:** Early stopping med Bandit policy (aggressive)
- **Reuse:** Enable pipeline caching for data prep-steg
- **Cost optimization:** Low-priority VMs → ~70-80% billigere enn dedicated GPU
- **Risk mitigation:** Checkpointing hver 15 min for å håndtere preemption
**Total cost (estimat, lav konfidensgrad):** Varierer sterkt (NOK 2000-10000/måned avhengig av GPU-type og eksperiment-varighet).
### Scenario 3: Produksjons-inference med variabel load
**Kontekst:** Managed online endpoint, 100-10000 req/time, latency-kritisk.
**Anbefaling:**
- **Compute:** Managed endpoint med autoscaling
- **Baseline:** 2 instanser (reserved) for forutsigbar load
- **Burst:** Scale up til 20 instanser ved load > 70% CPU
- **Schedule:** Scale ned til 1 instans 22:00-06:00 (hvis trafikkdata støtter det)
**Kostnadsreduksjon:** 30-50% vs. statisk 20-instans deployment.
## Integrasjon med Microsoft-stakken
### Azure Cost Management + Budgets
**Setup:**
1. Opprett budget på subscription eller resource group-nivå
2. Sett alerts ved 50%, 80%, 100% av budsjett
3. Definer action groups (e-post til team lead, webhook til automatisering)
**ML-spesifikk filtering:**
```plaintext
Cost Management → Budgets → Create budget
→ Filter: Service name = "Virtual Machines", "Machine Learning", "Storage"
→ Alert thresholds: 50%, 80%, 100%
→ Action group: email team + Logic App (auto-shutdown dev clusters ved 90%)
```
**Best practice (høy konfidensgrad):** Separate budgets per miljø (dev/stage/prod) og per team/prosjekt.
### Azure Monitor metrics
**Key metrics for cost tracking:**
- `Active Cores` (workspace-level) — identifiser idle compute
- `Quota Utilization` — unngå overprovisioning
- `Pipeline Duration` — optimaliser for kortere kjøretid = lavere kostnad
**Alert-eksempel:**
```plaintext
If ActiveCores > 0 for > 2 timer AND no pipeline runs → alert + auto-shutdown
```
### Power BI / Excel cost dashboards
**Export cost data:**
```bash
az costmanagement export create \
--name "ml-cost-export" \
--scope "/subscriptions/{sub-id}" \
--storage-account-id "{storage-id}" \
--storage-container "cost-exports" \
--recurrence Daily \
--recurrence-period from="2026-01-01" to="2026-12-31"
```
**Analyse i Power BI:** Knytt kostnad til pipeline runs, modeller, teams — identifiser "top spenders".
### Azure Machine Learning registries (MLOps across environments)
**Cost-fordel:** Gjenbruk av komponenter og modeller på tvers av dev/stage/prod-workspaces reduserer duplikering av eksperimenter.
**Mønster:** Tren modell i dev-workspace (små data), deploy til prod-workspace uten retrening → spar prod-compute.
## Offentlig sektor (Norge)
### Budsjett- og rapporteringskrav
**Utredningsinstruksen (§ 6):** Kostnadsvurdering skal inkludere både initiale og driftskostnader.
**For ML-prosjekter:**
- **Initial cost:** Workspace setup, compute provisioning, data migration
- **Driftskostnad (årlig):**
- Compute for trening og retrening
- Inference-compute (hvis managed endpoints)
- Storage for data og modeller
- Overvåkning og logging (Application Insights, Log Analytics)
**Estimat-template (for utredning):**
| Kostnadselement | Beregningsgrunnlag | Årlig kostnad (NOK) |
|-----------------|---------------------|---------------------|
| ML workspace | Fast pris | 0 (gratis) |
| Compute (trening) | 8 timer/dag × 250 dager × DS3_v2 pris | ~50 000 |
| Compute (inference) | 2 instanser × 24/7 × DS2_v2 pris | ~80 000 |
| Storage | 500 GB × blob storage pris | ~1 000 |
| Overvåkning | Log Analytics ingestion + retention | ~10 000 |
| **Total** | | **~141 000** |
**Konfidensgrad:** Medium (± 30%) — faktisk kostnad avhenger sterkt av modellkompleksitet og retrening-frekvens.
### Digdir cloud-strategi alignment
**Relevante prinsipper:**
- **Brukerorientering:** Kostnadsoptimalisering frigjør budsjett til bedre brukeropplevelse (raskere modeller, hyppigere oppdateringer)
- **Åpenhet:** Publiser cost metrics i ML-dashboards for transparens
- **Deling og gjenbruk:** Bruk Azure ML registries for å dele komponenter på tvers av etater (reduserer duplikatkostnad)
### NSM Grunnprinsipper for IKT-sikkerhet
**Prinsipp: Kjenn dine verdier**
Compute-ressurser er verdier — ukontrollert forbruk er et sikkerhetsrisiko (denial-of-wallet angrep).
**Mitigering:**
- **Quotas:** Begrens maks GPU-instanser per workspace
- **Alerts:** Umiddelbar varsling ved uventet kostnadsøkning (kan indikere kompromittert service principal)
- **RBAC:** Minste privilegium for compute-provisioning (kun ML engineers skal kunne opprette store clusters)
## Kostnad og lisensiering
### Azure Machine Learning workspace pricing (januar 2026)
- **Workspace:** Gratis (ingen kostnad for workspace-ressursen selv)
- **Compute:** Pay-per-use (VM-priser)
- **Storage:** Azure Blob Storage (standard rates)
- **Networking:** Data transfer out (typisk neglisjerbar for ML-workloads i samme region)
**Kritisk forståelse:** Azure ML er "bring your own compute" — du betaler for underliggende Azure-ressurser, ikke for ML-plattformen.
### Eksempel compute-priser (West Europe, jan 2026, PAYG)
| VM-type | vCPU | RAM | Pris/time (NOK) | Typisk bruk |
|---------|------|-----|-----------------|-------------|
| STANDARD_DS3_V2 | 4 | 14 GB | ~0.80 | CPU trening/prep |
| STANDARD_NC4AS_T4_V3 | 4 | 28 GB + T4 GPU | ~2.50 | GPU trening (light) |
| STANDARD_NC64AS_T4_V3 | 64 | 440 GB + 4×T4 GPU | ~20.00 | GPU trening (heavy) |
**Low-priority discount:** ~70-80% av dedicated pris.
**Reserved instance discount:** ~30-50% av PAYG for 1-year commitment.
**Konfidensgrad:** Medium (priser fluktuerer, bruk Azure Pricing Calculator for nøyaktige estimater).
### Lisensieringsvurderinger (Microsoft stack)
**Scenario 1:** Organisasjonen har Enterprise Agreement (EA) med Microsoft.
- **Fordel:** Potensielt forhandlet rabatt på Azure-forbruk
- **Aksjon:** Koordiner med innkjøpsavdeling for å maksimere EA-fordeler
**Scenario 2:** Organisasjonen bruker Azure Government (offentlig sektor).
- **Fordel:** Samme funksjonalitet som commercial Azure, compliance-ready
- **Kostnad:** Typisk 10-15% dyrere enn commercial for enkelte tjenester (men ikke alltid)
**Scenario 3:** Organisasjonen evaluerer Azure vs. on-premises GPU-cluster.
- **TCO-vurdering:**
- **On-prem:** Høy initial capex (GPU-servere), vedlikehold, strøm/kjøling
- **Azure:** Lav initial kostnad, høyere opex, men elastisk skalering
- **Break-even:** Typisk ved 60-80% utilization for on-prem GPU over 3 år (medium konfidensgrad)
## For arkitekten (Cosmo)
### Anbefalinger til klienten
**Fase 1: Etabler cost baseline**
1. **Cost Management dashboard:** Sett opp dedikert dashboard for ML-kostnader (subscription-scope eller RG-scope)
2. **Tagging-strategi:** Tag alle ML-ressurser med `Project`, `Environment`, `Owner` for granulær kostnadsfordeling
3. **Budgets:** Start med konservativt budsjett (f.eks. NOK 10 000/mnd for pilot), juster basert på faktisk forbruk
4. **Alerts:** 50% (info), 80% (warning), 100% (critical) med action groups
**Fase 2: Implementer quick wins**
1. **Autoscaling:** Sett `min_instances=0` på alle compute clusters (umiddelbar effekt)
2. **Idle shutdown:** Enable på alle compute instances
3. **Lifecycle policies:** 90-dagers sletting av intermediate pipeline artifacts
4. **Low-priority VMs:** For ikke-kritiske workloads (batch-inferens, eksperimentering)
**Estimert besparelse (medium konfidensgrad):** 30-50% av baseline-kostnad.
**Fase 3: Optimaliser arkitektur**
1. **Pipeline reuse:** Refaktorer monolittiske scripts til gjenbrukbare komponenter
2. **Compute sizing:** Benchmark ulike VM-størrelser for typiske workloads (ofte brukes for store VMs)
3. **Reserved instances:** For stabile prod-workloads (minst 6 mnd historikk før beslutning)
4. **Parallellisering:** Identifiser data-parallel workloads (f.eks. hyperparameter tuning, batch inference)
**Estimert ytterligere besparelse:** 20-30%.
**Fase 4: Kontinuerlig optimalisering**
1. **Månedlig cost review:** Analyser top spenders, identifiser anomalier
2. **FinOps-kultur:** Gjør kostnadsbevissthet til del av team-kultur (cost awareness i sprint reviews)
3. **Rightsizing:** Quarterly review av compute-størrelser basert på utilization metrics
4. **Benchmark:** Sammenlign med industry standards (f.eks. cost per model trained, cost per 1000 inferences)
### Arkitekturprinsipper for kostnadseffektiv MLOps
**Prinsipp 1: Pay for what you use**
- Compute skal alltid kunne skalere til 0 når ikke i bruk
- Unngå "always-on" ressurser uten konkret behov
**Prinsipp 2: Optimize for time-to-value, not just cost**
- Raskere eksperimentering → raskere business value → høyere ROI
- Ikke bruk underdimensjonert compute som forsinker utviklingen (falsk økonomi)
**Prinsipp 3: Leverage platform features**
- Bruk managed services (AmlCompute, managed endpoints) fremfor DIY VM-management
- Managed services har innebygd optimalisering (autoscaling, reuse, etc.)
**Prinsipp 4: Data locality matters**
- Collocate compute og data i samme region
- Vurder data transfer cost hvis data er i on-prem eller annen cloud
**Prinsipp 5: Monitor and iterate**
- Kostnadsoptimalisering er ikke "set and forget"
- Jevnlig review og justering basert på faktisk usage patterns
### Røde flagg (når kostnader løper løpsk)
1. **Compute clusters med min_instances > 0:** Identifiser og fikser umiddelbart
2. **Lange idle periods på compute instances:** Implementer scheduled shutdown
3. **Feilet pipelines som kjører i timer:** Sett max_run_duration_seconds
4. **Exponential storage growth:** Intermediate datasets slettes ikke → lifecycle policies
5. **Cross-region data transfer:** Kostnadseksponering ved feilkonfigurert networking
6. **Ukontrollerte hyperparameter sweeps:** 100+ trials uten early termination → kostnadsbombe
**Aksjon ved røde flagg:** Umiddelbar investigasjon og mitigering (ikke vent til månedsslutt).
### Diskusjonspunkter med beslutningstakere
**For IT-ledelse:**
- "Vi anbefaler 1-årig reserved instances for prod-workload → 40% besparelse, men krever commitment. Hva er organisasjonens risikoappetitt for lock-in?"
- "Low-priority VMs for dev/test gir 70% besparelse, men kan avbrytes. Er dette akseptabelt for team?"
**For økonomiavdeling:**
- "ML-kostnader er variable opex, ikke capex. Hvordan skal vi budsjettere for uforutsigbar eksperimentering vs. forutsigbar prod?"
- "Vi trenger monthly cost visibility. Kan vi få tilgang til Cost Management API for automatisert rapportering?"
**For compliance/sikkerhet:**
- "Kostnads-alerts kan indikere sikkerhetsbrudd (kompromittert service principal som spinner opp compute). Skal vi integrere med SIEM?"
- "Data retention-policies for ML artifacts — hva er juridiske krav for bevaring av modell-treningsdata?"
### Relevante ressurser for dypere dive
**Microsoft Learn-artikler (verifisert apr 2026):**
- [Manage and optimize Azure Machine Learning costs](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-manage-optimize-cost)
- [Plan to manage costs for Azure Machine Learning](https://learn.microsoft.com/en-us/azure/machine-learning/concept-plan-manage-cost)
- [Azure Machine Learning pipelines - cost reduction](https://learn.microsoft.com/en-us/azure/machine-learning/concept-ml-pipelines)
- [How to debug pipeline reuse issues](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-debug-pipeline-reuse-issues)
**Azure Pricing Calculator:** https://azure.microsoft.com/en-us/pricing/calculator/ (for nøyaktige estimater)
**Azure Well-Architected Framework:** Cost Optimization pillar for AI/ML workloads
## Kilder og verifisering
**Dokumentasjon (primærkilder):**
- Microsoft Learn: "Manage and optimize Azure Machine Learning costs" (sist oppdatert: 2025-Q4)
- Microsoft Learn: "Plan to manage costs for Azure Machine Learning" (sist oppdatert: 2025-Q4)
- Microsoft Learn: "What are Azure Machine Learning pipelines?" (sist oppdatert: 2025-Q4)
- Microsoft Learn: "Architecture best practices for Azure Machine Learning - Cost Optimization" (sist oppdatert: 2025-Q4)
**Kodeeksempler:** Verifisert mot azure-ai-ml Python SDK v2 (januar 2026)
**Priser:** Basert på Azure Pricing Calculator for West Europe region (januar 2026). **OBS:** Priser kan endre seg, bruk alltid Pricing Calculator for oppdaterte estimater.
**Konfidensgradering:**
- **Høy konfidensgrad:** Compute-optimalisering (autoscaling, reserved instances), pipeline reuse, data lifecycle policies
- **Medium konfidensgrad:** Kostnadsestimater (± 30%), besparelsesprosenter (varierer per organisasjon), regional pricing
- **Lav konfidensgrad:** ROI-beregninger (avhenger av business context), comparative TCO on-prem vs. cloud (mange variabler)
**Sist verifisert:** 2026-04-09
---
*Denne referansen er del av Microsoft AI Expert-kunnskapsbasen for Cosmo Skyberg. For spørsmål om implementering, kontakt arkitekt-teamet.*