ms-ai-architect/skills/ms-ai-engineering/references/rag-architecture/hierarchical-rag-patterns.md
Kjell Tore Guttormsen 070141f06b chore(ms-ai-architect): refresh KB medium-bucket — 74 files [skip-docs]
KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update.
74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert
til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med
disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av
de faktatunge gruppene + tester).

Hovedendringer (faktuelle korreksjoner + currency):
- Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic
  m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i
  tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup).
- APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i
  rag-caching-optimization hadde retningen baklengs — invertert til korrekt.
- Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot
  agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV
  grounding (references + activity), IKKE syntetiserte svar. Answer synthesis,
  ikke-minimal reasoning effort (LLM query planning) og multi-turn messages
  forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele
  kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking.
- Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus
  4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA),
  Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview;
  A2A GA (apr 2026).
- Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status
  (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/
  steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool
  + Hosted browser + bring-your-own-machine.
- Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil),
  2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac,
  chunking).
- Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent
  calls the flow"; App Service innebygd MCP (preview) lagt til.
- M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni);
  "Tenant graph grounding" -> "Work IQ".
- Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales
  (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01).
- Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices ->
  ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den
  presenteres som go-forward. Gateway-topologi-tabell-feil rettet.
- Alle 74 Last updated -> 2026-06-19.

Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret,
ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings
uendret), gitleaks clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
2026-06-19 14:02:18 +02:00

11 KiB

Hierarchical RAG Patterns — Multi-nivå retrieval

Last updated: 2026-06-19 | Verified: MCP 2026-06-19 Status: GA (index projections), Preview (agentic retrieval) Category: RAG Architecture & Semantic Search


Introduksjon

Hierarchical RAG organiserer kunnskap i multi-nivå strukturer i stedet for flat chunk-indeksering. Ved å etablere relasjoner mellom parent-dokumenter, seksjoner og chunks muliggjøres en «zoom inn/ut»-mekanisme der søk starter bredt (dokumentnivå) og driller ned til relevante segmenter.

Azure AI Search implementerer hierarkisk RAG gjennom index projections som håndterer one-to-many relasjoner mellom kildedokumenter og chunks. Document Intelligence Layout skill bevarer dokumentstruktur (headings, avsnitt) som muliggjør hierarkisk navigasjon.

Forskning (2025-2026) viser at hierarkisk retrieval gir 47% høyere Hit@1 og opptil 250x reduksjon i token-kostnad sammenlignet med flat retrieval, fordi søkeområdet reduseres gjennom coarse-to-fine filtrering.


Kjernekomponenter

Azure AI Search tilbyr tre arkitekturmønstre for parent-child indeksering:

Mønster Beskrivelse Brukstilfelle
Single index, repeating parent fields Parent-metadata repeteres per chunk Standard RAG, enkel query-logikk (anbefalt)
Single index, mixed document shapes Parents og chunks co-eksisterer Fulldokument-søk + chunk-søk i én indeks
Separate parent-child indexes Dedikert parent-index + child-index Enterprise med strikt separasjon, compliance

Index projection-konfigurasjon

{
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "my_consolidated_index",
        "parentKeyFieldName": "parent_id",
        "sourceContext": "/document/pages/*",
        "mappings": [
          { "name": "chunk", "source": "/document/pages/*" },
          { "name": "chunk_vector", "source": "/document/pages/*/chunk_vector" },
          { "name": "title", "source": "/document/title" }
        ]
      }
    ],
    "parameters": {
      "projectionMode": "skipIndexingParentDocuments"
    }
  }
}

Nøkkelparametere:

