# Gull-rekonsiliering (Spor 2b) — herding av fasiten før korpus-skala _Opprettet 2026-06-30. Utfører Spor 2(b) i `ref-kb-correctness-program-2026-06.md` §3: «løs hver judge-vs-gull-uenighet (v2: 6 FP + 6 FN) mot live kilde. Hver er enten judge-feil ELLER gull-feil; å løse dem kalibrerer judgen OG retter fasiten. Mål: 0 uløste uenigheter.» Gjøres FØR Spor 1 (korpus-pass) — bunnsolid fasit før vi skalerer målingen (§6 avhengighet)._ ## Sammendrag 12 uenigheter mellom v2-judgen og gull-settet (`gold-correctness-set.json`) ble løst ved fersk re-henting av hver siterte kilde (Opus 4.8-subagenter, `microsoft_docs_fetch`, read-only). Resultat: - **4 gull-feil** (gull-verdikt rettet) + **1 note-fiks** (verdikt beholdt). - **8 judge-feil** (gull sto; dokumentert som kalibreringsmål for Spor 2a / judge-prompt-v3). - **0 uløste uenigheter** — hver av de 12 er adjudisert til en definitiv side med verbatim live-belegg. Effekt på målingen (judgen var **bedre** enn rå-bakeoffen viste — fasiten var kontaminert): | | TP | FP | FN | TN | presisjon | recall | F1 | |---|---|---|---|---|---|---|---| | v2 rå fasit (`judge-bakeoff-report-v2`) | 32 | 6 | 6 | 196 | 84,2 % | 84,2 % | 0,842 | | **v2 herdet fasit (`-v2-reconciled`)** | **35** | **3** | **5** | **197** | **92,1 %** | **87,5 %** | **0,897** | Den frosne `judge-bakeoff-report-v2` beholdes urørt som gate-beslutnings-artefakt (pre-registrert gate ble vurdert på den fasiten). `judge-bakeoff-report-v2-reconciled` viser herdet fasit. ## Resolusjonsprinsipp (konservativt — tillit-bærende fasit) For hver uenighet: finn den **sanne** verdikten mot live kilde. - Sann ≠ gull → **gull-feil**: rett gull-verdikt. - Sann = gull → **judge-feil**: gull står, judge føres som kalibreringsmål. - Flytt gull **kun** der den sanne verdikten genuint avviker. En påstand som er *substansielt korrekt men upresis* (rett størrelsesorden / rett kjerneatferd) blir stående `correct`, og judge-flagget føres som over-streng. Verdikt-vokabular: `correct` (matcher dagens kilde) · `outdated` (var sant, kilden viser nå annet) · `wrong` (aldri sant / motsier kilden uten historisk grunnlag) · `unsourced` (kilden oppgir ikke verdien). ## Nedre-grense-policy (§3-kjennelse, godkjent av operatør 2026-06-30) §3 ber gull avgjøre om nedre-grense-påstander («100+», «200k+») teller som feil. **Vedtatt policy:** grov understatement (>~2×, beslutnings-endrende) teller som feil; en *stram* nedre grense (sann verdi i samme størrelsesorden) blir stående `correct`. Anvendt på FN2 (200k+ vs ~1M ⇒ `outdated`). ## De 12 adjudiseringene ### FP-er (judge flagget `not_grounded`, gull var `correct`) | ID | Live ground truth (verbatim-belagt) | Sann | Resolusjon | |---|---|---|---| | **FP1** `azure-ai-foundry.md#2` (taxonomy) | `what-is-foundry`: «over 1,900 models from Microsoft, OpenAI, Anthropic…» = HELE katalogen; «sold by Azure» er en delmengde. «11000+» og «40+ regioner» finnes ikke (kun «most regions where Foundry Tools are available») | **wrong** | 🔴 GULL-FEIL `correct→wrong` | | **FP2** `multimodal-prompt-design.md#7` (taxonomy) | `multimodal-search-overview`: image-to-vector ved query krever multimodal-embedding-vectorizer, men TO veier — AML-skill ELLER Azure Vision. «kun» utelukker AML-veien | **wrong** | 🔴 GULL-FEIL `correct→wrong` | | **FP3** `rag-cost-optimization.md#8` (taxonomy) | `vector-search-how-to-quantization`: «up to 96% reduction» / «up to 28 times» (claim 96,875% = teoretisk 32x ≈). «92,5%» = MS blogg-tittel (reell MS-figur, kombinerte teknikker) | **correct** (substansielt; begge tall sporer til MS) | 🟡 JUDGE-FEIL (eksakt-streng-pedanteri) | | **FP4** `multi-region-ai-gateway-design.md#2` (taxonomy) | `deployment-types`: 3 kjerne-residency-atferder bekreftet (Standard=deployment-region, DataZone=US/EU-sone, Global Standard=any region). Global Provisioned=any region (ikke single-region) | **correct** (men note «alle fire ordrett» overdrev) | 🟡 JUDGE-FEIL + note-fiks | | **FP5** `service-level-documentation-dr.md#6` (taxonomy) | `distribute-data-globally`: «Build global active-active apps… every region supports both writes and reads» — multi-region-write reell | **correct** | 🟡 JUDGE-FEIL (ekte FP — kapabilitet-bom) | | **FP6** `ai-foundry-disaster-recovery-planning.md#9` (status) | `openai/concepts/models`: Global training = GA (per-modell), ikke Public Preview; «billigere» + «ingen residency» stemmer; men Norway East er en GLOBAL trenings-region, ikke residency-regional | **outdated** | 🔴 GULL-FEIL `correct→outdated` | ### FN-er (judge `grounded`/`source_silent`, gull var feil) | ID | Live ground truth | Sann | Resolusjon | |---|---|---|---| | **FN1** `real-time-reasoning-performance.md#5` (region) | `realtime-audio` + WebRTC/SIP/WebSockets-søsken: Realtime = global deployment-type i NØYAKTIG East US 2 + Sweden Central. To-region-grensen IKKE avløst — gull misleste «global deployments» | **correct** | 🔴 GULL-FEIL `outdated→correct` | | **FN2** `rag-context-windows.md#2` (version) | `models-sold-directly-by-azure`: GPT-4.1 = **1 047 576** (~1M); praktisk 300k std. «200k+» sann nedre grense men understater ~5× | **outdated** (nedre-grense-policy) | 🟡 JUDGE-FEIL | | **FN3** `llm-evaluation-production.md#3` (sku) | Databricks `mlflow3/.../judges`: Completeness/Fluency/Equivalence finnes ikke i dagens built-in-liste (`ConversationCompleteness` er en distinkt multi-turn-judge) | **outdated** | 🟡 JUDGE-FEIL (`source_silent` maskerte fravær) | | **FN4** `endpoint-health-and-capacity-planning.md#3` (tpm) | `openai/quotas-limits`: «1 Unit Capacity»-rammen borte → Quota Tiers (Free/Tier 0–6, absolutte RPM/TPM). Ratioene overlever i tier-tabellene | **outdated** | 🟡 JUDGE-FEIL (ramme-skifte, tall overlever) | | **FN5** `capacity-planning-dr-configurations.md#3` (status) | `reliability-ai-search` + `cognitive-search-common-errors-warnings`: ingen 99,99%-nivå — SLA er 99,9%; 2 vs 3 replikaer = lese vs lese-skrive (begge 99,9%) | **wrong** | 🟡 JUDGE-FEIL (`source_silent` maskerte faktafeil) | | **FN6** `rag-query-cost-reduction.md#2` (sku) | `search-limits-quotas-capacity`: claim-tallene matcher kun «Before April 3, 2024»-raden; nå Basic 15/S1 160/S2 512/S3 1024 GB | **outdated** | 🟡 JUDGE-FEIL (matchet legacy-rad) | ## Gull-endringer (anvendt 2026-06-30) | ID | Før | Etter | Begrunnelse (kort) | |---|---|---|---| | `azure-ai-foundry.md#2` | correct | **wrong** | «11000+» motsier live «1900+ totalt»; «sold by Azure» mis-tilskriver totalen | | `multimodal-prompt-design.md#7` | correct | **wrong** | «kun» utelukker AML-skill (dokumentert annen vectorizer) | | `ai-foundry-disaster-recovery-planning.md#9` | correct | **outdated** | Global training er GA, ikke Public Preview; Norway-East-framing feil | | `real-time-reasoning-performance.md#5` | outdated | **correct** | to-region-grensen står; gull misleste kilden | | `multi-region-ai-gateway-design.md#2` | correct | _correct_ (note-fiks) | fjernet «alle fire ordrett»; noterte Global-Provisioned-unntaket | Hver endret claim bærer en `RECONCILED 2026-06-30 (Spor 2b)`-tag i `notes` med live-belegg + fil-fiks-peker for Spor 0/1. ## 8 judge-kalibreringsmål (mater Spor 2a / judge-prompt-v3) Disse er **ikke** gull-endringer — gull sto, judgen bommet. Grupperte feilmoduser: 1. **Eksakt-streng-pedanteri (FP3):** judge flagget fordi eksakt-strengene (96,875% / 92,5%) ikke sto verbatim, selv om størrelsesorden og kilde-sporing var rett. → Judge bør tillate dokumentert teoretisk-vs-benchmark-ekvivalens. 2. **Taksonomi-nyanse / over-streng (FP4):** kjerneatferden var grunnet; judge flagget på en utelatt under-kategori. → Judge bør skille «kjernen grunnet, detalj utelatt» fra «kjernen ugrunnet». 3. **Kapabilitet-bom (FP5):** judge hentet evidence-URL (continuous-backup) som ikke nevner kapabiliteten prominent, og kunne ikke grunne en reell kapabilitet. → Judge bør følge kapabilitet til kanonisk side; ikke straffe illustrative tall (~0 RTO/RPO) når kapabiliteten er solid. 4. **Nedre-grense-understatement (FN2):** judge sa `grounded` fordi 1M ≥ 200k. → Judge bør flagge nedre grenser som grovt understater (>~2×), ikke bare sjekke ≥. 5. **`source_silent` maskerer fravær (FN3, FN5):** judge hentet siden, fant ikke de påståtte entitetene/tallene, og returnerte `source_silent` (ikke et flagg). For «X finnes i listen»-påstander er fravær på autoritativ side bevis FOR feil. → Behandle `source_silent` på eksistens-påstander som svakt not_grounded-signal. 6. **Ramme-skifte, tall overlever (FN4):** judge pattern-matchet overlevende ratioer og overså at organiserings-rammen (1 Unit Capacity → Quota Tiers) var avløst. → Judge bør detektere når påstandens ramme/enhet er erstattet selv om avledede tall holder. 7. **Legacy-rad-match (FN6):** judge matchet mot en tids-stemplet historisk tabellrad («Before April 3, 2024») og kalte det grunnet. → Judge må sammenligne mot GJELDENDE rad, ikke en hvilken som helst historisk rad. (FP3, FP4, FP5 = 3 FP; FN2, FN3, FN4, FN5, FN6 = 5 FN.) ## Verifiseringslogg (nøkkelpåstander → kilder) | Påstand | Kilde (live, 2026-06-30) | |---|---| | 1900+ = hele katalogen, ikke «sold by Azure» | learn.microsoft.com/azure/foundry/what-is-foundry | | image-to-vector: AML-skill ELLER Azure Vision | learn.microsoft.com/azure/search/multimodal-search-overview | | binary quant «up to 96% / 28x»; 92,5% = blogg-tittel | learn.microsoft.com/azure/search/vector-search-how-to-quantization | | Global Provisioned = any region | learn.microsoft.com/azure/foundry/foundry-models/concepts/deployment-types | | Cosmos multi-region writes (active-active) | learn.microsoft.com/azure/cosmos-db/distribute-data-globally | | Global training = GA; Norway East = global-region | learn.microsoft.com/azure/ai-foundry/openai/concepts/models | | Realtime = East US 2 + Sweden Central (global type) | learn.microsoft.com/azure/foundry/openai/how-to/realtime-audio (+ WebRTC/SIP/WebSockets) | | GPT-4.1 kontekst = 1 047 576 | learn.microsoft.com/azure/foundry/foundry-models/concepts/models-sold-directly-by-azure | | MLflow built-in judges (ingen Completeness/Fluency/Equivalence) | learn.microsoft.com/azure/databricks/mlflow3/genai/eval-monitor/concepts/judges/ | | Quota Tiers erstatter Unit Capacity | learn.microsoft.com/azure/foundry/openai/quotas-limits | | AI Search SLA = 99,9% (ingen 99,99%); 2 vs 3 = lese vs lese-skrive | learn.microsoft.com/azure/reliability/reliability-ai-search (+ cognitive-search-common-errors-warnings) | | AI Search storage nå Basic 15/S1 160/S2 512/S3 1024 | learn.microsoft.com/azure/search/search-limits-quotas-capacity | ## Hva som IKKE ble gjort (scope-grense) Spor 2b retter **fasiten** (gull-settet), ikke reference-`.md`-filene. Fil-fiksene (FP1 11000+/40+, FP2 «kun», FP6 Public-Preview/Norway-East, FN2–FN6 utdaterte tall) er **Spor 0/1**-arbeid og er pekt ut i hver claims `notes`. Mange av FN-ene er reelle korpus-feil som hører til Spor 0-manifestet / Spor 1-korpus-passet. ## Addendum — etterfølgende gull-friskhets-flips (G5 + G5b, kanonisk logg i programdok §8) Spor 2b var ikke siste ord: gull-fasiten eldes (G5-gapet). Senere friskhets-passes (full logg + belegg i `ref-kb-correctness-program-2026-06.md` §8 lukke-logg) flyttet ytterligere **6 gull-verdikt** mot live MS Learn. Samlet flip-ledger for komplett sporbarhet: | Pass | Claim | Før | Etter | Retning | |---|---|---|---|---| | 2b | `azure-ai-foundry.md#2` | correct | wrong | for streng gull → feil avslørt | | 2b | `multimodal-prompt-design.md#7` | correct | wrong | — | | 2b | `ai-foundry-disaster-recovery-planning.md#9` | correct | outdated | — | | 2b | `real-time-reasoning-performance.md#5` | outdated | correct | gull for streng → rettet | | **G5** | `genaiops-llm-specific-practices.md#2` | outdated | **correct** | aldrende gull (1600+ vs live 1900, tett nedre grense) | | **G5** | `model-selection-price-performance.md#8` | outdated | **correct** | aldrende gull (Model Router GA nov 2025) | | **G5b** | `adr-template.md#1` | correct | **wrong** | stale gull (Graph connectors krever ACL) | | **G5b** | `multi-region-azure-openai-deployment.md#2` | correct | **outdated** | stale gull (gpt-35-turbo retired) | | **G5b** | `network-resilience-patterns-ai.md#4` | correct | **wrong** | stale gull («obligatorisk» vs «recommended») | | **G5b** | `vector-storage-cost-optimization.md#7` | correct | **wrong** | stale gull (GA-dato 2024-07-01, ikke 2024-11-01-preview) | **Mønster:** gull-friskhet inverterte adopsjonskonklusjonen **to ganger** (G5 og G5b). Re-adjudering av omstridt gull mot live FØR en baseline stoles på er nå fast disiplin ([[gold-freshness-can-invert-adoption]]), knyttet til §7 friskt utvalg. Effekt på adoptert baseline: v3 målt **P 100 % / R 92,9 % / 0 FP** på G5b-korrigert gull (`judge-bakeoff-report-v3-g5bgold.{json,md}`).