# Responsible AI Integration in MLOps

**Kategori:** MLOps & GenAIOps
**Sist oppdatert:** 2026-04
**Confidence:** 95% (basert på offisiell Microsoft-dokumentasjon og Azure Machine Learning-referanser)

---

## Introduksjon

Responsible AI (RAI) i MLOps-kontekst handler om å integrere ansvarlig AI-praksis systematisk gjennom hele modellens livssyklus — fra utvikling og trening til deployment, overvåking og vedlikehold. Mens tradisjonell MLOps fokuserer på repeaterbarhet, automatisering og pålitelighet, legger RAI-integrasjon til dimensjoner som rettferdighet (fairness), forklarbarhet (interpretability), bias-deteksjon, åpenhet (transparency) og compliance.

Azure Machine Learning tilbyr et omfattende rammeverk for RAI-integrasjon via **Responsible AI dashboard**, **Responsible AI scorecard**, og dedikerte komponenter som kan bygges direkte inn i CI/CD-pipelines. Dette sikrer at modeller ikke bare er teknisk robuste, men også etisk forsvarlige og regulatorisk compliant.

**Hvorfor dette er kritisk for MLOps:**
- **Model governance**: Sporer rettferdighet, bias og forklarbarhet gjennom hele modellens levetid
- **Auditability**: Dokumenterer modellbeslutninger for compliance og regulatoriske krav
- **Stakeholder trust**: Gir ikke-tekniske interessenter innsikt i modellens oppførsel
- **Risk mitigation**: Identifiserer og reduserer fairness-issues og feilmønstre før produksjon

---

## Kjernekomponenter

### 1. Responsible AI Dashboard

**Formål:**
En samlet, tilpassbar plattform som integrerer flere RAI-verktøy i én grensesnitt, designet for model debugging og ansvarlig beslutningstaking.

**Komponenter i dashbordet:**

| Komponent | Funksjon | Bruksområde |
|-----------|----------|-------------|
| **Error Analysis** | Identifiserer hvordan feil er distribuert i datasettet | Oppdage systematiske feil i spesifikke subgrupper |
| **Model Fairness** | Vurderer modellens ytelse på tvers av sensitive grupper | Sjekke om modellen behandler ulike grupper likt |
| **Model Interpretability** | Forklarer hvordan modellen tar beslutninger (global/lokal) | Forstå hvilke features som driver prediksjoner |
| **Data Analysis** | Utforsker datasettet for skjevheter og representasjon | Identifisere over-/underrepresentasjon i treningsdata |
| **Counterfactual What-If** | Viser minimale endringer som gir annen prediksjon | Hjelpe brukere forstå hva som må endres for annet utfall |
| **Causal Inference** | Estimerer kausale effekter av treatment-features | Skille korrelasjon fra kausalitet i beslutninger |

**Integrasjon i MLOps:**
Dashbordet genereres som del av en **Azure ML pipeline job** ved hjelp av komponentene fra Azure ML-registeret. Dette gjør RAI-vurdering til en automatisert del av CI/CD-flyten.

**Confidence note:** 🟢 Høy (basert på `microsoft_azureml_rai_tabular_insight_constructor` og relaterte komponenter)

---

### 2. Responsible AI Scorecard *(Public Preview)*

*(Verified MCP 2026-04)* — RAI Scorecard er i public preview. Bruker Azure SDK v2 og CLI v2.

**Formål:**
Et PDF-dokument som oppsummerer RAI-innsikter fra dashbordet, designet for å dele med ikke-tekniske stakeholders, compliance-team og auditører.

**Innhold:**
- Model summary med performance metrics og target values
- Data characteristics (distribusjon, representasjon)
- Fairness assessment på tvers av sensitive grupper
- Top important features (global interpretability)
- Error cohort analysis (hvor modellen feiler)
- Causal insights (hvis relevant)

**Bruk i governance-workflow:**
1. Data scientist genererer scorecard etter modelltrening
2. Product manager/risk officer vurderer om modellen møter rettferdighets- og ytelseskrav
3. Scorecard arkiveres som del av model registry for audit trail
4. Godkjenning fra stakeholders før deployment til produksjon

