Conectează-te cu noi

Inteligența artificială

StreamDiffusion: O soluție la nivel de conductă pentru generarea interactivă în timp real

mm
StreamDiffusion: O soluție la nivel de conductă pentru generarea interactivă în timp real

Datorită potențialului său vast și oportunităților de comercializare, în special în jocuri, difuzare și streaming video, Metaverse este în prezent una dintre tehnologiile cu cea mai rapidă creștere. Aplicațiile moderne Metaverse utilizează cadre AI, inclusiv modele de viziune computerizată și difuzie, pentru a-și spori realismul. O provocare semnificativă pentru aplicațiile Metaverse este integrarea diferitelor conducte de difuzie care oferă o latență scăzută și un randament ridicat, asigurând o interacțiune eficientă între oameni și aceste aplicații.

Cadrele de inteligență artificială bazate pe difuzie de astăzi excelează în crearea de imagini din instrucțiuni textuale sau de imagine, dar nu sunt puține în interacțiunile în timp real. Această limitare este evidentă în special în sarcinile care necesită intrare continuă și debit mare, cum ar fi grafica pentru jocuri video, aplicațiile Metaverse, difuzarea și streamingul video în direct.

În acest articol, vom discuta despre StreamDiffusion, o conductă de difuzie în timp real dezvoltată pentru a genera imagini interactive și realiste, abordând limitările actuale ale cadrelor bazate pe difuzie în sarcinile care implică intrare continuă. StreamDiffusion este o abordare inovatoare care transformă zgomotul secvenţial al imaginii originale în dezgomot lot, cu scopul de a permite fluxuri fluide şi de debit mare. Această abordare se îndepărtează de metoda tradițională de așteptare și interacțiune folosită de existent cadre bazate pe difuzie. În secțiunile următoare, vom aprofunda în detaliu cadrul StreamDiffusion, explorând funcționarea, arhitectura și rezultatele comparative ale acestuia cu cadrele actuale de ultimă generație. Să începem.

StreamDiffusion: o introducere în generarea interactivă în timp real

Metaverse sunt aplicații care necesită multă performanță, deoarece procesează o cantitate mare de date, inclusiv texte, animații, videoclipuri și imagini în timp real, pentru a oferi utilizatorilor săi interfețe interactive și experiență. Aplicațiile moderne Metaverse se bazează pe cadre bazate pe inteligență artificială, inclusiv modele de viziune computerizată, procesare a imaginilor și difuzie, pentru a obține o latență scăzută și un randament ridicat pentru a asigura o experiență perfectă pentru utilizator. În prezent, majoritatea aplicațiilor Metaverse se bazează pe reducerea apariției iterațiilor de dezgomot pentru a asigura un randament ridicat și pentru a îmbunătăți capacitățile interactive ale aplicației în timp real. Aceste cadre optează pentru o strategie comună care fie implică reîncadrarea procesului de difuzie cu ODE-uri neuronale (Ecuații diferențiale ordinare) sau reducerea modelelor de difuzie în mai multe etape în câțiva pași sau chiar într-un singur pas. Deși abordarea oferă rezultate satisfăcătoare, are anumite limitări, inclusiv flexibilitate limitată și costuri de calcul ridicate. 

Pe de altă parte, StreamDiffusion este o soluție la nivel de conductă care pornește de la o direcție ortogonală și îmbunătățește capacitățile cadrului de a genera imagini interactive în timp real, asigurând în același timp un randament ridicat. StreamDiffusion folosește o strategie simplă în care, în loc să elimine zgomotul intrării inițiale, cadrul grupează pasul de zgomot. Strategia se inspiră din procesarea asincronă, deoarece cadrul nu trebuie să aștepte finalizarea primei etape de dezgomot înainte de a putea trece la a doua etapă, așa cum se demonstrează în imaginea următoare. Pentru a aborda problema frecvenței de procesare U-Net și a frecvenței de intrare în mod sincron, cadrul StreamDiffusion implementează o strategie de coadă pentru a stoca în cache intrările și ieșirile. 

