ms-ai-architect/skills/ms-ai-engineering/references/rag-architecture/multimodal-rag.md
Kjell Tore Guttormsen 3a73eeafdc refactor(ms-ai-architect): R13 del 1 — nøytraliser Cosmo-personaen i ref-korpusets headinger, etter å ha rettet en gate som var målt usann to ganger
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>
2026-09-12 22:12:28 +02:00

14 KiB

Multimodal RAG — Bilder, tabeller og dokumenter i RAG

Last updated: 2026-06-19 Status: GA (Document Intelligence, Content Understanding), Preview (multimodal embeddings) Category: RAG Architecture & Semantic Search Type: reference Source: https://learn.microsoft.com/azure/search/multimodal-search-overview


Innhold

Introduksjon

Multimodal RAG utvider tradisjonell tekstbasert retrieval til å inkludere bilder, tabeller, diagrammer og andre visuelle elementer i RAG-pipelinen. For enterprise-organisasjoner betyr dette at PDF-rapporter med grafer, tekniske tegninger, og presentasjoner med figurer kan indekseres og hentes med full visuell kontekst.

Azure-stakken tilbyr tre komplementære tilnærminger: Image verbalization (GPT-4o/4v konverterer bilder til tekst), direkte multimodale embeddings (Azure Vision genererer vektorer for bilder og tekst i samme vektorrom), og Azure Content Understanding (GA nov 2025) som konverterer komplekse dokumenter til Markdown med LaTeX-equations, HTML-tables og semantic chunking.

Microsoft ISE-teamet anbefaler en kombinert tilnærming: GPT-4v for bildeberikelse (bedre recall) og GPT-4o for inferens (bedre kvalitet, hastighet og kostnad).


Kjernekomponenter

Ekstraksjonsskills

Skill Tekst Bilder Tabeller Kryss-sideenheter Formater
Document Extraction Nei Ja Nei N/A Kun PDF
Document Layout Ja Ja Nei Kun innen side Flere formater
Content Understanding Ja Ja Ja (kryss-side) Ja PDF, DOCX, XLSX, PPTX

Anbefaling: Azure Content Understanding for moderne multimodal RAG-pipelines.

Multimodal embedding-tilnærminger

Tilnærming Metode Fordel Ulempe
Image verbalization GPT-4o/4v → tekst → text embedding Semantisk forståelse, gode captions LLM-kall per bilde, økt tid
Direct multimodal embeddings Azure Vision → bilde/tekst-vektor Rask, effektiv, visuell likhet Mangler semantisk kontekst
Kombinert (anbefalt) Verbalize diagrammer + direct embed fotos Maksimerer begge styrker Kompleksere pipeline

Azure Vision multimodal embeddings

  • Modell: Azure Vision multimodal via Microsoft Foundry
  • Dimensjoner: 1024 per vektor (tekst og bilde)
  • Nøkkel: Tekst og bilder projiseres i samme vektorrom

Arkitekturmønstre

Mønster 1: Image verbalization + text embeddings

Arkitektur: Blob Storage → Indexer → Image extraction → GenAI Prompt skill (GPT-4o/4v) → Text description → Azure OpenAI Embedding → Index

Pipeline:

Dokument → Document Layout skill (ekstraher bilder)
  → GenAI Prompt skill:
    "Beskriv dette bildet i kontekst av dokumentet: {image}"
  → Text embedding skill (text-embedding-3-large)
  → Index (med image description + embedding)

Fordeler:

  • Tolker relasjoner og entiteter i diagrammer
  • Ferdiglagde captions for RAG-bruk
  • Semantisk forståelse for AI-agenter
  • Returner relevante snippets med grunnlagsdata

Brukstilfelle: Rapporter med flytdiagrammer, organisasjonskart, arkitekturdiagrammer.

Mønster 2: Direct multimodal embeddings

Arkitektur: Blob Storage → Indexer → Image extraction → Azure Vision Vectorize skill → Index

Skill-konfigurasjon:

{
  "@odata.type": "#Microsoft.Skills.Vision.VectorizeSkill",
  "name": "image-embedding-skill",
  "context": "/document/normalized_images/*",
  "modelVersion": "2023-04-15",
  "inputs": [{"name": "image", "source": "/document/normalized_images/*"}],
  "outputs": [{"name": "vector", "targetName": "image_vector"}]
}

Fordeler:

  • Enkel konfigurasjon — ingen LLM-kall
  • Effektiv for visuell likhetssøk
  • Ideell for «finn noe som ligner»-scenarier

Brukstilfelle: Fotoarkiver, produktbilder, skjermbilder.

Mønster 3: Combined multimodal pipeline (anbefalt)