**Confidence note:** 🟢 Høy (basert på Azure ML Responsible AI Scorecard-dokumentasjon)

---

### 3. RAI Components for Pipelines

Azure Machine Learning tilbyr **RAI-komponenter** som kan kjøres i pipeline jobs for automatisert RAI-vurdering:

| Komponent | Komponent-navn | Funksjon |
|-----------|----------------|----------|
| Constructor | `microsoft_azureml_rai_tabular_insight_constructor` | Oppretter RAI dashboard-objektet |
| Explanation | `microsoft_azureml_rai_tabular_explanation` | Genererer model interpretability insights |
| Error Analysis | `microsoft_azureml_rai_tabular_erroranalysis` | Analyserer feilmønstre i kohorter |
| Causal Analysis | `microsoft_azureml_rai_tabular_causal` | Utfører kausal inferens på treatment features |
| Counterfactual | `microsoft_azureml_rai_tabular_counterfactual` | Genererer counterfactual examples |
| Gather | `microsoft_azureml_rai_tabular_insight_gather` | Samler alle insights til dashboard |

**Pipeline-eksempel (Python SDK):**

```python
from azure.ai.ml import MLClient, Input
from azure.ai.ml.entities import Pipeline
from azure.identity import DefaultAzureCredential

ml_client_registry = MLClient(
    credential=DefaultAzureCredential(),
    registry_name="azureml"
)

# Last komponenter
rai_constructor = ml_client_registry.components.get(
    name="microsoft_azureml_rai_tabular_insight_constructor",
    label="latest"
)
rai_explanation = ml_client_registry.components.get(
    name="microsoft_azureml_rai_tabular_explanation",
    label="latest"
)
rai_erroranalysis = ml_client_registry.components.get(
    name="microsoft_azureml_rai_tabular_erroranalysis",
    label="latest"
)
rai_gather = ml_client_registry.components.get(
    name="microsoft_azureml_rai_tabular_insight_gather",
    label="latest"
)

# Definer pipeline
@pipeline
def rai_pipeline(train_data, test_data, model_input, target_column):
    # Opprett RAI dashboard
    create_rai_job = rai_constructor(
        title="Production Model RAI Assessment",
        task_type="classification",
        model_input=model_input,
        train_dataset=train_data,
        test_dataset=test_data,
        target_column_name=target_column,
        categorical_column_names='["gender", "ethnicity", "income_bracket"]',
        maximum_rows_for_test_dataset=5000
    )

    # Generer explanations
    explain_job = rai_explanation(
        rai_insights_dashboard=create_rai_job.outputs.rai_insights_dashboard
    )

    # Kjør error analysis
    error_job = rai_erroranalysis(
        rai_insights_dashboard=create_rai_job.outputs.rai_insights_dashboard,
        filter_features='["gender", "income_bracket"]'
    )

    # Samle insights
    gather_job = rai_gather(
        constructor=create_rai_job.outputs.rai_insights_dashboard,
        insight_1=explain_job.outputs.explanation,
        insight_2=error_job.outputs.error_analysis
    )

    return {
        "dashboard": gather_job.outputs.dashboard,
        "scorecard": gather_job.outputs.scorecard
    }
```

**Confidence note:** 🟢 Høy (basert på kodeeksempler fra Microsoft Learn)

---

## Arkitekturmønstre

### 1. RAI-Augmented MLOps Pipeline

**Pattern:** Integrere RAI-vurdering som kvalitetsgate i CI/CD-pipeline.

**Workflow:**

```
┌─────────────────────────────────────────────────────────────────┐
│  1. Data Preparation (DataOps)                                  │
│     └─ Data quality checks + bias detection i input data        │
└────────────────┬────────────────────────────────────────────────┘
                 │
┌────────────────▼────────────────────────────────────────────────┐
│  2. Model Training (MLOps)                                      │
│     └─ MLflow tracking + model registry                         │
└────────────────┬────────────────────────────────────────────────┘
                 │
┌────────────────▼────────────────────────────────────────────────┐
│  3. RAI Dashboard Generation (Automated)                        │
│     ├─ Error analysis                                           │
│     ├─ Fairness assessment                                      │
│     ├─ Interpretability                                         │
│     └─ Scorecard generering                                     │
└────────────────┬────────────────────────────────────────────────┘
                 │
┌────────────────▼────────────────────────────────────────────────┐
│  4. Quality Gate Check                                          │
│     └─ Sjekk om fairness/performance thresholds er møtt         │
│        (automatisk eller human-in-the-loop approval)            │
└────────────────┬────────────────────────────────────────────────┘
                 │
          ┌──────┴──────┐
          │             │
    [PASS]│             │[FAIL]
          ▼             ▼
   ┌──────────┐   ┌──────────────┐
   │ Deploy   │   │ Reject +     │
   │ to Prod  │   │ Retrain      │
   └──────────┘   └──────────────┘
```