Deși conducta StreamDiffusion caută inspirație din procesarea asincronă, este unică în felul său, deoarece implementează paralelismul GPU care permite cadrului să utilizeze o singură componentă UNet pentru a elimina zgomotul unei caracteristici latente de zgomot în lot. În plus, existentă conducte bazate pe difuzie accentuați pe solicitările date în imaginile generate prin încorporarea ghidării fără clasificator, ca urmare a faptului că conductele actuale sunt manipulate cu cheltuieli de calcul redundante și excesive. Pentru a se asigura că conducta StreamDiffusion nu se confruntă cu aceleași probleme, implementează o abordare inovatoare RCFG sau Residual Classifier-Free Guidance care utilizează un zgomot rezidual virtual pentru a aproxima condițiile negative, permițând astfel cadrului să calculeze condițiile negative de zgomot la început. etapele procesului în sine. În plus, conducta StreamDiffusion reduce, de asemenea, cerințele de calcul ale unei conducte de difuzie tradiționale prin implementarea unei strategii de filtrare a similitudinii stocastice care determină dacă conducta ar trebui să proceseze imaginile de intrare prin calculul asemănărilor dintre intrările continue. 

Cadrul StreamDiffusion este construit pe baza învățării modele de difuzie și modele de difuzie de accelerație

Modelele de difuzie sunt cunoscute pentru capacitățile lor excepționale de generare de imagini și pentru cantitatea de control pe care o oferă. Datorită capacităților lor, modelele de difuzie și-au găsit aplicații în editarea imaginilor, generarea text la imagine și generarea video. Mai mult, dezvoltarea unor modele consistente a demonstrat potențialul de a îmbunătăți eficiența procesării probei fără a compromite calitatea imaginilor generate de modelul care a deschis noi uși pentru a extinde aplicabilitatea și eficiența modelelor de difuzie prin reducerea numărului de pași de eșantionare. Deși extrem de capabile, modelele de difuzie tind să aibă o limitare majoră: generarea lentă a imaginii. Pentru a aborda această limitare, dezvoltatorii au introdus modele de difuzie accelerată, cadre bazate pe difuzie care nu necesită pași suplimentari de antrenament sau implementează strategii de predictor-corector și soluții adaptative de dimensiune a pasului pentru a crește vitezele de ieșire. 

Factorul distinctiv dintre StreamDiffusion și cadrele tradiționale bazate pe difuzie este că, în timp ce cel din urmă se concentrează în primul rând pe latența scăzută a modelelor individuale, primul introduce o abordare la nivel de conductă concepută pentru a obține debite mari care să permită difuzarea interactivă eficientă. 

StreamDiffusion: lucru și arhitectură

Conducta StreamDiffusion este o conductă de difuzie în timp real dezvoltată pentru generarea de imagini interactive și realiste și folosește 6 componente cheie și anume: RCFG sau Residual Classifier Free Guidance, Strategia Stream Batch, Stochastic Similarity Filter, o coadă de intrare-ieșire, instrumente de accelerare a modelului cu autoencoder și o procedură de pre-calculare. Să vorbim despre aceste componente în detaliu. 

Strategie de Stream Batch

În mod tradițional, etapele de dezgomot din a model de difuzie sunt efectuate secvenţial, rezultând o creştere semnificativă a timpului de procesare U-Net până la numărul de paşi de procesare. Cu toate acestea, este esențial să creșteți numărul de pași de procesare pentru a genera imagini de înaltă fidelitate, iar cadrul StreamDiffusion introduce strategia Stream Batch pentru a depăși rezoluția cu latență ridicată în cadrele de difuzie interactive. 

În strategia Stream Batch, operațiunile secvenţiale de eliminare a zgomotului sunt restructurate în procese în loturi, fiecare lot corespunzând unui număr predeterminat de etape de zgomotizare, iar numărul acestor paşi de zgomot este determinat de mărimea fiecărui lot. Datorită abordării, fiecare element din lot poate continua cu un pas mai departe utilizând unic trecere UNet în secvența de dezgomot. Prin implementarea iterativă a strategiei stream batch, imaginile de intrare codificate la pasul de timp „t” pot fi transformate în imaginea lor respectivă în rezultatele imaginii la pasul de timp „t+n”, simplificând astfel procesul de dezgomot. 

Ghid gratuit pentru clasificatorul rezidual

CFG sau Clasifier Free Guidance este un algoritm AI care efectuează o serie de calcule vectoriale între termenul de condiționare original și un termen de condiționare negativ sau de necondiționare pentru a îmbunătăți efectul condiționării originale. Algoritmul întărește efectul promptului, chiar dacă pentru a calcula zgomotul rezidual de condiționare negativă, este necesar să se împerecheze variabilele latente de intrare individuale cu încorporarea condiționării negative, urmată de trecerea înglobărilor prin UNet la momentul de referință. 

Pentru a aborda această problemă prezentată de algoritmul Clasifier Free Guidance, cadrul StreamDiffusion introduce algoritmul Residual Classifier Free Guidance cu scopul de a reduce costurile de calcul pentru interferența suplimentară UNet pentru încorporarea condiționării negative. În primul rând, intrarea latentă codificată este transferată la distribuția zgomotului utilizând valori determinate de planificatorul de zgomot. Odată ce modelul de consistență latentă a fost implementat, algoritmul poate prezice distribuția datelor și poate utiliza zgomotul rezidual CFG pentru a genera următoarea distribuție a zgomotului. 

Coada de intrare ieșire

Problema majoră cu cadrele de generare de imagini de mare viteză sunt modulele lor de rețea neuronală, inclusiv componentele UNet și VAE. Pentru a maximiza eficiența și viteza totală de ieșire, cadrele de generare a imaginilor mută procese precum imaginile pre și post-procesare care nu necesită manipulare suplimentară de către modulele rețelei neuronale în afara conductei, după care sunt procesate în paralel. În plus, în ceea ce privește gestionarea imaginii de intrare, operațiunile specifice, inclusiv conversia formatului tensor, redimensionarea imaginilor de intrare și normalizarea sunt executate de conductă cu meticulozitate. 

Pentru a aborda diferența în frecvențele de procesare dintre debitul modelului și intrarea umană, conducta integrează un sistem de așteptare a intrărilor-ieșiri care permite paralelizarea eficientă, așa cum este demonstrat în imaginea următoare. 

Tensorii de intrare procesați sunt mai întâi plasați în coadă metodic pentru modelele de difuzie, iar în timpul fiecărui cadru, modelul preia cel mai recent tensor din coada de intrare și transmite tensorul la codificatorul VAE, inițiind astfel procesul de generare a imaginii. În același timp, ieșirea tensorului de la decodorul VAE este introdusă în coada de ieșire. În cele din urmă, datele de imagine procesate sunt transmise clientului de randare. 

Filtrul de similaritate stocastică

În scenariile în care imaginile fie rămân neschimbate, fie prezintă modificări minime fără un mediu static sau fără interacțiune activă a utilizatorului, imaginile de intrare care se aseamănă între ele sunt introduse în mod repetat în componentele UNet și VAE. Alimentarea repetată duce la generarea de imagini aproape identice și la un consum suplimentar de resurse GPU. În plus, în scenariile care implică intrări continue, imaginile de intrare nemodificate pot apărea ocazional. Pentru a depăși această problemă și a preveni utilizarea inutilă a resurselor, conducta StreamDiffusion folosește o componentă Stochastic Similarity Filter în conducta sa. Filtrul de similaritate stocastică calculează mai întâi asemănarea cosinusului dintre imaginea de referință și imaginea de intrare și utilizează scorul de asemănare cosinus pentru a calcula probabilitatea de a omite procesele UNet și VAE ulterioare. 

Pe baza scorului de probabilitate, conducta decide dacă procesele ulterioare precum Codificarea VAE, Decodarea VAE și U-Net ar trebui să fie sau nu. Dacă aceste procese nu sunt omise, conducta salvează imaginea de intrare în acel moment și actualizează simultan imaginea de referință pentru a fi utilizată în viitor. Acest mecanism de omitere bazat pe probabilitate permite conductei StreamDiffusion să funcționeze pe deplin în scenarii dinamice cu similitudini scăzute între cadre, în timp ce în scenariile statice, conducta funcționează cu o similaritate mai mare între cadre. Abordarea ajută la conservarea resurselor de calcul și asigură, de asemenea, utilizarea optimă a GPU-ului pe baza asemănării imaginilor de intrare. 

Precalculare

Arhitectura UNet are nevoie atât de încorporare de condiționare, cât și de variabile latente de intrare. În mod tradițional, înglobările de condiționare sunt derivate din înglobări prompte care rămân constante în cadrul cadrelor. Pentru a optimiza derivarea din încorporarea promptului, conducta StreamDiffusion a precalculat aceste încorporari prompte și le stochează într-un cache, care sunt apoi apelate în flux sau în modul interactiv. În cadrul UNet, perechea cheie-valoare este calculată pe baza încorporarii prompte precalculate a fiecărui cadru și, cu mici modificări în U-Net, aceste perechi cheie-valoare pot fi reutilizate. 

Accelerația modelului și codificatorul automat mic

Conducta StreamDiffusion folosește TensorRT, un set de instrumente de optimizare de la Nvidia pentru interfețe de învățare profundă, pentru a construi motoarele VAE și UNet, pentru a accelera viteza de inferență. Pentru a realiza acest lucru, componenta TensorRT efectuează numeroase optimizări pe rețelele neuronale, care sunt concepute pentru a crește eficiența și a îmbunătăți debitul pentru cadrele și aplicațiile de deep learning. 

Pentru a optimiza viteza, StreamDiffusion configurează cadrul pentru a utiliza dimensiuni de intrare fixe și dimensiuni de lot statice pentru a asigura alocarea optimă a memoriei și grafice de calcul pentru o anumită dimensiune de intrare, în încercarea de a obține timpi de procesare mai rapidi. 

Figura de mai sus oferă o imagine de ansamblu asupra conductei de inferență. Conducta de difuzie centrală găzduiește componentele UNet și VAE. Conducta încorporează un lot de eliminare a zgomotului, cache de zgomot eșantionat, cache de încorporare a promptului precalculat și cache de valori ale planificatorului pentru a îmbunătăți viteza și capacitatea conductei de a genera imagini în timp real. Filtrul de similaritate stocastică sau SSF este implementat pentru a optimiza utilizarea GPU-ului și, de asemenea, pentru a opri trecerea modelului de difuzie în mod dinamic. 

StreamDiffusion: experimente și rezultate

Pentru a-și evalua capacitățile, conducta StreamDiffusion este implementată pe cadre LCM și SD-turbo. TensorRT de la NVIDIA este folosit ca accelerator de model, iar pentru a permite VAE eficiență ușoară, conducta utilizează componenta TAESD. Să aruncăm acum o privire la modul în care funcționează conducta StreamDiffusion în comparație cu cadrele actuale de ultimă generație. 

Evaluare cantitativă

Următoarea figură demonstrează comparația eficienței dintre UNet secvenţial original și componentele lotului de dezgomot din conductă și, după cum se poate observa, implementarea abordării lotului de dezgomot ajută la reducerea semnificativă a timpului de procesare cu aproape 50% în comparație cu UNet tradițional. bucle la pași secvențiali de dezgomot. 

În plus, timpul mediu de inferență la diferiți pași de eliminare a zgomotului este, de asemenea, martor la o creștere substanțială cu diferiți factori de accelerare în comparație cu conductele actuale de ultimă generație, iar rezultatele sunt demonstrate în imaginea următoare. 

Mergând de-a lungul, conducta StreamDiffusion cu componenta RCFG demonstrează un timp de inferență mai mic în comparație cu conductele, inclusiv componenta tradițională CFG. 

În plus, impactul utilizării componentei RCFG este evident în imaginile următoare în comparație cu utilizarea componentei CFG.

După cum se poate observa, utilizarea CFG intensifică impactul promptului textual în generarea imaginii, iar imaginea seamănă mult mai mult cu prompturile de intrare în comparație cu imaginile generate de conductă fără a utiliza componenta CFG. Rezultatele se îmbunătățesc în continuare cu utilizarea componentei RCFG, deoarece influența prompturilor asupra imaginilor generate este destul de semnificativă în comparație cu componenta CFG originală. 

Gânduri finale

În acest articol, am vorbit despre StreamDiffusion,  o conductă de difuzare în timp real dezvoltată pentru a genera imagini interactive și realiste și pentru a aborda limitările actuale impuse de cadrele bazate pe difuzie pentru sarcini care implică intrare continuă. StreamDiffusion este o abordare simplă și nouă, care își propune să transforme zgomotul secvențial al imaginii originale în dezgomot lot. StreamDiffusion își propune să permită fluxuri fluide și de debit ridicat, eliminând abordarea tradițională de așteptare și interacțiune optată de cadrele actuale bazate pe difuzie. Creșterile potențiale de eficiență evidențiază potențialul conductei StreamDiffusion pentru aplicații comerciale care oferă calcul de înaltă performanță și soluții convingătoare pentru IA generativă. 

„Un inginer de profesie, un scriitor pe de rost”. Kunal este un scriitor tehnic cu o dragoste și o înțelegere profundă a AI și ML, dedicat simplificării conceptelor complexe din aceste domenii prin documentația sa captivantă și informativă.