Marraskuussa 2022 me ilmoitti jolla AWS-asiakkaat voivat luoda kuvia tekstistä Vakaa diffuusio malleja Amazon SageMaker JumpStart. Stable Diffusion on syväoppimismalli, jonka avulla voit luoda realistisia, korkealaatuisia kuvia ja upeaa taidetta muutamassa sekunnissa. Vaikka vaikuttavien kuvien luomista voidaan käyttää teollisuudenaloilla taiteesta NFT:hen ja muillakin aloilla, odotamme nykyään myös tekoälyn olevan personoitavissa. Tänään ilmoitamme, että voit mukauttaa kuvanluontimallin käyttötapauksiisi hienosäätämällä sitä mukautetussa tietojoukossasi Amazon SageMaker JumpStart. Tästä voi olla hyötyä luotaessa taidetta, logoja, mukautettuja malleja, NFT:itä ja niin edelleen tai hauskoja juttuja, kuten luotaessa mukautettuja tekoälykuvia lemmikeistäsi tai avatareja itsestäsi.
Tässä viestissä annamme yleiskatsauksen Stable Diffusion -mallin hienosäätämiseen kahdella tavalla: ohjelmallisesti JumpStart API:t saatavana SageMaker Python SDK, ja JumpStartin käyttöliittymä (UI). Amazon SageMaker Studio. Keskustelemme myös siitä, kuinka tehdä suunnitteluvalintoja, mukaan lukien tietojoukon laatu, koulutustietojoukon koko, hyperparametriarvojen valinta ja soveltuvuus useisiin tietojoukkoon. Lopuksi käsittelemme JumpStartissa äskettäin lisättyä yli 80 julkisesti saatavilla olevaa hienosäädettyä mallia eri syöttökielillä ja -tyyleillä.
Vakaa diffuusio- ja siirtooppiminen
Stable Diffusion on tekstistä kuvaksi -malli, jonka avulla voit luoda fotorealistisia kuvia pelkästä tekstikehotteesta. Diffuusiomalli harjoittelee oppimalla poistamaan todelliseen kuvaan lisättyä kohinaa. Tämä kohinanpoistoprosessi luo realistisen kuvan. Nämä mallit voivat myös luoda kuvia pelkästä tekstistä ehdoittamalla generointiprosessin tekstiin. Esimerkiksi Stable Diffusion on piilevä diffuusio, jossa malli oppii tunnistamaan muodot puhtaassa kohinakuvassa ja tuo muodot vähitellen tarkennetuksi, jos muodot vastaavat syöttötekstin sanoja. Teksti on ensin upotettava piilevään tilaan kielimallin avulla. Sitten suoritetaan sarja kohinan lisäys- ja kohinanpoistotoimenpiteitä piilevässä tilassa U-Net-arkkitehtuurilla. Lopuksi kohinaton lähtö dekoodataan pikselitilaan.
Koneoppimisessa (ML) kutsutaan kykyä siirtää alueelta opittua tietoa toiselle siirrä oppimista. Voit käyttää siirtooppimista tuottaaksesi tarkkoja malleja pienemmille tietojoukoillesi paljon alhaisemmilla koulutuskustannuksilla kuin alkuperäisen mallin koulutuksessa. Siirtooppimisen avulla voit hienosäätää vakaan diffuusiomallin omassa tietojoukossasi jopa viidellä kuvalla. Vasemmalla ovat esimerkiksi harjoituskuvat Doppler-nimisestä koirasta, jota käytetään mallin hienosäätämiseen, keskellä ja oikealla ovat kuvat, jotka hienosäädetyt mallit ovat luoneet, kun pyydetään ennustamaan Doppler-kuvaa rannalla ja lyijykynäluonnos.
Vasemmalla on kuvat mallin hienosäätämiseen käytetystä valkoisesta tuolista ja hienosäädetyn mallin tuottama kuva tuolista punaisella. Oikealla on kuvia ottomaaneista, joita käytetään mallin hienosäätämiseen, ja kuva kissasta, joka istuu ottomaanien päällä.
Suurten mallien, kuten Stable Diffusion, hienosäätö edellyttää yleensä koulutusohjelmien toimittamista. On monia ongelmia, mukaan lukien muistin loppumiseen liittyvät ongelmat, hyötykuorman kokoon liittyvät ongelmat ja paljon muuta. Lisäksi sinun on suoritettava päästä päähän -testejä varmistaaksesi, että komentosarja, malli ja haluttu ilmentymä toimivat yhdessä tehokkaasti. JumpStart yksinkertaistaa tätä prosessia tarjoamalla käyttövalmiita komentosarjoja, jotka on testattu vankasti. JumpStart-hienosäätöskripti Stable Diffusion -malleille perustuu hienosäätöskriptiin unelmakoppi. Voit käyttää näitä komentosarjoja yhdellä napsautuksella Studio-käyttöliittymän kautta tai vain harvoilla koodiriveillä JumpStart API:t.
Huomaa, että käyttämällä Stable Diffusion -mallia hyväksyt CreativeML Open RAIL++-M -lisenssi.
Käytä JumpStartia ohjelmallisesti SageMaker SDK:n kanssa
Tässä osiossa kuvataan, kuinka mallia koulutetaan ja otetaan käyttöön SageMaker Python SDK. Valitsemme JumpStartissa sopivan esikoulutetun mallin, koulutamme tämän mallin SageMaker-koulutustyön avulla ja otamme koulutetun mallin käyttöön SageMaker-päätepisteeseen. Lisäksi teemme päätelmiä käyttöönotetusta päätepisteestä käyttäen SageMaker Python SDK:ta. Seuraavat esimerkit sisältävät koodinpätkät. Katso täydellinen koodi ja kaikki tämän esittelyn vaiheet kohdasta Johdatus JumpStartiin – tekstistä kuvaksi muistikirja esimerkkinä.
Harjoittele ja hienosäädä Stable Diffusion -mallia
Jokainen malli tunnistetaan yksilöllisesti model_id
. Seuraava koodi näyttää kuinka hienosäätää Stable Diffusion 2.1 -perusmallia, jonka tunnistaa model_id
model-txt2img-stabilityai-stable-diffusion-v2-1-base
mukautetussa harjoitustietojoukossa. Täydellinen luettelo model_id
arvot ja mitkä mallit ovat hienosäädettävissä, katso Sisäänrakennetut algoritmit esiopetetulla mallitaulukolla. Jokaiselle model_id
, aloittaakseen SageMaker-koulutustyön arviointityökalu SageMaker Python SDK:n luokkaa, sinun on noudettava Docker-kuvan URI, koulutusohjelman URI ja esikoulutettu mallin URI SageMakerin aputoimintojen kautta. Harjoituskomentosarjan URI sisältää kaiken tarvittavan koodin tietojen käsittelyyn, esiopetetun mallin lataamiseen, mallin harjoitteluun ja opetetun mallin tallentamiseen päätelmiä varten. Esiopetettu mallin URI sisältää esiopetetun malliarkkitehtuurin määritelmän ja malliparametrit. Valmiiksi koulutettu mallin URI on tietty mallikohtainen. Valmiiksi koulutetut mallitarballit on ladattu valmiiksi Hugging Facesta ja tallennettu sopivalla mallin allekirjoituksella Amazonin yksinkertainen tallennuspalvelu (Amazon S3) kauhoja, jotta koulutustyö suoritetaan verkkoeristettynä. Katso seuraava koodi:
Näiden mallikohtaisten harjoitusartefaktien avulla voit rakentaa objektin arviointityökalu luokka:
Koulutuksen tietojoukko
Seuraavassa on ohjeet harjoitustietojen muotoiluun:
- panos - Hakemisto, joka sisältää ilmentymäkuvat,
dataset_info.json
, seuraavalla kokoonpanolla:- Kuvat voivat olla .png-, .jpg- tai .jpeg-muodossa
- -
dataset_info.json
tiedoston on oltava muodossa{'instance_prompt':<<instance_prompt>>}
- ulostulo – Koulutettu malli, jota voidaan käyttää johtopäätösten tekemiseen
S3-polun pitäisi näyttää tältä s3://bucket_name/input_directory/
. Huomaa jälki /
vaaditaan.
Seuraavassa on esimerkkimuoto harjoitustiedoista:
Katso osiosta ohjeet tietojen muotoiluun käyttämällä aikaisempaa säilytystä Aiempi säilytys tässä viestissä.
Tarjoamme oletustietojoukon kissakuvista. Se koostuu kahdeksasta kuvasta (instanssikuvat vastaavat ilmentymäkehotetta) yhdestä kissasta ilman luokkakuvia. Sen voi ladata osoitteesta GitHub. Jos käytät oletustietojoukkoa, kokeile "valokuva riobugger-kissasta" -kehotetta samalla kun teet päätelmiä esittelymuistikirjassa.
lisenssi: MIT.
hyperparametrien
Seuraavaksi sinun on ehkä muutettava harjoitushyperparametrien oletusarvoja, jotta voit siirtää mukautetun tietojoukon oppimista. Voit hakea Python-sanakirjan näistä hyperparametreista niiden oletusarvoineen soittamalla hyperparameters.retrieve_default
, päivitä ne tarvittaessa ja välitä ne sitten Estimator-luokkaan. Katso seuraava koodi:
Hienosäätöalgoritmi tukee seuraavia hyperparametrejä:
- aiemman_säilytyksen kanssa – Lippu lisätäksesi aiemman säilytyshäviön. Aikaisempi säilöntä on tasausaine, joka välttää liiallisen sovituksen. (Vaihtoehdot:
[“True”,“False”]
, oletus:“False”
.) - luokkakuvien_määrä – Vähimmäisluokan kuvat aiemman säilytyshäviön vuoksi. Jos
with_prior_preservation = True
eikä siinä ole jo tarpeeksi kuviaclass_data_dir
, lisäkuvista otetaan näytteitäclass_prompt
. (Arvot: positiivinen kokonaisluku, oletus: 100.) - Aikakausia – Kulkujen määrä, jonka hienosäätöalgoritmi suorittaa harjoitustietojoukon läpi. (Arvot: positiivinen kokonaisluku, oletus: 20.)
- Max_steps – Suoritettavien harjoitusvaiheiden kokonaismäärä. Jos ei
None
, ohittaa aikakaudet. (Arvot:“None”
tai kokonaislukujono, oletus:“None”
.) - Erän koko –: Harjoitteluesimerkkien määrä, jotka on käsitelty ennen mallin painojen päivittämistä. Sama kuin eräkoko luokan kuvien luonnin aikana, jos
with_prior_preservation = True
. (Arvot: positiivinen kokonaisluku, oletus: 1.) - oppimisnopeus – Nopeus, jolla mallin painot päivitetään jokaisen harjoitusesimerkkierän käsittelyn jälkeen. (Arvot: positiivinen float, oletus: 2e-06.)
- aiempi_tappio_paino – Aiemman säilöntähäviön paino. (Arvot: positiivinen float, oletus: 1.0.)
- center_crop – Rajataanko kuvat ennen koon muuttamista haluttuun resoluutioon. (Vaihtoehdot:
[“True”/“False”]
, oletus:“False”
.) - lr_scheduler – Oppimisnopeuden ajastimen tyyppi. (Vaihtoehdot:
["linear", "cosine", "cosine_with_restarts", "polynomial", "constant", "constant_with_warmup"]
, oletus:"constant"
.) Katso lisätietoja Oppimisnopeuden ajoitusohjelmat. - adam_weight_decay – Kaikkiin kerroksiin sovellettava painon vaimennus (jos ei nolla) paitsi kaikki poikkeamat ja
LayerNorm
painot sisäänAdamW
optimoija. (Arvo: float, oletus: 1e-2.) - adam_beta1 – Beta1-hyperparametri (eksponentiaalinen vaimenemisnopeus ensimmäisen hetken arvioita varten)
AdamW
optimoija. (Arvo: float, oletus: 0.9.) - adam_beta2 – Beta2-hyperparametri (eksponentiaalinen vaimenemisnopeus ensimmäisen hetken arvioita varten)
AdamW
optimoija. (Arvo: float, oletus: 0.999.) - adam_epsilon -
epsilon
hyperparametriAdamW
optimoija. Se asetetaan yleensä pieneksi, jotta vältetään jako nollalla. (Arvo: float, oletus: 0e-1.) - gradient_accumulation_steps – Keräävien päivitysvaiheiden määrä ennen taaksepäin/päivityspassin suorittamista. (Arvo: kokonaisluku, oletus: 1.)
- max_grad_norm – Kaltevuuden enimmäisnormi (kaltevuusleikkaukselle). (Arvo: float, oletus: 1.0.)
- siemenet – Korjaa satunnainen tila toistettavien tulosten saavuttamiseksi harjoittelussa. (Arvo: kokonaisluku, oletus: 0.)
Ota käyttöön hienosti koulutettu malli
Kun mallin koulutus on valmis, voit ottaa mallin suoraan käyttöön pysyvään, reaaliaikaiseen päätepisteeseen. Haemme tarvittavat Docker Image URI:t ja komentosarjan URI:t ja otamme mallin käyttöön. Katso seuraava koodi:
Vasemmalla ovat riobugger-nimisen kissan harjoituskuvat, joita käytetään mallin hienosäätämiseen (oletusparametrit paitsi max_steps
= 400). Keskellä ja oikealla ovat kuvat, jotka on luotu hienosäädetyllä mallilla, kun häntä pyydetään ennustamaan riobuggerin kuva rannalla ja lyijykynäluonnos.
Lisätietoja päättelystä, mukaan lukien tuetut parametrit, vastausmuoto ja niin edelleen, on kohdassa Luo kuvia tekstistä Amazon SageMaker JumpStartin vakaalla diffuusiomallilla.
Käytä JumpStartia Studion käyttöliittymän kautta
Tässä osiossa esittelemme, kuinka JumpStart-malleja koulutetaan ja otetaan käyttöön Studio-käyttöliittymän kautta. Seuraava video näyttää, kuinka löydät esikoulutetun Stable Diffusion -mallin JumpStartista, harjoittelet sen ja otat sen sitten käyttöön. Mallisivulla on arvokasta tietoa mallista ja sen käytöstä. Kun olet määrittänyt SageMaker-koulutusesiintymän, valitse Juna. Kun malli on koulutettu, voit ottaa koulutetun mallin käyttöön valitsemalla Sijoittaa. Kun päätepiste on "palvelussa"-vaiheessa, se on valmis vastaamaan päättelypyyntöihin.
Päätelmän tekemiseen kuluvan ajan nopeuttamiseksi JumpStart tarjoaa mallimuistikirjan, joka näyttää, kuinka johtopäätös suoritetaan äskettäin luodulle päätepisteelle. Voit käyttää muistikirjaa Studiossa valitsemalla Avaa Muistikirja vuonna Käytä Endpointia Studiosta mallin päätepistesivun osio.
JumpStart tarjoaa myös yksinkertaisen muistikirjan, jonka avulla voit hienosäätää vakaan diffuusiomallin ja ottaa käyttöön tuloksena olevan hienosäädetyn mallin. Voit käyttää sitä luomaan hauskoja kuvia koirastasi. Pääset muistikirjaan etsimällä JumpStart-hakupalkista "Luo hauskoja kuvia koirastasi". Muistikirjan suorittamiseen voit käyttää vain viittä harjoituskuvaa ja ladata ne paikalliseen studiokansioon. Jos sinulla on enemmän kuin viisi kuvaa, voit myös ladata ne. Notebook lataa harjoituskuvat S3:een, kouluttaa mallin tietojoukossasi ja ottaa tuloksena olevan mallin käyttöön. Harjoittelu voi kestää 20 minuuttia. Voit muuttaa vaiheiden määrää nopeuttaaksesi harjoittelua. Muistikirja tarjoaa joitain esimerkkikehotteita, joita voit kokeilla käyttöönotetun mallin kanssa, mutta voit kokeilla mitä tahansa kehotteita, joista haluat. Voit myös mukauttaa muistikirjan luomaan avatareja itsestäsi tai lemmikkieläimistäsi. Voit esimerkiksi ladata koirasi sijaan kuvia kissastasi ensimmäisessä vaiheessa ja muuttaa sitten kehotteet koirista kissoiksi, jolloin malli luo kuvia kissastasi.
Hienosäätönäkökohdat
Koulutus Stable Diffusion -malleilla on taipumus ylisovittaa nopeasti. Hyvälaatuisten kuvien saamiseksi meidän on löydettävä hyvä tasapaino käytettävissä olevien harjoitushyperparametrien, kuten harjoitusvaiheiden lukumäärän ja oppimisnopeuden välillä. Tässä osiossa näytämme joitain kokeellisia tuloksia ja annamme ohjeita näiden parametrien asettamiseen.
Suositukset
Harkitse seuraavia suosituksia:
- Aloita laadukkaista harjoituskuvista (4–20). Jos harjoittelet ihmisten kasvoilla, saatat tarvita lisää kuvia.
- Harjoittele 200–400 askelta, kun harjoittelet koirilla tai kissoilla ja muilla ei-ihmisillä. Jos harjoittelet ihmisten kasvoilla, saatat tarvita lisää vaiheita. Jos yliasennusta tapahtuu, vähennä askelmien määrää. Jos alasovitus tapahtuu (hienossäädetty malli ei pysty luomaan kohdekuvaa), lisää vaiheiden määrää.
- Jos harjoittelet ei-ihmiskasvot, voit asettaa
with_prior_preservation = False
koska se ei vaikuta merkittävästi suorituskykyyn. Sinun on ehkä asetettava ihmisten kasvoillewith_prior_preservation=True
. - Jos asetus
with_prior_preservation=True
, käytä ml.g5.2xlarge ilmentymätyyppiä. - Harjoitettaessa useita aiheita peräkkäin, jos aiheet ovat hyvin samankaltaisia (esimerkiksi kaikki koirat), malli säilyttää viimeisen kohteen ja unohtaa edelliset. Jos kohteet ovat erilaisia (esimerkiksi ensin kissa ja sitten koira), malli säilyttää molemmat kohteet.
- Suosittelemme käyttämään alhaista oppimisnopeutta ja lisäämään vaiheiden määrää asteittain, kunnes tulokset ovat tyydyttäviä.
Koulutuksen tietojoukko
Hienosäädetyn mallin laatuun vaikuttaa suoraan harjoituskuvien laatu. Siksi sinun on kerättävä korkealaatuisia kuvia saadaksesi hyviä tuloksia. Epäselvät tai matalaresoluutioiset kuvat vaikuttavat hienosäädetyn mallin laatuun. Muista seuraavat lisäparametrit:
- Harjoituskuvien määrä – Voit hienosäätää mallia vain neljällä harjoituskuvalla. Kokeilimme koulutustietojoukkoja, joiden koko oli vain 4 ja 16 kuvaa. Molemmissa tapauksissa hienosäätö pystyi mukauttamaan mallin kohteeseen.
- Tietojoukkomuodot – Testasimme hienosäätöalgoritmia .png-, .jpg- ja .jpeg-muotoisille kuville. Myös muut muodot voivat toimia.
- Kuvan resoluutio – Harjoituskuvien resoluutio voi olla mikä tahansa. Hienosäätöalgoritmi muuttaa kaikkien harjoituskuvien kokoa ennen hienosäädön aloittamista. Tästä huolimatta, jos haluat hallita paremmin harjoituskuvien rajaamista ja koon muuttamista, suosittelemme kuvien koon muuttamista itse mallin perusresoluutioon (tässä esimerkissä 512 × 512 pikseliä).
Kokeiluasetukset
Tämän viestin kokeessa käytämme hienosäädön aikana hyperparametrien oletusarvoja, ellei sitä ole määritetty. Lisäksi käytämme yhtä neljästä tietojoukosta:
- Koira 1-8 – Koira 1, 8 kuvaa
- Koira 1-16 – Koira 1, 16 kuvaa
- Koira 2-4 – Koira 2 neljällä kuvalla
- Kissa-8 – Kissa 8 kuvalla
Sotkuisuuden vähentämiseksi näytämme vain yhden edustavan kuvan tietojoukosta kussakin osiossa tietojoukon nimen kanssa. Löydät koko harjoitussarjan osiosta Kokeilutietojoukot tässä viestissä.
overfitting
Stable Diffusion -mallit sopivat yleensä yli, kun hienosäädetään muutamaa kuvaa. Siksi sinun on valittava parametrit, kuten epochs
, max_epochs
, ja oppimisnopeus huolellisesti. Tässä osiossa käytimme Dog1-16-tietojoukkoa.
Mallin suorituskyvyn arvioimiseksi arvioimme hienosäädetyn mallin neljään tehtävään:
- Voiko hienosäädetyllä mallilla luoda kuvia kohteesta (Doppler-koira) samassa ympäristössä, jossa se on koulutettu?
- Havainto - Kyllä se voi. On syytä huomata, että mallin suorituskyky kasvaa harjoitusvaiheiden määrän myötä.
- Voiko hienosäädetyllä mallilla luoda kuvia kohteesta eri ympäristössä kuin se on opetettu? Voiko se esimerkiksi luoda kuvia Dopplerista rannalla?
- Havainto - Kyllä se voi. On syytä huomata, että mallin suorituskyky kasvaa harjoitusvaiheiden määrän myötä tiettyyn pisteeseen asti. Jos mallia koulutetaan liian pitkään, mallin suorituskyky kuitenkin heikkenee, koska mallilla on taipumus ylisovittua.
- Voiko hienosäädetyllä mallilla luoda kuvia luokasta, johon koulutusaine kuuluu? Voiko se esimerkiksi luoda kuvan yleisestä koirasta?
- Havainto – Kun lisäämme harjoitusaskeleiden määrää, malli alkaa istua yli. Tämän seurauksena se unohtaa koiran yleisen luokan ja tuottaa vain aiheeseen liittyviä kuvia.
- Voiko hienosäädetyllä mallilla luoda kuvia luokasta tai aineesta, joka ei ole koulutustietojoukossa? Voiko se esimerkiksi luoda kuvan kissasta?
- Havainto – Kun lisäämme harjoitusaskeleiden määrää, malli alkaa istua yli. Tämän seurauksena se tuottaa vain aiheeseen liittyviä kuvia määritetystä luokasta riippumatta.
Hienosäädämme mallia eri askelmäärälle (asettamalla max_steps
hyperparametrit) ja kullekin hienosäädetylle mallille luomme kuvia jokaiselle seuraavista neljästä kehotuksesta (näkyy seuraavissa esimerkeissä vasemmalta oikealle:
- "Kuva Doppler-koirasta"
- "Kuva Doppler-koirasta rannalla"
- "Kuva koirasta"
- "Kuva kissasta"
Seuraavat kuvat ovat mallista, joka on koulutettu 50 askeleella.
Seuraava malli harjoitettiin 100 askeleella.
Harjoittelimme seuraavan mallin 200 askelta.
Seuraavat kuvat ovat mallista, joka on koulutettu 400 askeleen.
Lopuksi, seuraavat kuvat ovat tulosta 800 vaiheesta.
Harjoittele useita tietojoukkoja
Hienosäädön aikana saatat haluta hienosäätää useita kohteita ja antaa hienosäädetyn mallin luoda kuvia kaikista kohteista. Valitettavasti JumpStart rajoittuu tällä hetkellä yhden aiheen koulutukseen. Mallia ei voi hienosäätää useille aiheille samanaikaisesti. Lisäksi mallin hienosäätäminen eri kohteille peräkkäin johtaa siihen, että malli unohtaa ensimmäisen kohteen, jos kohteet ovat samanlaisia.
Käsittelemme tässä osiossa seuraavia kokeita:
- Hienosäädä mallia aihetta A varten.
- Hienosäädä tuloksena oleva malli vaiheesta 1 aiheelle B.
- Luo kuvia kohteesta A ja aihe B käyttämällä vaiheen 2 tulosmallia.
Seuraavissa kokeissa havaitsemme, että:
- Jos A on koira 1 ja B on koira 2, kaikki vaiheessa 3 luodut kuvat muistuttavat koiraa 2
- Jos A on koira 2 ja B on koira 1, kaikki vaiheessa 3 luodut kuvat muistuttavat koiraa 1
- Jos A on koira 1 ja B on kissa, koirakehotteilla luodut kuvat muistuttavat koiraa 1 ja kissan kehotteilla luodut kuvat kissaa
Harjoittele koiralla 1 ja sitten koiralla 2
Vaiheessa 1 hienosäädämme mallia 200 askeleen verran kahdeksalla koiran 1 kuvalla. Vaiheessa 2 hienosäädämme mallia edelleen 200 askelta neljässä koiran 2 kuvassa.
Seuraavat ovat kuvat, jotka on luotu hienosäädetyllä mallilla vaiheen 2 lopussa eri kehotteita varten.
Harjoittele koiralla 2 ja sitten koiralla 1
Vaiheessa 1 hienosäädämme mallia 200 askelta neljällä koiran 2 kuvalla. Vaiheessa 2 hienosäädämme mallia edelleen 200 askeleen verran kahdeksassa koiran 1 kuvassa.
Seuraavat ovat kuvat, jotka on luotu hienosäädetyllä mallilla vaiheen 2 lopussa erilaisilla kehotteilla.
Harjoittele koirilla ja kissoilla
Vaiheessa 1 hienosäädämme mallia 200 askeleen verran kahdeksalla kissan kuvalla. Sitten hienosäädämme mallia edelleen 200 askeleen verran kahdeksalla koiran 1 kuvalla.
Seuraavat ovat kuvat, jotka on luotu hienosäädetyllä mallilla vaiheen 2 lopussa. Kuvat, joissa on kissaan liittyviä kehotteita, näyttävät hienosäädön vaiheessa 1 olevalta kissalta, ja kuvat, joissa on koiraan liittyviä kehotteita, näyttävät koiralta. Hienosäädön vaihe 2.
Säilytys etukäteen
Aiempi säilytys on tekniikka, joka käyttää lisäkuvia samasta luokasta, jota yritämme harjoitella. Jos koulutusdata koostuu esimerkiksi tietyn koiran kuvista, jotka on säilytetty etukäteen, sisällytämme luokkakuvia yleisistä koirista. Se yrittää välttää liiallista istuvuutta näyttämällä kuvia eri koirista, kun se harjoittelee tiettyä koiraa. Luokkakehotteesta puuttuu tunniste, joka ilmaisee esiintymäkehotteessa olevan tietyn koiran. Esim. kehote voi olla esimerkiksi "kuva riobugger-kissasta" ja luokkakehote voi olla "valokuva kissasta". Voit ottaa käyttöön aiemman säilytyksen asettamalla hyperparametrin with_prior_preservation = True
. Jos asetus with_prior_preservation = True
, sinun on sisällytettävä class_prompt
in dataset_info.json
ja se voi sisältää käytettävissäsi olevia luokkakuvia. Seuraava on harjoitustietojoukon muoto määritettäessä with_prior_preservation = True
:
- panos - Hakemisto, joka sisältää ilmentymäkuvat,
dataset_info.json
ja (valinnainen) hakemistoclass_data_dir
. Huomaa seuraavat asiat:- Kuvat voivat olla .png-, .jpg- tai .jpeg-muodossa.
- -
dataset_info.json
tiedoston on oltava muodossa{'instance_prompt':<<instance_prompt>>,'class_prompt':<<class_prompt>>}
. - -
class_data_dir
hakemistossa on oltava luokkakuvat. Josclass_data_dir
ei ole läsnä tai siinä ei ole jo tarpeeksi kuviaclass_data_dir
, lisäkuvista otetaan näytteitäclass_prompt
.
Tietojoukkojen, kuten kissojen ja koirien, osalta ennakkosäilytys ei vaikuta merkittävästi hienosäädetyn mallin suorituskykyyn, ja siksi se voidaan välttää. Tämä on kuitenkin välttämätöntä kasvoja harjoitellessa. Lisätietoja on kohdassa Harjoittele vakaata diffuusiota Dreamboothilla diffuusereilla.
Ilmentymien tyypit
Hienosäätö Stable Diffusion -mallit vaativat kiihdytettyä laskentaa GPU-tuettujen ilmentymien tarjoamana. Kokeilemme hienosäätöämme ml.g4dn.2xlarge (16 Gt CUDA-muisti, 1 GPU) ja ml.g5.2xlarge (24 Gt CUDA-muisti, 1 GPU) -esiintymillä. Muistin tarve on korkeampi luotaessa luokkakuvia. Siksi, jos asetus with_prior_preservation=True
, käytä ml.g5.2xlarge ilmentymän tyyppiä, koska harjoittelu törmää ml.g4dn.2xlarge ilmentymän CUDA:n muisti loppuu -ongelmaan. JumpStart-hienosäätöskripti käyttää tällä hetkellä yhtä GPU:ta, ja siksi usean GPU:n esiintymien hienosäätö ei tuota suorituskykyä. Lisätietoja eri instanssityypeistä on kohdassa Amazon EC2-instanssityypit.
Rajoitukset ja ennakkoluulot
Vaikka Stable Diffusionilla on vaikuttava suorituskyky kuvien luomisessa, se kärsii useista rajoituksista ja harhoista. Näitä ovat muun muassa:
- Malli ei välttämättä luo tarkkoja kasvoja tai raajoja, koska harjoitustiedot eivät sisällä riittävästi kuvia näillä ominaisuuksilla
- Malli on koulutettu LAION-5B tietojoukko, joka sisältää vain aikuisille suunnattua sisältöä ja joka ei välttämättä sovellu tuotteen käyttöön ilman lisähuomiota
- Malli ei välttämättä toimi hyvin muiden kuin englannin kielten kanssa, koska malli on koulutettu englanninkielisellä tekstillä
- Malli ei voi luoda hyvää tekstiä kuviin
Katso lisätietoja rajoituksista ja harhasta Stable Diffusion v2-1-base mallikortti. Nämä esikoulutetun mallin rajoitukset voivat koskea myös hienosäädettyjä malleja.
Puhdistaa
Kun olet lopettanut muistikirjan käyttämisen, muista poistaa kaikki prosessin aikana luodut resurssit varmistaaksesi, että laskutus pysäytetään. Koodi päätepisteen puhdistamiseksi on annettu liitetyssä Johdatus JumpStartiin – tekstistä kuvaksi muistikirja esimerkkinä.
Julkisesti saatavilla hienosäädetyt mallit JumpStartissa
Vaikka Stable Diffusion -mallit julkaisi VakausAI on vaikuttava suorituskyky, niillä on rajoituksia sen kielen tai toimialueen suhteen, jolla se on koulutettu. Esimerkiksi Stable Diffusion -mallit opetettiin englanninkielisestä tekstistä, mutta saatat joutua luomaan kuvia ei-englanninkielisestä tekstistä. Vaihtoehtoisesti Stable Diffusion -malleja koulutettiin luomaan fotorealistisia kuvia, mutta saatat joutua luomaan animoituja tai taiteellisia kuvia.
JumpStart tarjoaa yli 80 julkisesti saatavilla olevaa mallia eri kielillä ja teemoilla. Nämä mallit ovat usein hienosäädettyjä versioita StabilityAI:n julkaisemista Stable Diffusion -malleista. Jos käyttötapauksesi sopii yhteen hienosäädetyn mallin kanssa, sinun ei tarvitse kerätä omaa tietojoukkoasi ja hienosäätää sitä. Voit ottaa yhden näistä malleista yksinkertaisesti käyttöön Studio-käyttöliittymän kautta tai käyttämällä helppokäyttöisiä JumpStart-sovellusliittymiä. Jos haluat ottaa esikoulutetun Stable Diffusion -mallin käyttöön JumpStartissa, katso Luo kuvia tekstistä Amazon SageMaker JumpStartin vakaalla diffuusiomallilla.
Seuraavassa on joitain esimerkkejä kuvista, jotka on luotu JumpStartissa saatavilla olevilla eri malleilla.
Huomaa, että näitä malleja ei ole hienosäädetty JumpStart- tai DreamBooth-skripteillä. Voit ladata täydellisen luettelon julkisesti saatavilla olevista hienosäädetyistä malleista esimerkkikehotteineen osoitteesta tätä.
Lisää esimerkkikuvia näistä malleista, katso kohta Avoimen lähdekoodin hienosäädetyt mallit liitteessä.
Yhteenveto
Tässä viestissä näytimme kuinka hienosäätää Stable Diffusion -mallia tekstistä kuvaksi ja ottaa se sitten käyttöön JumpStartin avulla. Lisäksi keskustelimme joistakin näkökohdista, jotka sinun tulee tehdä mallia hienosäätäessäsi ja kuinka se voi vaikuttaa hienosäädetyn mallin suorituskykyyn. Keskustelimme myös JumpStartissa saatavilla olevista yli 80 käyttövalmiista hienosäädetystä mallista. Tässä viestissä näytimme koodinpätkät – katso täydellinen koodi ja kaikki tämän esittelyn vaiheet Johdatus JumpStartiin – tekstistä kuvaksi esimerkkimuistikirja. Kokeile ratkaisua itse ja lähetä meille kommenttisi.
Saat lisätietoja mallista ja DreamBoothin hienosäädöstä seuraavista lähteistä:
Jos haluat lisätietoja JumpStartista, tutustu seuraaviin blogikirjoituksiin:
Tietoja Tekijät
Tohtori Vivek Madan on soveltuva tutkija Amazon SageMaker JumpStart -tiimin kanssa. Hän sai tohtorin tutkinnon Illinoisin yliopistosta Urbana-Champaignissa ja oli tutkijatohtorina Georgia Techissä. Hän on aktiivinen koneoppimisen ja algoritmisuunnittelun tutkija ja julkaissut julkaisuja EMNLP-, ICLR-, COLT-, FOCS- ja SODA-konferensseissa.
Heiko Hotz on tekoälyn ja koneoppimisen vanhempi ratkaisuarkkitehti, joka keskittyy erityisesti luonnollisen kielen käsittelyyn (NLP), suuriin kielimalleihin (LLM) ja generatiiviseen tekoälyyn. Ennen tätä tehtävää hän toimi Amazonin EU-asiakaspalvelun datatieteen johtajana. Heiko auttaa asiakkaitamme menestymään AI/ML-matkallaan AWS:ssä ja on työskennellyt organisaatioiden kanssa monilla toimialoilla, mukaan lukien vakuutus-, rahoitus-, media- ja viihde-, terveydenhuolto-, yleishyödylliset ja valmistusalat. Vapaa-ajallaan Heiko matkustaa niin paljon kuin mahdollista.
Liite: Kokeilutietojoukot
Tämä osio sisältää tämän viestin kokeissa käytetyt tietojoukot.
Koira 1-8
Koira 1-16
Koira 2-4
Koira 3-8
Liite: Avoimen lähdekoodin hienosäädetyt mallit
Seuraavassa on joitain esimerkkejä kuvista, jotka on luotu JumpStartissa saatavilla olevilla eri malleilla. Jokaiseen kuvaan on merkitty a model_id
alkaa etuliitteellä huggingface-txt2img-
jota seuraa kuvan luomiseen käytetty kehote seuraavalla rivillä.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- Platoblockchain. Web3 Metaverse Intelligence. Tietoa laajennettu. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/machine-learning/fine-tune-text-to-image-stable-diffusion-models-with-amazon-sagemaker-jumpstart/
- 1
- 100
- 11
- 2022
- 9
- a
- kyky
- pystyy
- Meistä
- kiihdyttää
- kiihtyi
- pääsy
- kerätä
- tarkka
- Saavuttaa
- aktiivinen
- sopeuttaa
- lisä-
- Lisäksi
- lisä-
- Aikuinen
- Jälkeen
- AI
- Tekoäly ja koneoppiminen
- AI / ML
- algoritmi
- algoritmit
- Kaikki
- mahdollistaa
- yksin
- jo
- Vaikka
- Amazon
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- ja
- Ilmoittaa
- Toinen
- API
- sovellettu
- käyttää
- sopiva
- arkkitehtuuri
- Art
- taiteellinen
- liittyvä
- automaattisesti
- saatavissa
- avatarit
- välttää
- välttää
- AWS
- Balance
- baari
- pohja
- Ranta
- koska
- ennen
- ovat
- välillä
- Jälkeen
- puolueellisuus
- laskutus
- Uutiset ja media
- Blogitekstit
- Tuo
- rakentaa
- nimeltään
- soittamalla
- huolellisesti
- kuljettaa
- tapaus
- tapauksissa
- KISSA
- Kissat
- tietty
- Tuoli
- muuttaa
- tarkastaa
- valinta
- valintoja
- Valita
- valita
- luokka
- sotkua
- koodi
- kerätä
- kommentit
- laskeminen
- konferenssit
- Konfigurointi
- Harkita
- näkökohdat
- vakio
- rakentaa
- Kontti
- sisältää
- pitoisuus
- ohjaus
- vastaava
- kustannukset
- luoda
- luotu
- Luominen
- sato
- Tällä hetkellä
- asiakassuhde
- asiakas
- Asiakaspalvelu
- Asiakkaat
- tiedot
- tietojenkäsittely
- tietojenkäsittely
- aineistot
- syvä
- syvä oppiminen
- oletusarvo
- esittely
- osoittaa
- sijoittaa
- käyttöön
- Malli
- mallit
- yksityiskohdat
- eri
- Diffuusio
- suoraan
- pohtia
- keskusteltiin
- Divisioona
- Satamatyöläinen
- Telakkakontti
- ei
- Koira
- Koirat
- tekee
- verkkotunnuksen
- Dont
- download
- aikana
- kukin
- helppo käyttää
- tehokas
- upotettu
- mahdollistaa
- mahdollistaa
- päittäin
- päätepiste
- Englanti
- tarpeeksi
- varmistaa
- Viihde
- merkintä
- aikakausia
- arviot
- jne.
- Eetteri (ETH)
- EU
- arvioida
- esimerkki
- Esimerkit
- Paitsi
- suorittaa
- odottaa
- kokeilu
- räjähdysmäinen
- Kasvot
- kasvot
- harvat
- filee
- Asiakirjat
- Vihdoin
- taloudellinen
- rahoituspalvelut
- Löytää
- viimeistely
- Etunimi
- sovittaa
- Korjata
- kellua
- Keskittää
- seurannut
- jälkeen
- muoto
- alkaen
- koko
- hauska
- tehtävät
- edelleen
- Lisäksi
- Saada
- tuottaa
- syntyy
- synnyttää
- tuottaa
- sukupolvi
- generatiivinen
- Generatiivinen AI
- Georgia
- saada
- GitHub
- hyvä
- GPU
- vähitellen
- Käsittely
- tapahtuu
- pää
- terveydenhuollon
- auttaa
- korkealaatuisia
- korkeampi
- isäntä
- Miten
- Miten
- Kuitenkin
- HTML
- HTTPS
- ihmisen
- ICLR
- tunnistettu
- Illinois
- kuva
- kuvan sukupolvi
- kuvien
- Vaikutus
- vaikutti
- tuoda
- vaikuttava
- in
- sisältää
- sisältää
- Mukaan lukien
- sisällyttää
- Kasvaa
- Lisäykset
- lisää
- teollisuuden
- tiedot
- panos
- esimerkki
- sen sijaan
- ohjeet
- vakuutus
- liitäntä
- osallistuva
- eristäminen
- kysymys
- kysymykset
- IT
- Job
- matka
- json
- Pitää
- tuntemus
- Kieli
- kielet
- suuri
- Sukunimi
- käynnistää
- kerrokset
- OPPIA
- oppinut
- oppiminen
- rajoitukset
- rajallinen
- linja
- linjat
- Lista
- vähän
- lastaus
- paikallinen
- Pitkät
- katso
- näyttää joltakin
- pois
- Matala
- kone
- koneoppiminen
- tehdä
- tapa
- käsin
- valmistus
- monet
- ottelu
- maksimi
- Media
- Muisti
- Keskimmäinen
- ehkä
- mielessä
- minimi
- puuttuva
- ML
- malli
- mallit
- hetki
- lisää
- moninkertainen
- nimi
- nimetty
- Luonnollinen
- Luonnollinen kieli
- Luonnollinen kielen käsittely
- välttämätön
- Tarve
- tarvitaan
- verkko
- seuraava
- NFT: t
- NLP
- Melu
- muistikirja
- marraskuu
- numero
- objekti
- tarkkailla
- ONE
- avata
- Operations
- tilata
- organisaatioiden
- alkuperäinen
- Muut
- yleiskatsaus
- oma
- paperit
- parametrit
- erityinen
- kulkee
- Ohimenevä
- polku
- suorittaa
- suorituskyky
- esittävä
- Personoida
- Lemmikit
- fotorealistisia
- pixel
- Platon
- Platonin tietotieto
- PlatonData
- Ole hyvä
- Kohta
- positiivinen
- mahdollinen
- Kirje
- Viestejä
- ennustaa
- esittää
- edellinen
- Aikaisempi
- prosessi
- käsittely
- tuottaa
- Tuotteet
- asteittain
- toimittaa
- mikäli
- tarjoaa
- tarjoamalla
- julkisesti
- julkaistu
- Python
- laatu
- nopeasti
- satunnainen
- alainen
- hinta
- valmis
- todellinen
- reaaliaikainen
- realistinen
- äskettäin
- tunnistaa
- suositella
- suosituksia
- punainen
- vähentää
- riippumatta
- liittyvä
- julkaistu
- poistaminen
- poistaa
- edustaja
- pyynnöt
- edellyttää
- tarvitaan
- vaatimus
- Vaatii
- tutkija
- päätöslauselma
- Esittelymateriaalit
- Vastata
- vastaus
- johtua
- Saatu ja
- tulokset
- Rooli
- ajaa
- juoksu
- sagemaker
- Said
- sama
- tallentaa
- tiede
- Tiedemies
- skriptejä
- sdk
- Haku
- sekuntia
- Osa
- vanhempi
- Sarjat
- palvelu
- Palvelut
- setti
- asetus
- useat
- muodot
- shouldnt
- näyttää
- esitetty
- Näytä
- merkittävästi
- samankaltainen
- Yksinkertainen
- yksinkertaisesti
- single
- Istuminen
- Koko
- pieni
- pienempiä
- So
- ratkaisu
- Ratkaisumme
- jonkin verran
- Tila
- erityinen
- erityinen
- määritelty
- nopeus
- vakaa
- Vaihe
- Aloita
- alkaa
- Osavaltio
- Vaihe
- Askeleet
- pysähtynyt
- Levytila
- studio
- aihe
- onnistunut
- niin
- kärsii
- riittävä
- tuki
- Tuetut
- Tukee
- TAG
- ottaa
- vie
- Kohde
- tehtävät
- joukkue-
- teknologia
- ehdot
- testit
- -
- heidän
- siksi
- Kautta
- aika
- että
- tänään
- yhdessä
- liian
- Yhteensä
- Juna
- koulutettu
- koulutus
- junat
- siirtää
- matkustaa
- tyypit
- ui
- unique
- yliopisto
- Päivitykset
- päivitetty
- Päivitykset
- URI
- us
- käyttää
- käyttölaukku
- käyttäjä
- Käyttöliittymä
- yleensä
- apuohjelmia
- hyödyllisyys
- hyödyntää
- arvokas
- Arvokasta tietoa
- arvo
- arvot
- eri
- Video
- tavalla
- paino
- onko
- joka
- vaikka
- valkoinen
- tulee
- sisällä
- ilman
- sanoja
- Referenssit
- työskennellä yhdessä
- työskenteli
- työskentely
- arvoinen
- tuotto
- Sinun
- itse
- zephyrnet
- nolla-