AI-modeller og plattformer

StreamDiffusion: En introduksjon til sanntidsinteraktiv generering

mm
Legg til Unite.AI blant dine foretrukne kilder på Google
StreamDiffusion: A Pipeline-level Solution for Real-time Interactive Generation

På grunn av sin enorme potensial og kommersielle muligheter, spesielt innen spill, kringkasting og videostrømming, er Metaverse for tiden en av de raskest voksende teknologiene. Moderne Metaverse-applikasjoner bruker AI-rammeverk, inkludert datavisning og diffusjonsmodeller, for å forbedre deres realisme. En betydelig utfordring for Metaverse-applikasjoner er å integrere ulike diffusjonsrørledninger som gir lav latency og høy gjennomstrømming, og sikre effektiv interaksjon mellom mennesker og disse applikasjonene.

I dag er diffusjonsbaserte AI-rammeverk meget dyktige i å lage bilder fra tekst- eller bildeprompt, men mangler i sanntidsinteraksjoner. Dette begrensningen er spesielt tydelig i oppgaver som krever kontinuerlig innputt og høy gjennomstrømming, som for eksempel videospillgrafikk, Metaverse-applikasjoner, kringkasting og direkte videostrømming.

I denne artikkelen skal vi diskutere StreamDiffusion, en sanntidsdiffusjonsrørledning utviklet for å generere interaktive og realistiske bilder, og løse de nåværende begrensningene til diffusjonsbaserte rammeverk i oppgaver som involverer kontinuerlig innputt. StreamDiffusion er en innovativ tilnærming som transformerer den sekvensielle støyningen av det opprinnelige bildet til batch-støyning, med mål om å aktivere høy gjennomstrømming og flytende strømmer. Denne tilnærmingen går bort fra den tradisjonelle vent-og-interager-metoden som brukes av eksisterende diffusjonsbaserte rammeverk. I de kommende seksjonene skal vi dykke dyptere inn i StreamDiffusion-rammeverket, og utforske dets virkemåte, arkitektur og sammenlignende resultater mot nåværende state-of-the-art-rammeverk. La oss begynne.

StreamDiffusion: En introduksjon til sanntidsinteraktiv generering

Metaverse er ytelsesintensive applikasjoner som prosesserer store mengder data, inkludert tekster, animasjoner, videoer og bilder i sanntid, for å gi brukerne sine kjennetegnende interaktive grensesnitt og opplevelser. Moderne Metaverse-applikasjoner avhenger av AI-baserte rammeverk, inkludert datavisning, bildebehandling og diffusjonsmodeller, for å oppnå lav latency og høy gjennomstrømming, og sikre en sømløs brukeropplevelse. For tiden avhenger de fleste Metaverse-applikasjonene av å redusere forekomsten av støyningssykluser for å sikre høy gjennomstrømming og forbedre applikasjonens interaktive evner i sanntid. Disse rammeverkene velger en vanlig strategi som enten involverer å omforme diffusjonsprosessen med neurale ODEer (vanlige differensialligninger) eller å redusere flertrinnsdiffusjonsmodeller til noen få trinn eller til og med ett enkelt trinn. Selv om tilnærmingen leverer tilfredsstillende resultater, har den visse begrensninger, inkludert begrenset fleksibilitet og høye beregningskostnader. 

På den andre siden er StreamDiffusion en rørledningsnivåløsning som starter fra en ortogonal retning og forbedrer rammeverkets evner til å generere interaktive bilder i sanntid, samtidig som den sikrer høy gjennomstrømming. StreamDiffusion bruker en enkel strategi hvor støyningstrinnet i steden for å støye det opprinnelige innputtet, batcher støyningstrinnet. Strategien tar inspirasjon fra asynkron prosessering, da rammeverket ikke trenger å vente på at det første støyningstrinnet er fullført før det kan gå videre til det andre trinnet, som vist i følgende bilde. For å takle problemet med U-Net-prosesseringsfrekvens og innputtfrekvens synkront, implementerer StreamDiffusion-rammeverket en køstrategi for å cache innputt og utdata. 

