AI-modellen en platforms

StreamDiffusion: Een pipeline-niveau-oplossing voor real-time interactieve generatie

mm
Voeg Unite.AI toe aan je voorkeursbronnen op Google
StreamDiffusion: A Pipeline-level Solution for Real-time Interactive Generation

Vanwege het enorme potentieel en de commercialisatie-mogelijkheden, met name in gaming, uitzendingen en video-streaming, is de Metaverse momenteel een van de snelst groeiende technologieÃŦn. Moderne Metaverse-toepassingen maken gebruik van AI-frameworks, waaronder computer vision en diffusie-modellen, om hun realisme te verbeteren. Een significante uitdaging voor Metaverse-toepassingen is het integreren van verschillende diffusie-pijpleidingen die lage latentie en hoge doorvoer bieden, waardoor effectieve interactie tussen mensen en deze toepassingen mogelijk wordt.

Vandaag de dag excelleren diffusie-gebaseerde AI-frameworks in het creÃŦren van afbeeldingen uit tekstuele of beeldprompts, maar komen ze tekort in real-time interacties. Deze beperking is met name evident in taken die continue input en hoge doorvoer vereisen, zoals videospelgrafieken, Metaverse-toepassingen, uitzendingen en live video-streaming.

In dit artikel zullen we StreamDiffusion bespreken, een real-time diffusie-pijpleiding ontwikkeld om interactieve en realistische afbeeldingen te genereren, en de huidige beperkingen van diffusie-gebaseerde frameworks in taken met continue input aan te pakken. StreamDiffusion is een innovatieve benadering die de sequentiÃŦle ruis van de oorspronkelijke afbeelding transformeert in batch-ruis, met als doel hoge doorvoer en vloeiende stromen mogelijk te maken. Deze benadering gaat af van de traditionele wacht-en-interactie-methode die wordt gebruikt door bestaande diffusie-gebaseerde frameworks. In de komende secties zullen we dieper ingaan op het StreamDiffusion-framework, waarbij we zijn werking, architectuur en vergelijkende resultaten tegenover huidige state-of-the-art-frameworks zullen onderzoeken. Laten we beginnen.

StreamDiffusion: Een inleiding tot real-time interactieve generatie

Metaverse zijn prestatie-intensieve toepassingen die een grote hoeveelheid gegevens verwerken, waaronder teksten, animaties, video’s en afbeeldingen in real-time, om hun gebruikers te voorzien van hun kenmerkende interactieve interfaces en ervaring. Moderne Metaverse-toepassingen zijn afhankelijk van AI-gebaseerde frameworks, waaronder computer vision, beeldverwerking en diffusie-modellen, om lage latentie en hoge doorvoer te bereiken en zo een naadloze gebruikerservaring te garanderen. Momenteel zijn de meeste Metaverse-toepassingen afhankelijk van het reduceren van de frequentie van denoising-iteraties om hoge doorvoer en interactieve capaciteiten in real-time te waarborgen. Deze frameworks kiezen voor een gemeenschappelijke strategie die ofwel het diffusie-proces herschikt met neurale ODE’s (gewone differentiaalvergelijkingen) ofwel meerdere diffusie-modellen reduceert tot een paar stappen of zelfs ÃĐÃĐn stap. Hoewel deze benadering bevredigende resultaten oplevert, heeft ze bepaalde beperkingen, waaronder beperkte flexibiliteit en hoge computationele kosten.

Aan de andere kant is StreamDiffusion een pipeline-niveau-oplossing die vanuit een orthogonale richting start en de capaciteiten van het framework vergroot om interactieve afbeeldingen in real-time te genereren, terwijl het een hoge doorvoer waarborgt. StreamDiffusion gebruikt een eenvoudige strategie waarbij, in plaats van het denoising van de oorspronkelijke invoer, het framework het denoising-stap batcht. De strategie haalt inspiratie uit asynchrone verwerking, aangezien het framework niet hoeft te wachten tot de eerste denoising-fase is voltooid voordat het kan overgaan tot de tweede fase, zoals wordt gedemonstreerd in de volgende afbeelding. Om het probleem van U-Net-verwerkingsfrequentie en invoerfrequentie synchroon aan te pakken, implementeert het StreamDiffusion-framework een wachtrij-strategie om de invoer en uitvoer te bufferen.