**Implementering i Azure DevOps/GitHub Actions:**

```yaml
# Azure Pipelines eksempel
stages:
  - stage: Train
    jobs:
      - job: TrainModel
        steps:
          - script: python train.py
          - task: AzureCLI@2
            inputs:
              scriptType: bash
              scriptLocation: inlineScript
              inlineScript: |
                az ml job create -f training-pipeline.yml

  - stage: RAI_Assessment
    dependsOn: Train
    jobs:
      - job: GenerateRAIDashboard
        steps:
          - task: AzureCLI@2
            inputs:
              scriptType: bash
              scriptLocation: inlineScript
              inlineScript: |
                az ml job create -f rai-pipeline.yml
          - script: python validate_rai_metrics.py
            displayName: "Check RAI Quality Gates"

  - stage: Deploy
    dependsOn: RAI_Assessment
    condition: succeeded()
    jobs:
      - job: DeployToProduction
        steps:
          - script: python deploy.py
```

**Confidence note:** 🟡 Moderat-høy (basert på generell MLOps-praksis + Azure ML RAI-komponenter)

---

### 2. Continuous RAI Monitoring i Produksjon

**Pattern:** Overvåke fairness og model drift i produksjon med Azure ML Data Collection.

**Komponenter:**
- **Azure ML Data Collector**: Samler inn inference-data fra deployed endpoints
- **Model Monitoring**: Tracker data drift, prediction drift, og feature attribution drift
- **Fairness Metrics Tracking**: Kontinuerlig evaluering av fairness-metrics på live data

**Workflow:**

```
Production Model Endpoint
    │
    ├─> Data Collection (via Azure ML Data Collector)
    │       └─> Lagres i Azure ML Dataset
    │
    ├─> Scheduled RAI Pipeline (daglig/ukentlig)
    │       ├─> Error analysis på nye data
    │       ├─> Fairness drift detection
    │       └─> Interpretability refresh
    │
    └─> Alerting & Actions
            ├─> Alert hvis fairness threshold brytes
            ├─> Trigger retraining pipeline
            └─> Notify stakeholders via Azure Event Grid
```

**Implementering:**

```python
# Deploy model med data collection
from azure.ai.ml.entities import (
    ManagedOnlineEndpoint,
    ManagedOnlineDeployment,
    DataCollector
)

deployment = ManagedOnlineDeployment(
    name="blue",
    endpoint_name="credit-model-endpoint",
    model=model,
    data_collector=DataCollector(
        collections={
            "model_inputs": {"enabled": True},
            "model_outputs": {"enabled": True}
        },
        sampling_rate=1.0
    )
)

# Schedule RAI monitoring pipeline
from azure.ai.ml.entities import JobSchedule, RecurrenceTrigger

schedule = JobSchedule(
    name="rai-monitoring-schedule",
    trigger=RecurrenceTrigger(frequency="week", interval=1),
    create_job=rai_monitoring_pipeline
)

ml_client.schedules.begin_create_or_update(schedule)
```

**Confidence note:** 🟢 Høy (basert på Azure ML monitoring-dokumentasjon)

---

### 3. Human-in-the-Loop RAI Approval

**Pattern:** Bruke Responsible AI Scorecard som beslutningsunderlag for deployment-godkjenning.

**Workflow:**

1. **Automated RAI Assessment**: Pipeline genererer dashboard + scorecard
2. **Scorecard Distribution**: PDF sendes til product manager/risk officer
3. **Stakeholder Review**: Ikke-tekniske stakeholders vurderer:
   - Møter modellen fairness-krav?
   - Er error rates akseptable?
   - Er sensitive grupper behandlet rettferdig?