Parameter Verdier Beskrivelse
projectionMode skipIndexingParentDocuments / includeIndexingParentDocuments Kun chunks eller begge
parentKeyFieldName parent_id, text_parent_id Felt som kobler chunk → parent
sourceContext /document/pages/* Enrichment path for granularitet

Automatisk chunk-ID generering

Azure AI Search genererer chunk-IDer basert på parent-ID:

  • Parent: aa1b22c33
  • Chunk 1: aa1b22c33_pages_0
  • Chunk 2: aa1b22c33_pages_1

Hash-komponenten endres ved parent-oppdatering → sikrer change tracking.


Arkitekturmønstre

Mønster 1: Single index med parent-metadata (anbefalt)

Arkitektur: Data source → Indexer → Document Layout → Text Split → Embedding → Index projections (parent fields repeteres per chunk)

Index-schema:

{
  "fields": [
    { "name": "chunk_id", "type": "Edm.String", "key": true },
    { "name": "parent_id", "type": "Edm.String", "filterable": true },
    { "name": "chunk", "type": "Edm.String", "searchable": true },
    { "name": "chunk_vector", "type": "Collection(Edm.Single)" },
    { "name": "title", "type": "Edm.String", "filterable": true },
    { "name": "section_heading", "type": "Edm.String", "filterable": true },
    { "name": "page_number", "type": "Edm.Int32", "filterable": true }
  ]
}

Fordeler:

  • Enklest å implementere og vedlikeholde
  • Én query gir chunks med full parent-kontekst
  • Metadata-filtrering (tittel, seksjon) for hierarkisk drill-down

Anbefalt for: 80% av RAG-løsninger, spesielt ved enkel dokumentstruktur.

Mønster 2: Multi-resolution retrieval med lookup-queries

Arkitektur: Child index (chunks) + Parent index (summaries/metadata) → Vector search på child → Lookup til parent

Implementering:

# Steg 1: Hent relevante chunks
child_results = child_client.search(
    vector_queries=[VectorQuery(vector=query_embedding, k=5)],
    select=["chunk_id", "parent_id", "chunk"]
)

# Steg 2: Lookup parent-dokumenter
parent_ids = {r["parent_id"] for r in child_results}
parent_docs = parent_client.search(
    filter=f"parent_id in ({','.join(parent_ids)})",
    select=["parent_id", "title", "summary"]
)

# Steg 3: Assembler kontekst
context = []
for chunk in child_results:
    parent = next(p for p in parent_docs if p["parent_id"] == chunk["parent_id"])
    context.append({
        "chunk": chunk["chunk"],
        "source": parent["title"],
        "summary": parent["summary"]
    })

Fordeler:

  • «Zoom ut» fra chunk til fullt dokument
  • Parent-summary gir LLM bedre kontekstuell forståelse
  • Sporbarhet for citation og audit

Anbefalt for: Enterprise RAG med krav til kildehenvisning og compliance.

Mønster 3: Retrieval cascade (Summary → Section → Chunk)

Arkitektur: Tre indeksnivåer med progressiv filtrering:

Nivå 1: Document summaries → Velg relevante dokumenter (top-10)
Nivå 2: Section headings → Velg relevante seksjoner (top-20)
Nivå 3: Chunks → Hent detaljerte segmenter (top-5)

Fordeler:

  • Drastisk reduksjon av søkerom (10-100x)
  • Minimerer «lost in the middle»-problemet
  • Opptil 250x reduksjon i token-kostnad

Ulemper:

  • Tre separate søkeoperasjoner (økt latency)
  • Kompleks indeksstruktur
  • Krever generering av summaries per dokument/seksjon

Anbefalt for: Store dokumentsamlinger (>100K docs) der flat søk gir dårlig precision.


Beslutningsveiledning

Beslutningstabell

Scenario Volum Anbefalt mønster
Standard RAG <50K docs Mønster 1 (single index, parent fields)
Krav til citation/sporbarhet Alle Mønster 2 (lookup queries)
Stort volum, lav precision >100K docs Mønster 3 (retrieval cascade)
Compliance/audit Alle Mønster 2 med dataDeletionDetectionPolicy

Vanlige feil

Feil Konsekvens Løsning
Ingen parent-child mapping Kan ikke spore chunk → kildedokument Bruk index projections med parentKeyFieldName
Ignorerer dataDeletionDetectionPolicy GDPR right to erasure brytes Konfigurer cascade deletion på data source
Flat index for >100K docs Dårlig precision, høy token-kostnad Vurder retrieval cascade
Manglende metadata (section, page) Ingen mulighet for hierarkisk filtrering Legg til section_heading og page_number

Integrasjon med Microsoft-stakken

Tjeneste Integrasjonspunkt
Azure AI Search Index projections, parent-child mapping, lookup queries
Azure AI Document Intelligence Document Layout skill med markdownHeaderDepth: "h3"
Azure Content Understanding Semantisk chunking med kryssende sider
Azure OpenAI Summary-generering for retrieval cascade
Semantic Kernel TextSearchProvider med namespace-filtrering
Azure Cosmos DB Alternativ parent-child storage med hierarkisk query

Document Layout skill for hierarkisk chunking

Anbefaling (2026-06): For nye skillsets anbefaler Microsoft nå Azure Content Understanding-skill (#Microsoft.Skills.Util.ContentUnderstandingSkill) i stedet for Document Layout-skill — den samler semantisk chunking, AI-genererte bildebeskrivelser og forbedret tabelluttrekk i én skill. Document Layout-skill (under) er fortsatt støttet og dokumentert for eksisterende pipelines.

{
  "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
  "context": "/document",
  "outputMode": "oneToMany",
  "markdownHeaderDepth": "h3",
  "inputs": [{"name": "file_data", "source": "/document/file_data"}],
  "outputs": [{"name": "markdown_document", "targetName": "markdownDocument"}]
}

Output: Markdown med # H1, ## H2, ### H3 som bevarer hierarkisk dokumentstruktur.


Offentlig sektor (Norge)

Dataplassering

  • Azure AI Search: Norway East — hierarkisk indeks forblir i Norge
  • Document Intelligence: West Europe — dokument-parsing i EU

Relevante vurderinger

Krav Implikasjon
Forvaltningsloven Chunks må spores til kildedokument — krev parent-child mapping
GDPR Art. 17 Sletting av kildedokument MÅ kaskadere til alle chunks
AI Act Hierarkisk sporbarhet støtter forklarbarhetskrav
Arkivloven Parent-index bevarer dokumentkontekst for arkivformål

Kostnad og lisensiering

Kostnadskomponenter

Komponent Kostnad Notat
Index projections Inkludert i AI Search Ingen ekstra kostnad
Document Layout skill ~$0.01-0.05/side Document Intelligence-prising
Summary-generering (cascade) GPT-4o per dokument ~$0.01-0.05/dokument
Ekstra indekslagring (parent-felter) Per GB ~20-30% økning ved repeterte felter

Optimaliseringstips

  1. Bruk projectionMode: skipIndexingParentDocuments for å unngå dobbelt lagring
  2. Generer summaries off-peak for å minimere compute-kostnad
  3. Sett stored: false på vektorfelt for å spare lagringsplassn

For arkitekten (Cosmo)

Spørsmål å stille kunden

  1. "Trenger brukerne å se hvilke dokumenter et svar kommer fra?" — Hvis ja, krev parent-child mapping
  2. "Hvor mange dokumenter er i samlingen?" — >100K → vurder cascade
  3. "Er det compliance-krav til sletting (GDPR)?" — Krev cascade deletion
  4. "Har dokumentene tydelig struktur (headings, kapitler)?" — Bruk Document Layout skill
  5. "Hva er akseptabel query-latency?" — Cascade = 2-3x latency

Fallgruver

  • Over-engineering for småskala: Single index med parent fields er nok for <50K docs
  • Glemmer deletion policy: GDPR-brudd hvis chunks overlever parent-sletting
  • Cascade uten summaries: Første nivå i cascade trenger AI-genererte summaries for å fungere

Anbefalinger per modenhetsnivå

Modenhet Anbefaling
Prototyp Single index med parent_id felt. Ingen cascade.
Pilot Index projections med parent fields + Document Layout.
Produksjon Mønster 2 (lookup queries) + cascade deletion policy.
Enterprise Retrieval cascade + AI-summaries + automated quality evaluation.

Kilder og verifisering

Kilde Konfidens URL
Define index projections (Azure AI Search) Verified learn.microsoft.com
Chunk and vectorize by document layout Verified learn.microsoft.com
RAG and generative AI (Azure AI Search) Verified learn.microsoft.com
Model complex data types Verified learn.microsoft.com
Hierarchical RAG research Baseline emergentmind.com