Suivez nous sur

StreamDiffusion : une solution au niveau du pipeline pour la gĂ©nĂ©ration interactive en temps rĂ©el

Intelligence Artificielle

StreamDiffusion : une solution au niveau du pipeline pour la gĂ©nĂ©ration interactive en temps rĂ©el

mm
StreamDiffusion : une solution au niveau du pipeline pour la gĂ©nĂ©ration interactive en temps rĂ©el

En raison de son vaste potentiel et de ses opportunités de commercialisation, notamment dans les domaines des jeux, de la diffusion et du streaming vidéo, le Metaverse est actuellement l'une des technologies à la croissance la plus rapide. Les applications Metaverse modernes utilisent des cadres d'IA, notamment des modèles de vision par ordinateur et de diffusion, pour améliorer leur réalisme. Un défi important pour les applications Metaverse consiste à intégrer divers pipelines de diffusion qui offrent une faible latence et un débit élevé, garantissant ainsi une interaction efficace entre les humains et ces applications.

Les frameworks d'IA basés sur la diffusion d'aujourd'hui excellent dans la création d'images à partir d'invites textuelles ou d'images, mais ne sont pas à la hauteur des interactions en temps réel. Cette limitation est particulièrement évidente dans les tâches qui nécessitent une saisie continue et un débit élevé, telles que les graphismes de jeux vidéo, les applications Metaverse, la diffusion et le streaming vidéo en direct.

Dans cet article, nous discuterons de StreamDiffusion, un pipeline de diffusion en temps réel développé pour générer des images interactives et réalistes, abordant les limites actuelles des cadres basés sur la diffusion dans les tâches impliquant une entrée continue. StreamDiffusion est une approche innovante qui transforme le bruit séquentiel de l'image originale en débruitage par lots, dans le but de permettre des flux fluides et à haut débit. Cette approche s'éloigne de la méthode traditionnelle d'attente et d'interaction utilisée par les cadres basés sur la diffusion. Dans les sections à venir, nous approfondirons le framework StreamDiffusion en détail, en explorant son fonctionnement, son architecture et ses résultats comparatifs par rapport aux frameworks de pointe actuels. Commençons.

StreamDiffusion : une introduction Ă  la gĂ©nĂ©ration interactive en temps rĂ©el

Les mĂ©taverses sont des applications gourmandes en performances car elles traitent une grande quantitĂ© de donnĂ©es, notamment des textes, des animations, des vidĂ©os et des images en temps rĂ©el, pour offrir Ă  leurs utilisateurs ses interfaces et son expĂ©rience interactives de marque. Les applications Metaverse modernes s'appuient sur des cadres basĂ©s sur l'IA, notamment des modèles de vision par ordinateur, de traitement d'image et de diffusion, pour atteindre une faible latence et un dĂ©bit Ă©levĂ© afin de garantir une expĂ©rience utilisateur transparente. Actuellement, la majoritĂ© des applications Metaverse s’appuient sur la rĂ©duction de l’apparition d’itĂ©rations de dĂ©bruitage pour garantir un dĂ©bit Ă©levĂ© et amĂ©liorer les capacitĂ©s interactives de l’application en temps rĂ©el. Ces cadres optent pour une stratĂ©gie commune qui implique soit de recadrer le processus de diffusion avec des ODE neuronales (Ă©quations diffĂ©rentielles ordinaires), soit de rĂ©duire les modèles de diffusion Ă  plusieurs Ă©tapes en quelques Ă©tapes, voire en une seule Ă©tape. Bien que cette approche donne des rĂ©sultats satisfaisants, elle prĂ©sente certaines limites, notamment une flexibilitĂ© limitĂ©e et des coĂ»ts de calcul Ă©levĂ©s. 

D'autre part, StreamDiffusion est une solution au niveau du pipeline qui part d'une direction orthogonale et amĂ©liore les capacitĂ©s du framework pour gĂ©nĂ©rer des images interactives en temps rĂ©el tout en garantissant un dĂ©bit Ă©levĂ©. StreamDiffusion utilise une stratĂ©gie simple dans laquelle, au lieu de dĂ©bruiter l'entrĂ©e d'origine, le framework regroupe l'Ă©tape de dĂ©bruitage. La stratĂ©gie s'inspire du traitement asynchrone car le framework n'a pas besoin d'attendre la fin de la première Ă©tape de dĂ©bruitage avant de pouvoir passer Ă  la deuxième Ă©tape, comme le montre l'image suivante. Pour rĂ©soudre le problème de la frĂ©quence de traitement U-Net et de la frĂ©quence d'entrĂ©e de manière synchrone, le framework StreamDiffusion implĂ©mente une stratĂ©gie de file d'attente pour mettre en cache l'entrĂ©e et les sorties. 

