feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command

Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-08 08:58:35 +02:00
commit baa2d0220b
488 changed files with 213221 additions and 0 deletions

View file

@ -0,0 +1,562 @@
# Kostnadsoptimalisering i MLOps-pipelines
**Dato:** 2026-02-04
**Kategori:** MLOps & GenAIOps
**Relevans:** Azure Machine Learning, MLOps-implementering, FinOps for AI
## 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 i preview per jan 2025):
- **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 `how-to-debug-pipeline-reuse-issues` guide fra Microsoft Learn for å identifisere hvorfor gjenbruk ikke skjer (typisk: endringer i data, kode, miljø eller compute-konfigurasjon).
### 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 jan 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-02-04
---
*Denne referansen er del av Microsoft AI Expert-kunnskapsbasen for Cosmo Skyberg. For spørsmål om implementering, kontakt arkitekt-teamet.*