Hoewel het StreamDiffusion-pipeline inspiratie haalt uit asynchrone verwerking, is het op zijn eigen manier uniek, aangezien het GPU-parallelisme implementeert, waardoor het framework een enkel UNet-component kan gebruiken om een batched ruis-latente functie te denoisen. Bovendien leggen bestaande diffusie-gebaseerde pijpleidingen de nadruk op de gegeven prompts in de gegenereerde afbeeldingen door classificator-vrije leiding te incorporeren, als gevolg waarvan de huidige pijpleidingen zijn uitgerust met overbodige en excessieve computationele overheads. Om ervoor te zorgen dat het StreamDiffusion-pipeline niet met dezelfde problemen te maken krijgt, implementeert het een innovatieve RCFG- of Residual Classifier-Free Guidance-benadering, die een virtuele rest-ruis gebruikt om de negatieve condities te benaderen, waardoor het framework de negatieve ruiscondities in de initiÃŦle stadia van het proces zelf kan berekenen. Bovendien reduceert het StreamDiffusion-pipeline de computationele vereisten van een traditionele diffusie-pijpleiding door een stochastische gelijkenisfilterstrategie te implementeren, die bepaalt of de pijpleiding de invoer-afbeeldingen moet verwerken door de gelijkenissen tussen continue invoer te berekenen.

Het StreamDiffusion-framework is gebouwd op de kennis van diffusie-modellen en versnellingsdiffusie-modellen.

Diffusie-modellen zijn bekend om hun uitzonderlijke afbeelding-generatie-capaciteiten en de hoeveelheid controle die ze bieden. Vanwege hun capaciteiten hebben diffusie-modellen toepassingen gevonden in afbeelding-bewerking, tekst-naar-afbeelding-generatie en video-generatie. Bovendien heeft de ontwikkeling van consistente modellen het potentieel aangetoond om de steekproef-verwerkings-efficiÃŦntie te verbeteren zonder afbreuk te doen aan de kwaliteit van de door het model gegenereerde afbeeldingen, wat nieuwe deuren heeft geopend om de toepasbaarheid en efficiÃŦntie van diffusie-modellen uit te breiden door het aantal steekproef-stappen te reduceren. Hoewel extreem capabel, hebben diffusie-modellen ÃĐÃĐn significante beperking: langzame afbeelding-generatie. Om deze beperking aan te pakken, hebben ontwikkelaars versnelde diffusie-modellen geÃŊntroduceerd, diffusie-gebaseerde frameworks die geen extra trainingsstappen vereisen of predictor-corrector-strategieÃŦn en adaptieve stap-grootte-oplossers implementeren om de uitvoersnelheden te verhogen.

Het onderscheidende kenmerk tussen StreamDiffusion en traditionele diffusie-gebaseerde frameworks is dat de laatste zich primair richt op lage latentie van individuele modellen, terwijl de eerste een pipeline-niveau-benadering introduceert die is ontworpen voor het bereiken van hoge doorvoer, waardoor efficiÃŦnte interactieve diffusie mogelijk wordt.

StreamDiffusion: Werking en architectuur

De StreamDiffusion-pijpleiding is een real-time diffusie-pijpleiding ontwikkeld voor het genereren van interactieve en realistische afbeeldingen, en het maakt gebruik van 6 sleutelcomponenten, namelijk: RCFG of Residual Classifier Free Guidance, Stream Batch-strategie, Stochastic Similarity Filter, een invoer-uitvoer-wachtrij, model-versnellingsgereedschap met auto-encoder, en een pre-computatie-procedure. Laten we deze componenten in detail bespreken.