4. **Approval Gate**: Manuell godkjenning i Azure DevOps/GitHub før deployment
5. **Audit Trail**: Scorecard arkiveres sammen med modell i registry

**Azure DevOps eksempel:**

```yaml
- stage: Approval
  dependsOn: RAI_Assessment
  jobs:
    - deployment: ApprovalJob
      environment: 'production-approval'  # Krever manuell approval
      strategy:
        runOnce:
          deploy:
            steps:
              - download: current
                artifact: rai-scorecard
              - script: echo "Scorecard downloaded for review"
```

**Confidence note:** 🟢 Høy (standard DevOps approval pattern)

---

## Beslutningsveiledning

### Når bør RAI integreres i MLOps?

| Scenario | RAI-kritiskhet | Anbefalte komponenter |
|----------|----------------|----------------------|
| **Høy-risiko beslutninger** (kreditt, rekruttering, helse) | 🔴 Kritisk | Full RAI dashboard + scorecard + human approval |
| **Regulerte sektorer** (finans, helse, offentlig sektor) | 🔴 Kritisk | Error analysis + fairness + causal inference |
| **Customer-facing AI** (anbefalingssystemer, chatbots) | 🟡 Viktig | Interpretability + counterfactual + data analysis |
| **Interne optimaliseringsmodeller** (supply chain, ops) | 🟢 Moderat | Error analysis + basic interpretability |
| **Eksperimentelle/forskningsmodeller** | 🟢 Lavt | Valgfritt, kan utsettes til produksjon |

---

### Beslutningstre: Hvilke RAI-komponenter trengs?

```
Påvirker modellen menneskers liv direkte?
│
├─ JA → Bruker den sensitive attributes (kjønn, etnisitet, etc.)?
│       │
│       ├─ JA → FULLT RAI-dashboard
│       │       ├─ Error analysis
│       │       ├─ Fairness assessment
│       │       ├─ Interpretability
│       │       ├─ Counterfactual what-if
│       │       └─ Scorecard for approval
│       │
│       └─ NEI → Interpretability + Error analysis
│
└─ NEI → Er modellen i produksjon med mange brukere?
         │
         ├─ JA → Error analysis + Interpretability (monitoring)
         │
         └─ NEI → Valgfritt RAI-dashboard (best practice)
```

---

### Quality Gates: Eksempel på fairness thresholds

```python
# validate_rai_metrics.py
import json

def validate_rai_scorecard(scorecard_path: str) -> bool:
    """
    Validerer at modellen møter RAI-krav før deployment.
    """
    with open(scorecard_path, 'r') as f:
        metrics = json.load(f)

    # Fairness thresholds
    fairness_checks = {
        "accuracy_disparity": metrics["fairness"]["accuracy_disparity"] < 0.05,
        "precision_disparity": metrics["fairness"]["precision_disparity"] < 0.05,
        "false_positive_rate_disparity": metrics["fairness"]["fpr_disparity"] < 0.10
    }

    # Performance thresholds
    performance_checks = {
        "overall_accuracy": metrics["performance"]["accuracy"] > 0.85,
        "f1_score": metrics["performance"]["f1_score"] > 0.80
    }

    # Error distribution checks
    error_checks = {
        "max_cohort_error_rate": max(metrics["error_analysis"]["cohort_error_rates"]) < 0.25
    }

    all_checks = {**fairness_checks, **performance_checks, **error_checks}

    if all(all_checks.values()):
        print("✅ All RAI quality gates passed")
        return True
    else:
        print("❌ RAI quality gate failures:")
        for check, passed in all_checks.items():
            if not passed:
                print(f"  - {check}: FAILED")
        return False

if __name__ == "__main__":
    import sys
    success = validate_rai_scorecard("rai_scorecard.json")
    sys.exit(0 if success else 1)
```

**Confidence note:** 🟡 Moderat (eksempel-kode, må tilpasses faktiske metric-strukturer)

---

## Integrasjon med Microsoft-stakken

### Azure Machine Learning

| Feature | RAI-funksjonalitet |
|---------|-------------------|
| **Model Registry** | Lagrer RAI dashboard + scorecard sammen med modell |
| **MLflow Integration** | Logger RAI metrics som MLflow metrics for versjonskontroll |
| **Azure ML Pipelines** | Kjører RAI-komponenter som del av training/evaluation pipeline |
| **Managed Endpoints** | Data collection for kontinuerlig RAI-monitoring |
| **Event Grid** | Trigger alerts ved RAI metric drift |

---

### Azure DevOps / GitHub Actions

**Integration points:**

1. **Build Validation**: Kjør RAI pipeline som del av PR-validering
2. **Release Gates**: Automatisk quality gate basert på RAI metrics
3. **Approval Workflows**: Distribuer scorecard til approvers via artifacts
4. **Audit Logging**: Lagre RAI scorecards i Azure Artifacts for compliance

**GitHub Actions eksempel:**

```yaml
name: MLOps with RAI

on:
  push:
    branches: [main]

jobs:
  train-and-assess:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Train Model
        run: |
          az ml job create -f training-pipeline.yml

      - name: Generate RAI Dashboard
        run: |
          az ml job create -f rai-pipeline.yml

      - name: Download RAI Scorecard
        run: |
          az ml job download --name $RAI_JOB_NAME --output-name scorecard

      - name: Upload Scorecard as Artifact
        uses: actions/upload-artifact@v3
        with:
          name: rai-scorecard
          path: scorecard.pdf

      - name: Validate RAI Metrics
        run: python validate_rai_metrics.py

  deploy:
    needs: train-and-assess
    runs-on: ubuntu-latest
    environment: production  # Krever approval
    steps:
      - name: Deploy to Production
        run: python deploy.py
```

---

### Azure AI Foundry / Copilot Studio

**Scenario:** RAI for generative AI-modeller (GenAIOps).

**Utfordringer:**
- Responsible AI dashboard støtter kun **tabular structured data** (regression/classification)
- Generative AI krever andre RAI-tilnærminger

**Løsninger:**
1. **Content Safety**: Bruk Azure AI Content Safety for toxicity/bias detection
2. **Prompt Flow Evaluation**: Evaluere generative models med custom metrics
3. **Manual Review**: Human-in-the-loop review av generated outputs

**Confidence note:** 🟡 Moderat (RAI for GenAI er et fremvoksende felt, mindre standardisert enn for discriminative models)

---

## Offentlig sektor (Norge)

### Regulatoriske krav

| Regulering | RAI-relevans |
|------------|--------------|
| **EU AI Act** | Krever transparens og forklarbarhet for høy-risiko AI-systemer |
| **GDPR Art. 22** | Rett til forklaring ved automatiserte beslutninger |
| **Digitaliseringsdirektoratet: Etisk retningslinjer for AI** | Krav om rettferdighet og ikke-diskriminering |
| **Utredningsinstruksen** | Krav om konsekvensutredning (inkl. RAI-vurdering) |

---

### RAI Scorecard i utredningsprosessen

**Pattern:** Bruke Responsible AI Scorecard som del av AI-konsekvensutredning.

**Workflow:**

1. **Innledende vurdering**: Vurdere om AI-systemet faller under høy-risiko kategori
2. **RAI-integrasjon i utvikling**: Bygg RAI-vurdering inn i MLOps fra dag 1
3. **Scorecard-generering**: Generer scorecard ved milestone-punkter
4. **Utredningsdokumentasjon**: Inkluder scorecard i utredningsrapporten
5. **Offentlig høring**: Del scorecard med berørte parter
6. **Vedtak og deployment**: Arkiver scorecard som del av beslutningsgrunnlag

---

### DPIA (Data Protection Impact Assessment) + RAI

**Integration pattern:** Kombinere DPIA og RAI-vurdering.

| DPIA-element | RAI-komponent | Dokumentasjon |
|--------------|---------------|---------------|
| **Formål og proporsjonalitet** | Model overview + performance | Vis at modellen oppfyller formålet uten overskudd av nøyaktighet |
| **Nødvendighet og dataminimering** | Data analysis | Dokumenter hvilke features som faktisk brukes |
| **Individers rettigheter** | Counterfactual what-if | Gi brukere innsikt i hva som påvirker beslutningen |
| **Risiko for diskriminering** | Fairness assessment | Kvantifiser disparities på sensitive grupper |
| **Åpenhet og informasjon** | Interpretability + scorecard | Forklar modellens beslutninger i ikke-tekniske termer |

**Confidence note:** 🟢 Høy (basert på GDPR + Digdir-retningslinjer)

---

## Kostnad og lisensiering

### Azure Machine Learning Pricing for RAI

| Ressurs | Kostnadsfaktor | Estimat (NOK/måned) |
|---------|----------------|---------------------|
| **Compute for RAI pipeline** | VM-tid (CPU/GPU) | 5 000 - 20 000 (avhengig av dataset-størrelse) |
| **Storage (RAI dashboards)** | Blob storage | 100 - 500 |
| **Model Registry** | Inkludert i AML workspace | Ingen ekstrakostnad |
| **Event Grid (alerts)** | Per event | 50 - 200 |
| **Data Collection (monitoring)** | Ingress/egress | 500 - 2 000 |

**Total estimat:** 6 000 - 23 000 NOK/måned for full RAI-integrasjon.

**Kostnad-optimalisering:**
- Kjør RAI-pipelines på **lavere-kostnads compute** (CPU istedenfor GPU)
- Begrens test dataset til **5000 rader** (maks for RAI dashboard UI)
- Bruk **scheduled pipelines** (ukentlig) istedenfor real-time monitoring
- Arkiver gamle RAI dashboards til **cool/archive storage**

---

### Lisensiering

| Tool | Lisensmodell | Inkludert i |
|------|--------------|-------------|
| **Responsible AI Dashboard** | Open-source (basert på InterpretML, Fairlearn, ErrorAnalysis, DiCE) | Azure ML workspace |
| **Azure ML Pipelines** | PaaS-modell | Azure ML workspace (betaler for compute) |
| **Azure DevOps** | Per-user (Basic Plan: gratis for 5 brukere) | Separat fra Azure ML |
| **GitHub Actions** | Gratis for public repos, betalt for private | Separat fra Azure ML |

**Confidence note:** 🟢 Høy (basert på Azure pricing + open-source lisensiering)

---

## For arkitekten (Cosmo)

### Når skal RAI integreres i MLOps?

**Cosmo's rule of thumb:**

> "Hvis modellen tar beslutninger som kan påvirke enkeltpersoners liv, økonomi eller rettigheter — integrer RAI fra dag 1. Hvis modellen optimaliserer interne prosesser uten direkte menneskelig påvirkning, kan RAI utsettes til produksjon, men bør uansett implementeres før go-live."

---

### Typiske arkitekturvalg

| Scenario | Anbefalt arkitektur |
|----------|---------------------|
| **Kredittscoring for bank** | Full RAI dashboard + human approval gate + DPIA-integrasjon |
| **Rekruttering AI i offentlig sektor** | RAI pipeline + scorecard + fairness monitoring i produksjon |
| **Anbefalingssystem for e-handel** | Error analysis + interpretability + A/B testing med fairness metrics |
| **Prediktivt vedlikehold (industri)** | Interpretability for trust + error analysis for modellkvalitet |

---

### Vanlige fallgruver

1. **"Vi legger til RAI etter deployment"**
   ❌ Problem: Vanskelig å fikse bias/unfairness i produksjonsmodell
   ✅ Løsning: Bygg RAI-vurdering inn i training pipeline fra start

2. **"RAI dashboard er for komplisert for stakeholders"**
   ❌ Problem: Stakeholders får ikke innsikt i modellens oppførsel
   ✅ Løsning: Bruk Responsible AI Scorecard (PDF) for ikke-tekniske stakeholders

3. **"Vi kan ikke kjøre RAI-pipeline på produksjonsdata pga. GDPR"**
   ❌ Problem: Manglende monitoring av fairness i produksjon
   ✅ Løsning: Anonymiser data eller kjør RAI på syntetiske data som matcher produksjonsdistribusjon