Selv om StreamDiffusion-pipeline tar inspirasjon fra asynkron prosessering, er den unik på sin egen måte, da den implementerer GPU-parallellisme som tillater rammeverket å bruke ett enkelt U-Net-komponent til å støye en batchet støylatent egenskap. I tillegg legger eksisterende diffusjonsbaserte rørledninger vekt på de gitt promptene i de genererte bildene ved å inkorporere klassifikatorfri veiledning, som et resultat av at de nåværende rørledningene er rigget med redundante og eksessive beregningskostnader. For å sikre at StreamDiffusion-pipeline ikke møter de samme problemene, implementerer den en innovativ RCFG- eller Residual Classifier-Free Guidance-tilnærming som bruker en virtuell reststøy til å approksimere de negative betingelser, og tillater rammeverket å beregne de negative støybetingelser i de innledende stadiene av prosessen. I tillegg reduserer StreamDiffusion-pipeline også de beregningsmessige kravene til en tradisjonell diffusjonsrørledning ved å implementere en stokastisk likhetfilterstrategi som bestemmer om rørledningen skal prosessere innputtbildene ved å beregne likheten mellom kontinuerlige innputt. 

StreamDiffusion-rammeverket er bygget på læringene fra diffusjonsmodeller og akselererte diffusjonsmodeller

Diffusjonsmodeller er kjent for sine eksepsjonelle bildegenereringskapasiteter og mengden kontroll de tilbyr. Takket være deres kapasiteter, har diffusjonsmodeller funnet sine applikasjoner i bildebehandling, tekst-til-bilde-generering og videogenerering. I tillegg har utviklingen av konsistente modeller demonstrert potensialet for å forbedre prøvebehandlings-effektiviteten uten å kompromittere med kvaliteten på bildene generert av modellen, noe som har åpnet nye dører for å utvide anvendeligheten og effektiviteten til diffusjonsmodeller ved å redusere antallet prøve-trinn. Selv om ekstremt dyktige, har diffusjonsmodeller en betydelig begrensning: langsom bildegenerering. For å takle denne begrensningen, introduserte utviklere akselererte diffusjonsmodeller, diffusjonsbaserte rammeverk som ikke krever ekstra treningstrinn eller implementerer prediktor-korrektor-strategier og adaptive steg-størrelse-løsere for å øke utgangshastigheten. 

Den avgjørende faktoren mellom StreamDiffusion og tradisjonelle diffusjonsbaserte rammeverk er at mens de sistnevnte fokuserer primært på lav latency for enkeltmodeller, introduserer den førstnevnte en rørledningsnivå-tilnærming designet for å oppnå høy gjennomstrømming, og muliggjør effektiv interaktiv diffusjon. 

StreamDiffusion: Virkemåte og arkitektur

StreamDiffusion-pipeline er en sanntidsdiffusjonsrørledning utviklet for å generere interaktive og realistiske bilder, og den består av 6 nøkkelkomponenter: RCFG eller Residual Classifier Free Guidance, Stream Batch-strategi, Stochastic Similarity Filter, en inn-/ut-kø, modellakselerering med autoencoder, og en forhåndsberegningsprosess. La oss diskutere disse komponentene i detalj. 

Stream Batch-strategi

Tradisjonelt utføres støyningstrinnene i en diffusjonsmodell sekvensielt, noe som resulterer i en betydelig økning i U-Net-prosesserings-tiden til antallet prosesserings-trinn. Imidlertid er det essensielt å øke antallet prosesserings-trinn for å generere høy-fidelitetsbilder, og StreamDiffusion-rammeverket introduserer Stream Batch-strategien for å overvinne høy-latency-løsninger i interaktive diffusjonsrammeverk. 

I Stream Batch-strategien omstruktureres de sekvensielle støyningsope-rasjonene til batch-prosesser, hvor hver batch korresponderer til et forhåndsbestemt antall støyningstrinn, og antallet disse støyningstrinnene bestemmes av størrelsen på hver batch. Takket være denne tilnærmingen kan hver element i batchen gå ett skritt videre ved å bruke en enkelt passthrough U-Net i støyningsskvensen. Ved å implementere Stream Batch-strategien iterativt, kan innputtbildene kodet ved tidssteg “t” transformeres til deres respektive bilde-til-bilde-resultater ved tidssteg “t+n”, og dermed strømlinjeformer støyningprosessen. 

Residual Classifier Free Guidance

CFG eller Classifier Free Guidance er en AI-algoritme som utfører en rekke vektor-beregninger mellom den opprinnelige betingelses-termen og en negativ betingelse eller ubetinget term for å forbedre effekten av den opprinnelige betingelsen. Algoritmen styrker effekten av prompten, selv om det er nødvendig å parre enkelt innputt-latente variabler med negativ betingelse-embedding, og deretter sende embed-dingene gjennom U-Net ved referansepunkt. 

