AI-mallit ja alustat

StreamDiffusion: Johdanto reaaliaikaisen interaktiivisen generoinnin

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa
StreamDiffusion: A Pipeline-level Solution for Real-time Interactive Generation

Metaversumi on tällä hetkellä yksi nopeimmin kasvavista teknologioista, ja sen kaupalliset mahdollisuudet, erityisesti pelaamisessa, lähetyksissä ja videovirtauksissa, ovat valtavat. Nykyaikaiset Metaversumi-sovellukset käyttävät tekoälykehyksiä, mukaan lukien tietokoneen näköä ja diffuusiomalleja, parantamaan niiden realismin vaikutusta. Yksi merkittävä haaste Metaversumi-sovelluksille on erilaisten diffuusioputkien integrointi, jotka tarjoavat matalan viiveen ja korkean läpäisyn, varmistaen tehokkaan vuorovaikutuksen ihmisten ja näiden sovellusten välillä.

Nykyiset diffuusiopohjaiset tekoälykehykset ovat erittäin hyviä luomaan kuvia teksti- tai kuva-ohjeista, mutta ne eivät ole riittävän hyviä reaaliaikaisissa vuorovaikutuksissa. Tämä rajoitus on erityisesti näkyvissä tehtävissä, jotka vaativat jatkuvaa syötettä ja korkeaa läpäisyä, kuten videopelien grafiikassa, Metaversumi-sovelluksissa, lähetyksissä ja suoratoistossa.

Tässä artikkelissa tarkastelemme StreamDiffusionia, reaaliaikaisen diffuusioputken kehittämistä interaktiivisten ja realististen kuvien generointiin, ja pohtimme nykyisten diffuusiopohjaisien kehysten rajoituksia tehtävissä, jotka vaativat jatkuvaa syötettä. StreamDiffusion on innovatiivinen lähestymistapa, joka muuttaa alkuperäisen kuvan sekvensoidun meloitukseen batch-meloitukseksi, pyrkien mahdollistamaan korkean läpäisyn ja virtauksellisen toiminnan. Tämä lähestymistapa poikkeaa perinteisestä odota-ja-vuorovaikuta-menetelmästä, jota nykyiset diffuusiopohjaiset kehykset käyttävät. Seuraavissa kappaleissa tarkastelemme StreamDiffusion-kehystä yksityiskohtaisesti, tutkimme sen toimintaa, arkkitehtuuria ja vertaamme sen suorituskykyä nykyisiin kehyksiin.

StreamDiffusion: Johdanto reaaliaikaisen interaktiivisen generoinnin

Metaversumi on suorituskyvyltään vaativa sovellus, joka prosessoi suuren määrän dataa, kuten tekstejä, animaatioita, videoita ja kuvia, reaaliajassa tarjotakseen käyttäjilleen ominaiset interaktiiviset käyttöliittymät ja kokemukset. Nykyaikaiset Metaversumi-sovellukset luottavat tekoälypohjaisiin kehyksiin, mukaan lukien tietokoneen näkö, kuvauskäsittely ja diffuusiomallit, saavuttaakseen matalan viiveen ja korkean läpäisyn, jotta käyttäjäkokemus olisi vaivaton. Tällä hetkellä useimmat Metaversumi-sovellukset luottavat meloitusiteraatioiden vähentämiseen korkean läpäisyn ja interaktiivisuuden parantamiseksi reaaliajassa. Nämä kehykset käyttävät yleistä strategiaa, jossa diffuusioprosessi uudelleenmuotoillaan neurologisilla ODE:illa (Ordinary Differential Equations) tai usean askeleen diffuusiomalleja vähennetään muutamaan askeleeseen tai jopa yhteen askeleeseen. Vaikka tämä lähestymistapa antaa tyydyttäviä tuloksia, sillä on joitain rajoituksia, kuten rajoitettu joustavuus ja korkeat laskennalliset kustannukset.