Stream Batch-strategie

Traditioneel worden de denoising-stappen in een diffusie-model sequentieel uitgevoerd, wat resulteert in een aanzienlijke toename van de U-Net-verwerkings tijd tot het aantal verwerkingsstappen. Echter is het essentieel om het aantal verwerkingsstappen te verhogen om hoge-fideliteit-afbeeldingen te genereren, en het StreamDiffusion-framework introduceert de Stream Batch-strategie om de hoge latentie-oplossing in interactieve diffusie-frameworks te overwinnen.

In de Stream Batch-strategie worden de sequentiÃŦle denoising-operaties omgevormd tot batch-gebaseerde processen, waarbij elke batch overeenkomt met een vooraf bepaald aantal denoising-stappen, en het aantal denoising-stappen wordt bepaald door de grootte van elke batch. Dankzij deze benadering kan elk element in de batch ÃĐÃĐn stap verder gaan met behulp van de enkele passthrough UNet in de denoising-sequentie. Door de stream batch-strategie iteratief te implementeren, kunnen de invoer-afbeeldingen die zijn gecodeerd op tijdstip “t” worden getransformeerd in hun respectieve afbeelding-tot-afbeelding-resultaten op tijdstip “t+n”, waardoor het denoising-proces wordt gestroomlijnd.

Residual Classifier Free Guidance

CFG of Classifier Free Guidance is een AI-algoritme dat een reeks vector-berekeningen uitvoert tussen de oorspronkelijke conditioneringsterm en een negatieve conditioneringsterm om de invloed van de oorspronkelijke conditionering te versterken. Het algoritme versterkt de invloed van de prompt, zelfs als het nodig is om de negatieve conditionering-residu-ruis te berekenen, door individuele invoer-latente variabelen te koppelen aan negatieve conditionering-embedding, gevolgd door het doorgeven van de embeddings door de UNet op referentietijd.

Om dit probleem dat wordt veroorzaakt door het Classifier Free Guidance-algoritme aan te pakken, introduceert het StreamDiffusion-framework het Residual Classifier Free Guidance-algoritme met als doel de computationele kosten voor extra UNet-interferentie voor negatieve conditionering-embedding te reduceren. Eerst wordt de gecodeerde latent-invoer overgebracht naar de ruis-distributie door gebruik te maken van waarden die zijn bepaald door de ruis-scheduler. Zodra het latent-consistentie-model is geÃŊmplementeerd, kan het algoritme de gegevens-distributie voorspellen en de CFG-residu-ruis gebruiken om de volgende stap-ruis-distributie te genereren.

Invoer-Uitvoer-Wachtrij

Het belangrijkste probleem met hoge-snelheid-afbeelding-generatie-frameworks is hun neurale netwerk-modules, waaronder de UNet- en VAE-componenten. Om de efficiÃŦntie en de algehele uitvoersnelheid te maximaliseren, verplaatsen afbeelding-generatie-frameworks processen zoals voor- en na-verwerking van afbeeldingen die geen extra verwerking door de neurale netwerk-modules vereisen, buiten de pijpleiding, waarna ze in parallel worden verwerkt. Bovendien, wat betreft het omgaan met de invoer-afbeelding, worden specifieke operaties, waaronder het omzetten van tensor-formaat, het herschalen van invoer-afbeeldingen en normalisatie, door de pijpleiding zorgvuldig uitgevoerd.

Om het verschil in verwerkingsfrequenties tussen de model-doorvoer en de menselijke invoer aan te pakken, integreert de pijpleiding een invoer-uitvoer-wachtrij-systeem dat efficiÃŦnte parallelisatie mogelijk maakt, zoals wordt gedemonstreerd in de volgende afbeelding.