Arkitektur: Router basert på bildetype → [Diagram: verbalize] + [Foto: direct embed] → Felles index med multi-vector felt

Index-schema:

{
  "fields": [
    { "name": "content_embedding", "type": "Collection(Edm.Single)",
      "dimensions": 1024, "searchable": true,
      "vectorSearchProfile": "hnsw" },
    { "name": "content_text", "type": "Edm.String", "searchable": true },
    { "name": "content_path", "type": "Edm.String", "retrievable": true },
    { "name": "page_number", "type": "Edm.Int32", "filterable": true },
    { "name": "content_type", "type": "Edm.String", "filterable": true }
  ]
}

Index projections (tekst + bilder i samme indeks):

{
  "indexProjections": {
    "selectors": [
      {
        "targetIndexName": "multimodal-index",
        "parentKeyFieldName": "text_document_id",
        "sourceContext": "/document/pages/*",
        "mappings": [
          {"name": "content_embedding", "source": "/document/pages/*/text_vector"},
          {"name": "content_text", "source": "/document/pages/*"}
        ]
      },
      {
        "targetKeyFieldName": "image_document_id",
        "sourceContext": "/document/normalized_images/*",
        "mappings": [
          {"name": "content_embedding", "source": "/document/normalized_images/*/image_vector"},
          {"name": "content_path", "source": "/document/normalized_images/*/imagePath"}
        ]
      }
    ]
  }
}

Azure Content Understanding for RAG

Markdown-output (GA nov 2025)

Content Understanding konverterer dokumenter til GitHub Flavored Markdown:

Innholdstype Representasjon Eksempel
Tabeller HTML markup med rowspan/colspan <table><tr><th>Header</th></tr></table>
Ligninger LaTeX $$a^2 + b^2 = c^2$$
Diagrammer Chart.js JSON eller Mermaid Interaktiv grafgjengivelse
Bilder ![text](path "description") Med valgfri analyse
Sidemetadata HTML-kommentarer <!-- PageNumber="1" -->

Konfigurasjon for RAG-pipelines

outputContentFormat=markdown
enableFigureAnalysis=true
enableAnnotation=true
chartFormat=markdown

RAG-fordeler:

  • HTML-basert tabellrekonstruksjon bevarer struktur
  • LaTeX-formatering for matematisk presisjon
  • Semantic chunking for intelligent dokumentsegmentering

Beslutningsveiledning

Beslutningstabell

Dokumenttype Visuelt innhold Anbefalt tilnærming
Tekniske rapporter med diagrammer Flytdiagrammer, arkitektur Image verbalization (GPT-4v)
Fotoarkiv / produktbilder Fotografier Direct multimodal embeddings
PDF med tabeller over flere sider Tabeller, ligninger Content Understanding
Blandet innhold (tekst + bilder) Alt Combined pipeline (mønster 3)
Kun tekstdokumenter Ingen Standard RAG (ikke multimodal)

GPT-4v vs GPT-4o for multimodal RAG

Modell Best for Begrunnelse
GPT-4v (vision-preview) Bildeberikelse, summary-generering Bedre på å generere bildesummaries → forbedrer recall
GPT-4o Inferens, spørsmålsbesvaring Bedre på QA → forbedringer i kvalitet, hastighet, kostnad

Vanlige feil

Feil Konsekvens Løsning
Ignorerer bilder i RAG Mister visuell informasjon Aktiver imageAction: generateNormalizedImages
Kun direct embeddings for diagrammer Taper semantisk forståelse Bruk verbalization for diagrammer
Mangler spatial metadata Ingen sidehenvisning i citations Inkluder bounding_polygons og page_number
Bruker Free tier for multimodal Ikke støttet Minimum Basic tier for Azure AI Search

Integrasjon med Microsoft-stakken

Tjeneste Integrasjonspunkt
Azure AI Search Multi-vector indeks, index projections, knowledge store
Azure AI Document Intelligence Document Layout skill for bildeekstraksjon
Azure Content Understanding Markdown-output med tabeller, ligninger, semantisk chunking
Azure Vision Multimodal embeddings (1024-dim) for bilder og tekst
Azure OpenAI GPT-4o/4v for bildeverbalisering, text-embedding-3 for tekst
Azure Blob Storage Knowledge store for projiserte bilder

Query-patterns

Query-type Implementasjon Brukstilfelle
Fulltekstsøk {"search": "energy", "select": "content_text, content_path"} Søk på tvers av tekst og bilder
Filtrer kun bilder {"filter": "image_document_id ne null"} Visuelt innhold
Hybrid query Fulltekst + vektor + semantic ranking Best relevans
Bildebasert query Multimodal embedding av query-bilde Visuell likhetssøk

Offentlig sektor (Norge)

Dataplassering

  • Azure Content Understanding: Sjekk regional tilgjengelighet (endres hyppig)
  • Azure Vision: West Europe — bildeprosessering i EU
  • Azure AI Search: Norway East — indeks i Norge

Relevante vurderinger

Krav Implikasjon
Universell utforming (WCAG) Bildeverbalisering genererer alt-text — støtter tilgjengelighet
Arkivloven Spatial metadata (sidetall, posisjon) støtter dokumentreferanser
GDPR Bilder med persondata (ansikter) krever spesiell behandling
AI Act Dokumenter multimodal pipeline-arkitektur som del av AI-system

Kostnad og lisensiering

Kostnadskomponenter

Komponent Prismodell Estimat
Document Intelligence (bildeeekstraksjon) Per side ~$0.01-0.05/side
Content Understanding Per dokument/side Varierer
GPT-4v verbalization Per token (input: bilde + prompt) ~$0.01-0.03/bilde
Azure Vision embedding Per API-kall ~$0.001/bilde
Vektorlagring (multimodal) Per GB ~50% mer enn kun tekst

Optimaliseringstips

  1. Bruk direct embeddings for foto, verbalization for diagrammer — balanserer kostnad og kvalitet
  2. Sett stored: false på bildevektorer — sparer lagring
  3. Batch-prosesser bilder off-peak — lavere compute-kostnad
  4. Aktiver enrichment cache — unngår re-prosessering ved re-indeksering

Forutsetninger

  • Microsoft Foundry resource (for Vision multimodal embeddings) — regionbegrenset
  • Azure AI Search Basic tier eller høyere (ikke Free tier)
  • Azure Storage for dokumenter og knowledge store
  • Managed identity med riktige rolletildelinger

For arkitekten

Spørsmål å stille kunden

  1. "Inneholder dokumentene visuelt innhold (bilder, tabeller, diagrammer)?" — Nei → standard RAG
  2. "Hva slags visuelt innhold?" — Diagrammer → verbalization, fotos → direct embeddings
  3. "Er tabeller på tvers av sider vanlig?" — Ja → Content Understanding (ikke Document Layout)
  4. "Trenger brukerne å søke basert på bilder?" — Ja → multimodal embeddings
  5. "Har dokumentene LaTeX/ligninger?" — Ja → Content Understanding med LaTeX-støtte

Fallgruver

  • Multimodal for rent tekstinnhold: Økt kostnad uten gevinst
  • Kun direct embeddings for alt: Diagrammer trenger semantisk tolkning
  • Ignorerer Content Understanding: Ny service (GA nov 2025) som løser mange multimodale utfordringer
  • Glemmer spatial metadata: Uten sidetall og posisjon mister du citation-kvalitet

Anbefalinger per modenhetsnivå

Modenhet Anbefaling
Prototyp Document Layout skill. Ignorer bilder initialt. Fokuser på tekst-RAG.
Pilot Legg til image verbalization for nøkkeldokumenttyper. Test retrieval-kvalitet.
Produksjon Combined pipeline (mønster 3). Content Understanding for tabeller.
Enterprise Full multimodal pipeline + Azure Vision embeddings + spatial metadata.

Kilder og verifisering

Kilde Konfidens URL
Multimodal Search Concepts (Azure AI Search) Verified learn.microsoft.com
Tutorial: Vectorize images and text Verified learn.microsoft.com
Content Understanding: Markdown representation Verified learn.microsoft.com
Multimodal RAG with Vision (ISE DevBlog) Verified devblogs.microsoft.com
RAG Time Journey 4: Advanced Multimodal Indexing Verified techcommunity.microsoft.com
Azure-Samples/multimodal-rag-code-execution Baseline github.com

Azure AI Search Multimodal Pipeline (oppdatert 2026-06-19)

Azure AI Search multimodal pipeline (GA) støtter nå en fullstendig 5-stegs prosess:

  1. Ekstraksjon — Document Extraction, Document Layout, eller Content Understanding skill
  2. Tekst-chunking — Text Split skill for håndterbare biter
  3. Bildebeskriving — GenAI Prompt skill verbaliserer bilder via LLM
  4. Embedding — Azure OpenAI, Microsoft Foundry, eller Azure Vision embedding
  5. Bildestoring — Knowledge store lagrer ekstraherte bilder for annotation i klientapp

Hybrid queries kombinerer full-text search, vector search, og semantic ranking for å svare på spørsmål der svaret befinner seg i et innebygd diagram i en PDF.

Querytidsstøtte: GenAI Prompt skill-baserte pipelines støtter hybrid queries over tekst og verbaliserte bilder. For bilde-til-vektor-queries (søk med bilde som input), bruk Azure Vision multimodal embedding skill med en tilsvarende vectorizer.