Toisaalta StreamDiffusion on pipeline-tason ratkaisu, joka lähtee toisesta suunnasta ja parantaa kehysjärjestelmän kykyä generoida interaktiivisia kuvia reaaliajassa korkean läpäisyn varmistamiseksi. StreamDiffusion käyttää yksinkertaista strategiaa, jossa alkuperäisen syötteen sijaan meloitusvaihe batchataan. Tämä strategia ottaa vaikutteita asynchronous-prosessoinnista, sillä kehysjärjestelmä ei tarvitse odottaa ensimmäisen meloitusvaiheen valmistumista ennen kuin se voi siirtyä seuraavaan vaiheeseen, kuten seuraavassa kuvassa näkyy.

Vaikka StreamDiffusion-pipeline ottaa vaikutteita asynchronous-prosessoinnista, se on omaleimainen, sillä se toteuttaa GPU-rinnakkaisuuden, joka mahdollistaa yhden UNet-komponentin käytön batchattujen meloitusominaisuuksien poistamiseen. Lisäksi olemassa olevat diffuusiopohjaiset pipeline-kehysjärjestelmät korostavat annettujen ohjeiden vaikutusta generoituissa kuvissa classifier-free guidance -tekniikalla, minkä seurauksena nykyiset pipeline-kehysjärjestelmät ovat kuormittuneita tarpeettomilla laskennallisilla kustannuksilla. Estääkseen StreamDiffusion-pipeline-kehysjärjestelmän kohtaamasta samanlaisia ongelmia, se toteuttaa innovatiivisen RCFG- (Residual Classifier-Free Guidance) -lähestymistavan, joka käyttää virtuaalista jäännösmeloitusta negatiivisten ehtojen approksimointiin, mahdollistaen kehysjärjestelmän laskemisen negatiivisia meloitusehtoja prosessin alkuvaiheessa. Lisäksi StreamDiffusion-pipeline vähentää perinteisen diffuusiopipeline-kehysjärjestelmän laskennallisia vaatimuksia toteuttamalla stokastisen samankaltaisuuden suodattimen, joka määrittää, tulisiko pipeline-kehysjärjestelmän prosessoida syötekuvia laskemalla jatkuvien syötteiden välisen samankaltaisuuden.

StreamDiffusion-kehysjärjestelmä perustuu diffuusiomallien ja kiihdytysmallien oppimiseen. Diffuusiomallit ovat tunnettuja poikkeuksellisista kuvagenerointikapasiteeteistaan ja siitä, kuinka paljon valvontaa ne tarjoavat. Niiden kykyjen ansiosta diffuusiomallit ovat löytäneet sovelluksia kuvankäsittelyssä, tekstin kuvaksi muuttamisessa ja videoiden generoimisessa. Lisäksi yhdenmukaisen mallien kehittäminen on osoittanut potentiaalia parantaa näyten käsittelytehokkuutta ilman kuvien laadun heikentymistä, mikä on avannut uusia ovia diffuusiomallien soveltamiselle ja tehokkuuden parantamiselle vähentämällä näytteiden määrää. Vaikka diffuusiomallit ovat erittäin kykeneviä, niillä on merkittävä rajoitus: hitaasti kuvien generointi. Tämän rajoituksen ratkaisemiseksi kehittäjät esittivät kiihdytysdiffuusiomalleja, diffuusiopohjaisia kehyksiä, jotka eivät vaadi lisäkoulutusaskelia tai toteuttavat ennustajan-oikaisijastrategioita ja sopeutuvia askelkokojen ratkaisijoita nopeuden lisäämiseksi.

StreamDiffusion: Toiminta ja arkkitehtuuri

StreamDiffusion-pipeline on reaaliaikainen diffuusiopipeline, joka on kehitetty generoimaan interaktiivisia ja realistisia kuvia, ja se käyttää kuutta avainkomponenttia: RCFG (Residual Classifier Free Guidance), Stream Batch -strategia, Stokastinen samankaltaisuuden suodatin, syöte-tulosteuraportti, mallin kiihdytys työkalut autoenkooderilla ja pre-laskenta menettely. Tutustumme näihin komponentteihin yksityiskohtaisemmin.

