paint-brush
Versnellen van diffusiemodellen met TheStage AI: Een case study van Recraft's 20B en Red Panda modellendoor@thestage
3,951 lezingen
3,951 lezingen

Versnellen van diffusiemodellen met TheStage AI: Een case study van Recraft's 20B en Red Panda modellen

door TheStage AI7m2024/11/26
Read on Terminal Reader

Te lang; Lezen

Dit artikel onderzoekt de versnelling van Recraft's tekst-naar-afbeelding diffusiemodellen met behulp van TheStage AI's Python-tools. We onderzoeken de uitdagingen van het optimaliseren van gepatenteerde modellen en het ontwikkelen van efficiënte pipelines voor PyTorch inferentie-optimalisatie.
featured image - Versnellen van diffusiemodellen met TheStage AI: 
Een case study van Recraft's 20B en Red Panda modellen
TheStage AI HackerNoon profile picture
0-item
1-item


Recraft AI is een ontwerptool die wordt aangestuurd door gepatenteerde diffusiemodellen. Hun nieuwe model Red Panda presteert beter dan alle bestaande tekst-naar-afbeeldingmodellen, waaronder Midjourney, DALL-E 3, FLUX. Recraft combineert een unieke gebruikerservaring voor ontwerpers met geavanceerde AI-tools. Om miljoenen gebruikers te ondersteunen, vereisen diffusiemodellen een robuuste inferentie-infrastructuur: krachtige hardware wordt samengevoegd met efficiënte software. In dit artikel onderzoeken we hoe TheStage AI-acceleratietools de AI-engineers en onderzoekers van Recraft hielpen om tot 2x betere prestaties te behalen op Nvidia GPU's via een intuïtieve Python-interface!

Invoering

Diffusiemodellen hebben de afgelopen jaren buitengewone resultaten laten zien voor contentgeneratie, waaronder afbeeldingen, muziek, video's en 3D-meshes. Deze modellen gebruiken inferentietijd-berekeningskosten om generatieresultaten iteratief te verbeteren, waarbij de uitvoer bij elke inferentiestap licht wordt bijgewerkt. We kunnen nu analogie zien in LLM's die redenering door middel van multistep inferentie gebruiken om een antwoord van hoge kwaliteit te bieden.


In TheStage AI bouwen we een algemeen wiskundig raamwerk voor willekeurige PyTorch-modellen om complexe modelversnellingsstromen volledig automatisch te verwerken. Ons systeem detecteert automatisch bestaande optimalisaties op uw hardware (kwantificering, sparsificatie) en selecteert voor elke laag het juiste algoritme om de beste kwaliteit te bereiken met een gewenste modelgrootte en latentiebeperkingen of om de beste versnelling te vinden met beperkte kwaliteitsbeperkingen. Het is een moeilijk wiskundig probleem dat we op een zeer efficiënte manier kunnen oplossen! Dit artikel onderzoekt hoe we deze tools toepassen via onze samenwerking met Recraft AI.


Bij het ontwerpen van onze tools hebben we ervoor gekozen om de volgende principes in acht te nemen:


  • Hardware-aanpassing. Hoogwaardige AI-producten hebben al hun voorkeursinfrastructuur
  • Kwaliteitsbehoud. Hoogwaardige AI-producten kunnen geen kwaliteitsverslechtering accepteren
  • Privacy. Hoogwaardige AI-producten willen hun technologieën vertrouwelijk houden en werken met tools op hun eigen infrastructuur
  • Willekeurige DNN's. Hoogwaardige AI-producten kunnen gebruikmaken van in-house ontwikkelde architecturen, terwijl openbare acceleratietools voor open-sourcemodellen complexe DNN-architecturen niet aankunnen om correcte outputs te produceren.
  • Pytorch. Het populairste en handigste framework voor veel AI-engineers.


Gegeven deze beginvoorwaarden wilden we hulpmiddelen creëren met de volgende kenmerken:


  • Controleerbare versnelling. Wij kaderen inferentie-optimalisatie als een bedrijfsoptimalisatieprobleem, waardoor klanten hun gewenste modelgrootte, latentie of kwaliteit voor hun data kunnen specificeren.
  • Eenvoudige compilatie. Het compileren van de geproduceerde modellen voor efficiënte hardware-uitvoering vereist slechts één regel code. We bieden ook een eenvoudige interface om grafiekbreuken te verwerken.
  • Snelle koude start. Om de snelste koude start mogelijk te maken, maken we het opslaan van gecompileerde modellen mogelijk. Daarom gebruiken we geen JIT-compilers.
  • Eenvoudige implementatie. Het implementeren van het geoptimaliseerde model zou net zo eenvoudig moeten zijn als het implementeren van het originele model.


Tekst-naar-afbeelding-diffusiemodellen

Denoising Diffusion-proces, eenvoudige visualisatie.


In elke iteratie van het diffusieproces verwijdert een neuraal netwerk ruis uit het beeld in de latente ruimte van een Variational AutoEncoder. Het nieuw verkregen beeld wordt vervolgens opnieuw gemengd met ruis, maar met steeds minder gewicht. Tijdens de eerste iteraties schetst het diffusiemodel de hoofdscène, waarbij het aanzienlijke ruisgewicht wordt benut om substantiële upgrades uit te voeren. In latere iteraties verfijnt het hoogfrequente details. Deze observatie stelt ons in staat om specifieke versnellingspijplijnen te ontwerpen door netwerkcapaciteit strategisch toe te wijzen over lagen van iteratie tot iteratie, waarbij de kwaliteit behouden blijft. Een dergelijke toewijzing vereist echter gespecialiseerde tools die wiskundige inzichten combineren met gedegen engineering — dit is waar TheStage AI aanzienlijk kan helpen!


Wanneer we naar wolken staren en ons op specifieke vormen richten, kan onze geest willekeurige vormen onderscheiden die lijken op onze gedachten. Dit fenomeen illustreert hoe onze hersenen patronen in ruis identificeren en elementen vinden die aansluiten bij onze mentale context. Op dezelfde manier gebruiken diffusiemodellen dit concept tijdens hun eerste iteratie, waarbij patronen uit ruis worden geselecteerd om een voorlopige schets van het gewenste beeld te maken.


Diffusiemodellen Versnelling en compressie

Versnellende diffusiemodellen kunnen worden gezien als het versnellen van willekeurige DNN's, maar we moeten rekening houden met specifieke uitdagingen. Statische kwantisering, die doorgaans aanzienlijke versnelling biedt, introduceert bijvoorbeeld een uitdaging in diffusiemodellen, aangezien activeringsdistributies van iteratie tot iteratie veranderen. Om dit aan te pakken, moeten we ofwel de optimale waarden voor alle iteraties correct schatten, ofwel verschillende kwantiseringsinstellingen gebruiken voor elke iteratie.


Diffusiemodellen zijn lastig te trainen en leveren hoge prestaties. Toch overtreffen de resultaten van het Recraft-team alle moderne tekst-naar-afbeeldingmodellen . Het valideren van de degradatie van dergelijke modellen kan lastig zijn, waardoor het cruciaal is om versnellingstechnieken te gebruiken die de originele feature-semantiek behouden. Kwantiseringsalgoritmen kunnen een goede keuze zijn als ze de uitdaging van variërende activeringsdistributies aankunnen. Laten we eens kijken naar onze automatische pipelines, die we in de volgende secties zullen beschrijven.

Profilering

Door een bepaald model te profileren met specifieke gegevens kunt u:


  • Bepaal de grootte van elke parameter
  • Identificeer toepasbare kwantificerings-, sparsificatie- en snoeialgoritmen voor elk basisblok
  • Schat de latentie voor individuele blokken met verschillende geheugenindelingen
  • Verzamel alle verzamelde informatie voor ANNA (Automated NNs Accelerator)

Automatische compressie en acceleratie

Nadat de profiler alle benodigde gegevens heeft verzameld, kunnen we ons ANNA-bord starten en de schuifregelaar verplaatsen om verschillende geoptimaliseerde modelversies te produceren. Onze gebruikers kunnen vervolgens de beste kandidaten selecteren op basis van de afweging tussen kwaliteit en inferentiekosten. Onze tools verwerken deze subjectieve kwaliteitsbeslissingen op een eenvoudige manier.


TheStage AI ANNA. Verplaats de schuifregelaar om de modelgrootte of latentie aan te passen met minimale kwaliteitsdegradatie!

Operationele fusie en compilatie

Zoals eerder vermeld, gebruiken we geen JIT-compilatie omdat het de koude starttijd van een nieuw knooppunt vergroot. We gebruiken ook geen kant-en-klare compilers. In plaats daarvan compileren we onze eigen complexe versnelde configuratie die verschillende algoritmen kan mixen. Om dit te bereiken, hebben we ons eigen interne protocol ontwikkeld om DNN-versnelde lagen op een hardware-agnostische manier te definiëren. Een van de belangrijkste voordelen van het TheStage AI-acceleratieframework is dat een enkel controlepunt kan worden gecompileerd voor een breed scala aan hardware, waardoor cross-platform compatibiliteit voor AI-software wordt opgelost. Deze functie zal met name belangrijk zijn voor de implementatie van edge-apparaten in applicatieontwikkeling.