De verwerkte invoer-tensors worden eerst methodisch in de invoer-wachtrij geplaatst voor diffusie-modellen, en tijdens elke frame haalt het model de meest recente tensor uit de invoer-wachtrij en stuurt deze door naar de VAE-encoder, waardoor het afbeelding-generatie-proces wordt geÃŊnitieerd. Tegelijkertijd wordt de tensor-uitvoer van de VAE-decoder doorgegeven aan de uitvoer-wachtrij. Ten slotte wordt de verwerkte afbeelding-gegevens naar de rendering-client verzonden.

Stochastische Gelijkenis-Filter

In scenario’s waarin de afbeeldingen ongewijzigd blijven of minimale veranderingen vertonen zonder een statische omgeving of zonder actieve gebruikersinteractie, worden invoer-afbeeldingen die op elkaar lijken herhaaldelijk in de UNet- en VAE-componenten gevoerd. Het herhaaldelijke voeren leidt tot de generatie van bijna identieke afbeeldingen en tot extra verbruik van GPU-bronnen. Bovendien kunnen ongewijzigde invoer-afbeeldingen in scenario’s met continue invoer af en toe verschijnen. Om dit probleem te overwinnen en onnodig gebruik van bronnen te voorkomen, maakt het StreamDiffusion-pipeline gebruik van een Stochastic Similarity Filter-component in zijn pijpleiding. De Stochastic Similarity Filter berekent eerst de cosine-gelijkenis tussen de referentie-afbeelding en de invoer-afbeelding, en gebruikt de cosine-gelijkenis-score om de waarschijnlijkheid te berekenen dat de volgende UNet- en VAE-processen worden overgeslagen.

Op basis van de waarschijnlijkheidsscore besluit de pijpleiding of de volgende processen, zoals VAE-codering, VAE-decodering en U-Net, al dan niet worden overgeslagen. Als deze processen niet worden overgeslagen, slaat de pijpleiding de invoer-afbeelding op dat moment op, en werkt tegelijkertijd de referentie-afbeelding bij die in de toekomst zal worden gebruikt. Deze waarschijnlijkheid-gebaseerde overslaan-mechanisme stelt het StreamDiffusion-pipeline in staat om volledig te functioneren in dynamische scenario’s met lage inter-frame-gelijkenis, terwijl in statische scenario’s de pijpleiding met hogere inter-frame-gelijkenis functioneert. De benadering helpt bij het behoud van computationele bronnen en waarborgt ook optimale GPU-gebruik op basis van de gelijkenis van de invoer-afbeeldingen.

Pre-Computatie

De UNet-architectuur heeft zowel conditionering-embeddings als invoer-latente variabelen nodig. Traditioneel worden de conditionering-embeddings afgeleid van prompt-embeddings die constant blijven over frames. Om de afleiding van prompt-embeddings te optimaliseren, slaat het StreamDiffusion-pipeline deze prompt-embeddings voor in een cache, die vervolgens in streaming- of interactieve modus worden opgeroepen. Binnen het UNet-framework wordt het Key-Value-paar berekend op basis van elke frame’s pre-gecompute prompt-embedding, en met kleine wijzigingen in de U-Net kunnen deze Key-Value-paren opnieuw worden gebruikt.

Model-Versnelling en Tiny Auto-Encoder

Het StreamDiffusion-pipeline maakt gebruik van TensorRT, een optimalisatie-toolkit van Nvidia (NVDA ) voor deep learning-interfaces, om de VAE- en UNet-motoren te bouwen, om de inferentie-snelheid te versnellen. Om dit te bereiken, voert de TensorRT-component verschillende optimalisaties uit op neurale netwerken die zijn ontworpen om de efficiÃŦntie en doorvoer te verhogen voor deep learning-frameworks en -toepassingen.

Om de snelheid te optimaliseren, configureert het StreamDiffusion-framework het framework om vaste invoer-dimensies en statische batch-groottes te gebruiken, om zo optimale geheugen-toewijzing en computationele grafieken voor een specifieke invoer-grootte te waarborgen, in een poging om snellere verwerkings-tijden te bereiken.