Stream Batch -strategia

Perinteisesti diffuusiomallien meloitusvaiheet suoritetaan sekvensoidusti, mikä johtaa merkittävään UNet-prosessoinnin ajan kasvuun suhteessa prosessointivaiheiden määrään. Kuitenkin on tärkeää lisätä prosessointivaiheiden määrää saavuttaakseen korkealaatuiset kuvat, ja StreamDiffusion-kehysjärjestelmä esittää Stream Batch -strategian ylittääkseen korkean viiveen ongelman interaktiivisissa diffuusiopipeline-kehysjärjestelmissä.

Stream Batch -strategiassa sekvensoidut meloitusoperaatiot muunnetaan batch-prosesseiksi, joissa kunkin batchin koko määrittää meloitusvaiheiden määrän. Kiitos tälle lähestymistavalle, kunkin batchin elementti voi edetä yhden askeleen eteenpäin yhdessä UNet-passthroughissa meloitusjärjestyksessä. Toteuttamalla Stream Batch -strategiaa iteratiivisesti, syötekuvat, jotka on koodattu aikataulussa “t”, voidaan muuttaa vastaaviin kuva-kuvatuloksiin aikataulussa “t+n”, sujuvoittaen meloitusprosessia.

Residual Classifier Free Guidance

CFG (Classifier Free Guidance) on tekoälyalgoritmi, joka suorittaa joukon vektorilaskelmia alkuperäisen ehtojen termin ja negatiivisen ehtojen termin välillä parantamaan alkuperäisen ehtojen vaikutusta. Algoritmi vahvistaa alkuperäisen ohjeen vaikutusta, vaikka negatiivisen ehtojen jäännösmeloitusta on laskettava yhdistämällä yksittäiset syötelatenttivaihtoehtoja negatiivisen ehtojen upotukseen ja ohjaamalla upotuksia UNetin kautta viiteajassa.

StreamDiffusion-kehysjärjestelmä esittää Residual Classifier Free Guidance -algoritmin vähentääkseen laskennallisia kustannuksia lisäksi UNet-häiriöille negatiivisen ehtojen upotukseen. Ensinnäkin koodattu syötelatenttivaihtoehto siirretään meloitusjakaumaan käyttäen arvoja, jotka on määritetty meloitussuunnitelman mukaan. Kun latenttinen johdonmukaisuusmalli on toteutettu, algoritmi voi ennustaa datan jakauman ja käyttää CFG-jäännösmeloitusta seuraavan meloitusjakauman generointiin.

Syöte-tulosteuraportti

Suorituskyvyn korkean kuvagenerointipipeline-ongelmana on sen neuroverkkomoduulit, mukaan lukien UNet- ja VAE-komponentit. Maksimoimaan tehokkuutta ja kokonaissuorituskykyä, kuvagenerointipipeline-kehysjärjestelmät siirtävät prosesseja, kuten kuvien esikäsittelyä ja jälkikäsittelyä, jotka eivät vaadi lisää käsittelyä neuroverkkomoduulien toimesta, pipeline-kehysjärjestelmän ulkopuolelle, minkä jälkeen ne käsitellään rinnakkain. Lisäksi syötekuvan käsittelyssä tiettyjä operaatioita, kuten tensorin muodonmuunnosta, syötekuvan koon muuttamista ja normalisointia, suoritetaan tarkkaan pipeline-kehysjärjestelmässä.

Pipeline-kehysjärjestelmä toteuttaa syöte-tulosteuraportin, joka mahdollistaa tehokkaan rinnakkaisuuden, kuten seuraavassa kuvassa näkyy.

Käsitellyt syötevektorit siirretään järjestyksessä diffuusiomalleille, ja kunkin kehysajan aikana malli hakee uusimman vektorin syötejonosta ja ohjaa vektorin VAE-kooderin, aloittaen kuvagenerointiprosessin. Samalla vektoritulostus VAE-dekooderista ohjataan tulosteuraporttiin. Lopulta käsitelty kuvadata siirretään rendering-asiakkaalle.

Stokastinen samankaltaisuuden suodatin

Tilanteissa, joissa kuvat ovat muuttumattomia tai muuttuvat vähän ilman staattista ympäristöä tai ilman aktiivista käyttäjän vuorovaikutusta, syötekuvat, jotka muistuttavat toisiaan, syötetään toistuvasti UNet- ja VAE-komponentteihin. Toistuva syöttäminen johtaa lähes identtisten kuvien generointiin ja lisääntyy GPU-resurssien kulutusta. Lisäksi tilanteissa, joissa on jatkuva syöttäminen, muuttamattomat syötekuvat voivat ilmestyä toisinaan. Ylittääkseen tämän ongelman ja välttääkseen tarpeettoman resurssien käytön, StreamDiffusion-pipeline toteuttaa stokastisen samankaltaisuuden suodattimen komponentin pipeline-kehysjärjestelmässään. Stokastinen samankaltaisuuden suodatin laskee kosinin samankaltaisuuden referenssikuvan ja syötekuvan välillä ja käyttää samankaltaisuuspisteytystä laskemaan todennäköisyyden ohittaa seuraavat UNet- ja VAE-prosessit.

Todennäköisyyden perusteella pipeline-kehysjärjestelmä päättää, tulisiko seuraavat prosessit, kuten VAE-koodaus, VAE-dekoodaus ja UNet, ohittaa vai eivät. Jos nämä prosessit eivät ohiteta, pipeline-kehysjärjestelmä tallentaa syötekuvan kyseisellä ajalla ja päivittää referenssikuvaa, jota käytetään tulevaisuudessa. Tämä todennäköisyyspohjainen ohittamismekanismi mahdollistaa StreamDiffusion-pipeline-kehysjärjestelmän toimia dynaamisissa tilanteissa matalalla kehyskohtaisella samankaltaisuudella, kun taas staattisissa tilanteissa pipeline-kehysjärjestelmä toimii suuremmalla kehyskohtaisella samankaltaisuudella. Tämä lähestymistapa auttaa säästämään laskennallisia resursseja ja varmistaa optimaalisen GPU-käytön syötekuvien samankaltaisuuden perusteella.

Pre-laskenta

UNet-arkkitehtuuri tarvitsee sekä ehtojen upotuksia että syötelatenttivaihtoehtoja. Perinteisesti ehtojen upotuksia johdetaan ohjeupotuksista, jotka pysyvät vakaina kehyskohtaisesti. Optimoidakseen ohjeupotusten johdantaa StreamDiffusion-pipeline laskee etukäteen nämä ohjeupotuksia ja tallentaa ne välimuistiin, jotka voidaan kutsua suoratoistoon tai interaktiivisessa tilassa. UNet-kehysjärjestelmässä avain-arvo -pari lasketaan kunkin kehysajan perusteella etukäteen laskettua ohjeupotusta, ja UNet-kehysjärjestelmän pienin muutoksin nämä avain-arvo -parit voidaan uudelleenkäyttää.

Mallin kiihdytys ja Tiny AutoEncoder

StreamDiffusion-pipeline käyttää TensorRT:ia, Nvidian optimointityökalua syvän oppimisen liittymille, rakentamaan VAE- ja UNet-moottoreita, kiihdyttääkseen inference-nopeutta. Tämän saavuttamiseksi TensorRT-suorittaa useita optimointeja neuroverkoissa, jotka on suunniteltu lisäämään tehokkuutta ja parantamaan läpäisyä syvän oppimisen sovelluksissa.

StreamDiffusion-pipeline määrittää kehysjärjestelmän käyttämään kiinteitä syötedimensioita ja staattisia batch-kokoja varmistaakseen optimaalisen muistin sijoittelun ja laskennalliset graafit tietyn syötteen koon mukaan pyrkien saavuttamaan nopeamman prosessoinnin.

