Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Image Tokenization

ia

Définition

L'Image Tokenization est le processus de conversion d'une image en une sequence de tokens compatibles avec les Transformers de langage, permettant aux LLMs de traiter les images comme s'ils traitaient du texte. C'est le pont fondamental entre la vision par ordinateur et les architectures de langage, et sa qualite determine directement les capacites des VLMs. Les deux grandes approches d'image tokenization : (1) Soft tokens continus — le ViT (Vision Transformer) decouper l'image en patches (16x16 pixels typiquement) et genere des embeddings continus pour chaque patch. Ces embeddings sont projetes dans l'espace du LLM via un MLP ou un Perceiver Resampler. C'est l'approche de LLaVA, InstructBLIP, GPT-4V. (2) Tokens discrets (Hard tokens) — un VQ-VAE ou VQGAN compresse l'image en un ensemble de codes discrets issus d'un codebook. Ces codes peuvent etre traites comme des tokens de vocabulaire par un LLM standard, comme dans DALL-E 1 ou Chameleon. Le nombre de tokens visuels est un parametre critique : une image 224x224 decoupee en patches 16x16 donne (224/16)^2 = 196 tokens visuels. Une image haute resolution 1024x1024 avec patches 14x14 donne (1024/14)^2 ≈ 5000 tokens — ce qui consomme une large fraction de la fenetre de contexte du LLM et augmente fortement le cout. Des techniques de tokenisation adaptative ont ete developpees pour reduire le nombre de tokens tout en preservant les details : LLaVA-HR utilise une combinaison de tokens de resolution basse (thumbnail) et haute (regions d'interet), InternVL-2 utilise le 'dynamic high resolution' qui adapte le nombre de patches selon la complexite de l'image. LLaMA 3.2 Vision utilise une approche similaire avec des cross-attention tokens. La tokenisation native video est une extension : les frames video sont tokenisees individuellement, avec des techniques de compression temporelle (Token Merging, VideoMAE) pour reduire la redondance temporelle. Un video de 30 frames a 196 tokens/frame = 5880 tokens, rendant les videos longues computationnellement traitables seulement avec des strategies de compression.

Patch tokenization avec ViT

import torch
from timm.models.vision_transformer import VisionTransformer

# ViT-L/14 : patches de 14x14 pixels
vit = VisionTransformer(
    img_size=224, patch_size=14,
    embed_dim=1024, depth=24, num_heads=16
)

# Image 224x224 -> 256 patches (mais +1 CLS token = 257)
image = torch.randn(1, 3, 224, 224)
patch_embeddings = vit.patch_embed(image)  # [1, 256, 1024]
print(f'Nombre de tokens visuels: {patch_embeddings.shape[1]}')  # 256
print(f'Dimension embedding: {patch_embeddings.shape[2]}')       # 1024

Strategies de reduction des tokens visuels

  • Average Pooling : moyenner les patches voisins -> 49 tokens pour 196 patches
  • Perceiver Resampler : cross-attention avec N learnable queries -> N tokens fixes
  • Token Merging (ToMe) : fusionner iterativement les tokens visuels similaires
  • Q-Former (BLIP-2) : 32 learnable queries qui distillent 196 patches en 32 tokens

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis