paint-brush
Accelerazione dei modelli di diffusione con TheStage AI: uno studio di caso dei modelli 20B e Red Panda di Recraftdi@thestage
3,954 letture
3,954 letture

Accelerazione dei modelli di diffusione con TheStage AI: uno studio di caso dei modelli 20B e Red Panda di Recraft

di TheStage AI7m2024/11/26
Read on Terminal Reader

Troppo lungo; Leggere

Questo articolo esplora l'accelerazione dei modelli di diffusione testo-immagine di Recraft utilizzando gli strumenti Python di TheStage AI. Esaminiamo le sfide dell'ottimizzazione dei modelli proprietari e dello sviluppo di pipeline efficienti per l'ottimizzazione dell'inferenza PyTorch.
featured image - Accelerazione dei modelli di diffusione con TheStage AI: uno studio di caso dei modelli 20B e Red Panda di Recraft
TheStage AI HackerNoon profile picture
0-item
1-item


Recraft AI è uno strumento di progettazione basato su modelli di diffusione proprietari. Il loro nuovo modello Red Panda supera tutti i modelli testo-immagine esistenti, tra cui Midjourney, DALL-E 3, FLUX. Recraft combina un'esperienza utente unica per i designer con strumenti di intelligenza artificiale all'avanguardia. Per supportare milioni di utenti, i modelli di diffusione richiedono un'infrastruttura di inferenza solida, che unisce hardware potente con software efficiente. In questo articolo, esploreremo come gli strumenti di accelerazione AI di TheStage hanno aiutato gli ingegneri e i ricercatori di intelligenza artificiale di Recraft a ottenere prestazioni fino a 2 volte superiori sulle GPU Nvidia tramite un'interfaccia Python intuitiva!

Introduzione

I modelli di diffusione hanno mostrato risultati straordinari negli ultimi anni per la generazione di contenuti, tra cui immagini, musica, video e mesh 3D. Questi modelli utilizzano i costi di calcolo del tempo di inferenza per migliorare iterativamente i risultati di generazione, aggiornando leggermente l'output a ogni fase di inferenza. Ora possiamo vedere l'analogia negli LLM che utilizzano il ragionamento tramite inferenza multi-fase per fornire risposte di alta qualità.


In TheStage AI stiamo creando un framework matematico generale per modelli PyTorch arbitrari per gestire in modo completamente automatico il flusso di accelerazione del modello complicato. Il nostro sistema rileva automaticamente le ottimizzazioni esistenti sul tuo hardware (quantizzazione, sparsificazione) e seleziona per ogni livello l'algoritmo appropriato per ottenere la migliore qualità con una dimensione del modello desiderata e vincoli di latenza o trovare la migliore accelerazione con vincoli di qualità limitati. È un problema matematico difficile che possiamo risolvere in modo altamente efficiente! Questo articolo esplora come applichiamo questi strumenti attraverso la nostra partnership con Recraft AI.


Nella progettazione dei nostri strumenti abbiamo deciso di rispettare i seguenti principi:


  • Personalizzazione hardware. I prodotti AI di alta qualità hanno già la loro infrastruttura preferita
  • Preservazione della qualità. I prodotti AI di alta qualità non possono accettare il degrado della qualità
  • Privacy. I prodotti AI di alta qualità vogliono mantenere riservate le loro tecnologie e lavorare con strumenti sulla propria infrastruttura
  • DNN arbitrari. I prodotti di intelligenza artificiale di alta qualità possono utilizzare architetture sviluppate internamente, laddove gli strumenti di accelerazione pubblici per modelli open source non riescono a gestire architetture DNN complesse per produrre output corretti.
  • Pytorch. Il framework più popolare e comodo per molti ingegneri di intelligenza artificiale.


Date queste condizioni iniziali, abbiamo mirato a creare strumenti con le seguenti caratteristiche:


  • Accelerazione controllabile. Inquadriamo l'ottimizzazione dell'inferenza come un problema di ottimizzazione aziendale, consentendo ai clienti di specificare le dimensioni del modello, la latenza o la qualità desiderate per i loro dati.
  • Compilazione semplice. La compilazione dei modelli prodotti per un'esecuzione hardware efficiente richiede solo una singola riga di codice. Forniamo anche un'interfaccia semplice per gestire le interruzioni del grafico.
  • Avvio a freddo rapido. Per ottenere l'avvio a freddo più rapido possibile, abilitiamo il salvataggio dei modelli compilati. Ecco perché non utilizziamo compilatori JIT.
  • Distribuzione semplice. La distribuzione del modello ottimizzato dovrebbe essere semplice quanto la distribuzione di quello originale.


