Adapter la compression visuelle au calcul et à la mémoire du cache
Une question sur une image peut sembler facile même après la suppression de la plupart des jetons visuels, alors qu’un petit mot ou l’emplacement d’un objet peut encore être perdu.
Une autre contrainte apparaît pendant la génération de la réponse, lorsque les informations visuelles conservées dans le cache occupent de la mémoire.
La première étape utile consiste à identifier la phase limitée. Réduire les jetons visuels modifie la représentation traitée par le modèle ; évincer des informations visuelles du cache modifie ce dont les mots générés ensuite peuvent tenir compte. Les études évaluent ces choix avec des modèles et des questions différents.
Ce que vous comprendrez
La contrainte porte-t-elle sur le nombre de jetons visuels traités ou sur les informations visuelles stockées pour la suite de la génération ?
Quand une question sur une image exige-t-elle des détails visuels distincts, et dans quels cas une fusion selon l’ordre pourrait-elle être utile ?
Le benchmark choisi évalue-t-il la partie de la génération que l’éviction du cache peut modifier ?
Identifier la ressource limitée
Imaginez un assistant qui doit à la fois lire le texte d’une image et montrer un objet désigné par son nom. La personne qui l’utilise veut envoyer moins de jetons visuels au modèle de langage.
Un jeton visuel est une partie de l’image représentée pour que le modèle puisse la traiter. En garder moins peut réduire la charge de calcul, mais un bon score aux questions courantes sur les images peut masquer des difficultés à lire ou à repérer de petits détails. Dans les types de questions évalués, l’étude Bifocal a mis en évidence cette tension.
Le mot « budget » peut désigner différentes ressources. Bifocal réduit la séquence de jetons visuels avant et pendant le traitement par un modèle de langage.
LapMerge produit aussi une séquence plus courte, mais en combinant les entrées dans leur ordre pour obtenir un nombre défini de jetons en sortie. TwinPrune intervient à cette étape de traitement, puis dans une décision de stockage ultérieure : combien d’éléments visuels restent dans le cache du modèle pendant qu’il génère sa réponse.
Une séquence d’entrée plus courte et un cache plus petit correspondent donc à des interventions différentes.
Le moment où l’on intervient compte. D’abord, le modèle traite ensemble l’image et la question : cette étape s’appelle le préremplissage, ou « prefill ».
Ensuite, il génère les jetons de la réponse l’un après l’autre en s’appuyant sur les informations visuelles stockées pendant le décodage, c’est-à-dire la génération de la réponse. Si l’enjeu est le travail effectué lors du traitement de l’entrée, réduire ou combiner les jetons visuels est pertinent.
Si l’enjeu est la mémoire conservée pour produire les mots suivants, il faut examiner l’éviction du cache, qui consiste à retirer des éléments stockés. La question commune est de savoir quelles informations chaque décision laisse disponibles et quel test peut révéler une perte.
La suite de la leçon
Préserver les détails et le contexte
Combiner les jetons selon leur ordre
Évaluer le cache pendant la génération
Respecter les limites des évaluations