De bovenstaande afbeelding geeft een overzicht van de inferentie-pijpleiding. De core-diffusie-pijpleiding bevat de UNet- en VAE-componenten. De pijpleiding omvat een denoising-batch, een gesampled-ruis-cache, een pre-gecompute prompt-embedding-cache en een scheduler-waarden-cache om de snelheid en de mogelijkheid van de pijpleiding om afbeeldingen in real-time te genereren te verbeteren. De Stochastic Similarity Filter of SSF wordt geÃŊmplementeerd om het GPU-gebruik te optimaliseren en om de doorgang van het diffusie-model dynamisch te beperken.

StreamDiffusion: Experimenten en Resultaten

Om zijn capaciteiten te evalueren, wordt het StreamDiffusion-pipeline geÃŊmplementeerd op LCM- en SD-turbo-frameworks. De TensorRT van Nvidia wordt gebruikt als model-versneller, en om lichtgewicht-efficiÃŦntie mogelijk te maken, maakt de pijpleiding gebruik van de TAESD-component. Laten we nu kijken hoe het StreamDiffusion-pipeline presteert in vergelijking met huidige state-of-the-art-frameworks.

Kwantitatieve Evaluatie

De volgende afbeelding toont de efficiÃŦntie-vergelijking tussen de oorspronkelijke sequentiÃŦle UNet en de denoising-batch-componenten in de pijpleiding, en zoals te zien is, helpt het implementeren van de denoising-batch-benadering om de verwerkings-tijd aanzienlijk te reduceren, met bijna 50% in vergelijking met de traditionele UNet-lussen bij sequentiÃŦle denoising-stappen.

Bovendien ziet de gemiddelde inferentie-tijd bij verschillende denoising-stappen ook een aanzienlijke boost met verschillende versnellingsfactoren in vergelijking met huidige state-of-the-art-pijpleidingen, en de resultaten worden gedemonstreerd in de volgende afbeelding.

Verder toont het StreamDiffusion-pipeline met de RCFG-component minder inferentie-tijd in vergelijking met pijpleidingen die de traditionele CFG-component bevatten.

Bovendien is de impact van het gebruik van de RCFG-component duidelijk in de volgende afbeeldingen in vergelijking met het gebruik van de CFG-component.

Zoals te zien is, versterkt het gebruik van CFG de invloed van de tekstuele prompt in afbeelding-generatie, en lijkt de gegenereerde afbeelding veel meer op de invoer-prompts in vergelijking met de afbeeldingen gegenereerd door de pijpleiding zonder het gebruik van de CFG-component. De resultaten verbeteren verder met het gebruik van de RCFG-component, aangezien de invloed van de prompts op de gegenereerde afbeeldingen aanzienlijk is in vergelijking met de oorspronkelijke CFG-component.

Slotbeschouwing

In dit artikel hebben we StreamDiffusion besproken, een real-time diffusie-pijpleiding ontwikkeld voor het genereren van interactieve en realistische afbeeldingen, en de huidige beperkingen van diffusie-gebaseerde frameworks in taken met continue input aangepakt. StreamDiffusion is een eenvoudige en innovatieve benadering die de sequentiÃŦle ruis van de oorspronkelijke afbeelding transformeert in batch-ruis, met als doel hoge doorvoer en vloeiende stromen mogelijk te maken. StreamDiffusion streeft ernaar om hoge doorvoer en vloeiende stromen mogelijk te maken door de traditionele wacht-en-interactie-benadering te elimineren die wordt gebruikt door huidige diffusie-gebaseerde frameworks. De potentieel efficiÃŦntie-winsten benadrukken het potentieel van de StreamDiffusion-pijpleiding voor commerciÃŦle toepassingen die hoge prestaties bieden en aantrekkelijke oplossingen voor generatieve AI.

Een ingenieur van beroep, een schrijver van hart. Kunal is een technisch schrijver met een diepe liefde en begrip voor AI en ML, toegewijd aan het vereenvoudigen van complexe concepten in deze gebieden door middel van zijn boeiende en informatieve documentatie.