Modelli di diffusione testo-immagine

Visualizzazione semplice del processo di diffusione del rumore.


In ogni iterazione del processo di diffusione, una rete neurale elimina il rumore dall'immagine nello spazio latente di un Variational AutoEncoder. L'immagine appena ottenuta viene quindi nuovamente mescolata al rumore, ma con un peso progressivamente inferiore. Durante le iterazioni iniziali, il modello di diffusione abbozza la scena principale, sfruttando il peso significativo del rumore per apportare miglioramenti sostanziali. Nelle iterazioni successive, affina i dettagli ad alta frequenza. Questa osservazione ci consente di progettare pipeline di accelerazione specifiche assegnando strategicamente la capacità di rete tra i livelli da un'iterazione all'altra, preservando la qualità. Tuttavia, tale allocazione richiede strumenti specializzati che combinano intuizioni matematiche con l'ingegneria del suono: è qui che TheStage AI può aiutare in modo significativo!


Quando osserviamo le nuvole, concentrandoci su forme specifiche, la nostra mente può discernere forme casuali che assomigliano ai nostri pensieri. Questo fenomeno illustra come il nostro cervello identifica schemi nel rumore, trovando elementi che si allineano con il nostro contesto mentale. Allo stesso modo, i modelli di diffusione impiegano questo concetto durante la loro iterazione iniziale, selezionando schemi dal rumore per creare uno schizzo preliminare dell'immagine desiderata.


Modelli di diffusione Accelerazione e compressione

I modelli di diffusione accelerati possono essere visti come l'accelerazione di DNN arbitrari, ma dobbiamo tenere conto di sfide specifiche. Ad esempio, la quantizzazione statica, che in genere fornisce un'accelerazione significativa, introduce una sfida nei modelli di diffusione poiché le distribuzioni di attivazione cambiano da un'iterazione all'altra. Per risolvere questo problema, dobbiamo stimare correttamente i valori ottimali per tutte le iterazioni o utilizzare diverse configurazioni di quantizzazione per ogni iterazione.


I modelli di diffusione sono difficili da addestrare e raggiungere alte prestazioni. Tuttavia, i risultati dimostrati dal team Recraft superano tutti i moderni modelli testo-immagine . La convalida del degrado di tali modelli può essere difficile, rendendo fondamentale l'uso di tecniche di accelerazione che preservino la semantica delle caratteristiche originali. Gli algoritmi di quantizzazione possono essere una buona scelta se riescono a gestire la sfida delle diverse distribuzioni di attivazione. Diamo un'occhiata alle nostre pipeline automatiche, che descriveremo nelle sezioni seguenti.

Profilazione

Profilare un dato modello con dati specifici consente di:


  • Determinare la dimensione di ciascun parametro
  • Identificare gli algoritmi di quantizzazione, sparsificazione e potatura applicabili per ogni blocco di base
  • Stima della latenza per singoli blocchi con diversi layout di memoria
  • Compilare tutte le informazioni raccolte per ANNA (Automated NNs Accelerator)

Compressione e accelerazione automatica

Dopo che il profiler ha raccolto tutti i dati necessari, possiamo avviare la nostra scheda ANNA e spostare il cursore per produrre diverse versioni ottimizzate del modello. I nostri utenti possono quindi selezionare i candidati migliori in base al compromesso tra qualità e costo di inferenza. I nostri strumenti gestiscono queste decisioni soggettive sulla qualità in modo semplice.


TheStage AI ANNA. Sposta il cursore per regolare le dimensioni del modello o la latenza con il minimo degrado della qualità!

Operazioni di fusione e compilazione

Come accennato in precedenza, non utilizziamo la compilazione JIT perché aumenta il tempo di avvio a freddo di un nuovo nodo. Inoltre, non utilizziamo compilatori standard. Invece, compiliamo la nostra complessa configurazione accelerata che può combinare algoritmi diversi. Per raggiungere questo obiettivo, abbiamo sviluppato il nostro protocollo interno per definire livelli accelerati DNN in modo indipendente dall'hardware. Uno dei principali vantaggi del framework di accelerazione AI TheStage è che un singolo checkpoint può essere compilato per un'ampia gamma di hardware, risolvendo la compatibilità multipiattaforma per il software AI. Questa funzionalità sarà particolarmente importante per l'implementazione di dispositivi edge nello sviluppo di applicazioni.