Yllä oleva kuva antaa yleiskatsauksen inference-pipeline-kehysjärjestelmästä. Diffuusiopipeline-kehysjärjestelmän ydin sisältää UNet- ja VAE-komponentit. Pipeline-kehysjärjestelmä sisältää meloitusbatchin, näytteen meloitusvälimuistin, etukäteen laskettujen ohjeupotusten välimuistin ja aikataulun arvojen välimuistin parantamaan nopeutta ja pipeline-kehysjärjestelmän kykyä generoida kuvia reaaliajassa. Stokastinen samankaltaisuuden suodatin on käytössä optimoidaakseen GPU-käytön ja dynaamisesti ohjaamaan diffuusiomallin prosessia.

StreamDiffusion: Kokeet ja tulokset

Arvioidakseen kykynsä StreamDiffusion-pipeline on toteutettu LCM- ja SD-turbo-kehysjärjestelmissä. TensorRT Nvidialla on käytetty mallin kiihdyttimeksi, ja TAESD-komponentti on käytössä mahdollistaakseen kevyen tehokkuuden. Tutustumme nyt, miten StreamDiffusion-pipeline suoriutuu verrattuna nykyisiin kehysjärjestelmiin.

Määrällinen arviointi

Seuraava kuva osoittaa tehokkuusvertailun alkuperäisen sekvensoidun UNet- ja denoising-batch-komponenttien välillä pipeline-kehysjärjestelmässä, ja nähdään, että denoising-batch-lähestymistapan käyttäminen vähentää prosessointiaikaa merkittävästi, noin 50 %, verrattuna perinteisiin UNet-silmukoihin sekvensoiduissa meloitusvaiheissa.

Lisäksi keskimääräinen inference-aika eri meloitusvaiheissa näyttää merkittävän kiihdytyksen eri nopeuskertoimilla verrattuna nykyisiin kehysjärjestelmiin, ja tulokset on esitetty seuraavassa kuvassa.

StreamDiffusion-pipeline RCFG-komponentin kanssa osoittaa vähemmän inference-aikaa verrattuna pipeline-kehysjärjestelmiin, jotka sisältävät perinteisen CFG-komponentin.

Lisäksi RCFG-komponentin vaikutus on nähtävissä seuraavissa kuvissa verrattuna CFG-komponenttiin.

Nähdään, että CFG korostaa teksti-ohjeen vaikutusta kuvageneroinnissa, ja kuva muistuttaa syöte-ohjeita enemmän verrattuna kuviin, jotka on generoitu ilman CFG-komponenttia. Tulokset paranevat edelleen RCFG-komponentin käytössä, ja ohjeiden vaikutus generoituissa kuvissa on merkittävä verrattuna alkuperäiseen CFG-komponenttiin.

Lopputulet

Tässä artikkelissa olemme tarkastelleet StreamDiffusionia, reaaliaikaisen diffuusioputken kehittämistä interaktiivisten ja realististen kuvien generointiin, ja pohtimme nykyisten diffuusiopohjaisien kehyksen rajoituksia tehtävissä, jotka vaativat jatkuvaa syötettä. StreamDiffusion on yksinkertainen ja uudenaikainen lähestymistapa, joka pyrkii muuttaa alkuperäisen kuvan sekvensoidun meloitukseen batch-meloitukseksi. StreamDiffusion pyrkii mahdollistamaan korkean läpäisyn ja virtauksellisen toiminnan poistamalla perinteisen odota-ja-vuorovaikuta-lähestymistavan, jota nykyiset diffuusiopohjaiset kehykset käyttävät. Potentiaaliset tehokkuusvoitot korostavat StreamDiffusion-pipeline-kehysjärjestelmän potentiaalia kaupallisiin sovelluksiin, jotka tarjoavat suorituskykyisen laskennan ja houkuttelevat ratkaisuja generatiiviselle tekoälylle.

Ammattina insinööri, sydämen vuoksi kirjailija. Kunal on tekninen kirjailija, jolla on syvä rakkaus ja ymmärrys AI: sta ja ML: stä, omistautunut yksinkertaistamaan monimutkaisia käsitteitä näissä aloissa hänen viihdyttävän ja informatiivisen dokumentaationsa kautta.