For å takle dette problemet som er fremmet av Classifier Free Guidance-algoritmen, introduserer StreamDiffusion-rammeverket Residual Classifier Free Guidance-algoritmen med mål om å redusere beregningskostnadene for ekstra U-Net-inngrep for negativ betingelse-embedding. Først overføres den kodete latente innputt til støyfordelingen ved å bruke verdier bestemt av støy-scheduleren. Når den latente konsistensmodellen er implementert, kan algoritmen forutsi datafordelingen og bruke CFG-rest-støyen til å generere den neste støyfordelingen. 

Inn-/ut-kø

Det største problemet med høyhastighets-bilde-genererings-rammeverk er deres neurale nettverksmoduler, inkludert U-Net- og VAE-komponentene. For å maksimere effektiviteten og den totale utgangshastigheten, flytter bilde-genererings-rammeverk prosesser som pre- og post-prosessering av bilder som ikke krever ekstra håndtering av de neurale nettverksmodulene utenfor pipeline, og deretter prosesserer dem parallelt. I tillegg, når det gjelder håndtering av innputtbildene, utføres bestemte operasjoner, inkludert konvertering av tensor-format, innputt-bilde-omstilling og normalisering, av pipeline med omhu. 

For å takle forskjellen i prosesseringsfrekvenser mellom modell-gjennomstrømming og menneskelig innputt, integrerer pipeline en inn-/ut-kø-system som muliggjør effektiv parallellisering, som vist i følgende bilde. 

De prosesserte innputt-tensorer køes metodelig for Diffusjonsmodeller, og under hver ramme, henter modellen den nyeste tensor fra inn-køen og sender tensor til VAE-encoder, og dermed initierer bilde-genereringsprosessen. Samtidig sendes tensor-utdata fra VAE-decoder til ut-køen. Til slutt overføres de prosesserte bilde-dataene til rendering-klienten. 

Stokastisk likhetfilter

I scenarier hvor bildene enten forblir uendret eller viser minimale endringer uten en statisk miljø eller uten aktiv brukerinteraksjon, mates innputt-bilder som ligner hverandre gjentakende inn i U-Net- og VAE-komponentene. Den gjentakende matingen fører til generering av nesten identiske bilder og ekstra forbruk av GPU-resurser. I tillegg, i scenarier som involverer kontinuerlig innputt, kan uendrede innputt-bilder dukke opp av og til. For å overvinne dette problemet og forhindre unødvendig ressursforbruk, bruker StreamDiffusion-pipeline en Stokastisk likhetfilter-komponent i sin pipeline. Stokastisk likhetfilter beregner først cosinus-ligningen mellom referanse-bildet og innputt-bildet, og bruker cosinus-ligning-poengsummen til å beregne sannsynligheten for å hoppe over påfølgende U-Net- og VAE-prosesser. 

Basert på sannsynlighetspoengsummen, bestemmer pipeline om påfølgende prosesser som VAE-koding, VAE-dekoding og U-Net skal hoppe over eller ikke. Hvis disse prosessene ikke hopper over, lagrer pipeline innputt-bildet på den tiden, og samtidig oppdaterer referanse-bildet som skal brukes i fremtiden. Denne sannsynlighetsbaserte hopping-mekanismen tillater StreamDiffusion-pipeline å fungere fullstendig i dynamiske scenarier med lav inter-rame-ligning, mens i statiske scenarier fungerer pipeline med høyere inter-rame-ligning. Tilnærmingen hjelper med å konservere beregningsressursene og sikre optimal GPU-utnyttelse basert på ligningen mellom innputt-bildene. 

Forhåndsberegningsprosess

U-Net-arkitekturen trenger både betingelses-embeddings og innputt-latente variabler. Tradisjonelt er betingelses-embeddings avledet fra prompt-embeddings som forblir konstant over rammer. For å optimalisere avledningen fra prompt-embeddings, forhåndsberegner StreamDiffusion-pipeline disse prompt-embeddings og lagrer dem i en cache, som deretter kalles i strømmende eller interaktivt modus. Innenfor U-Net-rammeverket beregnes nøkkel-verdi-par basert på hver rammes forhåndsberegnete prompt-embedding, og med små modifikasjoner i U-Net, kan disse nøkkel-verdi-parene gjenbrukes. 

Modellakselerering og Tiny AutoEncoder