Gli obiettivi dei compilatori DNN sono:


  • Semplificazione del grafico. Semplifica il grafico di esecuzione tramite la fusione delle operazioni matematiche, riducendo il tempo di inferenza
  • Gestione della memoria. Calcola la memoria richiesta per ogni operazione e gestisci la pianificazione dell'allocazione con un riutilizzo efficiente della memoria
  • Implementazione ottimale. Profilare l'implementazione ottimale per ogni operazione di base, un compito impegnativo, poiché la migliore implementazione potrebbe richiedere layout di memoria specifici, che portano all'analisi delle connessioni interstrato
  • Pianificazione delle operazioni. Crea una pianificazione delle operazioni per il grafico di esecuzione ottimizzato
  • Serializzazione. Salva tutte queste informazioni per evitare di ricompilare il modello nelle esecuzioni successive


Le operazioni sequenziali possono essere combinate in un kernel fuso. Invece di copiare l'output della prima operazione nella memoria globale, il kernel fuso valuta la seconda operazione direttamente nel registro della memoria locale. Ciò velocizza notevolmente l'inferenza perché i trasferimenti di memoria spesso richiedono più tempo dei calcoli effettivi. Tuttavia, non tutte le sequenze di operazioni possono essere fuse, alcune sono completamente incompatibili con la fusione. Per le operazioni element-wise, i kernel fusi possono essere generati automaticamente. Lo strumento NVFuser di Nvidia, ad esempio, può generare kernel per qualsiasi sequenza di operazioni element-wise.

Distribuzione e servizio

I server di inferenza e le pipeline di auto-scaling svolgono un ruolo importante nell'elaborazione economica ed efficiente delle richieste in arrivo. Possono anche includere il raggruppamento di richieste specifiche e la raccolta di statistiche per impostare il ridimensionamento predittivo per gli auto-scaler. Nei nostri articoli futuri, discuteremo più in dettaglio dei server di inferenza efficienti!

Risultati

Applicando tutta la pipeline possiamo ottenere prestazioni migliori del compilatore PyTorch ( torch.compile ) e ovviamente significativamente migliori dell'esecuzione PyTorch Eager float16. Inoltre, poiché il compilatore PyTorch utilizza l'approccio di compilazione JIT su ogni inizializzazione del modello, richiede la ricompilazione per molte dimensioni di input, il che rende l'avvio a freddo abbastanza lungo per applicazioni pratiche in cui la latenza è molto importante.


Vantaggi aziendali

Ecco i principali vantaggi aziendali derivanti dall'accelerazione del prodotto Recraft:


  • Costi infrastrutturali inferiori servendo il doppio degli utenti con lo stesso hardware
  • Esperienza utente migliorata con tempi di risposta più rapidi nella generazione delle immagini
  • Capacità di servire più utenti contemporaneamente durante i picchi di carico
  • Vantaggio competitivo attraverso una consegna più rapida del servizio


Gli strumenti di ottimizzazione AI di TheStage ci consentono di accelerare i nostri modelli di conversione da testo a immagine senza comprometterne la qualità, creando un'esperienza utente migliore per i nostri clienti.


L'amministratore delegato di Recraft, Anna Veronika Dorogush

Ringraziamenti

Questi risultati forniscono un'eccellente convalida dei nostri strumenti e della ricerca sui prodotti di carichi di lavoro su larga scala. Il team di TheStage AI continua a lavorare per offrire prestazioni ancora maggiori. Per raggiungere questo obiettivo, stiamo collaborando con partner eccezionali! Siamo profondamente grati a:


  • Anna Veronika, CEO di Recraft, per la proficua collaborazione. Siamo entusiasti di essere anche solo una piccola parte del loro grande viaggio nel fornire i migliori strumenti di progettazione.
  • Pavel Ostyakov, responsabile dell'intelligenza artificiale di Recraft, per la sua competenza nelle reti neurali discrete, il suo prezioso feedback sugli strumenti e per aver definito obiettivi stimolanti per il nostro progetto di cooperazione.
  • Il team di Recraft AI per aver creato questo fantastico prodotto. Le immagini in questo articolo sono state generate con Recraft!
  • Il team Nebius per il costante supporto fornito con un'eccellente infrastruttura GPU per la nostra ricerca.

Contatti / Risorse

Sentiti libero di contattarci per qualsiasi domanda! Possiamo aiutarti a ridurre i costi dell'infrastruttura di inferenza!

La nostra email: [email protected]

Pagina principale di TheStage AI: thestage.ai

Piattaforma di ottimizzazione dell'inferenza AI TheStage: app.thestage.ai