Novembra 2022 smo razglasitve s katerimi lahko stranke AWS ustvarijo slike iz besedila Stabilna difuzija modeli v Amazon SageMaker JumpStart. Danes najavljamo novo funkcijo, ki vam omogoča izboljšanje velikosti slik (spreminjanje velikosti slik brez izgube kakovosti) z modeli Stable Diffusion v JumpStartu. Sliko, ki je nizke ločljivosti, zamegljena in slikovita, je mogoče pretvoriti v sliko visoke ločljivosti, ki je videti bolj gladka, jasnejša in podrobnejša. Ta proces, imenovan Višanje, je mogoče uporabiti tako za prave slike kot za slike, ustvarjene z modeli stabilne difuzije besedila v sliko. To je mogoče uporabiti za izboljšanje kakovosti slike v različnih panogah, kot sta e-trgovina in nepremičnine, pa tudi za umetnike in fotografe. Poleg tega lahko povečanje ločljivosti izboljša vizualno kakovost slik z nizko ločljivostjo, ko so prikazane na zaslonih z visoko ločljivostjo.
Stable Diffusion uporablja algoritem umetne inteligence za nadgradnjo slik, kar odpravlja potrebo po ročnem delu, ki lahko zahteva ročno zapolnjevanje vrzeli na sliki. Učen je bil na milijonih slik in lahko natančno predvidi slike visoke ločljivosti, kar ima za posledico znatno povečanje podrobnosti v primerjavi s tradicionalnimi napravami za izboljšanje slike. Poleg tega za razliko od tehnik brez poglobljenega učenja, kot je najbližji sosed, Stable Diffusion upošteva kontekst slike in uporablja besedilni poziv za vodenje postopka povečanja velikosti.
V tej objavi ponujamo pregled, kako razmestiti in zagnati sklepanje z modelom Stable Diffusion upscaler na dva načina: prek uporabniškega vmesnika (UI) JumpStart v Amazon SageMaker Studio, in programsko prek API-ji JumpStart na voljo v SDK SageMaker Python.
Pregled rešitev
Naslednje slike prikazujejo primere nadgradnje, ki jo izvaja model. Na levi je izvirna slika nizke ločljivosti, povečana, da ustreza velikosti slike, ki jo ustvari model. Na desni je slika, ki jo ustvari model.
Prva ustvarjena slika je rezultat slike mačke z nizko ločljivostjo in poziva »bela mačka«.
Druga ustvarjena slika je rezultat slike metulja v nizki ločljivosti in poziva »metulj na zelenem listu«.
Izvajanje velikih modelov, kot je Stable Diffusion, zahteva skripte sklepanja po meri. Zagnati morate preskuse od konca do konca, da zagotovite, da skript, model in želeni primerek učinkovito delujejo skupaj. JumpStart poenostavlja ta postopek z zagotavljanjem skriptov, pripravljenih za uporabo, ki so bili temeljito preizkušeni. Do teh skriptov lahko dostopate z enim klikom prek uporabniškega vmesnika Studio ali z zelo malo vrsticami kode prek API-ji JumpStart.
Naslednji razdelki nudijo pregled, kako razmestiti model in zagnati sklepanje z uporabniškim vmesnikom Studio ali API-ji JumpStart.
Upoštevajte, da se z uporabo tega modela strinjate z Licenca CreativeML Open RAIL++-M.
Do JumpStart dostopajte prek uporabniškega vmesnika Studio
V tem razdelku prikazujemo, kako učiti in uvajati modele JumpStart prek uporabniškega vmesnika Studio. Naslednji videoposnetek prikazuje, kako poiskati predhodno usposobljen model Stable Diffusion upscaler na JumpStart in ga namestiti. Stran z modelom vsebuje dragocene informacije o modelu in o tem, kako ga uporabljati. Za sklepanje uporabljamo vrsto primerka ml.p3.2xlarge, ker zagotavlja pospešek GPE, potreben za nizko zakasnitev sklepanja po nizki ceni. Ko konfigurirate primerek gostovanja SageMaker, izberite uvajanje. Trajalo bo 5–10 minut, dokler končna točka ne začne delovati in je pripravljena odgovoriti na zahteve po sklepanju.
Da bi pospešili čas sklepanja, JumpStart ponuja vzorčni zvezek, ki prikazuje, kako zagnati sklepanje na novo ustvarjeni končni točki. Za dostop do zvezka v Studiu izberite Odprite Beležnico v Uporabite Endpoint iz Studia na strani končne točke modela.
Uporabite JumpStart programsko s SDK SageMaker
Uporabniški vmesnik JumpStart lahko uporabite za interaktivno uvajanje predhodno usposobljenega modela v samo nekaj klikih. Vendar pa lahko modele JumpStart uporabite tudi programsko z uporabo API-jev, ki so integrirani v SDK SageMaker Python.
V tem razdelku izberemo ustrezen vnaprej usposobljen model v JumpStartu, razmestimo ta model na končno točko SageMaker in izvedemo sklepanje na razporejeni končni točki, vse z uporabo SDK SageMaker Python. Naslednji primeri vsebujejo delčke kode. Za celotno kodo z vsemi koraki v tej predstavitvi glejte Uvod v JumpStart – izboljšajte kakovost slike s pozivom primer zvezka.
Razmestite vnaprej usposobljeni model
SageMaker uporablja vsebnike Docker za različne naloge gradnje in izvajanja. JumpStart uporablja Vsebniki za globoko učenje SageMaker (DLC), ki so specifični za okvir. Najprej pridobimo morebitne dodatne pakete, kot tudi skripte za izvajanje usposabljanja in sklepanja za izbrano nalogo. Nato se vnaprej pripravljeni artefakti modela ločeno pridobijo model_uris
, ki platformi zagotavlja prilagodljivost. To omogoča uporabo več vnaprej pripravljenih modelov z enim sklepnim skriptom. Naslednja koda ponazarja ta postopek:
Nato te vire zagotovimo v a Model SageMaker in uvesti končno točko:
Ko je naš model uveden, lahko iz njega pridobimo napovedi v realnem času!
Vhodna oblika
Končna točka sprejme sliko nizke ločljivosti kot neobdelane vrednosti RGB ali sliko, kodirano base64. Upravljalnik sklepanja dekodira sliko na podlagi content_type
:
- za
content_type = “application/json”
, mora biti vhodni tovor slovar JSON z neobdelanimi vrednostmi RGB, besedilnim pozivom in drugimi neobveznimi parametri - za
content_type = “application/json;jpeg”
, mora biti vhodni tovor slovar JSON s sliko, kodirano base64, besedilnim pozivom in drugimi neobveznimi parametri
Izhodni format
Naslednji primeri kode vam dajejo vpogled v to, kako so videti izhodi. Podobno kot pri vhodnem formatu se lahko končna točka odzove z neobdelanimi RGB vrednostmi slike ali base64 kodirano sliko. To lahko določite z nastavitvijo accept
na eno od dveh vrednosti:
- za
accept = “application/json”
, končna točka vrne slovar JSON z vrednostmi RGB za sliko - za
accept = “application/json;jpeg”
končna točka vrne slovar JSON s sliko JPEG v obliki bajtov, kodiranih s kodiranjem base64.b64
Upoštevajte, da lahko pošiljanje ali prejemanje tovora z neobdelanimi vrednostmi RGB doseže privzete omejitve za vhodni tovor in velikost odgovora. Zato priporočamo uporabo kodirane slike base64 z nastavitvijo content_type = “application/json;jpeg”
in accept = “application/json;jpeg”
.
Naslednja koda je primer zahteve za sklepanje:
Odziv končne točke je objekt JSON, ki vsebuje ustvarjene slike in poziv:
Podprti parametri
Stabilni difuzijski modeli povečanja velikosti podpirajo številne parametre za ustvarjanje slike:
- slika – Slika nizke ločljivosti.
- poziv – Poziv za vodenje ustvarjanja slike. Lahko je niz ali seznam nizov.
- num_inference_steps (neobvezno) – Število korakov odpravljanja šuma med ustvarjanjem slike. Več korakov vodi do višje kakovosti slike. Če je navedeno, mora biti pozitivno celo število. Upoštevajte, da več korakov sklepanja vodi do daljšega odzivnega časa.
- vodilna_lestvica (neobvezno) – Višja lestvica vodenja povzroči sliko, ki je bolj povezana s pozivom, na račun kakovosti slike. Če je navedeno, mora biti lebdeča.
guidance_scale<=1
se prezre. - negativni_prompt (neobvezno) – To usmerja ustvarjanje slike proti temu pozivu. Če je navedeno, mora biti niz ali seznam nizov in se mora uporabljati z
guidance_scale
. Čeguidance_scale
je onemogočeno, je tudi to onemogočeno. Poleg tega, če je poziv seznam nizov, mora biti tudi negative_prompt seznam nizov. - seme (neobvezno) – To popravi naključno stanje za ponovljivost. Če je navedeno, mora biti celo število. Kadar koli uporabite isti poziv z istim semenom, bo nastala slika vedno enaka.
- raven_šuma (neobvezno) – To doda šum latentnim vektorjem pred povečanjem velikosti. Če je navedeno, mora biti celo število.
Sliko lahko rekurzivno povečate tako, da večkrat prikličete končno točko, da dobite slike vedno višje kakovosti.
Velikost slike in vrste primerkov
Slike, ki jih ustvari model, so lahko do štirikrat večje od izvirne slike nizke ločljivosti. Poleg tega pomnilniška zahteva modela (pomnilnik GPU) raste z velikostjo ustvarjene slike. Če torej povečujete ločljivost slike z visoko ločljivostjo ali rekurzivno povečujete ločljivost slik, izberite vrsto primerka z velikim pomnilnikom GPE. Na primer, ml.g5.2xlarge ima več pomnilnika GPE kot ml.p3.2xlarge vrsta primerka, ki smo ga uporabljali prej. Za več informacij o različnih vrstah primerkov glejte Vrste primerkov Amazon EC2.
Povečanje velikosti slik po delih
Če želite zmanjšati pomnilniške zahteve pri povečanju velikosti velikih slik, lahko sliko razdelite na manjše dele, imenovane ploščicein izboljšajte vsako ploščico posebej. Ko so ploščice povečane, jih je mogoče zmešati, da ustvarite končno sliko. Ta metoda zahteva prilagajanje poziva za vsako ploščico, tako da lahko model razume vsebino ploščice in se izogne ustvarjanju čudnih slik. Slogovni del poziva mora ostati dosleden za vse ploščice, da bo mešanje lažje. Pri uporabi višjih nastavitev za odpravljanje šuma je pomembno, da ste v pozivu bolj natančni, ker ima model več svobode pri prilagajanju slike. To je lahko težavno, če ploščica vsebuje samo ozadje ali ni neposredno povezana z glavno vsebino slike.
Omejitve in pristranskost
Čeprav ima Stable Diffusion impresivno zmogljivost pri nadgradnji, ima več omejitev in pristranskosti. Ti vključujejo, vendar niso omejeni na:
- Model morda ne bo ustvaril natančnih obrazov ali udov, ker podatki o vadbi ne vključujejo dovolj slik s temi funkcijami
- Model je bil usposobljen na Nabor podatkov LAION-5B, ki ima vsebino za odrasle in morda ne bo primeren za uporabo v izdelku brez nadaljnjih premislekov
- Model morda ne bo dobro deloval z neangleškimi jeziki, ker je bil model učen z besedilom v angleškem jeziku
- Model ne more ustvariti dobrega besedila v slikah
Za več informacij o omejitvah in pristranskosti glejte Kartica modela Stable Diffusion Upscaler.
Čiščenje
Ko končate z zagonom zvezka, izbrišite vse vire, ustvarjene v procesu, da zagotovite, da je zaračunavanje ustavljeno. Koda za čiščenje končne točke je na voljo v povezanem prenosnik.
zaključek
V tem prispevku smo pokazali, kako z uporabo JumpStarta uvesti vnaprej pripravljen model Stable Diffusion upscaler. V tej objavi smo prikazali delčke kode – celotna koda z vsemi koraki v tej predstavitvi je na voljo v Uvod v JumpStart – izboljšajte kakovost slike s pozivom primer zvezka. Preizkusite rešitev sami in nam pošljite svoje komentarje.
Če želite izvedeti več o modelu in njegovem delovanju, si oglejte naslednje vire:
Če želite izvedeti več o JumpStart, si oglejte naslednje objave v spletnem dnevniku:
O avtorjih
dr. Vivek Madan je uporabni znanstvenik pri ekipi Amazon SageMaker JumpStart. Doktoriral je na Univerzi Illinois v Urbana-Champaign in bil podoktorski raziskovalec na Georgia Tech. Je aktiven raziskovalec strojnega učenja in oblikovanja algoritmov ter je objavil članke na konferencah EMNLP, ICLR, COLT, FOCS in SODA.
Heiko Hotz je višji arhitekt rešitev za umetno inteligenco in strojno učenje s posebnim poudarkom na obdelavi naravnega jezika (NLP), modelih velikih jezikov (LLM) in generativni umetni inteligenci. Pred to vlogo je bil vodja podatkovne znanosti za Amazonovo službo za stranke v EU. Heiko pomaga našim strankam, da so uspešne na njihovi poti AI/ML na AWS, in je sodeloval z organizacijami v številnih panogah, vključno z zavarovalništvom, finančnimi storitvami, mediji in zabavo, zdravstvom, komunalnimi storitvami in proizvodnjo. V prostem času Heiko čim več potuje.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- Platoblockchain. Web3 Metaverse Intelligence. Razširjeno znanje. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/upscale-images-with-stable-diffusion-in-amazon-sagemaker-jumpstart/
- 100
- 2022
- 7
- a
- O meni
- pospeši
- Sprejmi
- Sprejema
- dostop
- Račun
- natančna
- natančno
- doseže
- aktivna
- prilagodijo
- Dodatne
- Poleg tega
- Dodaja
- Izobraževanje odraslih
- po
- proti
- AI
- AI in strojno učenje
- AI / ML
- algoritem
- vsi
- omogoča
- že
- vedno
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- in
- Objavi
- API
- API-ji
- uporabna
- primerno
- Izvajalci
- povezan
- samodejno
- Na voljo
- AWS
- ozadje
- temeljijo
- ker
- pred
- počutje
- pristranskosti
- zaračunavanje
- mešanje
- Blog
- Blog Prispevkov
- Break
- izgradnjo
- se imenuje
- Lahko dobiš
- CAT
- izziv
- preveriti
- Izberite
- razred
- bolj jasno
- tesno
- Koda
- komentarji
- v primerjavi z letom
- konference
- dosledno
- Posoda
- Zabojniki
- Vsebuje
- vsebina
- ozadje
- pretvori
- ustvarjajo
- ustvaril
- Ustvarjanje
- po meri
- stranka
- Za stranke
- Stranke, ki so
- datum
- znanost o podatkih
- zmanjša
- globoko
- globoko učenje
- privzeto
- izkazati
- razporedi
- razporejeni
- Oblikovanje
- Podatki
- podrobno
- drugačen
- Difuzija
- neposredno
- onemogočena
- Lučki delavec
- Ne
- med
- vsak
- prej
- lažje
- elektronskem poslovanju
- učinkovito
- bodisi
- odstranjevanje
- konec koncev
- Končna točka
- Angleščina
- zagotovitev
- Zabava
- Vpis
- nepremičnine
- EU
- Primer
- Primeri
- obrazi
- Feature
- Preneseno
- Nekaj
- file
- končna
- finančna
- finančne storitve
- Najdi
- prva
- fit
- prilagodljivost
- Plavaj
- Osredotočite
- po
- format
- Svoboda
- iz
- polno
- nadalje
- Poleg tega
- ustvarjajo
- ustvarila
- generacija
- generativno
- Generativna AI
- Georgia
- dobili
- Daj
- Pogled
- dobro
- GPU
- Zelen
- raste
- vodi
- Vodniki
- ročaj
- Glava
- zdravstveno varstvo
- višina
- Pomaga
- visoka ločljivost
- več
- hit
- gostovanje
- Kako
- Kako
- Vendar
- HTML
- HTTPS
- Illinois
- slika
- slike
- Pomembno
- Impresivno
- izboljšanje
- in
- vključujejo
- Vključno
- Povečajte
- Posamezno
- industrij
- Podatki
- vhod
- primer
- zavarovanje
- integrirana
- vmesnik
- IT
- Potovanje
- json
- znano
- jezik
- jeziki
- velika
- Latenca
- vodi
- UČITE
- učenje
- Lets
- omejitve
- Limited
- Meje
- linije
- Seznam
- več
- Poglej
- izgleda kot
- izgube
- nizka
- stroj
- strojno učenje
- Glavne
- Znamka
- Navodilo
- ročno delo
- ročno
- proizvodnja
- več
- Stave
- mediji
- Spomin
- Metoda
- milijoni
- Minute
- ML
- Model
- modeli
- več
- več
- naravna
- Obdelava Natural Language
- Nimate
- Novo
- nlp
- hrup
- prenosnik
- november
- Številka
- predmet
- ONE
- odprite
- Da
- organizacije
- izvirno
- Ostalo
- pregled
- lastne
- pakete
- članki
- parametri
- del
- performance
- slika
- kos
- platforma
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Točka
- pozitiven
- mogoče
- Prispevek
- Prispevkov
- Pooblastila
- napovedati
- Napovedi
- Predictor
- predstaviti
- Cena
- Predhodna
- Postopek
- obravnavati
- Izdelek
- zagotavljajo
- zagotavlja
- zagotavljanje
- objavljeno
- Python
- kakovost
- Naključno
- Surovi
- pripravljen
- pravo
- nepremičnine
- prejema
- Priporočamo
- povezane
- ostajajo
- PONOVNO
- zahteva
- zahteva
- zahteva
- zahteva
- Zahteve
- zahteva
- raziskovalec
- Resolucija
- viri
- Odzove
- Odgovor
- povzroči
- rezultat
- Rezultati
- vrnitev
- vrne
- RGB
- vloga
- Run
- tek
- sagemaker
- Enako
- Lestvica
- Znanost
- Znanstvenik
- zasloni
- skripte
- SDK
- drugi
- Oddelek
- oddelki
- seme
- izbran
- pošiljanja
- višji
- Storitev
- Storitve
- nastavitev
- nastavitve
- več
- shouldnt
- Prikaži
- Razstave
- pomemben
- podobno
- sam
- Velikosti
- manj
- bolj gladko
- So
- Rešitev
- rešitve
- posebna
- specifična
- določeno
- stabilna
- Država
- Koraki
- ustavil
- studio
- slog
- uspešno
- taka
- Trpi
- dovolj
- podpora
- Bodite
- meni
- Naloga
- Naloge
- skupina
- tech
- tehnike
- testi
- O
- njihove
- zato
- skozi
- čas
- krat
- do
- danes
- skupaj
- tradicionalna
- Vlak
- usposobljeni
- usposabljanje
- potovanja
- Vrste
- ui
- razumeli
- univerza
- us
- uporaba
- uporabnik
- Uporabniški vmesnik
- javne gospodarske službe
- izkorišča
- dragocene
- Vrednote
- različnih
- preko
- Video
- načini
- Kaj
- ki
- bele
- bo
- v
- brez
- delo
- delati skupaj
- delal
- deluje
- Vi
- Vaša rutina za
- zefirnet