Un model de visió-llenguatge (VLM) és un tipus de sistema d'intel·ligència artificial que pot interpretar i generar informació conjuntament a partir d'imatges i text, ampliant les capacitats dels models de llenguatge gran (LLM), que es limiten al text. És un exemple d'aprenentatge multimodal.

Moltes aplicacions comercials àmpliament utilitzades ara es basen en aquesta capacitat. OpenAI va introduir capacitats de visió per computador a la seva variant GPT-4V del model GPT-4, permetent als usuaris incorporar fotografies o diagrames carregats a les seves discussions amb ChatGPT. Des de llavors, s'ha convertit en una part integral de l'oferta estàndard de ChatGPT. Es van afegir capacitats similars a Gemini de Google, Claude 3 Opus d'Anthropic i Copilot with Vision de Microsoft. Juntament amb aquests models, la comunitat investigadora ha publicat diversos models de llenguatge de visió de codi obert, com ara LLaVA, InstructBLIP i MiniGPT-4, que ofereixen alternatives a menor escala per a l'experimentació i l'estudi acadèmic.

Història Els models de llenguatge visual van evolucionar a partir dels sistemes de subtítols d'imatges. Aquests sistemes estaven dissenyats per prendre imatges soles (sense instruccions que les acompanyessin) i produir descripcions.

La majoria dels sistemes de subtítols d'imatges utilitzaven una arquitectura codificador-descodificador, on un codificador resumia les imatges en vectors de característiques, que s'alimentaven a un descodificador per generar la descripció associada. Els primers mètodes (principis de la dècada del 2010) combinaven característiques visuals fetes a mà per codificar imatges i plantilles de text basades en n-grams o regles per generar descripcions.

Amb l'auge de l'aprenentatge profund, les xarxes neuronals van esdevenir dominants en el subtítol d'imatges. El 2015, van sorgir mètodes que utilitzaven variacions de xarxes neuronals convolucionals (CNN) per codificar imatges i xarxes neuronals recurrents (RNN) per generar els subtítols. El 2018, les xarxes transformadores van substituir les RNN en el paper de descodificadors d'idiomes. És important destacar que l'entrenament dels paràmetres de xarxa es basava en conjunts de dades de parells imatge-text, com ara MS COCO (Common Objects in Context). L'abast de les aplicacions també es va ampliar per incloure la resposta a preguntes visuals (VQA), la fonamentació de frases i altres.

El 2021, el llançament per part d'OpenAI de CLIP (Pre-entrenament contrastiu de Llenguatge-Imatge) va ser un pas important cap a l'evolució posterior dels VLM. En lloc de centrar-se en una tasca específica com la subtitulació d'imatges, CLIP és un model bàsic d'ús general que es pot estendre a una àmplia gamma de tasques posteriors. És important destacar que els components de CLIP es van entrenar en un vast conjunt de dades de 400 milions de parells imatge-text, produint models potents. L'estructura d'ús general de CLIP també posa aquesta potent capacitat a la disposició de sistemes amb pressupostos computacionals molt més petits.

A partir del 2022, s'han proposat moltes arquitectures VLM, basades en filosofies de disseny similars (que es detallen a continuació). Aquestes inclouen Flamingo, propietari de Google DeepMind, i una variant de codi obert, LLaVA, InstructBLIP de SalesForce, Kosmos de Microsoft, MiniGPT-4 de KAUST i altres. Totes aquestes van fusionar un codificador d'imatges tipus CLIP entrenat per separat, un model de llenguatge gran (LLM) estàndard per a la codificació de text, units mitjançant components especialitzats. El sistema conjunt resultant es va entrenar en conjunts de dades seleccionats.

El llançament de GPT-4V el 2023 va marcar l'aparició d'aplicacions comercials d'alt impacte. Això va ser seguit ràpidament per altres sistemes esmentats anteriorment (inclosos Gemini de Google, Claude 3 Opus d'Anthropic i Copilot amb Vision de Microsoft). Aquestes aplicacions són substancialment més potents per a tasques d'ús general, normalment contenen substancialment més paràmetres, entrenades en conjunts de dades massius, que requereixen una enorme potència de càlcul. Les seves arquitectures no s'han revelat.

Arquitectura L'entrada als VLM consisteix en elements de visió (imatges i vídeos) i text. La sortida sol ser el text corresponent. Els models generatius, que també generen elements de visió (per exemple, DALL-E), queden fora de l'abast d'aquest article.

A continuació es mostra una descripció d'alguns models representatius, l'arquitectura dels quals és coneguda. Els VLM comercials com el GPT-4V, els dissenys dels quals no es van revelar públicament, probablement es basen en conceptes similars.

LLaVA 1.0 LLaVA (Large Language and Vision Assistant) 1.0 és un model senzill que captura alguns dels conceptes principals dels VLM de codi obert. L'entrada al model és una imatge i una instrucció textual que l'acompanya. miniatura|Arquitectura de LLaVA 1.0

L'eix vertebrador del model de llenguatge Conceptualment, el disseny es basa en un LLM bàsic estàndard (una variant afinada de Llama anomenada Vicuna), amb components connectats per donar suport a les entrades d'imatges.

LLaVA pren prestat el tokenitzador i els mòduls transformadors (inclosos els seus pesos) de Vicuna i els utilitza per gestionar el text que els acompanya. Recordeu que en una aplicació heretada (no VLM) de Vicuna, el tokenitzador converteix el text en un flux de tokens, que es transfereixen al mòdul transformador, que al seu torn produeix un flux de tokens de resposta. Aquests es converteixen de nou en text mitjançant el tokenitzador.

Codificació de la visió A això, LLaVA afegeix dos components per donar suport a les entrades d'imatges:

Codificador de visió: Es construeix a partir d'un model CLIP estàndard i entrenat per separat (específicament, la variant ViT-L/14) d'OpenAI. El codificador de visió converteix la imatge en una matriu de vectors d'incrustació (més informació sobre això a continuació), que codifiquen informació útil sobre la imatge. Aquesta informació podria ser utilitzada directament per l'LLM. Això es deu al fet que l'LLM està dissenyat per rebre tokens, que tenen diferents dimensions. A més, en ser un LLM estàndard, Vicuna no va ser entrenat per reconèixer i respondre a aquesta informació. Projecció (coneguda en altres llocs com a pont): aquest mòdul enllaça el codificador de visió amb l'LLM. És a dir, és una matriu simple de paràmetres entrenables, que converteix les dimensions de les sortides del codificador de visió i també es pot entrenar (vegeu més avall) per ser útil per a l'LLM. Les seves sortides s'anomenen fitxes d'imatge.

Els tokens d'imatge s'afegeixen abans dels tokens de text i l'LLM els processa exactament com a tokens de text ordinaris, donant la resposta final.

Es va utilitzar un simple truc al codificador de visió CLIP ViT-L/14 per obtenir vectors codificats més eficaços. Com que aquest mòdul és un transformador de visió, una aplicació senzilla hauria utilitzat el token de classe a la sortida de la seva última capa de transformador (vegeu classe de transformador de visió) com a una única sortida vectorial. LLaVA 1.0, però, utilitza els tokens de quadrícula (no de classe) a la sortida de la capa anterior (penúltima) per produir múltiples sortides vectorials. Els tokens de quadrícula corresponen a pegats espacials en aquestes entrades d'imatge i, per tant, capturen informació de granularitat més fina.

Formació Calia entrenar per alinear els mòduls de manera que es poguessin combinar en un sol model. En la terminologia VLM, aquest pas es coneix com a ajustament d'instruccions. LLaVA 1.0 ho va aconseguir en dues etapes. L'etapa 1 es va centrar en l'alineació preliminar de la capa de projecció. Només es van entrenar els pesos d'aquest mòdul, i els dels altres mòduls es van congelar. El conjunt de dades era un subconjunt del conjunt de dades CC3M de parells de subtítols d'imatges. Aquest conjunt de dades era petit (595.000 parells) i limitat en el seu abast, ja que només contenia parells simples de subtítols d'imatges. L'etapa 2 es va centrar en un entrenament més elaborat tant de la capa de projecció com de l'LLM. El codificador de visió va romandre congelat. Per a aquesta etapa es va produir un conjunt de dades d'entrenament ric (LLaVA-Instruct-158K) de parells imatge-text, aprofitant un LLM només de text (GPT-4) per convertir els subtítols simples dels parells de subtítols d'imatges (del conjunt de dades COCO) en indicacions elaborades d'estil de conversa.

Les versions posteriors de LLaVA van introduir diverses millores respecte a LLaVA 1.0. Algunes millores conceptuals notables inclouen la substitució a LLaVA 1.5 del mòdul de projecció simple per un MLP més elaborat. LLaVA-NeXT va afegir compatibilitat amb múltiples relacions d'aspecte d'imatge, més enllà de les 224x224 de LLaVA 1.0.

Flamingo Flamingo (DeepMind, 2022), un any abans que LLaVA 1.0, té un disseny més elaborat que LLaVA. Entre els seus avantatges hi ha la compatibilitat amb diverses imatges en una sola conversa i la compatibilitat amb vídeo. miniatura|Arquitectura del Flamingo VLM Arquitectònicament, el disseny implica una integració més estretament acoblada entre els mòduls de llenguatge i visió, i un mòdul de remostreig de percepció (que es descriu a continuació).

LLM i columna vertebral de la visió Igual que LLaVA, Flamingo comença amb un LLM i un codificador de visió dissenyats independentment, per a l'anàlisi de text i la incrustació d'imatges, respectivament. Tots dos estan preentrenats per als seus propòsits específics, independentment de la seva utilitat final com a components de Flamingo. A més, com a components, els seus pesos romanen congelats durant l'entrenament conjunt (vegeu més avall).

Flamingo utilitza el Chinchilla estàndard de DeepMind com a xarxa troncal LLM. Per al codificador de visió, van optar per un disseny sense transformador (NFNet-F6 basat en ResNet). El van entrenar utilitzant una pèrdua contrastiva d'estil CLIP en parells de subtítols d'imatge d'ALIGN i un conjunt de dades especialment seleccionat anomenat LTIP (Long Text & Image Pairs).

El codificador de visió pren imatges individuals com a entrades (més informació als vídeos a continuació) i produeix una graella bidimensional de vectors de característiques.

Perceptor-Resampler El component perceiver-resampler juga un paper clau en el suport per a vídeo i nombre variable d'imatges a l'entrada de Flamingo.

Primer s'introdueixen diverses imatges consecutives (una o més) una per una al codificador de visió, produint una graella tridimensional de vectors de característiques. Els vídeos es converteixen en una seqüència d'imatges mitjançant un mostreig a una velocitat d'1 fotograma per segon. La graella resultant s'aplana en una matriu llarga i de mida variable de vectors de característiques.

El perceiver-resampler converteix això en una matriu curta i de longitud fixa de tokens. Utilitza un disseny que es basa en l'atenció creuada entre un nombre fix de vectors de consulta artificials i predeterminats (els valors dels quals es determinen mitjançant l'entrenament) i parells (clau, valor) derivats de la matriu de vectors de característiques.

Cal tenir en compte que, en aquest context, se suposa que les imatges consecutives són contigües, sense text intermedi. El cas general es tractarà més endavant.

Atenció creuada amb bloqueig/blocs densos Es tracta de múltiples blocs (vegeu la figura superior) que tenen un paper paral·lel al mòdul de projecció de LLaVA, servint com a interfície entre els mòduls de visió i processament de text. El seu disseny, però, està més relacionat amb el model de llenguatge. miniatura|Atenció creuada amb bloqueig i bloqueig dens