Aller au contenu

Comprendre le modèle Text-to-Video SORA (OpenAI)

Introduction et challenges techniques

En février 2024, Open AI présentait son nouveau modèle Sora, modèle capable de transformer des phrases simples (requêtes ou prompts) en vidéo. Cette capacité à transformer des prompts textuels en séquences vidéo repose sur des architectures de modèles complexes et sophistiquées, qui combinent plusieurs avancées dans le domaine du NLP, de la computer vision et du Deep Learning. En effet, de nombreuses contraintes et challenges techniques sont liés à ces tâches complexes. Les contraintes liées à la génération de vidéos découlent principalement des contraintes de génération d’image dans le temps : la cohérence le long de la dimension temporelle, ainsi que la transition entre les scènes en sont des exemples. De plus, la diversité des contextes, des sujets et des actions nécessite de larges quantités de données diverses pendant l’entraînement. Enfin, les problématiques sémantiques de compréhension de prompts sont présentes pour une bonne compréhension de la séquence à générer. Dans cet article, nous explorerons quelques aspects des architectures qui sont conçues pour répondre à ces défis.

Architectures  

Transformers d’images à échelles multiples (ViT & NaViT)

Transformers

Les Transformers sont des architectures d’apprentissage profond capables de traiter efficacement des données séquentielles en prenant en compte, pour calculer le plongement lexical d’un token, tous les autres tokens, permettant ainsi la contextualisation des représentations vectorielles (mécanisme d’attention). 

Les modèles de Transformers ont initialement été introduits pour répondre à des problématiques de NLP et de traduction, notamment car il permettait i) prendre en compte l’intégralité d’une séquence via le mécanisme d’attention, ii) gestion de longue séquence et iii) les calculs deviennent parallélisables (Vaswani et al. 2017). Ils ont donc rapidement surpassé les modèles RNN (réseau de neurones récurrents) et LSTM (‘Long Short Term Memory’), jusque-là utilisés pour ce type de tâche.

Figure 1 Architecture d’un Transformers (Vaswani et al. 2017).

Vision Transformers

Puis en 2021, cette architecture de Transformers a été appliquée aux images dans un modèle de Vision Transformers (Dosovitskiy et al. 2021). Dans ce cas, les images sont prétraitées de la même manière que des mots d’une phrase : ils sont découpés en plusieurs patch (~ token), puis sont aplatis en séquence 1D et précédé d’un encodage positionnel (position embedding) (Figure 2). Ces patches sont ensuite traités par un transformer.

Figure 2 : Présentation d’un modèle de vision Transformers. Les images sont découpées en patches puis réduit en projection 1D et précédé d’un paramètre de position. Le tout est ensuite introduit dans le transformer. Dans le cas d’une classification, un réseau MLP permet ensuite la prédiction de la classe (Dosovitskiy et al. 2021)

Les Transformers permettent donc de s’affranchir des modèles convolutionnels (CNN) jusque-là omniprésent pour traiter images et vidéos.

NaVit : Native resolution Transformers

Typiquement les modèles de Deep Learning sont entraînés par “batch” (groupe de données), ce qui augmente l’efficacité de l’apprentissage. Cependant cela représente une contrainte importante car il nécessite que toutes les données aient la même dimension avant d’être traitées. Cela concerne la résolution, le ratio de l’image, la taille et la durée des vidéos. Souvent cela se traduit par un redimensionnement des données, ce qui implique une perte d’information (réduction des images, modifications des contours des images par ajout de pixels (technique intitulée « padding »)) et donc une diminution de la diversité du jeu de données. 

Avec la méthode NaVit, il est possible de faire un batch d’entrée avec plusieurs données venant d’exemple différent et donc des dimensions différentes, c’est de l’Example packing. De la même manière que plusieurs phrases peuvent être traitées au sein d’une même séquence, les images sont traitées comme une suite de patches et rassemblées (Figure 3). Cela permet de minimiser le padding et donc de réduire l’espace non utilisé pendant l’apprentissage. De plus, dans cette configuration, le modèle « voit » cinq fois plus d’image à apprentissage égale, ce qui améliore considérablement les performances. Il faut cependant modifier le mécanisme d’attention pour que celui-ci ait lieu uniquement au sein d’un exemple et pas à travers toute la séquence (Figure 3).

Figure 3 Illustration d’image de ratios et tailles différentes prétraité dans une seule et même séquence. (Dehghani et al. 2024). On peut remarquer que le mécanisme d’attention est uniquement actif au sein d’un exemple.

La possibilité de conserver toutes les résolutions initiales du jeu de données permet non seulement un apprentissage plus optimal mais permet aussi d’obtenir un modèle plus généraliste car ayant vu une plus grande diversité de contenu.