4. **"RAI-komponenter tar for lang tid å kjøre"**
   ❌ Problem: Forsinker CI/CD-pipeline
   ✅ Løsning: Kjør RAI-vurdering parallelt eller som scheduled job (ikke blocking)

---

### Spørsmål å stille klienten

1. **Regulatorisk kontekst:**
   - "Faller denne modellen under EU AI Act høy-risiko kategori?"
   - "Krever deres sektor spesifikke compliance-krav (finans, helse, offentlig)?"

2. **Stakeholder-forventninger:**
   - "Hvem trenger innsikt i modellens beslutninger? (risk officers, auditors, sluttbrukere?)"
   - "Hva er akseptabel fairness disparity for dere? (f.eks. <5% accuracy gap mellom grupper)"

3. **Datasettet:**
   - "Inneholder datasettet sensitive attributes (kjønn, etnisitet, alder)?"
   - "Er det kjente skjevheter i historisk data?"

4. **Deployment-strategi:**
   - "Skal RAI-vurdering være blocking for deployment, eller advisory?"
   - "Hvem godkjenner modell-deployment basert på RAI scorecard?"

---

### Anbefalte ressurser for videre dybdelæring

- **Microsoft Responsible AI Standard:** https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE5cmFl
- **Azure ML RAI Dashboard docs:** https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard
- **Fairlearn (open-source):** https://fairlearn.org/
- **InterpretML:** https://interpret.ml/
- **EU AI Act compliance guide:** https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai

---

## Kilder og verifisering

**Microsoft Learn (offisiell dokumentasjon):**

1. **Responsible AI Dashboard concept:**
   https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?view=azureml-api-2

2. **MLOps and GenAIOps for AI workloads:**
   https://learn.microsoft.com/en-us/azure/well-architected/ai/mlops-genaiops

3. **Responsible AI Scorecard:**
   https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-scorecard?view=azureml-api-2

4. **Generate RAI insights with YAML and Python:**
   https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-insights-sdk-cli?view=azureml-api-2

5. **Model monitoring and data collection:**
   https://learn.microsoft.com/en-us/azure/machine-learning/concept-data-collection
   https://learn.microsoft.com/en-us/azure/machine-learning/concept-model-monitoring

6. **Fairness in ML (Azure ML):**
   https://learn.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml?view=azureml-api-2

7. **Azure DevOps for ML:**
   https://learn.microsoft.com/en-us/azure/machine-learning/how-to-devops-machine-learning?view=azureml-api-2

**Open-source tools (referert i Azure ML RAI):**

8. **Fairlearn:** https://fairlearn.org/
9. **InterpretML:** https://interpret.ml/
10. **Error Analysis:** https://erroranalysis.ai/
11. **DiCE (Counterfactuals):** https://github.com/interpretml/DiCE
12. **EconML (Causal Inference):** https://github.com/microsoft/EconML

**Regulatory references:**

13. **EU AI Act:** https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai
14. **GDPR Article 22:** https://gdpr-info.eu/art-22-gdpr/
15. **Digdir AI-retningslinjer:** https://www.digdir.no/

**MCP-calls brukt:** 6 (microsoft_docs_search x 3, microsoft_docs_fetch x 2, microsoft_code_sample_search x 1)
**Kilder totalt:** 15
**Confidence:** 95% (høy tillit til Microsoft-dokumentasjon, moderat for implementeringseksempler)

---

**For Cosmo Skyberg:**

Dette dokumentet gir deg en komplett arkitekturoversikt over RAI-integrasjon i MLOps. Nøkkelpunktene for deg som arkitekt er:

1. **RAI er ikke "nice-to-have", det er governance-kritisk** for modeller som påvirker mennesker
2. **Azure ML tilbyr production-ready komponenter** — du trenger ikke bygge egne RAI-verktøy
3. **Integrer RAI-vurdering i CI/CD-pipeline** som quality gate, ikke som etterpåklapp
4. **Responsible AI Scorecard er din kommunikasjonskanal** til ikke-tekniske stakeholders
5. **Norsk offentlig sektor har spesifikke krav** (DPIA + utredningsinstruksen) som RAI støtter direkte

Bruk dette dokumentet som referanse når du designer MLOps-arkitekturer hvor compliance og etikk er kritisk.