Bien que le pipeline StreamDiffusion s'inspire du traitement asynchrone, il est unique Ă  sa manière car il implĂ©mente le parallĂ©lisme GPU qui permet au framework d'utiliser un seul composant UNet pour dĂ©bruiter une fonctionnalitĂ© de bruit latent par lots. Par ailleurs, existant pipelines basĂ©s sur la diffusion Mettez l'accent sur les invites donnĂ©es dans les images gĂ©nĂ©rĂ©es en incorporant des conseils sans classificateur, ce qui fait que les pipelines actuels sont truquĂ©s avec des frais de calcul redondants et excessifs. Pour garantir que le pipeline StreamDiffusion ne rencontre pas les mĂŞmes problèmes, il met en Ĺ“uvre une approche innovante RCFG ou Residual Classifier-Free Guidance qui utilise un bruit rĂ©siduel virtuel pour se rapprocher des conditions nĂ©gatives, permettant ainsi au cadre de calculer les conditions de bruit nĂ©gatives dans la phase initiale. Ă©tapes du processus lui-mĂŞme. De plus, le pipeline StreamDiffusion rĂ©duit Ă©galement les exigences de calcul d'un pipeline de diffusion traditionnel en mettant en Ĺ“uvre une stratĂ©gie de filtrage de similaritĂ© stochastique qui dĂ©termine si le pipeline doit traiter les images d'entrĂ©e en calculant les similitudes entre les entrĂ©es continues. 

Le framework StreamDiffusion s'appuie sur les enseignements de modèles de diffusion et modèles de diffusion par accélération

Les modèles de diffusion sont connus pour leurs capacitĂ©s exceptionnelles de gĂ©nĂ©ration d’images et le niveau de contrĂ´le qu’ils offrent. En raison de leurs capacitĂ©s, les modèles de diffusion ont trouvĂ© leurs applications dans l'Ă©dition d'images, la gĂ©nĂ©ration de texte en image et la gĂ©nĂ©ration de vidĂ©os. En outre, le dĂ©veloppement de modèles cohĂ©rents a dĂ©montrĂ© le potentiel d'amĂ©liorer l'efficacitĂ© du traitement des Ă©chantillons sans compromettre la qualitĂ© des images gĂ©nĂ©rĂ©es par le modèle, ce qui a ouvert de nouvelles portes pour Ă©tendre l'applicabilitĂ© et l'efficacitĂ© des modèles de diffusion en rĂ©duisant le nombre d'Ă©tapes d'Ă©chantillonnage. Bien qu’extrĂŞmement performants, les modèles de diffusion ont tendance Ă  avoir une limitation majeure : la lenteur de la gĂ©nĂ©ration d’images. Pour remĂ©dier Ă  cette limitation, les dĂ©veloppeurs ont introduit des modèles de diffusion accĂ©lĂ©rĂ©e, des cadres basĂ©s sur la diffusion qui ne nĂ©cessitent pas d'Ă©tapes de formation supplĂ©mentaires ni ne mettent en Ĺ“uvre de stratĂ©gies de prĂ©dicteur-correcteur et des solveurs adaptatifs par taille de pas pour augmenter les vitesses de sortie. 

Le facteur distinctif entre StreamDiffusion et les frameworks traditionnels basĂ©s sur la diffusion est que, alors que ce dernier se concentre principalement sur la faible latence des modèles individuels, le premier introduit une approche au niveau du pipeline conçue pour atteindre des dĂ©bits Ă©levĂ©s permettant une diffusion interactive efficace. 

StreamDiffusion : Travail et Architecture

Le pipeline StreamDiffusion est un pipeline de diffusion en temps rĂ©el dĂ©veloppĂ© pour gĂ©nĂ©rer des images interactives et rĂ©alistes, et il utilise 6 composants clĂ©s Ă  savoir : RCFG ou Residual Classifier Free Guidance, stratĂ©gie Stream Batch, Stochastic Similarity Filter, une file d'attente d'entrĂ©e-sortie, des outils d'accĂ©lĂ©ration de modèle. avec auto-encodeur et une procĂ©dure de prĂ©-calcul. Parlons de ces composants en dĂ©tail. 

Stratégie de diffusion par lots

