Ce este NeoMME și de ce e diferit?
Cei mai mulți dintre noi am învățat să gândim modelele multimodale ca pe niște Frankenstein-uri: un encoder de viziune pre-antrenat (de obicei un ViT), un proiector, un LLM cauzal și, eventual, un adaptor. ColPali și derivatele lui au popularizat ideea de a folosi un model de limbaj pentru a genera reprezentări dense și late-interaction pentru imagini și text. NeoMME aruncă tot acest bagaj. Nu există turn de viziune, nu există decodor cauzal. În loc de asta, avem un singur transformator bidirecțional care procesează simultan token-uri de text multilingv și patch-uri brute de imagine de 32×32 pixeli. Practic, imaginea este tăiată în bucăți mici, fiecare bucată este liniarizată și tratată ca un token, iar modelul învață să le relaționeze direct cu textul, fără intermediari.
Această alegere arhitecturală are două consecințe majore. Prima: nu mai depinzi de un encoder de viziune pre-antrenat, care adesea a fost antrenat pe domenii diferite de cele în care îl folosești. A doua: fără decodor cauzal, modelul poate vedea întreaga imagine și întregul text simultan, ceea ce este esențial pentru sarcini de retrieval unde contextul complet contează. E o mișcare curajoasă, pentru că renunți la puterea de generare a unui LLM, dar câștigi în viteză și în simplitate.
Obiectivul de pre-antrenare: difuzie discretă mascată
Una dintre cele mai interesante părți ale NeoMME este obiectivul de pre-antrenare. În loc de clasicul next-token prediction sau de mascarea simplă, H Company folosește un obiectiv de difuzie discretă mascată. Sună complicat, dar ideea de bază este următoarea: modelul este antrenat să reconstruiască token-uri mascate (atât din text, cât și din imagine) folosind un proces de denoizare în mai mulți pași. Spre deosebire de un autoencoder clasic, difuzia discretă permite modelului să învețe distribuții mai bogate și să fie mai robust la zgomot. Practic, modelul nu doar completează golurile, ci învață să estimeze probabilități asupra tuturor token-urilor posibile, ceea ce duce la reprezentări mai fine.
Această alegere este inspirată din lucrări recente de difuzie aplicată la text, dar aplicată aici la un spațiu multimodal unificat. Rezultatul este un encoder care nu doar că înțelege conținutul, dar știe și să estimeze incertitudinea. Și asta se vede în performanțe.
Două capete de retrieval: dens și late-interaction
NeoMME vine cu două capete de retrieval, iar asta este o mișcare inteligentă. Primul este un capăt dens clasic: întreaga imagine (sau întregul document) este comprimată într-un singur vector. Acest vector este folosit pentru căutări rapide, de tipul „găsește-mi documente similare”. Al doilea este un capăt late-interaction, în stil ColPali: fiecare token de imagine (patch) primește un vector propriu, iar scorul final este calculat prin sumarea maximelor de similaritate între vectorii de text și vectorii de imagine. Această abordare este mult mai precisă pentru sarcini de tipul „găsește pagina care conține acest text specific lângă această diagramă”.
Combinația dintre cele două capete este ceea ce face NeoMME cu adevărat util. Poți face o primă filtrare rapidă cu capătul dens, apoi o rerankare fină cu capătul late-interaction. Și pentru că ambele capete sunt antrenate împreună, ele nu se calcă în picioare, ci se completează.
Rezultate pe ViDoRe v3: 0.523 nDCG@10 la 260M
Cifrele sunt cele care contează, iar aici NeoMME nu dezamăgește. Pe benchmark-ul ViDoRe v3, modelul de 260M atinge un nDCG@10 de 0.523. Ca să înțelegem contextul, acest scor este cu mult peste ce obțineau modelele de tip ColPali cu 4-5 ori mai mulți parametri. Desigur, nu este cel mai bun scor absolut – modelele de 800M sau cele mai mari din industrie pot trece de 0.6 – dar raportul performanță/parametri este remarcabil. Și nu uita: asta se întâmplă fără un turn de viziune pre-antrenat, ceea ce înseamnă că modelul a învățat să vadă de la zero, doar din date.
Autorii recunosc, totuși, că există decalaje în retrieval-ul de text pur. Adică, dacă ai doar text și cauți doar text, un model clasic de tip bi-encoder sau cross-encoder va fi mai bun. NeoMME excelează atunci când trebuie să lege textul de imagini, dar nu este un înlocuitor pentru modelele specializate pe text. E o limitare asumată, dar important de știut pentru oricine vrea să-l folosească în producție.
Compresie de index de 255× și viteză de indexare
Unul dintre cele mai practice avantaje ale NeoMME este compresia indexului. Folosind capătul dens, poți comprima indexul de 255 de ori față de o abordare clasică de tip late-interaction pur. Asta înseamnă că un corpus de un milion de pagini, care ar ocupa sute de GB într-un index ColPali, încape acum într-un spațiu mult mai mic. Iar viteza de indexare este de 51,3 pagini pe secundă pe un singur L40S. Ca să pui asta în perspectivă: un L40S este un GPU de workstation, nu un H100 de 30.000 de dolari. Cu un singur astfel de GPU, poți indexa un milion de pagini în aproximativ 5,4 ore. Asta este o viteză pe care multe sisteme enterprise și-o doresc.
Această eficiență vine din arhitectura single-tower. Fără un turn de viziune separat, nu există bottleneck-ul de a rula două modele diferite. Totul este un singur transformator, iar asta se simte atât în timpul antrenării, cât și în inferență.
De ce contează asta pentru tine?
Dacă ești inginer sau cercetător în domeniul retrieval-ului augmentat (RAG), NeoMME este un semnal important. Arată că nu ai nevoie de un LLM masiv pentru a face retrieval multimodal de calitate. Poți avea un model de 260M de parametri care se antrenează mai repede, se rulează mai ieftin și produce indexuri mai mici. Pentru companiile care vor să construiască sisteme de căutare pe documente complexe (PDF-uri, slide-uri, imagini cu text), asta înseamnă costuri reduse și latență mai mică.
Desigur, nu totul este perfect. Decalajul pe text pur este o problemă reală, iar cei care au nevoie de retrieval hibrid vor trebui să combine NeoMME cu un model clasic de text. Dar pentru domeniul multimodal, NeoMME este un pas înainte. Și, personal, apreciez curajul de a renunța la turnul de viziune. Prea mult timp am tratat viziunea ca pe un cetățean de mâna a doua, lipit cu scotch de un LLM. NeoMME tratează imaginea ca pe un cetățean de primă clasă, iar rezultatele arată că aceasta este direcția corectă.
De ce este important:
NeoMME demonstrează că o arhitectură simplă, fără turn de viziune și fără decodor cauzal, poate atinge performanțe de top în retrieval-ul multimodal, cu un cost de calcul mult mai mic. Pentru oricine construiește sisteme RAG sau motoare de căutare pe documente complexe, asta înseamnă indexuri de 255 de ori mai mici, indexare de 51 de pagini pe secundă pe un singur GPU și un model de 260M care se apropie de performanțele unor modele mult mai mari. Este o dovadă că eficiența și simplitatea pot bate complexitatea inutilă, iar asta contează atât pentru bugete, cât și pentru mediu.