De doelen van DNN-compilers zijn:


  • Grafiekvereenvoudiging. Vereenvoudig de uitvoeringsgrafiek door wiskundige bewerkingsfusie, waardoor de inferentietijd wordt verkort
  • Geheugenbeheer. Bereken het geheugen dat nodig is voor elke bewerking en beheer toewijzingsplanning met efficiënt geheugenhergebruik
  • Optimale implementatie. Profileer de optimale implementatie voor elke basisbewerking: een uitdagende taak, aangezien de beste implementatie specifieke geheugenindelingen kan vereisen, wat leidt tot analyse van interlayerverbindingen
  • Operationele planning. Maak een operationele planning voor de geoptimaliseerde uitvoeringsgrafiek
  • Serialisatie. Sla al deze informatie op om te voorkomen dat het model opnieuw moet worden gecompileerd in volgende runs.


Sequentiële bewerkingen kunnen worden gecombineerd in een gefuseerde kernel. In plaats van de uitvoer van de eerste bewerking naar het globale geheugen te kopiëren, evalueert de gefuseerde kernel de tweede bewerking rechtstreeks in het register van het lokale geheugen. Dit versnelt de inferentie aanzienlijk, omdat geheugenoverdrachten vaak langer duren dan de werkelijke berekeningen. Niet alle bewerkingssequenties kunnen echter worden gefuseerd: sommige zijn volledig onverenigbaar met fusie. Voor elementgewijze bewerkingen kunnen gefuseerde kernels automatisch worden gegenereerd. De NVFuser-tool van Nvidia kan bijvoorbeeld kernels genereren voor elke sequentie van elementgewijze bewerkingen.

Implementatie en bediening

Inference servers en auto-scaling pipelines spelen een belangrijke rol in kosteneffectieve en efficiënte verwerking van inkomende verzoeken. Het kan ook specifieke verzoekgroepering en statistiekenverzameling omvatten om voorspellende schaling voor auto-scalers in te stellen. In onze toekomstige artikelen zullen we efficiënte inference servers uitgebreider bespreken!

Resultaten

Door alle pipelines toe te passen kunnen we prestaties bereiken die beter zijn dan die van de Pytorch-compiler ( torch.compile ) en natuurlijk aanzienlijk beter dan float16 eager PyTorch-uitvoering. Bovendien vereist de PyTorch-compiler, omdat deze de JIT-compilatiebenadering gebruikt bij elke modelinitialisatie, hercompilatie voor veel invoergroottes, wat de koude start lang genoeg maakt voor praktische toepassingen waarbij latentie van groot belang is.


Zakelijke voordelen

Dit zijn de belangrijkste zakelijke voordelen van de resulterende versnelling voor het product van Recraft:


  • Lagere infrastructuurkosten door twee keer zoveel gebruikers te bedienen met dezelfde hardware
  • Verbeterde gebruikerservaring met snellere responstijden bij het genereren van afbeeldingen
  • Mogelijkheid om meer gelijktijdige gebruikers te bedienen tijdens piekbelastingen
  • Concurrentievoordeel door snellere dienstverlening


Met de AI-optimalisatietools van TheStage kunnen we onze tekst-naar-afbeeldingmodellen versnellen zonder dat dit ten koste gaat van de kwaliteit. Zo creëren we een betere gebruikerservaring voor onze klanten.


CEO Recraft, Anna Veronika Dorogush

Dankbetuigingen

Deze resultaten bieden een uitstekende validatie van onze tools en onderzoek naar grootschalige workloadproducten. Het TheStage AI-team blijft werken aan het leveren van nog betere prestaties. Om dit te bereiken, werken we samen met uitstekende partners! We zijn zeer dankbaar aan:


  • Anna Veronika, CEO van Recraft, voor de vruchtbare samenwerking. We zijn verheugd om ook maar een klein onderdeel te zijn van hun geweldige reis om de beste designtools te leveren.
  • Pavel Ostyakov, hoofd AI bij Recraft, wil ik bedanken voor zijn expertise in DNN's, zijn positieve feedback op tools en het stellen van uitdagende doelen voor ons samenwerkingsproject.
  • Het Recraft AI- team voor het bouwen van dit geweldige product. Afbeeldingen in dit artikel zijn gegenereerd met Recraft!
  • Het Nebius -team voor hun consistente ondersteuning met uitstekende GPU-infrastructuur voor ons onderzoek.

Contacten / Bronnen

Neem gerust contact met ons op voor vragen! Wij kunnen u helpen om de kosten van inferentie-infrastructuur te verlagen!

Ons e-mailadres: [email protected]

TheStage AI hoofdpagina: thestage.ai

TheStage AI-inferentieoptimalisatieplatform: app.thestage.ai


L O A D I N G
. . . comments & more!

About Author

TheStage AI HackerNoon profile picture
TheStage AI@thestage
A full-stack AI platform 👽 Trusted voice in AI, we grindin', no sleep ✨

LABELS

DIT ARTIKEL WERD GEPRESENTEERD IN...