Ordre 20260912T193441Z-7358817909. Steg 1 var ikke transformen, men å rette
roadmapens R13-gate og få den ratifisert. Gaten `grep -rl "Cosmo"
skills/*/references -> 0` var usann på to uavhengige måter:
1. Ordren fanget den første: 451 av forekomstene er Azure Cosmos DB, ekte
produktinnhold. Diskriminatoren er ikke bokstaven «s» — `Cosmos <norsk
substantiv>` er genitiv av personaen (`### Cosmos tonalitet`), mens
`Cosmos DB`/`CosmosClient`/`cosmos_ru` er produkt.
2. Denne økten fant den andre: 132 persona-forekomster ligger i prosa,
tabeller, dialog-replikker og proveniens-linjer. Heading-nøytralisering
kan ikke nå dem, så «0 persona» er uoppnåelig også under den ratifiserte
formen. Operatøren ratifiserte alternativ A: gaten speiler formen, og de
132 bokføres til R13b/R14.
Tre korreksjoner av premisser som sto i ordren og STATE:
«ca 320 produkt» -> 451 (case-sensitivt nett manglet 327 lowercase
TOC-ankre + 99 identifikatorer; sann nevner 1 638)
«169 headinger» -> 401. 169 var `^## For Cosmo`-prefikset (168) og var
internt inkonsistent med sin egen topp-variant (204)
«417 matcher ingen
populasjon» -> 417 er cosmo-headinger utenfor kodefences; briefens
nevner var reell hele tiden
Fence-bevissthet er målt skadelig, ikke nødvendig: begge toggle-regler er
gale på dette korpuset (naiv toggle skjuler en ekte heading i
chain-of-thought-prompting.md, CommonMark-regelen ubalanserer
service-level-documentation-dr.md). Fence-agnostisk deteksjon finner 401
heading-linjer i nøyaktig de samme 40 variantene som fence-bevisst finner
400 i — ingen kodeblokk-linje er byte-identisk til en persona-heading. Derfor
nøkles transformen på 40 enumererte heading-tekster og ignorerer fences. En
ukjent variant kaster; en slug-kollisjon kaster. Ingenting auto-fikses.
TOC-en regenereres ikke, den rettes kirurgisk: alle 327 persona-lenker hadde
lenketekst lik én av de 40 heading-tekstene og anker lik slugify av den
(327/327, 0 avvik), så heading og TOC-entry skrives i samme operasjon og
ingen mellomtilstand etterlater en død lenke.
Ratifisert målform: `For Cosmo`, `For Cosmo Skyberg` og `For arkitekten
(Cosmo)` konvergerer på `For arkitekten`. To filer kolliderte og er adjudisert
ved å lese dem, ikke ved regel.
Verifisering (alle 7 kriterier fra ordren):
G1 persona på heading-linjer 401 -> 0
G2 døde fragmentlenker 1 -> 1 (pre-eksisterende, unntatt)
G3 produkt-forekomster 451 -> 451; `Cosmos DB|Azure Cosmos` 308 = 308
de 3 kun-produkt-filene byte-identiske
nettet validert begge veier injisert persona feller G1; genitiv feller G1;
produkt-heading og de 3 filene passerer
hele diffen 802 heading-linjer + 654 TOC-linjer, ANNET = 0
linjeantall 728 lagt til = 728 slettet
suite 1120/1120 (1097 + 23 nye)
validate-plugin 250 PASS / 0 FAIL
stikkprøve 10 filer, alle 5 skills, inkl. de 3 mest
produkt-tunge (26/20/19) — kun heading+TOC
Utenfor scope, urørt: de 4 SKILL.md, de 23 commands, CLAUDE.md, README.md,
NOTICE.md, docs/ (alt R14).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
18 KiB
GenAIOps - LLM-Specific MLOps Practices
Created: 2026-02-04 Last updated: 2026-06-19 Category: MLOps & GenAIOps Konfidensgrad: Høy (basert på 18 MCP-kilder fra Microsoft Learn) Type: reference Source: https://learn.microsoft.com/python/api/overview/azure/ai-evaluation-readme Status: Established Practice
⚠️ Retirement 2027-04-20 (verifisert 2026-06-19): Prompt Flow (Microsoft Foundry + Azure ML) pensjoneres 20. april 2027 og anbefales ikke for ny utvikling — migrer til Microsoft Agent Framework (MAF). Referanser til Prompt Flow nedenfor gjelder eksisterende løsninger frem til fristen; nye GenAIOps-pipelines bør bygge på MAF. Migrasjonsguide.
Innhold
- Introduksjon
- Beslutningsveiledning
- Integrasjon med Microsoft-stakken
- Offentlig sektor (Norge)
- Kostnad og lisensiering
- For arkitekten
- Kilder og verifisering
Introduksjon
GenAIOps (Generative AI Operations), også kalt LLMOps, beskriver operasjonelle praksiser og strategier for håndtering av store språkmodeller (LLMs) i produksjon. Mens tradisjonell MLOps fokuserer på å trene og deploye diskriminative modeller, handler GenAIOps om å velge, tilpasse, orkestrere og overvåke eksisterende foundation models.
MLflow 3 Tracing — GenAI Observability
MLflow Tracing provides end-to-end observability for GenAI applications:
- Records inputs, outputs, intermediate steps, and metadata
- Supports complex agent-based systems and multi-turn conversations
- Integrates with Genie Code for natural language trace analysis
- Enables: debugging, performance monitoring, cost optimization, auditability
- Production monitoring reuses same scorers as development evaluation (consistent lifecycle)
1. Fine-Tuning Pattern
Når: Foundation model trenger domenespesifikk kunnskap som ikke kan oppnås med prompting alene.
Workflow:
- Data preparation (JSONL format for Azure OpenAI)
- Fine-tuning job (Azure OpenAI Studio eller REST API)
- Model evaluation (hold-out test set)
- Model deployment (dedicated PTU deployment for production)
- A/B testing (new fine-tuned model vs. base model)
MLOps-overlap: 80% — Kan gjenbruke eksisterende DataOps og model training pipelines.
Konfidensgrad: 90% — Microsoft dokumenterer end-to-end fine-tuning workflow.
2. Prompt Engineering Pattern
Når: Use case kan løses med zero-shot, few-shot eller Chain-of-Thought prompting.
Artefakter:
- System prompt (persona, tone, constraints)
- User prompt template (Jinja2, Handlebars)
- Few-shot examples (stored in Prompt Registry)
Workflow:
- Prompt experimentation (Prompt Flow designer)
- Variant testing (A/B testing av ulike prompts)
- Evaluation (LLM-as-judge metrics)
- Prompt versioning (Prompt Registry)
- Deployment (orchestrator henter versioned prompt)
MLOps-utvidelse: Ny — Prompts som first-class artifacts.
Konfidensgrad: 85% — Best practices fremdeles emergent (2025).
3. RAG (Retrieval-Augmented Generation) Pattern
Når: LLM trenger domain-specific eller real-time data for å svare korrekt.
Microsoft RAG Architecture:
[User Query]
→ [Orchestrator (Prompt Flow / Semantic Kernel)]
→ [Embedding Model (Azure OpenAI text-embedding-3-small)]
→ [Vector Store (Azure AI Search hybrid search)]
→ [Retrieval (top-k chunks)]
→ [Prompt Construction (query + context)]
→ [LLM (Azure OpenAI GPT-4o)]
→ [Response]
Experimentation-dimensjoner:
- Chunking strategy (fixed-size, semantic, recursive)
- Chunk size (512, 1024, 2048 tokens)
- Chunk overlap (0%, 10%, 20%)
- Embedding model (ada-002, text-embedding-3-small, text-embedding-3-large)
- Retrieval method (vector, full-text, hybrid, semantic ranker)
- Top-k (3, 5, 10 chunks)
- Reranking (Azure AI Search semantic ranker, cross-encoder models)
DataOps-utvidelse:
- Index versioning: Snapshot av chunked data + embeddings
- Incremental updates: Add/update/delete chunks uten full rebuild
- Freshness policies: Real-time (change data capture) vs. batch (nightly)
- GDPR compliance: Right-to-be-forgotten (delete user data from vector store)
Konfidensgrad: 95% — RAG er den mest dokumenterte GenAIOps-patternern.
Beslutningsveiledning
Når velge hva?
| Scenario | Anbefaling | Begrunnelse |
|---|---|---|
| Foundation model er "good enough" | Prompt Engineering | Lavest kostnad, raskest time-to-market |
| Trenger domenekunnskap, har kvalitetsdata | Fine-Tuning | Bedre ytelse enn few-shot, men krever PTU for production |
| Trenger real-time data eller stor knowledge base | RAG | Unngår staleness, kan oppdatere uten retraining |
| Høy security/compliance | RAG + Azure AI Search (RBAC) | Data forblir i vector store, ikke "bakt inn" i modellen |
| Multimodal (tekst + bilde) | Prompt Engineering (GPT-4o/GPT-4 Turbo) | Foundation models støtter multimodal input |
Konfidensgrad: 85% — Valg avhenger av use case-spesifikke trade-offs.
GenAIOps Maturity Model (Microsoft)
Nivå 1 - Initial (0-9 poeng):
- Eksperimenterer med LLM APIs
- Manuell prompt engineering
- Ingen strukturerte evalueringer
Nivå 2 - Defined (10-14 poeng):
- Systematisk prompt development
- CI/CD for flows (basic)
- Grunnleggende evaluering (groundedness, relevance)
Nivå 3 - Managed (15-19 poeng):
- Proaktiv monitoring (quality + safety)
- Fine-tuning workflows
- Advanced version control (prompts + data + models)
Nivå 4 - Optimized (20-28 poeng):
- Full automation (CI/CD + monitoring + retraining)
- A/B testing i produksjon
- Continuous improvement loops (feedback → retraining)
Selvvurdering: GenAIOps Maturity Model Assessment
Konfidensgrad: 95% — Offisiell Microsoft assessment.
Integrasjon med Microsoft-stakken
Microsoft Foundry (tidligere Azure AI Studio)
Hva: Unified platform for GenAI lifecycle management.
GenAIOps capabilities:
- Model Catalog: Browse over 1,900 models (OpenAI, Meta, Mistral, Cohere)
- Prompt Flow: Visual designer for LLM workflows
- Evaluation SDK: Built-in evaluators (groundedness, relevance, coherence, fluency, safety)
- Content Safety: Real-time filtering (hate, violence, sexual, self-harm)
- Model fine-tuning: Azure OpenAI fine-tuning jobs
- Deployment: Managed Online Endpoints (serverless, PTU, PAYG)
- Monitoring: Generation Quality Signal + Token Statistics Signal
Konfidensgrad: 95% — Microsoft Foundry er Microsoft sitt flagship GenAI-verktøy (2025).
Azure Machine Learning
Hva: Enterprise MLOps-plattform som utvides med GenAIOps capabilities.
GenAIOps features:
- Prompt Flow integration: Author flows i AML Studio
- MLflow: Experiment tracking + model registry (støtter LLM artifacts)
- Pipelines: Orchestrate chunking, embedding, evaluation workflows
- Managed Online Endpoints: Deploy orchestrators (Docker containers)
- Model Monitoring: Data drift + model decay (LLM-specific metrics coming)
Konfidensgrad: 90% — AML støtter GenAIOps, men Foundry er mer fokusert.
Azure Databricks
Hva: Unified analytics platform med Mosaic AI (LLMOps suite).
LLMOps features:
- Unity Catalog: Unified governance (models, prompts, vector indexes)
- MLflow for GenAI: Prompt Registry, LLM tracing, autologging
- Vector Search: Delta table-based, auto-syncing indexes
- Model Serving: Unified endpoint for OpenAI, open-source og custom models
- Mosaic AI Agent Framework: Build, evaluate, deploy agents
- AI Gateway: Centralized governance for multiple LLM providers
Konfidensgrad: 95% — Databricks har dedikert LLMOps docs (mest moden platform).
API Management som LLM Gateway
Hva: Centralized gateway foran Azure OpenAI in Foundry Models og andre LLM APIs.
GenAIOps use cases:
- Load balancing: Distribuer trafikk over multiple Azure OpenAI instances (med health endpoint monitoring og circuit breaking)
- Throttling: Rate limiting per user/subscription (token-per-minute og requests-per-minute)
- Token tracking: Centralized logging av token consumption (cross-model observability)
- Cost allocation: Chargeback til teams basert på usage (showback/chargeback for multitenant)
- A/B testing / Safe deployment: Route 10% traffic til ny modell, 90% til gammel
- Circuit breaker: Failover til backup LLM provider (OpenAI → Mistral)
- Federated authentication: Extend client auth beyond Entra ID and API keys
- Data sovereignty: Enforce regional routing compliance for GDPR
Implementasjonsalternativer (Verified MCP 2026-08-25):
- Foundry AI Gateway (innebygd) — konfigureres i Foundry-portalen, bygger på Azure API Management. Støtter ingress til ÉN Foundry-ressurs og spenner ikke over flere ressurser.
- Azure API Management (frittstående) — PaaS, built-in AI-policies (
llm-token-limit,llm-emit-token-metric,llm-content-safety,llm-semantic-cache-store), zone-redundant, multi-region. API Management er generelt det foretrukne alternativet fremfor egenutviklet kode, enten integrert med Foundry eller frittstående. Bruk GenAI gateway toolkit for custom policies + load-testing. - Custom code — Deploy gateway-logikk til App Service, Container Apps eller AKS. Kan frontes av API Management for HTTP-gateway capabilities.
Viktig: Global og data zone deployments i Azure OpenAI (som distribuerer kapasitet på tvers av datasentre) er i seg selv en gateway-implementasjon — vurder om disse dekker behovet FØR du legger til ekstra gateway-lag.
Konfidensgrad: 90% — API Management for LLM er dokumentert pattern (Verified MCP 2026-04).
Offentlig sektor (Norge)
Compliance-dimensjoner
| Krav | GenAIOps-implikasjon |
|---|---|
| GDPR Article 17 (right to be forgotten) | Vector stores må støtte incremental deletion. Azure AI Search støtter dette. |
| Utredningsinstruksen (KS/KMD) | Prompt versioning + evaluation results = audit trail for AI-beslutninger |
| NSM Grunnprinsipper for IKT-sikkerhet | Content Safety må være enabled i production. Azure AI Content Safety er realtime. |
| Digdir Prinsipper for utvikling av digitale tjenester | Human-in-the-loop approval gates i CI/CD (GenAIOps template støtter dette) |
| AI Act (High-Risk AI Systems) | Logging av alle LLM-interaksjoner (MLflow tracing + Application Insights) |
Konfidensgrad: 80% — Compliance-tolkning krever juridisk input.
Norsk språkstøtte
Utfordring: Foundation models (GPT-4, GPT-4o) er primært engelsk-trent.
GenAIOps-tilnærminger:
- Multilingual prompts: Eksplisitt be om norsk output ("Svar på norsk")
- Fine-tuning: Fine-tune GPT-4o på norske datasett (krever PTU)
- RAG med norsk grounding data: Norske dokumenter i vector store (embeddings er multilingual)
- NB-BERT embeddings: Bruk Norwegian BERT for embedding norske dokumenter (Azure AI Search custom embeddings)
Konfidensgrad: 70% — Norsk språkstøtte i GenAI er fortsatt eksperimentell (2025).
Kostnad og lisensiering
Token-basert prissetting (Azure OpenAI)
| Modell | Input (1M tokens) | Output (1M tokens) | Bruksområde |
|---|---|---|---|
| GPT-4o | $2.50 | $10.00 | RAG, complex reasoning |
| GPT-4o-mini | $0.15 | $0.60 | High-volume classification |
| GPT-4 Turbo | $10.00 | $30.00 | Legacy (prefer GPT-4o) |
| GPT-3.5 Turbo | $0.50 | $1.50 | Cost-sensitive use cases |
| text-embedding-3-small | $0.02 | N/A | Embedding generation |
Priser er per februar 2025 (NOK-estimat: USD × 10.5).
Konfidensgrad: 95% — Azure OpenAI pricing er dokumentert.
Provisioned Throughput Units (PTU)
Hva: Dedikert kapasitet for forutsigbar latency og cost.
Når: Production workloads med >100M tokens/måned.
Kostnad: $36 000 - $48 000 per PTU per måned (avhenger av modell og region).
Konfidensgrad: 90% — PTU pricing varierer, krever Azure quote.
Cost Optimization Tactics
- Prompt compression: Fjern unødvendige tokens fra system prompt
- Caching: Azure OpenAI støtter prompt caching (50% discount på cached tokens)
- Model downselection: Bruk GPT-4o-mini for classification, GPT-4o for reasoning
- Batching: Async batch API (50% discount, men høyere latency)
- Token limits:
max_tokensparameter for å unngå runaway costs
Konfidensgrad: 95% — Cost optimization er godt dokumentert.
For arkitekten
Spørsmål du ALLTID bør stille
-
"Trenger dere faktisk fine-tuning, eller holder prompting?"
- 80% av use cases løses med RAG + prompt engineering.
- Fine-tuning krever PTU (dyrt) og mer ops-kompleksitet.
-
"Hva er kvalitetskravet?"
- Pass rate på 70% (groundedness) er typisk for MVP.
- Pass rate på 90%+ krever extensive evaluation og tuning.
-
"Har dere plan for human feedback loop?"
- Thumbs up/down i UI → Application Insights → Retraining pipeline.
- Uten feedback loop, modellen degraderer over tid.
-
"Hva er token-budsjettet?"
- 1M requests × 1000 tokens avg = 1B tokens/måned = ~$12,500 USD med GPT-4o.
- PTU blir billigere ved >100M tokens/måned.
-
"Hvordan håndterer dere GDPR right-to-be-forgotten i vector store?"
- Azure AI Search: Incremental deletion støttes.
- Databricks Vector Search: Delta table-based, soft delete.
Red Flags
❌ "Vi trenger ikke evaluering, vi bare deployer" → Uten groundedness/relevance metrics, ingen måte å vite om LLM hallusinerer.
❌ "Vi lagrer alle prompts i hardkoded strings" → Prompts MÅ være versjonerte artefakter (Prompt Registry eller Git).
❌ "Vi overvåker bare latency, ikke quality" → LLM kan svare raskt med feil svar. Quality monitoring er kritisk.
❌ "Vi trenger ikke content safety, det er et B2B-system" → Prompt injection attacks kan få LLM til å lekke data selv i enterprise-systemer.
Anbefalte Steg for Pilot (MVP)
Uke 1-2: Setup
- Provisioner Microsoft Foundry project
- Deploy Azure OpenAI (GPT-4o + text-embedding-3-small)
- Setup Azure AI Search (vector index)
- Enable Azure AI Content Safety
Uke 3-4: Development
- Bygg RAG flow i Prompt Flow
- Test med 10-20 representative queries
- Evaluer med built-in evaluators (groundedness, relevance)
- Iterer på chunking strategy og retrieval method
Uke 5-6: CI/CD
- Clone GenAIOps Prompt Flow template
- Setup GitHub Actions / Azure DevOps pipelines
- Implementer human-in-the-loop approval gate
- Deploy til dev endpoint
Uke 7-8: Production Prep
- Setup monitoring (quality + tokens + safety)
- Implement feedback loop (thumbs up/down)
- Load testing (PTU vurdering)
- Deploy til production endpoint (blue-green)
Konfidensgrad: 90% — Basert på Microsoft LLMOps workshop (2025).
Kilder og verifisering
Microsoft Learn-kilder (18 dokumenter)
- Advance your maturity level for GenAIOps
- GenAIOps with prompt flow and Azure DevOps
- GenAIOps with prompt flow and GitHub
- Generative AI operations for organizations with MLOps investments
- LLMOps workflows on Azure Databricks
- MLOps and GenAIOps for AI workloads on Azure
- Integrate prompt flow with DevOps for LLM-based applications
- Azure AI Evaluation SDK
- Mosaic AI capabilities for GenAI
- MLflow Prompt Registry
- Microsoft Foundry monitoring
- MLflow Tracing for GenAI
- GenAI app developer workflow
- Plan and prepare a GenAIOps solution (Microsoft Learn Training)
- Implement LLMOps in Azure Databricks (Microsoft Learn Training)
- Access Azure OpenAI in Foundry Models through a gateway (Verified MCP 2026-04)
- RAG solution design and evaluation guide
- Microsoft GenAIOps Prompt Flow Template (GitHub)
Verifiseringsdato: 2026-02-04
For Cosmo Skyberg:
Denne kunnskapsfilen dekker det operasjonelle rammeverket for GenAI-løsninger — hvordan du går fra prototype til production med repeatable processes. Fokus er på Microsoft-spesifikke verktøy (Microsoft Foundry, Prompt Flow, MLflow, Databricks Mosaic AI), men prinsippene er portable til andre platforms.
Viktigste takeaway: GenAIOps er MLOps + Prompt Ops + Orchestration Ops + Vector Store Ops. Det er MER enn bare model deployment — det er hele økosystemet rundt LLM-baserte applikasjoner.
Når kunder spør "hvordan setter vi LLM i produksjon?", start med GenAIOps Maturity Model for å kartlegge hvor de er, og bruk GenAIOps Prompt Flow Template som konkret utgangspunkt.