Živimo u uzbudljivim vremenima, sa najavama o najsavremenijoj tehnologiji svake nedelje. OpenAI je upravo objavio vrhunski model teksta u sliku DALLE 2.
Samo nekoliko ljudi je steklo rani pristup novom AI sistemu koji može generirati realističnu grafiku iz opisa prirodnog jezika. I dalje je zatvorena za javnost.
Stability AI je tada objavio stabilna difuzija model, varijanta DALLE2 otvorenog koda. Ovo lansiranje je promijenilo sve. Ljudi širom interneta su objavljivali brze rezultate i bili iznenađeni realističnom umjetnošću.
Šta je stabilna difuzija?
stabilna difuzija je model strojnog učenja koji može kreirati slike iz teksta, mijenjati slike ovisno o tekstu i popunjavati detalje na slikama niske rezolucije ili niskih detalja.
Obučen je na milijardama fotografija i može dati rezultate jednake DALL-E2 i MidJourney. Stabilnost AI izumio, a javno je objavljen 22. avgusta 2022. godine.
Ali s ograničenim lokalnim računskim resursima, modelu stabilne difuzije potrebno je mnogo vremena za stvaranje visokokvalitetnih slika. Pokretanje modela na mreži pomoću provajdera u oblaku pruža nam gotovo beskonačne računske resurse i omogućava nam da postignemo odlične rezultate mnogo brže.
Hostovanje modela kao mikroservisa takođe omogućava drugim kreativnim aplikacijama da lakše iskoriste potencijal modela bez potrebe da se bave složenošću pokretanja ML modela na mreži.
U ovom postu ćemo pokušati pokazati kako razviti stabilan model difuzije i primijeniti ga na AWS.
Izgradite i implementirajte stabilnu difuziju
BentoML i Amazon Web Services EC2 su dvije opcije za smještaj modela Stable Diffusion na mreži. BentoML je okvir otvorenog koda za skaliranje mašinsko učenje usluge. Sa BentoML-om ćemo izgraditi pouzdanu uslugu disperzije i implementirati je na AWS EC2.
Priprema okoline i preuzimanje stabilnog modela difuzije
Instalirajte zahtjeve i klonirajte spremište.
Možete odabrati i preuzeti model Stable Diffusion. Pojedinačna preciznost je pogodna za CPU ili GPU-ove sa više od 10 GB VRAM-a. Polupreciznost je idealna za GPU-ove sa manje od 10 GB VRAM-a.
Izgradnja stabilne difuzije
Izgradićemo BentoML servis koji će služiti modelu koji stoji iza a RESTful API. Sljedeći primjer koristi model jedinstvene preciznosti za predviđanje i modul service.py za povezivanje usluge s poslovnom logikom. Možemo izložiti funkcije kao API-je označavajući ih sa @svc.api.
Nadalje, možemo definirati ulazne i izlazne tipove API-ja u parametrima. Krajnja tačka txt2img, na primjer, prima JSON ulaz i proizvodi izlaz slike, dok img2img krajnja točka prihvata sliku i JSON ulaz i vraća izlaz slike.
StableDiffusionRunnable definira osnovnu logiku zaključivanja. Runnable je zadužen za pokretanje metoda txt2img cijevi modela i slanje relevantnih ulaza. Za pokretanje logike zaključivanja modela u API-jima, prilagođeni Runner je konstruiran iz StableDiffusionRunnable.
Zatim koristite sljedeću naredbu da pokrenete BentoML uslugu za testiranje. Lokalno pokretanje Model stabilne difuzije zaključak o CPU-ima je prilično spor. Obrada svakog zahtjeva traje oko 5 minuta.
Tekst na sliku
Izlaz teksta u sliku
Datoteka bentofile.yaml definira potrebne datoteke i zavisnosti.
Koristite naredbu ispod da napravite bento. Bento je format distribucije za BentoML uslugu. To je samostalna arhiva koja sadrži sve podatke i konfiguracije potrebne za pokretanje usluge.
Stable Diffusion bento je završen. Ako niste bili u mogućnosti da pravilno generirate bento, nemojte paničariti; možete preuzeti unaprijed napravljeni model koristeći komande navedene u sljedećem odjeljku.
Modeli prije izrade
Slijede modeli prije izrade:
Postavite model stabilne difuzije na EC2
Da bismo postavili bento na EC2, koristit ćemo bentoctl. bentoctl vam može dozvoliti da rasporedite svoje bentos na bilo koji cloud platforma koristeći Terraform. Da biste napravili i primijenili Terraform datoteke, instalirajte AWS EC2 operater.
U datoteci config.yaml implementacije, implementacija je već konfigurirana. Slobodno uredite prema vašim zahtjevima. Bento se podrazumevano postavlja na g4dn.xlarge host sa Deep Learning AMI GPU PyTorch 1.12.0 (Ubuntu 20.04) AMI na regionu us-zapad-1.
Kreirajte Terraform fajlove sada. Kreirajte Docker sliku i otpremite je na AWS ECR. U zavisnosti od vašeg propusnog opsega, otpremanje slika može potrajati dugo. Prilikom postavljanja benta na AWS EC2, koristite datoteke Terraform.
Za pristup Swagger korisničkom sučelju, povežite se na EC2 konzolu i otvorite javnu IP adresu u pretraživaču. Konačno, ako usluga Stable Diffusion BentoML više nije potrebna, uklonite implementaciju.
zaključak
Trebali biste biti u mogućnosti vidjeti koliko su SD i prateći modeli fascinantni i moćni. Vrijeme će pokazati hoćemo li dalje ponavljati koncept ili ćemo prijeći na sofisticiranije pristupe.
Međutim, trenutno su u toku inicijative za obuku većih modela s prilagodbama kako bi bolje shvatili okolinu i upute. Pokušali smo da razvijemo uslugu Stable Diffusion koristeći BentoML i primenili je na AWS EC2.
Bili smo u mogućnosti da pokrenemo model Stable Diffusion na moćnijem hardveru, kreiramo slike sa malom latencijom i proširimo se dalje od jednog računara implementacijom usluge na AWS EC2.
Ostavite odgovor