Živimo u uzbudljivim vremenima, s najavama o vrhunskoj tehnologiji svaki tjedan. OpenAI je upravo objavio vrhunski model teksta u sliku DALLE 2.
Samo je nekoliko ljudi dobilo rani pristup novom AI sustavu koji može generirati realističnu grafiku iz opisa prirodnog jezika. I dalje je zatvorena za javnost.
Stabilnost AI je zatim izdao Stabilna difuzija model, open-source varijanta DALLE2. Ovo lansiranje je sve promijenilo. Ljudi diljem interneta objavljivali su brze rezultate i bili iznenađeni realističnom umjetnošću.
Što je stabilna difuzija?
Stabilna difuzija je model strojnog učenja koji može stvarati slike iz teksta, mijenjati slike ovisno o tekstu i popunjavati detalje na slikama niske rezolucije ili niskih detalja.
Uvježban je na milijardama fotografija i može dati rezultate jednake DALL-E2 i MidJourney. Stabilnost AI izumio, a javno je objavljen 22. kolovoza 2022.
No s ograničenim lokalnim računalnim resursima, modelu stabilne difuzije potrebno je puno vremena za stvaranje visokokvalitetnih slika. Pokretanje modela na mreži pomoću pružatelja usluga u oblaku pruža nam gotovo beskonačne računalne resurse i omogućuje nam puno brže postizanje izvrsnih rezultata.
Hosting modela kao mikroservisa također omogućuje drugim kreativnim aplikacijama da lakše iskoriste potencijal modela bez suočavanja sa složenošću pokretanja ML modela na mreži.
U ovom ćemo postu pokušati pokazati kako razviti stabilan model difuzije i implementirati ga na AWS.
Izgradite i implementirajte stabilnu difuziju
BentoML i Amazon Web Services EC2 dvije su opcije za hosting modela Stable Diffusion online. BentoML je okvir otvorenog koda za skaliranje stroj za učenje usluge. S BentoML-om ćemo izgraditi pouzdanu uslugu disperzije i implementirati je na AWS EC2.
Priprema okoline i preuzimanje stabilnog difuzijskog modela
Instalirajte zahtjeve i klonirajte spremište.
Možete odabrati i preuzeti model Stable Diffusion. Pojedinačna preciznost prikladna je za CPU ili GPU s više od 10 GB VRAM-a. Polovična preciznost idealna je za GPU s manje od 10 GB VRAM-a.
Izgradnja stabilne difuzije
Izgradit ćemo BentoML uslugu koja će služiti modelu iza a RESTful API. Sljedeći primjer koristi model jedne preciznosti za predviđanje i modul service.py za povezivanje usluge s poslovnom logikom. Funkcije možemo izložiti kao API-je tako da ih označimo s @svc.api.
Nadalje, možemo definirati vrste ulaza i izlaza API-ja u parametrima. Krajnja točka txt2img, na primjer, prima JSON ulaz i proizvodi izlaz slike, dok krajnja točka img2img prihvaća ulaz slike i JSON i vraća izlaz slike.
StableDiffusionRunnable definira bitnu logiku zaključivanja. Runnable je zadužen za pokretanje txt2img pipe metoda modela i slanje relevantnih inputa. Za pokretanje logike zaključivanja modela u API-jima, prilagođeni Runner se konstruira od StableDiffusionRunnable.
Zatim upotrijebite sljedeću naredbu za pokretanje BentoML usluge za testiranje. Lokalno vođenje Model stabilne difuzije zaključivanje o procesorima prilično je sporo. Za obradu svakog zahtjeva potrebno je oko 5 minuta.
Tekst u sliku
Izlaz teksta u sliku
Datoteka bentofile.yaml definira potrebne datoteke i ovisnosti.
Upotrijebite donju naredbu za izradu bentoa. Bento je distribucijski format za BentoML uslugu. To je samostalna arhiva koja sadrži sve podatke i konfiguracije potrebne za pokretanje usluge.
Stabilni difuzijski bento je dovršen. Ako niste uspjeli ispravno generirati bento, nemojte paničariti; možete preuzeti unaprijed izrađeni model pomoću naredbi navedenih u sljedećem odjeljku.
Modeli prije izrade
Slijede modeli prije izrade:
Implementirajte model stabilne difuzije na EC2
Za implementaciju bentoa u EC2 koristit ćemo bentoctl. bentoctl vam može omogućiti da postavite svoj bentos na bilo koji oblačna platforma koristeći Terraform. Za izradu i primjenu Terraform datoteka instalirajte AWS EC2 operator.
U datoteci config.yaml za implementaciju, implementacija je već konfigurirana. Slobodno uredite prema svojim zahtjevima. Bento je postavljen prema zadanim postavkama na hostu g4dn.xlarge s Duboko učenje AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI u regiji us-west-1.
Sada stvorite Terraform datoteke. Stvorite Docker sliku i prenesite je na AWS ECR. Ovisno o vašoj propusnosti, učitavanje slike može potrajati dugo. Prilikom postavljanja bentoa na AWS EC2, koristite Terraform datoteke.
Za pristup Swagger korisničkom sučelju, spojite se na EC2 konzolu i otvorite javnu IP adresu u pregledniku. Konačno, ako usluga Stable Diffusion BentoML više nije potrebna, uklonite implementaciju.
Zaključak
Trebali biste moći vidjeti koliko su fascinantni i moćni SD i njegovi popratni modeli. Vrijeme će pokazati hoćemo li dalje ponavljati koncept ili prijeći na sofisticiranije pristupe.
Međutim, trenutačno su u tijeku inicijative za treniranje većih modela s prilagodbama kako bi bolje shvatili okolinu i upute. Pokušali smo razviti uslugu Stable Diffusion koristeći BentoML i implementirali je na AWS EC2.
Uspjeli smo pokrenuti model Stable Diffusion na snažnijem hardveru, stvoriti slike s niskom latencijom i proširiti se izvan jednog računala implementacijom usluge na AWS EC2.
Ostavi odgovor