Ons leef in opwindende tye, met aankondigings oor die nuutste tegnologie elke week. OpenAI het pas die nuutste teks-na-beeld-model DALLE 2 vrygestel.
Slegs 'n paar mense het vroeë toegang tot 'n nuwe KI-stelsel gekry wat realistiese grafika uit natuurlike taalbeskrywings kan genereer. Dit is steeds gesluit vir die publiek.
Stability AI het toe die vrygestel Stabiele verspreiding model, 'n oopbron-variant van DALLE2. Hierdie bekendstelling het alles verander. Mense oral op die internet het vinnige resultate gepubliseer en is verras deur realistiese kuns.
Wat is stabiele diffusie?
Stabiele verspreiding is 'n masjienleermodel wat in staat is om beelde uit teks te skep, beelde te verander na gelang van die teks, en besonderhede oor lae-resolusie of lae-detail beelde in te vul.
Dit is opgelei op miljarde foto's en kan resultate lewer gelykstaande aan DALL-E2 en MidJourney. Stabiliteit AI het dit uitgevind, en dit is op 22 Augustus 2022 openbaar gemaak.
Maar met beperkte plaaslike rekenaarhulpbronne, neem die stabiele verspreidingsmodel lank om prente van hoë gehalte te skep. Deur die model aanlyn te gebruik deur 'n wolkverskaffer te gebruik, bied ons byna oneindige berekeningshulpbronne en stel ons in staat om uitstekende resultate baie vinniger te verkry.
Deur die model as 'n mikrodiens aan te bied, stel ander kreatiewe toepassings ook in staat om die model se potensiaal makliker te ontgin sonder om die kompleksiteit van die bestuur van ML-modelle aanlyn te hanteer.
In hierdie pos sal ons probeer om te demonstreer hoe om 'n stabiele verspreidingsmodel te ontwikkel en dit na AWS te ontplooi.
Bou en ontplooi stabiele diffusie
BentoML en Amazon Web Services EC2 is twee opsies om die Stable Diffusion-model aanlyn aan te bied. BentoML is 'n oopbronraamwerk vir skaal machine learning dienste. Met BentoML sal ons 'n betroubare verspreidingsdiens bou en dit na AWS EC2 ontplooi.
Berei die omgewing voor en laai stabiele diffusiemodel af
Installeer vereistes en kloon die bewaarplek.
Jy kan die Stable Diffusion-model kies en aflaai. Enkelpresisie is geskik vir SVE's of GPU's met meer as 10 GB VRAM. Halwe presisie is ideaal vir GPU's met minder as 10 GB VRAM.
Bou stabiele diffusie
Ons sal 'n BentoML-diens bou om die model agter 'n RESTful API. Die volgende voorbeeld gebruik die enkelpresisiemodel vir voorspelling en die service.py-module om die diens aan besigheidslogika te koppel. Ons kan die funksies blootstel as API's deur hulle met @svc.api te merk.
Verder kan ons die API's se invoer- en uitvoertipes in die parameters definieer. Die txt2img-eindpunt, byvoorbeeld, ontvang 'n JSON-invoer en produseer 'n prentuitset, terwyl die img2img-eindpunt 'n prent en 'n JSON-invoer aanvaar en 'n prentuitset terugstuur.
'n StableDiffusionRunnable definieer die noodsaaklike afleidingslogika. Die loopbare is in beheer daarvan om die model se txt2img-pypmetodes uit te voer en die relevante insette in te stuur. Om die modelafleidingslogika in die API's te laat loop, word 'n pasgemaakte Runner saamgestel uit die StableDiffusionRunnable.
Gebruik dan die volgende opdrag om 'n BentoML-diens vir toetsing te begin. Plaaslik bestuur die Stabiele diffusiemodel afleiding oor SVE's is taamlik traag. Elke versoek sal ongeveer 5 minute neem om te verwerk.
Teks na prent
Teks na beeld uitvoer
Die bentofile.yaml-lêer definieer die vereiste lêers en afhanklikhede.
Gebruik die opdrag hieronder om 'n bento te bou. 'n Bento is die verspreidingsformaat vir 'n BentoML-diens. Dit is 'n selfstandige argief wat al die data en konfigurasies bevat wat nodig is om die diens te begin.
Die Stabiele Diffusie Bento is voltooi. As jy nie die bento behoorlik kon genereer nie, moenie paniekerig raak nie; jy kan voorafgeboude model aflaai deur gebruik te maak van die opdragte wat in die volgende afdeling gelys word.
Voorafgeboude modelle
Die volgende is die voorafgeboude modelle:
Ontplooi stabiele diffusiemodel na EC2
Om die bento na EC2 te ontplooi, sal ons bentoctl gebruik. bentoctl kan jou toelaat om jou bentos te ontplooi na enige wolkplatform met behulp van Terraform. Om Terraform-lêers te bou en toe te pas, installeer die AWS EC2-operateur.
In die ontplooiing config.yaml-lêer is die ontplooiing reeds opgestel. Voel asseblief vry om te wysig volgens jou vereistes. Die Bento word by verstek ontplooi op 'n g4dn.xlarge gasheer met die Diep leer AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI op die us-west-1-streek.
Skep nou die Terraform-lêers. Skep die Docker-prent en laai dit op na AWS ECR. Afhangende van jou bandwydte, kan die oplaai van prente lank neem. As jy die bento na AWS EC2 ontplooi, gebruik die Terraform-lêers.
Om toegang tot die Swagger UI te verkry, koppel aan die EC2-konsole en maak die publieke IP-adres in 'n blaaier oop. Ten slotte, as die Stable Diffusion BentoML-diens nie meer benodig word nie, verwyder die ontplooiing.
Gevolgtrekking
Jy behoort te kan sien hoe fassinerend en kragtig SD en sy metgeselmodelle is. Tyd sal leer of ons die konsep verder gaan herhaal of na meer gesofistikeerde benaderings sal oorgaan.
Daar is egter tans inisiatiewe aan die gang om groter modelle op te lei met aanpassings om die omgewing en die instruksies beter te begryp. Ons het probeer om die Stable Diffusion-diens te ontwikkel deur BentoML te gebruik en dit na AWS EC2 ontplooi.
Ons was in staat om die Stable Diffusion-model op kragtiger hardeware te laat loop, prente met lae latensie te skep en verder as 'n enkele rekenaar uit te brei deur die diens op AWS EC2 te ontplooi.
Lewer Kommentaar