Il a été remarqué empiriquement que la conservation de la résolution initiale dans le jeu de données permet un meilleur cadrage des sujets dans la génération de vidéos. Comme illustré sur la Figure 4, les sujets (personne et bateau) occupent une place plus centrale dans l’image de droite que dans celle de gauche. 

Figure 4 Exemple de l’amélioration du cadrage via la méthode NaViT dans le modèle Sora

Modèles de diffusion (DiT)

Modèles de diffusion

Un autre composant majeur des modèles de génération de vidéo sont les modèles de diffusion. Ces modèles fonctionnent par transformation itérative d’un bruit aléatoire (bruit gaussien) en une distribution cible. Le modèle apprend donc petit à petit à réduire le bruit en apprenant quelles modifications le modèle doit appliquer pour aboutir à une image finale (Figure 5). Traditionnellement ces modèles sont très influencés par l’architecture U-Net et des encoder-décodeur mais récemment cette architecture a également été en partie remise en cause par au profit des Transformers (Diffusion Transformer DiT). C’est le cas du modèle Sora d’OpenAi.

Figure 5 Exemple d’une réduction de bruit par modèle de diffusion (SORA)

Espace de diffusion latent et réduction de la dimensionalité :

Puisque l’entraînement des modèles de diffusion est extrêmement coûteux d’un point de vue computationnel, une approche pour réduire ce coût est réalisée. 

Dans un premier temps, un auto-encodeur est entraîné pour compresser les images en une résolution spatiale inférieure z = E(x), E encodeur. Au lieu d’entraîner un modèle de diffusion sur les images initiales (x), on réalise l’entraînement sur ces représentations z. Cela réduit fortement la quantité de calculs nécessaire puisque la dimensionalité est réduite. Cet espace de dimension est appelé espace latent. Des images peuvent ensuite être générées en échantillonnant une représentation z du modèle de diffusion, puis en le décodant avec un décodeur appris x=D(z).

Dans le cas de Sora, les vidéos sont générées dans cet espace latent, donc dans une dimension réduite et ensuite décodée. Il est donc aussi possible de contrôler la résolution, le ratio et la durée (~ 1 min maximum) de la vidéo au moment de l’inférence en réarrangeant les patches de manière appropriée (Figure 6).

Figure 6 Exemple des flexibilités d’échantillonnage de vidéo du modèle Sora

La reformulation des prompts

L’entraînement de ce type de modèle nécessite par ailleurs une grande quantité de données vidéo couplée à des phrases descriptives correspondantes. Au-delà de la quantité de données, un facteur limitant est le niveau de détails des descriptions. En effet, la pauvreté des descriptions du jeu de donnée d’entraînement se traduit par un mauvais contrôle de la génération des images et des vidéos (problème de « prompt following »). Pour pallier cela, les auteurs proposent d’enrichir les descriptions et donc de précéder l’apprentissage par une relabellisation du jeu d’entraînement.

Dans la plupart des cas, il s’agit d’étoffer le label par un modèle de langue type ChatGPT qui précise la présence d’objets secondaires (ex : panneaux sur une route), la position relative des objets, le nombre d’instance, la taille et la couleur et la position de texte au sein de l’image. Ces additions aux descriptifs des images permettent d’augmenter la fidélité (« prompt following ») significativement ainsi que la qualité globale des vidéos.

Conclusions :

De nombreuses autres fonctionnalités sont possibles avec le modèle Sora, notamment :

  1. Rallonger des vidéos dans les deux directions (extension au début et/ou à la fin)
  2. Animer des images
  3. Fusionner graduellement deux vidéos distinctes 
  4. Facilité le montage : changer la mise en scène d’une vidéo en conservant l’action principale (forêt, plage, espace, années 1920 etc.) 

Il y a cependant certaines limites au modèle SORA. Certaines interactions physiques basiques ne sont toujours pas comprises par le modèle. On peut voir notamment que les processus physiques sont mal simulés par SORA : la brisure d’un verre par exemple est mal retranscrite. Par ailleurs, des objets apparaissent de manière “spontanée” notamment dans les vidéos longues, ou encore, il peut y avoir des incohérences dans la continuité d’un objet : dans le cas d’une vidéo présentant une personne mangeant un sandwich celui-ci restera intacte à la suite d’une bouchée. Ainsi, malgré les avancées spectaculaires dans ce domaine la retranscription parfaite du monde physique nécessite quelques évolutions.

Bibliographie : 

Attention is all you need https://arxiv.org/abs/1706.03762

Betker et al.,

Vision transformer https://arxiv.org/abs/2010.11929v2

NaVit https://arxiv.org/pdf/2307.06304v1

https://towardsdatascience.com/explaining-openai-soras-spacetime-patches-the-key-ingredient-e14e0703ec5b

Scalable diffusion models with Transformers https://arxiv.org/pdf/2212.09748

Recaptioning https://arxiv.org/pdf/2204.06125