# Multimodal RAG — Bilder, tabeller og dokumenter i RAG **Last updated:** 2026-04 | Verified: MCP 2026-04 **Status:** GA (Document Intelligence, Content Understanding), Preview (multimodal embeddings) **Category:** RAG Architecture & Semantic Search --- ## 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:** ```json { "@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:** ```json { "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):** ```json { "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` | `
Header
` | | **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 | `` | ### 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 (Cosmo) ### 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](https://learn.microsoft.com/en-us/azure/search/multimodal-search-overview) | | Tutorial: Vectorize images and text | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/azure/search/tutorial-document-extraction-multimodal-embeddings) | | Content Understanding: Markdown representation | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/document/markdown) | | Multimodal RAG with Vision (ISE DevBlog) | **Verified** | [devblogs.microsoft.com](https://devblogs.microsoft.com/ise/multimodal-rag-with-vision/) | | RAG Time Journey 4: Advanced Multimodal Indexing | **Verified** | [techcommunity.microsoft.com](https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/rag-time-journey-4-advanced-multimodal-indexing/4397300) | | Azure-Samples/multimodal-rag-code-execution | **Baseline** | [github.com](https://github.com/Azure-Samples/multimodal-rag-code-execution) | ### Azure AI Search Multimodal Pipeline (oppdatert 2026-04) 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.