Traditionnellement, les Ă©tapes de dĂ©bruitage d'un modèle de diffusion sont effectuĂ©s de manière sĂ©quentielle, ce qui entraĂ®ne une augmentation significative du temps de traitement U-Net par rapport au nombre d'Ă©tapes de traitement. Cependant, il est essentiel d'augmenter le nombre d'Ă©tapes de traitement pour gĂ©nĂ©rer des images haute fidĂ©litĂ©, et le framework StreamDiffusion introduit la stratĂ©gie Stream Batch pour surmonter la rĂ©solution Ă  latence Ă©levĂ©e dans les frameworks de diffusion interactive. 

Dans la stratĂ©gie Stream Batch, les opĂ©rations de dĂ©bruitage sĂ©quentielles sont restructurĂ©es en processus par lots, chaque lot correspondant Ă  un nombre prĂ©dĂ©terminĂ© d'Ă©tapes de dĂ©bruitage, et le nombre de ces Ă©tapes de dĂ©bruitage est dĂ©terminĂ© par la taille de chaque lot. Grâce Ă  cette approche, chaque Ă©lĂ©ment du lot peut avancer une Ă©tape plus loin en utilisant le passage unique UNet dans la sĂ©quence de dĂ©bruitage. En mettant en Ĺ“uvre la stratĂ©gie de traitement par lots de flux de manière itĂ©rative, les images d'entrĂ©e codĂ©es au pas de temps « t » peuvent ĂŞtre transformĂ©es en leurs rĂ©sultats image Ă  image respectifs au pas de temps « t+n », rationalisant ainsi le processus de dĂ©bruitage. 

Conseils gratuits sur le classificateur résiduel

CFG ou Classifier Free Guidance est un algorithme d'IA qui effectue une multitude de calculs vectoriels entre le terme de conditionnement d'origine et un terme de conditionnement ou d'inconditionnement nĂ©gatif pour amĂ©liorer l'effet du conditionnement d'origine. L'algorithme renforce l'effet de l'invite mĂŞme si pour calculer le bruit rĂ©siduel de conditionnement nĂ©gatif, il est nĂ©cessaire de coupler des variables latentes d'entrĂ©e individuelles avec une intĂ©gration de conditionnement nĂ©gatif suivie du passage des intĂ©grations via UNet au moment de rĂ©fĂ©rence. 

Pour rĂ©soudre ce problème posĂ© par l'algorithme Classifier Free Guidance, le cadre StreamDiffusion introduit l'algorithme Residual Classifier Free Guidance dans le but de rĂ©duire les coĂ»ts de calcul liĂ©s aux interfĂ©rences UNet supplĂ©mentaires pour l'intĂ©gration de conditionnement nĂ©gatif. Tout d'abord, l'entrĂ©e latente codĂ©e est transfĂ©rĂ©e Ă  la distribution de bruit en utilisant des valeurs dĂ©terminĂ©es par le planificateur de bruit. Une fois le modèle de cohĂ©rence latente implĂ©mentĂ©, l'algorithme peut prĂ©dire la distribution des donnĂ©es et utiliser le bruit rĂ©siduel CFG pour gĂ©nĂ©rer la distribution du bruit de l'Ă©tape suivante. 

File d'attente d'entrée et de sortie

Le problème majeur des cadres de gĂ©nĂ©ration d'images Ă  grande vitesse rĂ©side dans leurs modules de rĂ©seau neuronal, notamment les composants UNet et VAE. Pour maximiser l'efficacitĂ© et la vitesse de sortie globale, les cadres de gĂ©nĂ©ration d'images dĂ©placent les processus tels que les images de prĂ© et post-traitement qui ne nĂ©cessitent pas de traitement supplĂ©mentaire par les modules de rĂ©seau neuronal en dehors du pipeline, après quoi ils sont traitĂ©s en parallèle. De plus, en termes de gestion de l'image d'entrĂ©e, des opĂ©rations spĂ©cifiques, notamment la conversion du format tensoriel, le redimensionnement des images d'entrĂ©e et la normalisation, sont exĂ©cutĂ©es mĂ©ticuleusement par le pipeline. 

Pour remĂ©dier Ă  la disparitĂ© des frĂ©quences de traitement entre le dĂ©bit du modèle et l'entrĂ©e humaine, le pipeline intègre un système de file d'attente d'entrĂ©e-sortie qui permet une parallĂ©lisation efficace, comme le dĂ©montre l'image suivante. 

