Vue d'ensemble

Dans cette unité, nous examinerons certaines des nombreuses améliorations et extensions des modÚles de diffusion apparaissant dans les recherches les plus récentes. Elle sera moins axée sur le code que les unités précédentes et est conçue pour vous donner un point de départ pour des recherches plus approfondies.

Vue d’ensemble de cette unitĂ© 🚀

Les différentes étapes à suivre pour cette unité :

  • Lisez le matĂ©riel ci-dessous pour avoir une vue d’ensemble des idĂ©es clĂ©s de cette unitĂ©
  • Approfondissez les sujets spĂ©cifiques grĂące aux vidĂ©os et aux ressources associĂ©es.
  • Explorez les notebooks de dĂ©monstration, puis lisez la section « Et ensuite ? » pour obtenir des suggestions de projets.

Échantillonnage plus rapide par distillation

La distillation progressive est une technique permettant de prendre un modĂšle de diffusion existant et de l’utiliser pour entraĂźner une nouvelle version du modĂšle qui nĂ©cessite moins d’étapes pour l’infĂ©rence. Le modĂšle â€œĂ©lĂšve” est initialisĂ© Ă  partir des poids du modĂšle “enseignant”. Pendant l’entraĂźnement, le modĂšle enseignant effectue deux Ă©tapes d’échantillonnage et le modĂšle de Ă©tudiant tente de faire correspondre la prĂ©diction rĂ©sultante en une seule Ă©tape. Ce processus peut ĂȘtre rĂ©pĂ©tĂ© plusieurs fois, le modĂšle Ă©tudiant de l’itĂ©ration prĂ©cĂ©dente devenant le modĂšle enseignant pour l’étape suivante. Le rĂ©sultat est un modĂšle qui peut produire des Ă©chantillons dĂ©cents en beaucoup moins d’étapes (gĂ©nĂ©ralement 4 ou 8) que le modĂšle enseignant d’origine. Le mĂ©canisme de base est illustrĂ© dans ce diagramme tirĂ© de l’article qui a introduit l’idĂ©e :

image

Illustration de la distillation progressive issue de ce papier

L’idĂ©e d’utiliser un modĂšle existant pour “enseigner” un nouveau modĂšle peut ĂȘtre Ă©tendue pour crĂ©er des modĂšles guidĂ©s dans lesquels la technique de guidage sans classifieur est utilisĂ©e par le modĂšle enseignant et le modĂšle Ă©tudiant doit apprendre Ă  produire un rĂ©sultat Ă©quivalent en une seule Ă©tape sur la base d’une entrĂ©e supplĂ©mentaire spĂ©cifiant l’échelle de guidage ciblĂ©e. Cela permet de rĂ©duire encore le nombre d’évaluations de modĂšles nĂ©cessaires pour produire des Ă©chantillons de haute qualitĂ©. Cette vidĂ©o (en anglais) donne un aperçu de l’approche.

Références principales :

AmĂ©lioration de l’entraĂźnement

Plusieurs astuces supplĂ©mentaires ont Ă©tĂ© mises au point pour amĂ©liorer l’entraĂźnement des modĂšles de diffusion. Dans cette section, nous avons essayĂ© de prĂ©senter les idĂ©es principales des articles rĂ©cents. Il y a un flux constant de recherches qui sortent avec des amĂ©liorations supplĂ©mentaires, donc si vous voyez un article qui devrait ĂȘtre ajoutĂ© ici, veuillez nous le faire savoir !

image Figure 2 du papier ERNIE-ViLG 2.0

AmĂ©liorations principales de l’entraĂźnement :

  • RĂ©glage du planificateur du bruit, de la pondĂ©ration de la perte et des trajectoires d’échantillonnage pour un entraĂźnement plus efficace. Un excellent papier explorant certains de ces choix de conception est Elucidating the Design Space of Diffusion-Based Generative Models par Karras et al.
  • EntraĂźnement sur divers rapports d’aspect, comme dĂ©crit dans cette vidĂ©o du lancement du cours (en anglais).
  • ModĂšles de diffusion en cascade, entraĂźnant un modĂšle Ă  basse rĂ©solution, puis un ou plusieurs modĂšles en super-rĂ©solution. UtilisĂ©s dans DALLE-2, Imagen et d’autres pour la gĂ©nĂ©ration d’images Ă  haute rĂ©solution.
  • Meilleur conditionnement, incorporation d’enchĂąssement textuels riches (Imagen utilise un grand modĂšle de langage appelĂ© T5) ou plusieurs types de conditionnement (eDiffi).
  • “AmĂ©lioration des connaissances” : incorporation de modĂšles de sous-titrage d’images et de dĂ©tection d’objets prĂ©-entraĂźnĂ©s dans le processus d’entraĂźnement afin de crĂ©er des sous-titres plus informatifs et d’obtenir de meilleures performances (ERNIE-ViLG 2.0).
  • “MĂ©lange d’experts de dĂ©bruitage” (MoDE) : entraĂźner diffĂ©rentes variantes du modĂšle (“experts”) pour diffĂ©rents niveaux de bruit, comme illustrĂ© dans l’image ci-dessus tirĂ©e du papier ERNIE-ViLG 2.0.

Références principales :

Plus de contrĂŽle pour la gĂ©nĂ©ration et l’édition

Outre les amĂ©liorations apportĂ©es Ă  l’entraĂźnement, plusieurs innovations ont Ă©tĂ© apportĂ©es Ă  la phase d’échantillonnage et d’infĂ©rence, y compris de nombreuses approches qui peuvent ajouter de nouvelles capacitĂ©s aux modĂšles de diffusion existants.

image Échantillons gĂ©nĂ©rĂ©s par eDiffi

La vidĂ©o ‘Editing Images with Diffusion Models’ (en anglais) donne un aperçu des diffĂ©rentes mĂ©thodes utilisĂ©es pour Ă©diter des images existantes avec des modĂšles de diffusion. Les techniques disponibles peuvent ĂȘtre divisĂ©es en quatre catĂ©gories principales :

1) Ajouter du bruit, puis dĂ©bruiter avec un nouveau prompt. C’est l’idĂ©e qui sous-tend le pipeline img2img, qui a Ă©tĂ© modifiĂ© et Ă©tendu dans plusieurs articles :

  • SDEdit et MagicMix s’inspirent de cette idĂ©e
  • DDIM inversion utilise le modĂšle pour “inverser” la trajectoire d’échantillonnage plutĂŽt que d’ajouter un bruit alĂ©atoire, ce qui permet un meilleur contrĂŽle
  • Null-text Inversion amĂ©liore considĂ©rablement les performances de ce type d’approche en optimisant Ă  chaque Ă©tape les enchĂąssements de texte inconditionnels utilisĂ©s pour le guidage sans classifieur, ce qui permet d’obtenir une Ă©dition d’images textuelles de trĂšs haute qualitĂ©. 2) Extension des idĂ©es du point (1), mais avec un masque permettant de contrĂŽler l’endroit oĂč l’effet est appliquĂ©
  • Blended Diffusion introduit l’idĂ©e de base
  • Cette dĂ©mo utilise un modĂšle de segmentation existant (CLIPSeg) pour crĂ©er le masque sur la base d’une description textuelle
  • DiffEdit est un excellent papier montrant comment le modĂšle de diffusion lui-mĂȘme peut ĂȘtre utilisĂ© pour gĂ©nĂ©rer un masque appropriĂ© pour l’édition de l’image en fonction du texte
  • SmartBrush: Text and Shape Guided Object Inpainting with Diffusion Model finetune un modĂšle de diffusion pour une peinture guidĂ©e par un masque 3) ContrĂŽle de l’attention croisĂ©e : utilisation du mĂ©canisme d’attention croisĂ©e dans les modĂšles de diffusion pour contrĂŽler l’emplacement spatial des modifications afin d’exercer un contrĂŽle plus fin
  • Prompt-to-Prompt Image Editing with Cross Attention Control est l’article clĂ© qui a introduit cette idĂ©e, et la technique a depuis Ă©tĂ© appliquĂ©e Ă  Stable Diffusion
  • TCette idĂ©e est Ă©galement utilisĂ©e pour ‘paint-with-words’ (eDiffi, voir ci-dessus) 4) Finetuner (surapprendre) sur une seule image, puis gĂ©nĂ©rer avec le modĂšle finetunĂ©. Les articles suivants ont tous deux publiĂ© des variantes de cette idĂ©e Ă  peu prĂšs au mĂȘme moment :
  • Imagic: Text-Based Real Image Editing with Diffusion Models
  • UniTune: Text-Driven Image Editing by Fine Tuning an Image Generation Model on a Single Image

