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.

Patch Embedding

ia

Définition

Le Patch Embedding est la technique de tokenisation d'images pour les Vision Transformers (ViT) et les LLMs multimodaux, qui divise une image en une grille de patches (petites regions carrees) de taille fixe (generalement 14x14 ou 16x16 pixels), puis projette lineairement chaque patch dans un espace d'embedding de dimension equivalente aux tokens textuels. Le mecanisme : une image de 224x224 pixels avec des patches de 16x16 produit (224/16)^2 = 196 patches. Chaque patch de 16x16x3 (RGB) = 768 valeurs est aplati et projete avec une matrice lineaire vers un espace d'd-model dimensions (768 pour ViT-Base, 1024 pour ViT-Large). Un token de classification [CLS] est prepend a ces 196 patch tokens. L'importance du positional embedding pour les patches : contrairement au texte ou les positions sont sequentielles, les patches ont des positions en 2D. Les positional embeddings 2D sinusoidaux ou appris sont essentiels pour que le modele comprenne la structure spatiale. Des variantes (RoPE 2D, positional embeddings relatifs) ameliorent la generalisation a des resolutions differentes de celles vues a l'entrainement. Integration dans les LLMs multimodaux (LLaVA, GPT-4V, Gemini) : les embeddings de patches sont produits par un encodeur visuel (ViT pre-entraine), puis projetes dans l'espace des tokens textuels du LLM via une couche de projection (MLP ou Q-Former). Ces 'visual tokens' sont concatenes aux tokens textuels et traites ensemble par le LLM. Les innovations recentes : (1) Dynamic resolution patching — ajuster la taille des patches selon la resolution de l'image (InternVL, LLaVA-HR), (2) Anyres patching — diviser les images haute resolution en sous-images de taille standard (LLaVA-1.6), (3) Token compression — reduire le nombre de visual tokens avant le LLM via le pooling ou l'attention (MobileVLM). Ces innovations permettent de traiter des images haute resolution sans exploser le contexte.

Patch Embedding en PyTorch (ViT)

import torch
import torch.nn as nn

class PatchEmbedding(nn.Module):
    def __init__(self, img_size=224, patch_size=16, in_channels=3, embed_dim=768):
        super().__init__()
        self.n_patches = (img_size // patch_size) ** 2  # 196 pour 224/16
        # Conv2D equivalente a la projection lineaire des patches
        self.proj = nn.Conv2d(in_channels, embed_dim, kernel_size=patch_size, stride=patch_size)

    def forward(self, x):  # x: (B, 3, 224, 224)
        x = self.proj(x)    # (B, 768, 14, 14)
        x = x.flatten(2)    # (B, 768, 196)
        x = x.transpose(1, 2)  # (B, 196, 768)
        return x  # 196 patch tokens de dim 768

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis