Interviewspørgsmål til Multimodal Machine Learning-ingeniører
15 udvalgte interviewspørgsmål inden for multimodal maskinlæring, grupperet efter anciennitetsniveau. Brug dem til at gennemgå grundlæggende principper, praktiske afvejninger og ræsonnementer på seniorniveau i produktionen.
1Forklar kerneideen bag kontrastiv læring til justering af billede- og tekstrepræsentationer, og hvorfor et fælles embedding-rum er nyttigt.
Kerneideen med kontrastiv læring for billede-tekst-repræsentation er at projicere billede- og tekstinput ind i et fælles latent vektorrum, så semantisk matchende (positive) par trækkes tættere sammen, mens ikke-matchende (negative) par skubbes længere fra hinanden. Ved at træne separate vision- og tekst-encodere ved hjælp af lighedsmål (såsom cosinus-lighed), justerer modellen semantikken af kontinuerlige visuelle pixels med diskrete tekstuelle tokens. Et fælles embedding-rum er nyttigt, fordi det gør det muligt at løse multimodale opgaver direkte via vektorlighedssøgning. I dette samlede rum bliver krydsmodal genfinding (at finde billeder ud fra tekstforespørgsler, eller omvendt) og zero-shot-klassifikation (at evaluere en billed-embedding mod prompt-embeddings som f.eks. 'et billede af en hund') simple, yderst effektive nærmeste-nabo- eller prikprodukt-opslag uden at kræve opgavespecifikke klassifikationshoveder.
import torch
import torch.nn.functional as F
# image_features: [B, D], text_features: [B, D]
image_norm = F.normalize(image_features, dim=-1)
text_norm = F.normalize(text_features, dim=-1)
# Pairwise cosine similarity matrix: [B, B]
sim_matrix = image_norm @ text_norm.T
# Positive pairs lie on the diagonal; off-diagonals are negatives
2Forklar den CLIP-lignende dual-encoder arkitektur og de antagelser, den gør om billede-tekst-interaktion.
Den CLIP (Contrastive Language-Image Pre-training)-lignende dual-encoder arkitektur består af to separate, uafhængige neurale netværk: en visuel encoder (f.eks. Vision Transformer eller ResNet), der behandler billeder til visuelle feature-vektorer, og en tekst-encoder (f.eks. Transformer), der behandler tekst til tekst-feature-vektorer. Begge repræsentationer projiceres ind i en fælles indlejringsdimension, hvor justering måles ved hjælp af en simpel lighedsmetrik (såsom normaliseret cosinuslighed eller prikprodukt). Den grundlæggende arkitektoniske antagelse er sen fusion (eller faktoriseret krydsmodal interaktion): billede- og tekstmodaliteter interagerer ikke på mellemliggende lag via kryds-attention eller interaktioner på token-niveau. I stedet antages det, at hver modalitets fulde semantik er komprimerbar til en enkelt tæt vektorsummarisering, og krydsmodal interaktion antages at være fuldt nedbrydelig til et indre produkt. Denne afvejning prioriterer ekstrem genfindelseseffektivitet (hvilket muliggør offline forudberegning af billedindlejringer til vektorsøgning i milliard-skala) frem for finkornet krydsmodal ræsonnement (såsom token-til-regions-grunding eller komplekse kompositionelle rumlige relationer).
3Beskriv intuitionen bag at projicere billed- og tekstfeatures ind i et fælles normaliseret rum og optimere cosinus-lighed.
At projicere billed- og tekstfeatures ind i et fælles normaliseret rum (typisk på en enhedshypersfære via `L2-normalisering`) og optimere `cosinus-lighed` (`cosine similarity`) afkobler en indlejrings (`embedding`) semantiske retning fra dens vektormagnitude. Uden normalisering tillader et ubegrænset prikprodukt (`dot product`) modellen at minimere træningstab (`training loss`) ved trivielt at oppuste feature-normer for nemme eller hyppige eksempler snarere end at justere deres semantiske retninger.
Normalisering af vektorer på enhedshypersfæren afgrænser lighedsværdier strengt inden for `[-1, 1]`, hvilket sikrer, at afstand udelukkende svarer til vinkeladskillelse. Dette stabiliserer optimeringsgradienter, forhindrer repræsentations-eksplosion eller -kollaps og sikrer, at hvert eksempel i en batch bidrager ligeligt til tabet uanset modalitets-specifikke skalaforskelle. Når det parres med en indlæsbar temperaturparameter, kontrollerer det sandsynlighedsfordelingens skarphed over hypersfæren for at balancere justering af sande par med ensartet spredning af negative par.
import torch
import torch.nn.functional as F
# Unnormalized embeddings with extreme norm differences
v = torch.tensor([[10.0, 0.0], [0.1, 0.0]])
t = torch.tensor([[5.0, 0.0], [0.1, 0.0]])
# Raw dot products: heavily distorted by magnitude (50.0 vs 0.01)
raw_dot = v @ t.T
# L2 Normalized:
v_norm = F.normalize(v, p=2, dim=-1)
t_norm = F.normalize(t, p=2, dim=-1)
cosine_sim = v_norm @ t_norm.T
print('Cosine similarity matrix:\n', cosine_sim)
4Forklar visuel forankring (visual grounding) og forståelse af henvisende udtryk (referring expression comprehension) som sprogbetinget lokalisering, og hvordan de adskiller sig fra billedniveau-lighed.
Visuel forankring (visual grounding) (ofte operationaliseret som Forståelse af Henvisende Udtryk, eller REC (Referring Expression Comprehension)) er opgaven med at lokalisere et specifikt visuelt område, en bounding box eller en segmenteringsmaske inden for et billede baseret på et naturligt sprogligt henvisende udtryk (f.eks. 'manden med en blå jakke ved siden af lampen'). Det behandler lokalisering som betinget af sprog, hvilket kræver, at modellen løser sproglige rumlige relationer, attributter og objektidentiteter ned til pixel- eller rumlige koordinater. Dette adskiller sig fundamentalt fra billedniveau-lighed (image-level similarity), som beregner en enkelt holistisk semantisk affinitetsscore mellem et helt billede og en tekststreng (f.eks. at afgøre, om et billede matcher billedteksten 'en mand i en park'). Billedniveau-lighed producerer ikke rumlige koordinater, kan matche billeder, hvor det refererede objekt ikke er entydigt lokaliseret, og mislykkes ofte med at løse finkornet henvisende disambiguering mellem flere lignende objekter i den samme scene.
# Image-level similarity:
# Input: Image I, Text T ("black dog sitting on the left")
# Output: scalar score s in [0, 1] or dot product
similarity_score = image_text_model(image, text)
# Referring Expression Comprehension (Visual Grounding):
# Input: Image I, Text T ("black dog sitting on the left")
# Output: Bounding box coordinates [x_min, y_min, x_max, y_max]
bbox = grounding_model.predict_box(image, text)
5Forklar kryds-attention (cross-attention) som en fusionsmekanisme mellem visuelle tokens og tekst-tokens i multimodale transformere.
I multimodale transformere fungerer kryds-attention (cross-attention) som en asymmetrisk fusionsmekanisme, hvor én modalitet dirigerer forespørgsler (Q) til at 'attend over' nøgler (K) og værdier (V) ekstraheret fra en anden modalitet. For eksempel, når visuelle tokens fungerer som forespørgsler og tekst-tokens fungerer som nøgler og værdier, beregner hvert visuelt token en attention-vægtet sum over tekstrepræsentationer, der dynamisk betinger visuelle features på tekstuel kontekst (og omvendt når tekst forespørger visuelle tokens). Matematisk, givet en visuel sekvens X_v og en tekstsekvens X_t, beregner kryds-attention: CrossAttention(Q_v, K_t, V_t) = softmax((Q_v * K_t^T) / sqrt(d)) * V_t hvor Q_v = X_v * W_Q, K_t = X_t * W_K, og V_t = X_t * W_V. Denne mekanisme gør det muligt for modellen at udføre finmasket token-til-token semantisk alignment på tværs af modaliteter, uanset forskelle i sekvenslængder eller oprindelige feature-rum. Bidirektional fusion kan opnås ved at bruge to symmetriske kryds-attention-lag (f.eks. vision-til-sprog og sprog-til-vision) eller ved at alternere kryds-attention-blokke.
6Forklar, hvordan billedaugmentationer såsom beskæring, farvevariation (color jitter) og komprimering kan hjælpe eller skade billede-tekst kontrastiv justering.
Inden for multimodal kontrastiv læring (såsom CLIP) tjener billedaugmentationer et andet formål end i unimodal selvovervåget læring (såsom SimCLR). Da billeder kontrasteres mod parrede teksttekster snarere end en anden augmentativ visning af det samme billede, kan augmentationer både gavne og forvrænge repræsentationslæringen. Hvordan augmentationer hjælper: 1. Forebyggelse af genvejslæring: Milde augmentationer (såsom tilfældig beskæring, milde horisontale spejlinger og moderat farvevariation (color jitter)) forhindrer vision-encoderen i at stole på trivielle visuelle artefakter på lavt niveau (f.eks. baggrundsfarvedistributioner, hjørnevandmærker eller rumlige positionsbias). 2. Synspunkt- og Skalainvarians: Moderat skalering og beskæring opmuntrer modellen til at identificere semantiske objekter på tværs af varierende brændvidder og perspektiver, hvilket sikrer robust nulskudsgeneralisering (zero-shot generalization). Hvordan augmentationer kan skade (Semantisk uoverensstemmelse): 1. Aggressiv Tilfældig Beskæring: Hvis en billedtekst beskriver et specifikt objekt ('en fugl siddende på en gren'), og en aggressiv beskæring fjerner fuglen helt, tvinges den resterende beskæring (kun blade/himmel) stadig til at justeres med fugleteksten. Dette introducerer falsk supervisionsstøj og forringer hentningspræcisionen. 2. Stærk Farvevariation (Color Jittering) / Farvetoneinversion: Mange billedtekster beskriver eksplicit farveattributter ('en gul taxa', 'et rødt æble'). Stærke farveskift ændrer taxaen til blå eller æblet til grønt, hvilket forårsager direkte semantisk modsigelse mellem den visuelle input og tekstteksten. 3. Kraftig sløring og komprimering: Aggressiv rumlig nedprøvetagning (spatial downsampling), JPEG-komprimering eller Gaussisk sløring ødelægger finkornede tekstuelle spor (OCR-tekst på skilte, logoer, fine teksturer), der udtrykkeligt er beskrevet i parrede billedtekster. Praktisk regel: Multimodal kontrastiv træning kræver betydeligt mere konservative augmentationer (f.eks. `Random Resized Crop` med skalområde [0.5, 1.0] og mild spejling) end unimodal selvovervåget læring.
7Forklar billed-tekst-genfinding som en opgave, og forskellen mellem lukket-sæt-matchning og åben-verden-genfinding over store korpora.
Billed-tekst-genfinding er opgaven at finde korresponderende data på tværs af modaliteter givet en forespørgsel i én modalitet (tekst-til-billede eller billede-til-tekst), typisk opnået ved at afbilde både billeder og tekster ind i et fælles repræsentationsrum, hvor lighed korrelerer med relevans. Lukket-sæt-matchning (closed-set matching) antager en fast, foruddefineret kandidatpulje med kendte "ground-truth"-parringer (såsom standard Flickr30k- eller MS-COCO-benchmarks), hvilket tillader udtømmende parvis lighedsberegning eller alle-til-alle krydsopmærksomhed. Åben-verden-genfinding (open-world retrieval) opererer over massive, dynamiske, ukurationerede korpora (f.eks. millioner til milliarder af web- eller katalogelementer), hvor kandidatpuljerne er ubegrænsede, distraktorer og falske negativer er udbredte, og skalerbare tilnærmede nærmeste nabo (ANN)-søgeindeks (f.eks. Faiss, HNSW) er påkrævet, fordi udtømmende krydsopmærksomhed over alle par er beregningsmæssigt uoverkommelig.
import torch
import torch.nn.functional as F
# Closed-set matching: full pairwise similarity matrix over fixed evaluation set
image_embeds = F.normalize(torch.randn(1000, 512), dim=-1)
text_embeds = F.normalize(torch.randn(1000, 512), dim=-1)
sim_matrix = torch.matmul(text_embeds, image_embeds.T) # (1000, 1000)
# Open-world retrieval: query vector queried against an indexed corpus using ANN
# index = faiss.IndexHNSWFlat(512, 32)
# distances, indices = index.search(query_embed, k=10)
8Sammenlign InfoNCE-lignende softmax kontrastive tab med parvise sigmoid-tab for billed-tekst-embedding-læring.
InfoNCE-lignende kontrastive tab (som i CLIP) behandler tilpasning som et kategorisk flerklasses klassifikationsproblem. For hvert sample beregner det en softmax-fordeling over alle kandidat-negative par i batchen, normaliserer ligheder på tværs af hele batch-puljen. Derimod behandler parvise sigmoid-kontrastive tab (som i SigLIP) hver enkelt indgang i billed-tekst-lighedsmatrixen som en uafhængig binær klassifikationsopgave, anvender en sigmoid-funktion og binær krydsentropi-tab per par (positive par sigter mod +1, negative par sigter mod -1). Nøgleforskellene er: 1. Kobling vs. Afkobling: InfoNCE kobler alle negativer gennem den globale softmax-partitionsnævner, hvilket forårsager konkurrence, hvor de sværeste negativer dominerer gradienter. SigLIP afkobler alle par og evaluerer hver uafhængigt. 2. Distribueret Skalerbarhed og Effektivitet: InfoNCE kræver indsamling af lighedsmatricer på tværs af GPU'er for global normalisering (all-gather kommunikationsflaskehals). SigLIP's uafhængige parvise tab kan beregnes lokalt uden global kryds-GPU-softmax-normalisering, hvilket forbedrer skalerings-effektiviteten og forbliver stabilt på tværs af både små og meget store batch-størrelser.
import torch
import torch.nn.functional as F
def siglip_loss(sim_matrix, temperature, bias):
# sim_matrix: [B, B] dot product of normalized embeddings
# targets: 1 on diagonal (positive), -1 on off-diagonals (negative)
B = sim_matrix.size(0)
targets = 2 * torch.eye(B, device=sim_matrix.device) - 1.0
logits = sim_matrix * temperature + bias
# Pairwise binary cross entropy with log-sigmoid
return -torch.mean(F.logsigmoid(targets * logits))
9Forklar, hvordan hårde negativer (hard negatives) og falske negativer (false negatives) påvirker billed-tekst kontrastiv læring.
Hårde negativer og falske negativer har modsatrettede effekter på billed-tekst kontrastiv læring:
1. **Hårde negativer** er ikke-matchende par, der er semantisk eller visuelt meget tæt på ankeret (f.eks. et billede af en siberian husky parret med billedteksten 'en alaskan malamute'). Hårde negativer giver gradient-signaler med høj styrke og informativ værdi. De tvinger modellen til at se ud over grove kategorifunktioner og lære finkornede visuel-lingvistiske detaljer og skarpe beslutningsgrænser.
2. **Falske negativer** opstår, når tilfældigt samplede 'negative' par i batchet faktisk er gyldige semantiske match (f.eks. to forskellige fotos af golden retrievers, hvor det ene er parret som et negativ mod 'en sød golden retriever i en park'). Falske negativer straffer korrekte semantiske justeringer ved at tvinge modellen til at skubbe gyldige matchende repræsentationer fra hinanden. Dette korrumperer gradienter, forringer repræsentationskvaliteten og undertrykker legitim synonymi og visuel varians. Afbødningsstrategier for falske negativer inkluderer bløde/label-udjævnende kontrastive mål, debiased kontrastiv læring, datasæt-deduplikering og multi-positiv matchning.
import torch
import torch.nn.functional as F
# Image 0 and Image 1 both depict 'a red sports car'
# Text 0: 'a red sports car', Text 1: 'a fast red car'
# In standard InfoNCE, Text 1 is treated as a negative for Image 0.
sim = torch.tensor([[0.95, 0.90], # Image 0 similarities
[0.88, 0.94]]) # Image 1 similarities
loss_img0 = -F.log_softmax(sim / 0.07, dim=-1)[0, 0]
print(f'InfoNCE loss for Image 0: {loss_img0.item():.4f}')
# High similarity to false negative Text 1 (0.90) heavily penalizes the model
10Sammenlign global billed-tekst-justering med region-ord- eller token-niveau justeringsmål.
Global billed-tekst-justering mapper et helt billede og en hel tekstsekvens til enkelt holistiske indlejringsvektorer (f.eks. via pool'ede features i `CLIP` (Contrastive Language-Image Pre-training)) og justerer dem ved hjælp af et kontrastivt mål som `InfoNCE` (Info Noise-Contrastive Estimation). Dette giver fremragende skalerbarhedsegenskaber, hurtige indekserbare repræsentationer til genfinding og stærk semantisk klyngedannelse. Det lider dog under grov rumlig granularitet, kæmper med finmaskede visuelle detaljer, kompositionalitet, tælling og rumlige relationer, og udviser ofte problemer med attributbinding. I modsætning hertil opererer region-ord- eller token-niveau justering på finmaskede delbilled- (f.eks. patch-tokens, objekters bounding-box-features) og delsætnings- (f.eks. ord- eller subword-tokens) granulariteter. Metoder som FILIP, GLIP eller VinVL justerer tokens via finmaskede kontrastive tab (såsom token-vis maks-sim eller Chamfer-lighed) eller optimal transport / cross-attention justering. Dette bevarer eksplicit rumlige og sproglige kompositionelle detaljer, hvilket muliggør objektdetektion, visuel forankring og præcis attributbinding, men på bekostning af højere beregnings- og hukommelseskompleksitet, højere inferens-latens og mere støjende justeringssignaler.
import torch
import torch.nn.functional as F
# visual_tokens: [B, N_v, D], text_tokens: [B, N_t, D]
def token_level_maxsim_similarity(visual_tokens, text_tokens):
v_norm = F.normalize(visual_tokens, dim=-1)
t_norm = F.normalize(text_tokens, dim=-1)
# Compute similarity matrix between all visual and text tokens: [B, N_t, N_v]
sim_matrix = torch.bmm(t_norm, v_norm.transpose(1, 2))
# Text-to-image: For each word token, find maximum visual token similarity and average
t2i_sim = sim_matrix.max(dim=-1).values.mean(dim=-1) # [B]
return t2i_sim
11Sammenlign tidlig fusion, sen fusion, intermediær fusion, cross-attention fusion, gated fusion og konkatenering for multimodale modeller.
Multimodale fusionsstrategier integrerer syns- og sprogsignaler på forskellige dybder og med forskellige strukturelle konfigurationer: 1. Tidlig fusion: Rå eller lavniveau-features (f.eks. image patch embeddings og word token embeddings) flettes på inputstadiet og føres ind i en enkelt delt `backbone`. Dette muliggør dybe tværmodale interaktioner fra lag nul, men er beregningsmæssigt dyrt og gør genbrug af unimodal pre-træning sværere. 2. Sen fusion: Modaliteter behandles uafhængigt af dybe unimodale `backbones` til globale repræsentationsvektorer, som kun kombineres til sidst via simpel aggregering (f.eks. prikprodukt, cosinus-lighed eller en simpel MLP (Multi-Layer Perceptron)). Dette er ekstremt effektivt og ideelt til indekserbar genfinding, men kan ikke fange finkornede tværmodale interaktioner. 3. Intermediær fusion: Unimodale `backbones` behandler inputs over flere lag, og fusion sker på intermediære stadier gennem delte lag eller laterale forbindelser, hvilket skaber en balance mellem unimodal specialisering og multimodal interaktion. 4. Cross-Attention Fusion: Bruger multi-head attention, hvor én modalitet leverer `queries`, og den anden leverer `keys`/`values`. Den tilbyder høj repræsentationsevne med token-til-token-konditionering, der rummer heterogene sekvenslængder. 5. Gated Fusion: Bruger indlærte gating-mekanismer (f.eks. sigmoid- eller tanh-gates) til dynamisk at vægte bidraget fra hver modalitet eller fusionslag baseret på kontekstuel konfidens, hvilket forhindrer én modalitet i at dominere eller korrumpere forudtrænede vægte. 6. Konkatenering: Fletter feature-vektorer eller token-sekvenser langs feature-dimensionen (feature-konkatenering) eller sekvenslængde-dimensionen (token-konkatenering før en forenet transformer). Det er simpelt og ikke-parametrisk, men feature-konkatenering kræver justerede spatiale/temporale dimensioner, mens token-konkatenering skalerer kvadratisk med den samlede sekvenslængde i self-attention.
12Sammenlign dual-encoder retrieval-modeller med cross-encoder rerankere for billed-tekst-matching med hensyn til interaktionskapacitet, nøjagtighed og latens.
Dual-encoder (bi-encoder) modeller og cross-encoder rerankere repræsenterer to forskellige paradigmer for billed-tekst-matching, som præsenterer grundlæggende kompromiser mellem interaktionskapacitet, nøjagtighed og latens: 1. Interaktionskapacitet: - Dual-Encodere (f.eks. CLIP): Behandler billede og tekst gennem separate, frakoblede backbones. Multimodal interaktion er strengt sen og overfladisk, begrænset til et enkelt prikprodukt eller cosinuslighed mellem globalt pool'ede vektorer. De mangler krydsmodale interaktioner på token-niveau. - Cross-Encodere (f.eks. UNITER, ViLT, ALBEF multimodal branch): Sammenkæder visuelle og tekst-tokens til en delt transformer eller bruger krydsopmærksomhedslag. Hvert visuelt token kan interagere med hvert tekst-token på tværs af flere lag, hvilket muliggør dyb krydsmodal ræsonnement. 2. Nøjagtighed: - Dual-encodere opnår lavere nøjagtighed på komplekse kompositionelle forespørgsler, rumlige relationer, negation og finkornet attribut-matching på grund af flaskehalsen ved enkeltvektorrepræsentationer. - Cross-encodere opnår markant højere nøjagtighed på komplekse, finkornede og kompositionelle billed-tekst-matching-opgaver. 3. Latens og Skalerbarhed: - Dual-encodere tillader forudberegning og indeksering af billedindlejringer offline i en vektordatabase (f.eks. Milvus, FAISS). Ved inferenstid kodes kun tekstforespørgslen, og søgning over millioner af kandidater kræver kun lette tilnærmede nærmeste nabo (ANN) prikprodukter (sub-millisekund latens). - Cross-encodere kræver kørsel af det fulde fælles neurale netværk for hvert (billede, tekst) kandidatpar ved forespørgselstid (O(N) forward passes for N kandidater), hvilket resulterer i størrelsesordener højere latens og gør dem beregningsmæssigt uoverkommelige for første-trins retrieval over store korpora. I praktiske produktionssystemer er en to-trins pipeline standard: en dual-encoder henter top-K kandidater (f.eks. K=100) med lav latens, efterfulgt af en cross-encoder, der reranker dem for høj nøjagtighed.
13Design et multimodalt RAG-system (Retrieval Augmented Generation) over PDF'er eller manualer, der indeholder tekst, tabeller, diagrammer, skærmbilleder, illustrative tegninger og indlejrede billeder.
Et ende-til-ende multimodalt RAG-system til komplekse visuelle dokumenter (PDF'er, manualer, rapporter) omfatter fire centrale arkitektoniske faser: 1. Indtagelse og layout-bevidst parsing: PDF-sider behandles via layout-bevidste dokumentmodeller (f.eks. LayoutLM, DocTR) eller visuelle parsing-pipelines for at segmentere indhold i strukturerede blokke: tekstpassager, strukturerede tabeller (konverteret til HTML/Markdown med cellespan), gengivne diagrambilleder med dataserier og selvstændige illustrative tegninger eller skærmbilleder med spatiale bounding boxes. 2. Multimodal indeksering og dobbelt repræsentation: - Visuelle aktiver (diagrammer, skærmbilleder, illustrative tegninger): Gemmes som billedudsnit med tætte multimodale indlejringer (f.eks. SigLIP, CLIP eller ColPali visuelle patch-tokens) sammen med syntetiske tekstuelle resuméer og OCR-tekst (Optical Character Recognition) genereret af en VLM (Vision-Language Model), lagret i et tæt tekstindeks. - Tabeller: Gemmes som struktureret Markdown/HTML i tekstvektor- og BM25-indekser. - Tekst: Opdelt i semantiske sektioner og indekseret via tætte indlejringer og sparsomme søgeord. 3. Hybrid genfinding og multimodal omlægning (reranking): - Første-fase genfinding: Udfører parallel genfinding på tværs af sparsom BM25 (søgeord, OCR-tekst, tabel-markup), tætte tekstvektorer og visuelle indlejringsindekser (ANN-søgning - Approximate Nearest Neighbor). - Fusion og omlægning: Sammenfletter kandidater (f.eks. via Reciprocal Rank Fusion) og scorer top-emner ved hjælp af en multimodal kryds-encoder eller en visuel sen-interaktions-model (der scorer forespørgselstekst mod højopløselige billedudsnit og parset tekst). 4. Multimodal kontekstsamling og jordet generering: Top-k multimodale kontekst – gengivne billedlapper, tabelskemaer og tekstpassager med dokument-/side-metadata – sendes til en instruktions-tunet VLM (f.eks. GPT-4o, Claude 3.5 Sonnet eller open-source Qwen2-VL). Genereringsprompten håndhæver kildeherkomst ved at kræve eksplicitte citationer (sidetal, figurnumre eller bounding boxes).
from dataclasses import dataclass
from typing import Optional, List
@dataclass
class MultimodalChunk:
chunk_id: str
document_id: str
page_number: int
modality_type: str # 'text', 'table', 'chart', 'diagram'
text_payload: str # Raw text or structured Markdown/HTML
vlm_caption: Optional[str] = None # Synthetic summary of visual content
bbox: Optional[List[float]] = None # [x0, y0, x1, y1]
image_crop_path: Optional[str] = None
dense_embedding: Optional[List[float]] = None
# Indexing strategy: Text search covers text_payload + vlm_caption;
# Multimodal search matches dense_embedding or visual tokens.
14Forklar, hvordan evaluering af multimodal RAG (Retrieval-Augmented Generation) separat bør måle kvaliteten af hentning, udnyttelsen af evidens, proveniens og troværdigheden af det endelige svar.
Evaluering af multimodal RAG (Retrieval-Augmented Generation) kræver, at systemet nedbrydes i fire adskilte evalueringsdimensioner for at lokalisere, om fejl stammer fra hentning, kontekstforbrug, citationpræcision eller generation:
1. **Kvalitet af hentning (Retrieval Quality):** Evaluerer, om hentningsmekanismen identificerer de nødvendige visuelle og tekstmæssige bidder. Nøglemetrikker inkluderer multimodal `Recall@K`, `NDCG@K` og `MRR`. For visuelle elementer omfatter dette også Visuel IoU (Intersection over Union) / Bounding-Box Recall (hvorvidt det hentede billedudsnit indeholder det relevante diagram/graf) og Balance i modalitets-recall (sikrer, at ikke-tekstuelle modaliteter som tabeller og plots ikke systematisk overses).
2. **Udnyttelse af evidens (tilstrækkelighed og nødvendighed) (Evidence Utilization - Sufficiency and Necessity):** Måler, om genereringsmodellen reelt er afhængig af den hentede multimodale evidens frem for at generere svar udelukkende fra parametrisk hukommelse. Dette måles via Kontekstrelevans (præcision af hentede visuelle/tekstuelle tokens, der understøtter spørgsmålet), Evidensnødvendighed / Ablationstest (maskering eller fjernelse af det hentede diagram/tabel for at verificere, om svaret fejler) og analyse af cross-attention-attribuering.
3. **Proveniens og citationpræcision (Provenance & Citation Accuracy):** Måler, om kildetildelinger er præcise og verificerbare. Evalueret via Præcision, Recall og F1 for citationer (dokumentnavne, sidetal, figur-ID'er eller bounding box-koordinater). Automatiserede kontroller verificerer, at den citerede bounding box eller side faktisk indeholder den sande evidens (ground truth), der er nødvendig for at besvare spørgsmålet.
4. **Troværdighed og korrekthed af det endelige svar (Final Answer Faithfulness & Correctness):**
* **Troværdighed / Forankring (Faithfulness / Grounding):** Vurderer, om hvert genereret udsagn er impliceret af den hentede multimodale kontekst uden hallucination (typisk evalueret via VLM (Vision-Language Model)-som-dommer, der kontrollerer udsagnsimplikation mod tekst- og visuelle udklip).
* **Faktuel korrekthed:** Evaluerer, om det genererede svar stemmer overens med sandheden (ground truth).
* **Robusthed over for afvisning (Refusal Robustness):** Tester, om modellen korrekt afviser at svare, når den hentede kontekst er irrelevant eller modstridende.
# Evaluation record schema for a single Multimodal RAG query:
eval_record = {
'retrieval_quality': {
'hit_at_k': True, # Top-3 chunks contain target diagram
'visual_bbox_iou': 0.85 # Retrieved crop overlap with true figure region
},
'evidence_utilization': {
'necessity_ablation_passed': True # Removing chart causes answer to fail
},
'provenance': {
'page_match': True, # Cited Page 12 (Ground Truth Page 12)
'figure_id_match': True # Cited 'Figure 4'
},
'faithfulness': {
'claim_entailment_score': 1.0, # All claims entailed by context
'hallucination_detected': False
}
}
all_passed = all(all(metrics.values()) for metrics in eval_record.values())
print(f'System passes all decoupled checks: {all_passed}')
15Overvej at opdatere produktions-multimodale genfindingsmodeller, når galleri-indlejringer og -indekser skal genopfriskes i stor skala.
Opdatering af et multimodalt genfindingssystem i stor skala præsenterer et repræsentationsdriftsproblem: nygenererede indlejringer befinder sig i et andet geometrisk latent rum og kan ikke sammenlignes direkte med eksisterende galleri-indlejringer uden alvorlig recall-forringelse. Følgelig kræver nul-nedetidsopdateringer enten dual-indeks blue/green implementeringer, kompatibilitetsindlæring (såsom bagudkompatibel træning eller transformationsadaptere) eller trinvise reindekserings-pipelines. I et standard blue/green reindekserings-workflow beregner offline batch-jobs nye indlejringer på tværs af galleriet og opbygger et nyt vektorindeks (såsom HNSW eller IVF). Mens genopbygningen kører, fortsætter live søgetrafik med at forespørge det aktive ældre indeks. Nye indkommende elementer håndteres via dobbelt-skrivning eller streaming Change Data Capture (CDC) logs, så begge indekser forbliver aktuelle. Når det nye indeks er valideret via skyggetrafik og varmet i hukommelsen, skifter trafikken atomisk til den nye encoder og indeks, hvorefter det gamle indeks afvikles. Alternativt begrænser bagudkompatibel indlæring den nye forespørgsels-encoder til at stemme overens med det ældre galleri-rum, hvilket muliggør øjeblikkelige forespørgsels-modelopgraderinger, mens galleriet asynkront genopfyldes over tid.
class MultimodalRetrievalRouter:
def __init__(self, v1_service, v2_service, dual_write=True):
self.v1 = v1_service # Model v1 + Index v1
self.v2 = v2_service # Model v2 + Index v2
self.active_version = "v1"
self.dual_write = dual_write
def search(self, query_multimodal):
# Route query strictly to the encoder matching the active index
if self.active_version == "v1":
return self.v1.search(query_multimodal)
return self.v2.search(query_multimodal)
def ingest_new_item(self, item):
# Dual-write during migration window so the new index is up-to-date at cutover
self.v1.index_item(item)
if self.dual_write and self.v2.is_ready_for_ingest:
self.v2.index_item(item)