StreamDiffusion-pipeline bruker TensorRT, en optimalisering-verktøy fra Nvidia (NVDA ) for dypt læring-grensesnitt, for å konstruere VAE- og U-Net-motorene, og akselerere inferens-hastigheten. For å oppnå dette, utfører TensorRT-komponenten flere optimaliseringer på neurale nettverk som er designet for å øke effektiviteten og forbedre gjennomstrømmingen for dypt læring-rammeverk og applikasjoner. 

For å optimalisere hastighet, konfigurerer StreamDiffusion-rammeverket rammeverket til å bruke faste innputtdimensjoner og statiske batch-størrelser for å sikre optimal minne-allokering og beregnings-grafer for en bestemt innputt-størrelse, i et forsøk på å oppnå raskere prosesserings-tider. 

Figuren ovenfor gir en oversikt over inferens-pipeline. Diffusjons-pipeline-huset består av U-Net- og VAE-komponentene. Pipeline inkorporerer en støyning-batch, sampet støy-cache, forhåndsberegnet prompt-embedding-cache og scheduler-verdi-cache for å forbedre hastigheten og evnen til å generere bilder i sanntid. Stokastisk likhetfilter eller SSF er deployert for å optimalisere GPU-bruk og også å gli passeringen av diffusjonsmodellen dynamisk. 

StreamDiffusion: Eksperimenter og resultater

For å evaluere dets kapasiteter, implementeres StreamDiffusion-pipeline på LCM- og SD-turbo-rammeverk. TensorRT fra Nvidia brukes som modellakselerator, og for å muliggjøre lett effektivitet, bruker pipeline TAESD-komponenten. La oss nå se på hvordan StreamDiffusion-pipeline fungerer når den sammenlignes med nåværende state-of-the-art-rammeverk. 

Kvantitativ evaluering

Følgende figur demonstrerer effektivitets-sammenligningen mellom den opprinnelige sekvensielle U-Net og støyning-batch-komponentene i pipeline, og som det kan ses, hjelper implementeringen av støyning-batch-tilnærmingen med å redusere prosesserings-tiden betydelig, med nærmere 50%, sammenlignet med tradisjonelle U-Net-løkker ved sekvensielle støyningstrinn. 

I tillegg vitner den gjennomsnittlige inferens-tiden ved ulike støyningstrinn også om en betydelig forbedring med ulike hastighetsfaktorer, sammenlignet med nåværende state-of-the-art-pipelines, og resultater demonstreres i følgende bilde. 

Videre demonstrerer StreamDiffusion-pipeline med RCFG-komponenten lavere inferens-tid sammenlignet med pipelines som inkluderer den tradisjonelle CFG-komponenten. 

I tillegg er effekten av å bruke RCFG-komponenten tydelig i følgende bilder, sammenlignet med å bruke CFG-komponenten.

Som det kan ses, intensiverer bruk av CFG effekten av tekst-prompten i bilde-generering, og bildet ligner innputt-promptene mye mer sammenlignet med bildene generert av pipeline uten å bruke CFG-komponenten. Resultatene forbedres ytterligere med bruk av RCFG-komponenten, da påvirkningen av promptene på de genererte bildene er ganske betydelig sammenlignet med den opprinnelige CFG-komponenten. 

Slutt-tanker

I denne artikkelen har vi diskutert StreamDiffusion, en sanntidsdiffusjonsrørledning utviklet for å generere interaktive og realistiske bilder, og løse de nåværende begrensningene til diffusjonsbaserte rammeverk i oppgaver som involverer kontinuerlig innputt. StreamDiffusion er en enkel og ny tilnærming som transformerer den sekvensielle støyningen av det opprinnelige bildet til batch-støyning. StreamDiffusion har som mål å aktivere høy gjennomstrømming og flytende strømmer ved å eliminere den tradisjonelle vent-og-interager-metoden som brukes av nåværende diffusjonsbaserte rammeverk. De potensielle effektivitets-gevinstene understreker potensialet for StreamDiffusion-pipeline for kommersielle applikasjoner som tilbyr høy-ytelses-beregning og overbevisende løsninger for generativ AI. 

En ingeniør av yrke, en forfatter av hjerte. Kunal er en teknisk forfatter med en dyp kjærlighet og forståelse av AI og ML, dedikert til å forenkle komplekse konsepter i disse feltene gjennom sin engasjerende og informerende dokumentasjon.