Les tenseurs d'entrĂ©e traitĂ©s sont d'abord mis en file d'attente mĂ©thodiquement pour les modèles de diffusion, et au cours de chaque image, le modèle rĂ©cupère le tenseur le plus rĂ©cent de la file d'attente d'entrĂ©e et transmet le tenseur Ă  l'encodeur VAE, initiant ainsi le processus de gĂ©nĂ©ration d'image. Dans le mĂŞme temps, la sortie du tenseur du dĂ©codeur VAE est introduite dans la file d'attente de sortie. Enfin, les donnĂ©es d'image traitĂ©es sont transmises au client de rendu. 

Filtre de similarité stochastique

Dans les scĂ©narios oĂą les images restent inchangĂ©es ou prĂ©sentent des changements minimes sans environnement statique ou sans interaction active de l'utilisateur, les images d'entrĂ©e se ressemblant sont introduites Ă  plusieurs reprises dans les composants UNet et VAE. L'alimentation rĂ©pĂ©tĂ©e conduit Ă  la gĂ©nĂ©ration d'images presque identiques et Ă  une consommation supplĂ©mentaire de ressources GPU. De plus, dans les scĂ©narios impliquant des entrĂ©es continues, des images d’entrĂ©e non modifiĂ©es peuvent apparaĂ®tre occasionnellement. Pour surmonter ce problème et Ă©viter une utilisation inutile des ressources, le pipeline StreamDiffusion utilise un composant Stochastic Similarity Filter dans son pipeline. Le filtre de similaritĂ© stochastique calcule d'abord la similaritĂ© cosinusoĂŻdale entre l'image de rĂ©fĂ©rence et l'image d'entrĂ©e, et utilise le score de similaritĂ© cosinusoĂŻdale pour calculer la probabilitĂ© d'ignorer les processus UNet et VAE ultĂ©rieurs. 

Sur la base du score de probabilitĂ©, le pipeline dĂ©cide si les processus suivants tels que l'encodage VAE, le dĂ©codage VAE et U-Net doivent ĂŞtre ignorĂ©s ou non. Si ces processus ne sont pas ignorĂ©s, le pipeline enregistre l'image d'entrĂ©e Ă  ce moment-lĂ  et met simultanĂ©ment Ă  jour l'image de rĂ©fĂ©rence Ă  utiliser ultĂ©rieurement. Ce mĂ©canisme de saut basĂ© sur la probabilitĂ© permet au pipeline StreamDiffusion de fonctionner pleinement dans des scĂ©narios dynamiques avec une faible similaritĂ© inter-trame, tandis que dans des scĂ©narios statiques, le pipeline fonctionne avec une similaritĂ© inter-trame plus Ă©levĂ©e. L'approche aide Ă  conserver les ressources de calcul et garantit Ă©galement une utilisation optimale du GPU basĂ©e sur la similaritĂ© des images d'entrĂ©e. 

Pré-calcul

L'architecture UNet nĂ©cessite Ă  la fois des intĂ©grations de conditionnement ainsi que des variables latentes d'entrĂ©e. Traditionnellement, les plongements de conditionnement sont dĂ©rivĂ©s de plongements rapides qui restent constants d’une trame Ă  l’autre. Pour optimiser la dĂ©rivation Ă  partir des intĂ©grations d'invites, le pipeline StreamDiffusion a prĂ©calculĂ© ces intĂ©grations d'invites et les stocke dans un cache, qui sont ensuite appelĂ©es en mode streaming ou interactif. Dans le cadre UNet, la paire clĂ©-valeur est calculĂ©e sur la base de l'intĂ©gration d'invite prĂ©-calculĂ©e de chaque trame, et avec de lĂ©gères modifications dans U-Net, ces paires clĂ©-valeur peuvent ĂŞtre rĂ©utilisĂ©es. 

Accélération du modèle et petit auto-encodeur

Le pipeline StreamDiffusion utilise TensorRT, une boĂ®te Ă  outils d'optimisation de Nvidia pour les interfaces d'apprentissage en profondeur, pour construire les moteurs VAE et UNet, afin d'accĂ©lĂ©rer la vitesse d'infĂ©rence. Pour y parvenir, le composant TensorRT effectue de nombreuses optimisations sur les rĂ©seaux de neurones conçues pour augmenter l'efficacitĂ© et amĂ©liorer le dĂ©bit des cadres et applications d'apprentissage en profondeur. 

Pour optimiser la vitesse, StreamDiffusion configure le framework pour utiliser des dimensions d'entrĂ©e fixes et des tailles de lots statiques afin de garantir une allocation de mĂ©moire optimale et des graphiques de calcul pour une taille d'entrĂ©e spĂ©cifique dans le but d'obtenir des temps de traitement plus rapides. 

