Pitanja za Multimodal Machine Learning Engineer intervju
15 često postavljanih pitanja za Multimodal ML intervju. Pitanja pokrivaju različite nivoe, a odgovore možete vežbati naglas u našem treneru za intervjue.
1Objasnite osnovnu ideju kontrastivnog učenja za poravnavanje reprezentacija slike i teksta i zašto je deljeni prostor ugnježđavanja koristan.
Osnovna ideja kontrastivnog učenja za reprezentaciju slike i teksta jeste projektovanje ulaznih slika i tekstova u zajednički latentni vektorski prostor, tako da se semantički podudarni (pozitivni) parovi približavaju, dok se nepodudarni (negativni) parovi udaljavaju. Treniranjem zasebnih enkodera za vizuelne podatke i tekst pomoću funkcija sličnosti (kao što je kosinusna sličnost), model poravnava semantiku kontinualnih vizuelnih piksela sa diskretnim tekstualnim tokenima. Deljeni prostor ugnježđavanja je koristan jer omogućava da se multimodalni zadaci rešavaju direktno putem vektorske pretrage po sličnosti. U ovom objedinjenom prostoru, međumodalno pretraživanje (pronalaženje slika na osnovu tekstualnih upita ili obrnuto) i klasifikacija bez prethodnih primera (zero-shot klasifikacija, gde se embedding slike poredi sa embeddingom upita kao što je 'a photo of a dog') postaju jednostavne, visoko efikasne pretrage najbližih suseda ili skalarnog proizvoda, bez potrebe za klasifikacionim glavama specifičnim za dati zadatak.
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
2Objasnite arhitekturu dvostrukog enkodera u stilu CLIP (Contrastive Language-Image Pre-training) modela i pretpostavke koje ona uvodi u vezi sa interakcijom slike i teksta.
Arhitektura dvostrukog enkodera u stilu CLIP-a sastoji se od dve zasebne, nepovezane neuronske mreže: vizuelnog enkodera (npr. Vision Transformer ili ResNet) koji obrađuje slike u vektore vizuelnih obeležja i tekstualnog enkodera (npr. Transformer) koji obrađuje tekst u vektore tekstualnih obeležja. Obe reprezentacije se projektuju u zajedničku dimenziju ugrađivanja (embedding), gde se poravnanje meri jednostavnom metrikom sličnosti (kao što je normalizovana kosinusna sličnost ili skalarni proizvod). Osnovna arhitektonska pretpostavka jeste kasno spajanje (late fusion, odnosno faktorizovana kros-modalna interakcija): modaliteti slike i teksta ne interaguju na međuslojevima putem ukrštene pažnje (cross-attention) ili interakcija na nivou tokena. Umesto toga, pretpostavlja se da se celokupna semantika svakog modaliteta može sažeti u jedan gusti vektor, kao i da se kros-modalna interakcija može u potpunosti dekomponovati na skalarni proizvod. Ovaj kompromis daje prednost izuzetnoj efikasnosti pretrage (omogućavajući offline pre-računavanje embedding-a slika za vektorsku pretragu na skali od više milijardi stavki) u odnosu na detaljno kros-modalno rezonovanje (kao što je povezivanje tokena sa regijama na slici ili složeni kompozicioni prostorni odnosi).
3Opišite intuiciju iza projektovanja obeležja slike i teksta u zajednički normalizovani prostor i optimizacije kosinusne sličnosti.
Projektovanje obeležja slike i teksta u zajednički normalizovani prostor (obično na jediničnu hipersferu putem L2 normalizacije) i optimizacija kosinusne sličnosti razdvajaju semantički pravac vektora od njegove magnitude. Bez normalizacije, neograničeni skalarni proizvod omogućava modelu da minimizuje funkciju gubitka tokom obučavanja tako što trivijalno uvećava norme obeležja za lake ili česte uzorke, umesto da usklađuje njihove semantičke pravce. Normalizacija vektora na jediničnu hipersferu strogo ograničava vrednosti sličnosti na opseg [-1, 1], osiguravajući da rastojanje odgovara isključivo ugaonom razmaku. Ovo stabilizuje gradijente pri optimizaciji, sprečava eksploziju ili urušavanje reprezentacija i obezbeđuje da svaki uzorak u batch-u podjednako doprinosi funkciji gubitka, bez obzira na razlike u skali specifične za pojedinačne modalitete. U kombinaciji sa parametrom temperature koji se uči tokom obuke, ovo kontroliše oštrinu raspodele verovatnoće po hipersferi kako bi se uravnotežilo poravnanje tačnih parova sa ujednačenom disperzijom negativnih parova.
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)
4Objasnite vizuelno utemeljivanje (visual grounding) i razumevanje upućujućih izraza (referring expression comprehension) kao lokalizaciju uslovljenu jezikom i kako se oni razlikuju od sličnosti na nivou slike.
Vizuelno utemeljivanje (često operacionalizovano kao razumevanje upućujućih izraza, odnosno REC – Referring Expression Comprehension) jeste zadatak lokalizovanja specifičnog vizuelnog regiona, graničnog okvira (bounding box) ili segmentacione maske unutar slike na osnovu upućujućeg izraza na prirodnom jeziku (npr. 'čovek u plavoj jakni pored lampe'). Ovaj zadatak tretira lokalizaciju kao uslovljenu jezikom, zahtevajući od modela da razreši jezičke prostorne relacije, atribute i identitete objekata sve do nivoa piksela ili prostornih koordinata. To se suštinski razlikuje od sličnosti na nivou slike, koja izračunava jedinstvenu celovitu ocenu semantičke sličnosti između cele slike i tekstualnog niza (npr. utvrđivanje da li slika odgovara opisu 'čovek u parku'). Sličnost na nivou slike ne generiše prostorne koordinate, može povezati slike u kojima referencirani objekat nije jedinstveno lokalizovan i često ne uspeva u preciznom razrešavanju nejasnoća između više sličnih objekata na istoj sceni.
# 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)
5Objasnite unakrsnu pažnju (cross-attention) kao mehanizam fuzije između vizuelnih i tekstualnih tokena u multimodalnim transformerima.
U multimodalnim transformerima, unakrsna pažnja (cross-attention) deluje kao asimetrični mehanizam fuzije u kome jedan modalitet usmerava upite (Q) ka ključevima (K) i vrednostima (V) izdvojenim iz drugog modaliteta. Na primer, kada vizuelni tokeni deluju kao upiti, a tekstualni tokeni kao ključevi i vrednosti, svaki vizuelni token izračunava sumu reprezentacija teksta ponderisanu pažnjom, dinamički uslovljavajući vizuelna obeležja tekstualnim kontekstom (i obrnuto kada tekst šalje upite vizuelnim tokenima). Matematički, za dati vizuelni niz X_v i tekstualni niz X_t, unakrsna pažnja izračunava: CrossAttention(Q_v, K_t, V_t) = softmax((Q_v * K_t^T) / sqrt(d)) * V_t gde je Q_v = X_v * W_Q, K_t = X_t * W_K i V_t = X_t * W_V. Ovaj mehanizam omogućava modelu da izvrši fino semantičko poravnanje između tokena iz različitih modaliteta bez obzira na razlike u dužinama sekvenci ili početnim prostorima obeležja. Dvosmerna fuzija se može postići korišćenjem dva simetrična sloja unakrsne pažnje (npr. slika-ka-tekstu i tekst-ka-slici) ili naizmeničnim blokovima unakrsne pažnje.
6Objasnite kako augmentacije slika kao što su isecanje, variranje boja i kompresija mogu pomoći ili odmoći kontrastivnom poravnanju slike i teksta.
U multimodalnom kontrastivnom učenju (kao što je CLIP), augmentacije slika imaju drugačiju svrhu nego u unimodalnom samonadgledanom učenju (kao što je SimCLR). Zato što se slike kontrastiraju sa uparenim tekstualnim opisima umesto sa drugom augmentovanom verzijom iste slike, augmentacije mogu i unaprediti i narušiti učenje reprezentacije.
Kako augmentacije pomažu:
1. Sprečavanje prečica u učenju (shortcut learning): Blage augmentacije (kao što su nasumično isecanje, blagi horizontalni preokreti i umereno variranje boja) sprečavaju vizuelni enkoder da se oslanja na trivijalne vizuelne artefakte niskog nivoa (npr. raspodelu boja u pozadini, vodene žigove u uglovima ili prostorne pristrasnosti).
2. Invarijantnost na tačku gledišta i razmeru: Umereno skaliranje i isecanje podstiču model da prepoznaje semantičke objekte kroz različite žižne daljine i perspektive, obezbeđujući robusnu generalizaciju bez prethodnog podešavanja (zero-shot).
Kako augmentacije mogu odmoći (semantičko nepoklapanje):
1. Agresivno nasumično isecanje: Ako tekstualni opis opisuje određeni objekat ('ptica na grani'), a agresivno isecanje potpuno ukloni pticu, preostali isečak (samo lišće/nebo) se i dalje prisilno poravnava sa opisom ptice. Ovo uvodi lažni šum u nadgledanje i narušava preciznost pretrage.
2. Jako variranje boja / inverzija nijansi: Mnogi opisi eksplicitno navode atribute boje ('žuti taksi', 'crvena jabuka'). Velike promene boja menjaju taksi u plavi ili jabuku u zelenu, što dovodi do direktne semantičke kontradikcije između vizuelnog ulaza i tekstualnog opisa.
3. Jako zamućenje i kompresija: Agresivno prostorno smanjenje rezolucije, JPEG kompresija ili Gausovo zamućenje uništavaju fine tekstualne signale (OCR tekst na znakovima, logotipe, fine teksture) koji su eksplicitno opisani u uparenim tekstovima.
Praktično pravilo: Multimodalno kontrastivno treniranje zahteva znatno konzervativnije augmentacije (npr. Random Resized Crop sa opsegom skaliranja [0.5, 1.0] i blago okretanje) u poređenju sa unimodalnim samonadgledanim učenjem.
7Objasnite zadatak pretrage i uparivanja teksta i slike (image-text retrieval) i razliku između uparivanja na zatvorenom skupu i pretrage u otvorenom svetu nad velikim korpusima podataka.
Pretraga i uparivanje teksta i slike (image-text retrieval) predstavlja zadatak pronalaženja odgovarajućih podataka između različitih modaliteta na osnovu upita u jednom modalitetu (tekst-u-sliku ili slika-u-tekst). To se obično postiže mapiranjem slika i tekstova u zajednički prostor reprezentacije u kojem sličnost korelira sa relevantnošću. Uparivanje na zatvorenom skupu (closed-set matching) podrazumeva fiksni, unapred definisani skup kandidata sa poznatim tačnim parovima (kao što su standardni Flickr30k ili MS-COCO referentni skupovi), što omogućava iscrpno računanje sličnosti svih parova ili unakrsnu pažnju (cross-attention) po principu „svi sa svima“. Pretraga u otvorenom svetu (open-world retrieval) funkcioniše nad ogromnim, dinamičnim i nekartiranim korpusima (npr. milioni do milijarde stavki sa weba ili iz kataloga) gde skupovi kandidata nisu ograničeni, irelevantni primeri i lažni negativi su česti, te su neophodni skalabilni indeksi za pretragu približno najbližih suseda (ANN - Approximate Nearest Neighbor, npr. Faiss, HNSW), jer je iscrpna unakrsna pažnja nad svim parovima računski neizvodljiva.
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)
8Uporedite kontrastivne funkcije gubitka u InfoNCE (Information Noise-Contrastive Estimation) softmax stilu sa uparenim sigmoid funkcijama gubitka za učenje ugrađivanja (embedding) slika i teksta.
Kontrastivne funkcije gubitka u InfoNCE stilu (kao u modelu CLIP) tretiraju poravnanje kao problem višeklasne kategoričke klasifikacije. Za svaki uzorak izračunava se softmax raspodela preko svih kandidata negativnih parova u grupi podataka (batch), normalizujući sličnosti duž celokupnog skupa uzoraka u grupi. Nasuprot tome, uparene sigmoidne kontrastivne funkcije gubitka (kao u modelu SigLIP) tretiraju svaki element u matrici sličnosti slike i teksta kao nezavisan zadatak binarne klasifikacije, primenjujući sigmoidnu funkciju i funkciju gubitka binarne unakrsne entropije po paru (pozitivni parovi ciljaju +1, a negativni parovi -1). Ključne razlike su: 1. Povezanost naspram razdvajanja: InfoNCE povezuje sve negativne primere kroz globalni imenilac softmax particije, što stvara konkurenciju u kojoj najteži negativni primeri dominiraju gradijentima. SigLIP razdvaja sve parove i svaki procenjuje nezavisno. 2. Distribuirana skalabilnost i efikasnost: InfoNCE zahteva prikupljanje matrica sličnosti sa više GPU jedinica radi globalne normalizacije (usko grlo u komunikaciji tipa all-gather). SigLIP nezavisni gubitak po parovima može se izračunavati lokalno bez globalne međusobne softmax normalizacije među GPU-ovima, što poboljšava efikasnost skaliranja i zadržava stabilnost kako pri malim, tako i pri izuzetno velikim veličinama grupa podataka.
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))
9Objasnite kako teški negativni primeri (hard negatives) i lažno negativni primeri (false negatives) utiču na kontrastivno učenje slike i teksta.
Teški negativni primeri i lažno negativni primeri imaju suprotne efekte na kontrastivno učenje slike i teksta:
1. Teški negativni primeri (hard negatives) su parovi koji se ne poklapaju, ali su semantički ili vizuelno veoma bliski sidru (engl. anchor) (npr. slika sibirskog haskija uparena sa opisom 'aljaski malamut'). Teški negativi pružaju informativne gradijentne signale visokog intenziteta. Oni primoravaju model da prevaziđe gruba obeležja kategorija i nauči detaljne vizuelno-lingvističke finese i oštre granice odlučivanja.
2. Lažno negativni primeri (false negatives) nastaju kada su nasumično uzorkovani 'negativni' parovi u paketu (batch) zapravo validna semantička poklapanja (npr. dve različite fotografije zlatnog retrivera gde je jedna uparena kao negativni primer sa opisom 'sladak zlatni retriver u parku'). Lažno negativni primeri kažnjavaju ispravna semantička poravnanja primoravajući model da razdvaja reprezentacije koje se zapravo poklapaju. To kvari gradijente, degradira kvalitet reprezentacija i potiskuje legitimnu sinonimiju i vizuelnu varijaciju.
Strategije za ublažavanje lažno negativnih primera uključuju funkcije cilja sa ublažavanjem labela (label-smoothing), nepristrasno kontrastivno učenje (debiased contrastive learning), deduplikaciju skupa podataka i uparivanje sa više pozitivnih primera (multi-positive matching).
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
10Uporedite ciljeve globalnog poravnanja slike i teksta sa poravnanjem na nivou region-reč ili na nivou tokena.
Globalno poravnanje slike i teksta mapira celu sliku i ceo tekstualni niz u pojedinačne holističke vektore ugrađivanja (npr. putem objedinjenih feature-a u CLIP-u) i poravnava ih koristeći kontrastivni cilj poput InfoNCE. Ovo pruža odlična svojstva skaliranja, brze indeksabilne reprezentacije za pretragu i snažno semantičko klasterovanje. Međutim, ima nedostatke u vidu grube prostorne granularnosti, teže se nosi sa detaljima na finom nivou, kompozicionošću, brojanjem i prostornim odnosima, i često ispoljava probleme sa vezivanjem atributa. Nasuprot tome, poravnanje na nivou region-reč ili na nivou tokena funkcioniše na finijoj granularnosti podslike (npr. tokeni isečaka, karakteristike graničnih pravougaonika objekata) i podrečenice (npr. tokeni reči ili podreči). Metode poput FILIP, GLIP ili VinVL poravnavaju tokene putem fino granularnih kontrastivnih funkcija gubitka (kao što su max-sim po tokenu ili Chamfer sličnost) ili putem optimalnog transporta / međusobne pažnje (cross-attention). Ovo eksplicitno čuva prostorne i lingvističke kompozicione detalje, omogućavajući detekciju objekata, vizuelno utemeljenje i precizno vezivanje atributa, ali po cenu veće računske i memorijske složenosti, veće latencije pri inferenciji i šumnijih signala poravnanja.
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
Strategije multimodalne fuzije integrišu vizuelne i jezičke signale na različitim dubinama i strukturnim konfiguracijama:
1. Rana fuzija (Early Fusion): Sirova ili obeležja niskog nivoa (npr. ugrađivanja delova slike i ugrađivanja tokena reči) spajaju se u ulaznoj fazi i prosleđuju u jedinstvenu zajedničku osnovnu mrežu (backbone). Ovo omogućava duboke međumodalne interakcije od nultog sloja, ali je računarski zahtevno i otežava ponovno korišćenje unimodalnog predtreniranja.
2. Kasna fuzija (Late Fusion): Modaliteti se nezavisno obrađuju kroz duboke unimodalne mreže u globalne vektore reprezentacije, koji se kombinuju tek na samom kraju putem jednostavne agregacije (npr. skalarni proizvod, kosinusna sličnost ili plitki MLP). Ovo je izuzetno efikasno i idealno za pretragu sa indeksiranjem, ali ne može da uhvati fine međumodalne interakcije.
3. Međufuzija (Intermediate Fusion): Unimodalne mreže obrađuju ulaze kroz nekoliko slojeva, a fuzija se odvija u međuetapama kroz zajedničke slojeve ili bočne veze, postižući balans između unimodalne specijalizacije i multimodalne interakcije.
4. Fuzija unakrsnom pažnjom (Cross-Attention Fusion): Koristi mehanizam pažnje sa više glava (multi-head attention) gde jedan modalitet obezbeđuje upite (queries), a drugi ključeve/vrednosti (keys/values). Nudi visok kapacitet reprezentacije sa uslovljavanjem na nivou tokena, podržavajući sekvence heterogenih dužina.
5. Kontrolisana fuzija (Gated Fusion): Koristi naučene mehanizme kapija (npr. sigmoid ili tanh kapije) za dinamičko ponderisanje doprinosa svakog modaliteta ili sloja fuzije na osnovu kontekstualne pouzdanosti, sprečavajući da jedan modalitet dominira ili naruši predtrenirane težine.
6. Konkatenacija: Spaja vektore obeležja ili sekvence tokena duž dimenzije obeležja (konkatenacija obeležja) ili dimenzije dužine sekvence (konkatenacija tokena pre objedinjenog transformera). Jednostavna je i neparametarska, ali konkatenacija obeležja zahteva usklađene prostorne/vremenske dimenzije, dok konkatenacija tokena kvadratno skalira sa ukupnom dužinom sekvence u mehanizmu samopažnje (self-attention).
12Uporedite modele za pretragu sa dvostrukim enkoderom i cross-encoder modele za ponovno rangiranje za uparivanje slike i teksta u pogledu kapaciteta interakcije, tačnosti i kašnjenja.
Modeli sa dvostrukim enkoderom (bi-encoder) i cross-encoder modeli za ponovno rangiranje (rerankers) predstavljaju dve različite paradigme za uparivanje slike i teksta, sa suštinskim kompromisima između kapaciteta interakcije, tačnosti i kašnjenja (latency):
1. **Kapacitet interakcije:**
- *Dvostruki enkoderi (npr. CLIP):* Obrađuju sliku i tekst kroz zasebne, razdvojene osnovne mreže (backbones). Multimodalna interakcija je isključivo kasna i plitka, ograničena na jedan skalarni proizvod (dot product) ili kosinusnu sličnost između globalnih sažetih vektora. Nedostaje im interakcija na nivou pojedinačnih tokena između modaliteta.
- *Cross-enkoderi (npr. UNITER, ViLT, ALBEF multimodalna grana):* Spajaju vizuelne i tekstualne tokene u zajednički transformer ili koriste slojeve unakrsne pažnje (cross-attention). Svaki vizuelni token može da interaguje sa svakim tekstualnim tokenom kroz više slojeva, omogućavajući duboko rasuđivanje između modaliteta.
2. **Tačnost:**
- Dvostruki enkoderi postižu nižu tačnost na složenim kompozicionim upitima, prostornim relacijama, negacijama i finom uparivanju atributa zbog uskog grla reprezentacije jednim vektorom.
- Cross-enkoderi postižu znatno višu tačnost na složenim, fino granuliranim i kompozicionim zadacima uparivanja slike i teksta.
3. **Kašnjenje i skalabilnost:**
- Dvostruki enkoderi omogućavaju prethodno izračunavanje i indeksiranje embedding-a slika van mreže (offline) u vektorskoj bazi podataka (npr. Milvus, FAISS). U fazi inferencije enkodira se samo tekstualni upit, a pretraga kroz milione kandidata zahteva samo lagane proračune skalarnog proizvoda za približno pronalaženje najbližih suseda (ANN - Approximate Nearest Neighbor) uz kašnjenje ispod jedne milisekunde.
- Cross-enkoderi zahtevaju pokretanje kompletne zajedničke neuronske mreže za svaki par kandidata (slika, tekst) u trenutku upita ($O(N)$ prolaza unapred za $N$ kandidata), što rezultira višestruko većim kašnjenjem i čini ih računski neprimenjivim za prvu fazu pretrage nad velikim korpusima podataka.
U praktičnim produkcionim sistemima standard je dvostepena arhitektura: dvostruki enkoder pronalazi top-$K$ kandidata (npr. $K=100$) uz nisko kašnjenje, nakon čega ih cross-enkoder ponovo rangira radi visoke tačnosti.
13Dizajnirajte multimodalni RAG (Retrieval-Augmented Generation) sistem nad PDF (Portable Document Format) dokumentima ili priručnicima koji sadrže tekst, tabele, grafikone, snimke ekrana, dijagrame i ugrađene slike.
Kompletan multimodalni RAG sistem za složene vizuelne dokumente (PDF fajlove, priručnike, izveštaje) obuhvata četiri osnovne arhitektonske faze:
1. Uvoz i parsiranje svesno rasporeda: PDF stranice se obrađuju putem modela svesnih rasporeda dokumenta (npr. LayoutLM, DocTR) ili vizuelnih pajplajna za parsiranje kako bi se sadržaj segmentirao u strukturisane blokove: tekstualne pasuse, strukturisane tabele (konvertovane u HTML/Markdown sa rasponima ćelija), renderovane slike grafikona sa serijama podataka, kao i samostalne dijagrame ili snimke ekrana sa prostornim graničnim okvirima (bounding boxes).
2. Multimodalno indeksiranje i dvostruka reprezentacija:
- Vizuelni resursi (grafikoni, snimci ekrana, dijagrami): Čuvaju se kao isečci slika sa gustim multimodalnim ugradnjama (dense multimodal embeddings, npr. SigLIP, CLIP ili ColPali tokeni vizuelnih segmenata) uz sintetičke tekstualne sažetke i OCR tekst koje generiše VLM, smeštene u gusti tekstualni indeks.
- Tabele: Čuvaju se kao strukturisani Markdown/HTML u tekstualnim vektorskim i BM25 indeksima.
- Tekst: Deli se na semantičke celine i indeksira preko gustih ugradnji i retkih ključnih reči.
3. Hibridno pronalaženje i multimodalno ponovno rangiranje:
- Prva faza pronalaženja: Pokreće paralelno pretraživanje kroz retke BM25 indekse (ključne reči, OCR tekst, oznake tabela), guste tekstualne vektore i indekse vizuelnih ugradnji (ANN pretraga).
- Spajanje i ponovno rangiranje: Objedinjuje kandidate (npr. putem Reciprocal Rank Fusion metode) i ocenjuje najbolje stavke pomoću multimodalnog kros-enkodera ili modela kasne vizuelne interakcije (ocenjujući tekst upita u odnosu na isečke slika visoke rezolucije i parsirani tekst).
4. Sklapanje multimodalnog konteksta i utemeljeno generisanje: Najboljih $k$ multimodalnih elemenata konteksta — renderovani segmenti slika, šeme tabela i tekstualni pasusi sa metapodacima o dokumentu i stranici — prosleđuju se VLM modelu prilagođenom za instrukcije (npr. GPT-4o, Claude 3.5 Sonnet ili open-source Qwen2-VL). Prompt za generisanje nameće dokazivost izvora zahtevanjem eksplicitnog navođenja referenci (brojevi stranica, brojevi slika ili granični okviri).
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.
14Objasnite kako evaluacija multimodalnog RAG (Retrieval-Augmented Generation) sistema treba zasebno da meri kvalitet pronalaženja, iskorišćenost dokaza, poreklo i vernost konačnog odgovora.
Evaluacija multimodalnog RAG sistema zahteva dekompoziciju sistema na četiri odvojene dimenzije evaluacije kako bi se precizno utvrdilo da li greške potiču iz pronalaženja podataka, korišćenja konteksta, tačnosti citiranja ili generisanja:
1. Kvalitet pronalaženja (Retrieval Quality): Procenjuje da li modul za pronalaženje identifikuje neophodne vizuelne i tekstualne celine (chunks). Ključne metrike uključuju multimodalni Recall@K, NDCG@K i MRR. Za vizuelne elemente, ovo takođe obuhvata Visual IoU / Bounding-Box Recall (da li isečak pronađene slike sadrži relevantan dijagram/grafikon) i balans odziva po modalitetima (obezbeđivanje da netekstualni modaliteti, poput tabela i grafikona, nisu sistematski izostavljeni).
2. Iskorišćenost dokaza (dovoljnost i neophodnost): Meri da li se generativni model zaista oslanja na pronađene multimodalne dokaze umesto da generiše odgovore isključivo iz parametarske memorije. Ovo se meri preko relevantnosti konteksta (preciznost pronađenih vizuelnih/tekstualnih tokena koji podržavaju pitanje), neophodnosti dokaza / ablacionog testiranja (maskiranje ili uklanjanje pronađenog grafikona/tabele da bi se proverilo da li odgovor postaje netačan) i analize atribucije unakrsne pažnje (cross-attention).
3. Poreklo i tačnost citiranja (Provenance & Citation Accuracy): Meri da li su navođenja izvora precizna i proverljiva. Evaluira se preko metrika Precision, Recall i F1 nad citatima (nazivi dokumenata, brojevi stranica, identifikatori slika ili koordinate graničnih pravougaonika). Automatizovane provere verifikuju da li citirani pravougaonik ili stranica zaista sadrži referentne dokaze neophodne za odgovor na pitanje.
4. Vernost i tačnost konačnog odgovora:
- Vernost / utemeljenost (Faithfulness / Grounding): Procenjuje da li svaka generisana tvrdnja logički sledi iz pronađenog multimodalnog konteksta bez halucinacija (obično se evaluira korišćenjem VLM-as-a-judge pristupa koji proverava slaganje tvrdnji sa tekstom i vizuelnim isečcima).
- Činjenična tačnost: Procenjuje da li generisani odgovor odgovara stvarnom činjeničnom stanju.
- Robustnost pri odbijanju odgovora: Testira da li model ispravno odbija da odgovori kada je pronađeni kontekst irelevantan ili kontradiktoran.
# 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}')
15Objasnite strategije za ažuriranje produkcionih multimodalnih modela za pretragu kada se vektorske reprezentacije (embeddings) u galeriji i indeksi moraju osvežavati u velikom obimu.
Ažuriranje multimodalnog sistema za pretragu u velikom obimu uvodi problem pomeranja reprezentacije (representation drift): novogenerisani embedding-zi nalaze se u drugačijem geometrijskom latentnom prostoru i ne mogu se direktno porediti sa postojećim embedding-zima u galeriji bez ozbiljnog pada odziva (recall). Shodno tome, ažuriranja bez zastoja (zero-downtime) zahtevaju primenu plavo-zelenog (blue/green) raspoređivanja sa dvostrukim indeksom, učenje kompatibilnosti (kao što je obuka kompatibilna unazad ili transformacioni adapteri) ili fazne pipeline-ove za ponovno indeksiranje. U standardnom blue/green toku reindeksiranja, oflajn grupni poslovi (batch jobs) računaju nove embedding-ze za celu galeriju i grade novi vektorski indeks (kao što su HNSW ili IVF). Dok traje ponovna izgradnja, aktivni saobraćaj pretrage nastavlja da upućuje zahteve postojećem nasleđenom indeksu. Nove stavke koje pristižu obrađuju se putem dvostrukog upisivanja (dual-writing) ili strimovanja promena kroz CDC (Change Data Capture) logove kako bi oba indeksa ostala ažurna. Kada se novi indeks validira putem paralelnog saobraćaja u senci (shadow traffic) i zagreje u memoriji, saobraćaj se atomično prebacuje na novi enkoder i indeks, nakon čega se stari indeks gasi. Alternativno, učenje kompatibilno unazad ograničava novi enkoder upita da se poravna sa nasleđenim prostorom galerije, omogućavajući trenutnu nadogradnju modela za upite dok se galerija asinhrono popunjava tokom vremena.
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)