Le papier InstructPix2Pix : Learning to Follow Image Editing Instructions est remarquable en ce sens qu’il utilise certaines des techniques d’édition d’images dĂ©crites ci-dessus pour construire un jeu de donnĂ©es synthĂ©tique de paires d’images accompagnĂ©es d’instructions d’édition d’images (gĂ©nĂ©rĂ©es avec GPT3.5) afin d’entraĂźner un nouveau modĂšle capable d’éditer des images sur la base d’instructions en langage naturel.

Video

image Images fixes d’exemples de vidĂ©os gĂ©nĂ©rĂ©es avec Imagen Video

Une vidĂ©o peut ĂȘtre reprĂ©sentĂ©e comme une sĂ©quence d’images, et les idĂ©es fondamentales des modĂšles de diffusion peuvent ĂȘtre appliquĂ©es Ă  ces sĂ©quences. Les travaux rĂ©cents se sont concentrĂ©s sur la recherche d’architectures appropriĂ©es (telles que les « 3D UNets » qui opĂšrent sur des sĂ©quences entiĂšres) et sur l’utilisation efficace des donnĂ©es vidĂ©o. Étant donnĂ© que les vidĂ©os Ă  haute frĂ©quence d’images comportent beaucoup plus de donnĂ©es que les images fixes, les approches actuelles tendent Ă  gĂ©nĂ©rer d’abord des vidĂ©os Ă  faible rĂ©solution et Ă  faible frĂ©quence d’images, puis Ă  appliquer la super-rĂ©solution spatiale et temporelle pour produire les sorties vidĂ©o finales de haute qualitĂ©.

Références principales :

Audio

image

Un spectrogramme généré avec Riffusion

Bien que des travaux aient Ă©tĂ© rĂ©alisĂ©s pour gĂ©nĂ©rer du son directement Ă  l’aide de modĂšles de diffusion (par exemple DiffWave), l’approche la plus fructueuse jusqu’à prĂ©sent a consistĂ© Ă  convertir le signal audio en ce que l’on appelle un spectrogramme, qui “encode” effectivement le son sous la forme d’une “image” en 2D qui peut ensuite ĂȘtre utilisĂ©e pour entraĂźner les modĂšles de diffusion que nous avons l’habitude d’utiliser pour la gĂ©nĂ©ration d’images. Les spectrogrammes ainsi gĂ©nĂ©rĂ©s peuvent ensuite ĂȘtre convertis en donnĂ©es audio Ă  l’aide des mĂ©thodes existantes. Cette approche est Ă  l’origine de Riffusion, qui a rĂ©cemment Ă©tĂ© publiĂ© et a permis de finetuner Stable Diffusion pour gĂ©nĂ©rer des spectrogrammes conditionnĂ©s par le texte. Essayez-le ici.

Le domaine de la gĂ©nĂ©ration d’audio Ă©volue trĂšs rapidement. Au cours de la semaine derniĂšre (Ă  l’heure oĂč nous Ă©crivons ces lignes), au moins cinq nouvelles avancĂ©es ont Ă©tĂ© annoncĂ©es, qui sont marquĂ©es d’une Ă©toile dans la liste ci-dessous :

Références principales :

Nouvelles architectures et approches : vers un « raffinement itératif »

image

Figure 1 du papier Cold Diffusion

Nous dĂ©passons peu Ă  peu la dĂ©finition Ă©troite initiale des modĂšles de « diffusion » pour nous orienter vers une classe plus gĂ©nĂ©rale de modĂšles qui effectuent un raffinement itĂ©ratif, oĂč une certaine forme de corruption (comme l’ajout d’un bruit gaussien dans le processus de diffusion vers l’avant) est progressivement inversĂ©e pour gĂ©nĂ©rer des Ă©chantillons. L’article « Cold Diffusion » a dĂ©montrĂ© que de nombreux autres types de corruption peuvent ĂȘtre « dĂ©faits » de maniĂšre itĂ©rative pour gĂ©nĂ©rer des images (exemples ci-dessus), et des approches rĂ©centes basĂ©es sur des transfomers ont dĂ©montrĂ© l’efficacitĂ© du remplacement ou du masquage de token en tant que stratĂ©gie de bruitage.

image

Pipeline de MaskGIT

L’architecture UNet au cƓur de nombreux modĂšles de diffusion actuels est Ă©galement remplacĂ©e par d’autres solutions, notamment diverses architectures basĂ©es sur des transformers. Dans Scalable Diffusion Models with Transformers (DiT), un transformer est utilisĂ© Ă  la place du UNet pour une approche de modĂšle de diffusion assez standard, avec d’excellents rĂ©sultats. Recurrent Interface Networks applique une nouvelle architecture basĂ©e sur un transformer et une stratĂ©gie d’entraĂźnement Ă  la recherche d’une efficacitĂ© accrue. MaskGIT et MUSE utilisent des transformers pour travailler avec des reprĂ©sentations d’images par tokens, bien que le modĂšle Paella dĂ©montre qu’un UNet peut Ă©galement ĂȘtre appliquĂ© avec succĂšs Ă  ces rĂ©gimes basĂ©s sur des tokens.

Avec chaque nouveau papier, des approches plus efficaces sont dĂ©veloppĂ©es, et il faudra peut-ĂȘtre attendre un certain temps avant de voir Ă  quoi ressemblent les performances maximales pour ce type de tĂąches d’affinage itĂ©ratif. Il reste encore beaucoup de choses Ă  explorer !

Références principales :

Notebooks

Chapitre Colab Kaggle Gradient Studio Lab
Débruitage inverse des modÚles de diffusion implicites Open In Colab Kaggle Gradient Open In SageMaker Studio Lab
Diffusion pour l’audio Open In Colab Kaggle Gradient Open In SageMaker Studio Lab

Nous avons abordĂ© un grand nombre d’idĂ©es diffĂ©rentes dans cette unitĂ©, dont beaucoup mĂ©riteraient de faire l’objet de leçons plus dĂ©taillĂ©es Ă  l’avenir. Pour l’instant, vous pouvez aborder deux de ces nombreux sujets via les notebook que nous avons prĂ©parĂ©s.

  • Le dĂ©bruitage inverse des modĂšles de diffusion implicites montre comment une technique appelĂ©e inversion peut ĂȘtre utilisĂ©e pour Ă©diter des images Ă  l’aide de modĂšles de diffusion existants.
  • Diffusion pour l’audio introduit l’idĂ©e de spectrogrammes et montre un exemple minimal de finetuning d’un modĂšle de diffusion pour l’audio sur un genre de musique spĂ©cifique.

Et ensuite ?

Il s’agit de la derniĂšre unitĂ© de ce cours actuellement, ce qui signifie que la suite ne dĂ©pend que de vous ! N’oubliez pas que vous pouvez toujours poser des questions et discuter de vos projets sur le Discord d’Hugging Face. Nous avons hĂąte de voir ce que vous allez crĂ©er đŸ€—