La figure ci-dessus donne un aperçu du pipeline d'infĂ©rence. Le pipeline de diffusion principal hĂ©berge les composants UNet et VAE. Le pipeline intègre un lot de dĂ©bruitage, un cache de bruit Ă©chantillonnĂ©, un cache d'intĂ©gration d'invites prĂ©calculĂ© et un cache de valeurs de planificateur pour amĂ©liorer la vitesse et la capacitĂ© du pipeline Ă  gĂ©nĂ©rer des images en temps rĂ©el. Le filtre de similaritĂ© stochastique ou SSF est dĂ©ployĂ© pour optimiser l'utilisation du GPU et Ă©galement pour contrĂ´ler dynamiquement la rĂ©ussite du modèle de diffusion. 

StreamDiffusion : Expériences et résultats

Pour Ă©valuer ses capacitĂ©s, le pipeline StreamDiffusion est implĂ©mentĂ© sur les frameworks LCM et SD-turbo. Le TensorRT de NVIDIA est utilisĂ© comme accĂ©lĂ©rateur de modèle, et pour permettre un VAE lĂ©ger et efficace, le pipeline utilise le composant TAESD. Voyons maintenant les performances du pipeline StreamDiffusion par rapport aux frameworks de pointe actuels. 

Évaluation quantitative

La figure suivante montre la comparaison d'efficacitĂ© entre l'UNet sĂ©quentiel d'origine et les composants du lot de dĂ©bruitage dans le pipeline, et comme on peut le voir, la mise en Ĺ“uvre de l'approche par lots de dĂ©bruitage permet de rĂ©duire considĂ©rablement le temps de traitement de près de 50 % par rapport Ă  l'UNet traditionnel. boucles Ă  des Ă©tapes de dĂ©bruitage sĂ©quentielles. 

En outre, le temps d'infĂ©rence moyen Ă  diffĂ©rentes Ă©tapes de dĂ©bruitage connaĂ®t Ă©galement une augmentation substantielle avec diffĂ©rents facteurs d'accĂ©lĂ©ration par rapport aux pipelines de pointe actuels, et les rĂ©sultats sont dĂ©montrĂ©s dans l'image suivante. 

En progressant, le pipeline StreamDiffusion avec le composant RCFG dĂ©montre moins de temps d'infĂ©rence par rapport aux pipelines incluant le composant CFG traditionnel. 

De plus, l'impact de l'utilisation du composant RCFG est évident dans les images suivantes par rapport à l'utilisation du composant CFG.

Comme on peut le constater, l'utilisation de CFG intensifie l'impact de l'invite textuelle dans la gĂ©nĂ©ration d'images, et l'image ressemble beaucoup plus aux invites d'entrĂ©e par rapport aux images gĂ©nĂ©rĂ©es par le pipeline sans utiliser le composant CFG. Les rĂ©sultats s'amĂ©liorent encore avec l'utilisation du composant RCFG car l'influence des invites sur les images gĂ©nĂ©rĂ©es est assez significative par rapport au composant CFG d'origine. 

Réflexions finales

Dans cet article, nous avons parlĂ© de StreamDiffusion, un pipeline de diffusion en temps rĂ©el dĂ©veloppĂ© pour gĂ©nĂ©rer des images interactives et rĂ©alistes, et nous avons abordĂ© les limitations actuelles posĂ©es par les cadres basĂ©s sur la diffusion sur les tâches impliquant une saisie continue. StreamDiffusion est une approche simple et nouvelle qui vise Ă  transformer le bruitage sĂ©quentiel de l'image originale en dĂ©bruitage par lots. StreamDiffusion vise Ă  permettre des flux Ă  haut dĂ©bit et fluides en Ă©liminant l'approche traditionnelle d'attente et d'interaction choisie par les cadres actuels basĂ©s sur la diffusion. Les gains d'efficacitĂ© potentiels mettent en Ă©vidence le potentiel du pipeline StreamDiffusion pour les applications commerciales offrant un calcul haute performance et des solutions convaincantes pour l'IA gĂ©nĂ©rative. 

« IngĂ©nieur de profession, Ă©crivain de cĹ“ur Â». Kunal est un rĂ©dacteur technique avec un amour et une comprĂ©hension profonds de l'IA et du ML, dĂ©diĂ© Ă  la simplification de concepts complexes dans ces domaines grâce Ă  sa documentation engageante et informative.