Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services

Generatiivisesta tekoälystä on tullut yleinen työkalu luovan prosessin tehostamiseen ja nopeuttamiseen eri toimialoilla, mukaan lukien viihde, mainonta ja graafinen suunnittelu. Se mahdollistaa yleisölle yksilöllisemmän kokemuksen ja parantaa lopputuotteiden yleistä laatua.

Yksi generatiivisen tekoälyn merkittävä etu on ainutlaatuisten ja henkilökohtaisten kokemusten luominen käyttäjille. Esimerkiksi suoratoistopalvelut käyttävät generatiivista tekoälyä luomaan henkilökohtaisia ​​elokuvien nimiä ja visuaalisia kuvia katsojien sitoutumisen lisäämiseksi ja visuaalisten kuvien rakentamiseksi nimikkeille käyttäjän katseluhistorian ja -asetusten perusteella. Tämän jälkeen järjestelmä luo tuhansia muunnelmia nimikkeen kuvista ja testaa niitä määrittääkseen, mikä versio herättää eniten käyttäjän huomion. Joissakin tapauksissa tv-sarjojen henkilökohtainen kuvitus lisäsi merkittävästi napsautussuhteita ja katseluprosentteja verrattuna ohjelmiin, joissa ei ollut henkilökohtaista taidetta.

Tässä viestissä näytämme, kuinka voit käyttää generatiivisia tekoälymalleja, kuten Stable Diffusion, rakentaaksesi henkilökohtaisen avatar-ratkaisun Amazon Sage Maker ja säästää päättelykuluja useiden mallien päätepisteiden (MME) avulla samanaikaisesti. Ratkaisu osoittaa, kuinka lataamalla 10–12 kuvaa itsestäsi voit hienosäätää yksilöllisen mallin, joka voi sitten luoda avatareja minkä tahansa tekstikehotteen perusteella, kuten seuraavissa kuvakaappauksissa näkyy. Vaikka tämä esimerkki luo henkilökohtaisia ​​avatareja, voit soveltaa tekniikkaa mihin tahansa luovan taiteen sukupolveen hienosäätämällä tiettyjä esineitä tai tyylejä.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai. Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Ratkaisun yleiskatsaus

Seuraavassa arkkitehtuurikaaviossa hahmotellaan avatar-generaattorimme päästä päähän -ratkaisu.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Tämän postauksen laajuus ja esimerkki GitHub-koodi keskitymme vain mallikoulutukseen ja johtopäätösten orkestrointiin (vihreä osa edellisessä kaaviossa). Voit viitata koko ratkaisuarkkitehtuuriin ja rakentaa tarjoamamme esimerkin päälle.

Mallikoulutus ja päättely voidaan jakaa neljään vaiheeseen:

  1. Lataa kuvia osoitteeseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Tässä vaiheessa pyydämme sinua toimittamaan vähintään 10 korkearesoluutioista kuvaa itsestäsi. Mitä enemmän kuvia, sitä parempi tulos, mutta sitä kauemmin harjoittelu kestää.
  2. Hienosäädä Stable Diffusion 2.1 -perusmalli käyttämällä SageMakerin asynkronista päättelyä. Selitämme perustelut päätepäätepisteen käyttämiselle koulutuksessa myöhemmin tässä viestissä. Hienosäätöprosessi alkaa kuvien valmistelulla, mukaan lukien kasvojen rajaaminen, taustan vaihtelu ja mallin koon muuttaminen. Sitten käytämme Low-Rank Adaptation (LoRA) -parametritehokasta hienosäätötekniikkaa suurille kielimalleille (LLM) mallin hienosäätämiseen. Lopuksi jälkikäsittelyssä pakkaamme hienosäädetyt LoRA-painot päättelykomentosarjan ja konfigurointitiedostojen (tar.gz) kanssa ja lataamme ne S3-säilöpaikkaan SageMaker MME:ille.
  3. Isännöi hienosäädettyjä malleja SageMaker MME:illä ja GPU:lla. SageMaker lataa ja tallentaa mallin dynaamisesti Amazon S3 -sijainnista kuhunkin malliin suuntautuvan päättelyliikenteen perusteella.
  4. Käytä johtopäätösten tekemiseen hienosäädettyä mallia. Jälkeen Amazonin yksinkertainen ilmoituspalvelu (Amazon SNS) ilmoituksen, jossa ilmoitetaan, että hienosäätö on lähetetty, voit heti käyttää kyseistä mallia toimittamalla target_model parametri, kun kutsut MME:tä avatarisi luomiseksi.

Selitämme kunkin vaiheen yksityiskohtaisemmin seuraavissa osioissa ja käymme läpi joitakin esimerkkikoodinpätkiä.

Valmistele kuvat

Saavuttaaksesi parhaat tulokset hienosäätämällä Stable Diffusionia kuvien luomiseksi itsestäsi, sinun on yleensä annettava suuri määrä ja erilaisia ​​kuvia itsestäsi eri näkökulmista, erilaisilla ilmeillä ja eri taustoilla. Toteuksemme avulla voit nyt kuitenkin saavuttaa korkealaatuisen tuloksen vain 10 syöttökuvalla. Olemme myös lisänneet automaattisen esikäsittelyn kasvosi erottamiseksi jokaisesta valokuvasta. Sinun tarvitsee vain vangita ulkonäkösi olemus selkeästi useista eri näkökulmista. Sisällytä etukuva, profiilikuva kummaltakin puolelta ja kuvia väliltä. Sinun tulisi myös sisällyttää kuvia erilaisilla ilmeillä, kuten hymyilevä, rypistävä ja neutraali ilme. Kun käytät erilaisia ​​ilmeitä, malli voi toistaa paremmin ainutlaatuiset kasvosi piirteet. Syötekuvat sanelevat luotavan avatarin laadun. Varmistaaksesi, että tämä tehdään oikein, suosittelemme intuitiivista käyttöliittymää, joka opastaa käyttäjää kuvien sieppaus- ja latausprosessin läpi.

Seuraavat ovat esimerkkejä selfie-kuvista eri kulmista erilaisilla ilmeillä.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Hienosäädä vakaa diffuusiomalli

Kun kuvat on ladattu Amazon S3:een, voimme vedota SageMakerin asynkroninen päättely päätepiste aloittaaksesi koulutusprosessimme. Asynkroniset päätepisteet on tarkoitettu päättelytapauksiin, joissa on suuri hyötykuorma (jopa 1 Gt) ja pitkät käsittelyajat (jopa 1 tunti). Se tarjoaa myös sisäänrakennetun jonomekanismin pyyntöjen jonottamista varten ja tehtävien valmistumisesta ilmoittavan mekanismin Amazon SNS:n kautta muiden SageMaker-isännöinnin alkuperäisten ominaisuuksien, kuten automaattisen skaalauksen, lisäksi.

Vaikka hienosäätö ei ole päätelmien käyttötapaus, päätimme käyttää sitä tässä SageMaker-koulutustöiden sijasta sen sisäänrakennettujen jono- ja ilmoitusmekanismien ja hallittu automaattinen skaalaus, mukaan lukien mahdollisuus skaalata 0 tapaukseen, kun palvelu ei ole käytössä. Tämän ansiosta voimme helposti skaalata hienosäätöpalvelua suurelle määrälle samanaikaisia ​​käyttäjiä ja poistaa tarpeen ottaa käyttöön ja hallita lisäkomponentteja. Sen haittapuolena on kuitenkin 1 Gt:n hyötykuorma ja 1 tunnin enimmäiskäsittelyaika. Testauksessamme havaitsimme, että 20 minuuttia on riittävä aika kohtuullisen hyvien tulosten saamiseksi noin 10 syöttökuvalla ml.g5.2xlarge-esiintymässä. SageMaker-koulutus olisi kuitenkin suositeltava lähestymistapa suurempiin hienosäätötöihin.

Asynkronisen päätepisteen isännöimiseksi meidän on suoritettava useita vaiheita. Ensimmäinen on mallipalvelimemme määritteleminen. Tässä viestissä käytämme Suuri mallipäätelmäsäiliö (LMI). LMI:n virtalähteenä on DJL Serving, joka on korkean suorituskyvyn ohjelmointikieliä agnostinen mallinpalveluratkaisu. Valitsimme tämän vaihtoehdon, koska SageMakerin hallitussa johtopäätössäilössä on jo monia tarvitsemistamme koulutuskirjastoista, kuten Hugging Face diffuusorit ja Kiihdyttää. Tämä vähentää huomattavasti työmäärää, joka tarvitaan kontin mukauttamiseen hienosäätötyöhön.

Seuraava koodinpätkä näyttää LMI-säilön version, jota käytimme esimerkissämme:

inference_image_uri = ( f"763104351884.dkr.ecr.{region}.amazonaws.com/djl-inference:0.21.0-deepspeed0.8.3-cu117"
)
print(f"Image going to be used is ---- > {inference_image_uri}")

Sen lisäksi meillä on oltava a serving.properties tiedosto, joka määrittää käyttöominaisuudet, mukaan lukien käytettävän päättelymoottorin, malliartefaktin sijainnin ja dynaamisen erän. Lopuksi meillä on oltava a model.py tiedosto, joka lataa mallin päättelykoneeseen ja valmistelee tietojen syötteen ja tulostuksen mallista. Esimerkissämme käytämme model.py tiedosto pyörittääksesi hienosäätötyötä, jota selitämme yksityiskohtaisemmin myöhemmässä osassa. Molemmat serving.properties ja model.py tiedostot ovat saatavilla training_service kansio.

Seuraava vaihe mallipalvelimemme määrittämisen jälkeen on luoda päätepistemääritys, joka määrittää, kuinka asynkroninen päätelmämme toimitetaan. Esimerkissämme määritämme vain samanaikaisen kutsun enimmäisrajan ja lähdön S3 sijainnin. Kanssa ml.g5.2xlarge Olemme esimerkiksi havainneet, että pystymme hienosäätämään jopa kahta mallia samanaikaisesti ilman muistin loppumisen (OOM) poikkeusta, ja siksi asetamme max_concurrent_invocations_per_instance 2. Tätä numeroa on ehkä muutettava, jos käytämme eri viritysparametreja tai pienempää ilmentymän tyyppiä. Suosittelemme asettamaan tämän arvoksi 1 aluksi ja seuraamaan GPU-muistin käyttöä amazonin pilvikello.

# create async endpoint configuration
async_config = AsyncInferenceConfig( output_path=f"s3://{bucket}/{s3_prefix}/async_inference/output" , # Where our results will be stored max_concurrent_invocations_per_instance=2, notification_config={   "SuccessTopic": "...",   "ErrorTopic": "...", }, #  Notification configuration
)

Lopuksi luomme SageMaker-mallin, joka pakkaa säilötiedot, mallitiedostot ja AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) rooli yhdeksi objektiksi. Malli otetaan käyttöön käyttämällä aiemmin määrittämäämme päätepistekokoonpanoa:

model = Model( image_uri=image_uri, model_data=model_data, role=role, env=env
) model.deploy( initial_instance_count=1, instance_type=instance_type, endpoint_name=endpoint_name, async_inference_config=async_inference_config
) predictor = sagemaker.Predictor( endpoint_name=endpoint_name, sagemaker_session=sagemaker_session
)

Kun päätepiste on valmis, käytämme seuraavaa esimerkkikoodia asynkronisen päätepisteen kutsumiseen ja hienosäätöprosessin aloittamiseen:

sm_runtime = boto3.client("sagemaker-runtime") input_s3_loc = sess.upload_data("data/jw.tar.gz", bucket, s3_prefix) response = sm_runtime.invoke_endpoint_async( EndpointName=sd_tuning.endpoint_name, InputLocation=input_s3_loc)

Lisätietoja LMI:stä SageMakerissa on kohdassa Ota suuria malleja käyttöön Amazon SageMakerissa käyttämällä DJLServing- ja DeepSpeed-mallin rinnakkaisjohtopäätöstä.

Kutsumisen jälkeen asynkroninen päätepiste alkaa asettaa hienosäätötyömme jonoon. Jokainen työ suoritetaan seuraavien vaiheiden läpi: valmistele kuvat, suorita Dreamboothin ja LoRA:n hienosäätö ja valmistele malliesineet. Sukellaan syvemmälle hienosäätöprosessiin.

Valmistele kuvat

Kuten aiemmin mainitsimme, syöttökuvien laatu vaikuttaa suoraan hienosäädetyn mallin laatuun. Avatar-käyttötapauksessa haluamme mallin keskittyvän kasvojen piirteisiin. Sen sijaan, että vaatisimme käyttäjiä toimittamaan tarkasti kuratoituja kuvia, joiden koko ja sisältö on tarkka, toteutamme esikäsittelyvaiheen tietokonenäkötekniikoilla tämän taakan keventämiseksi. Esikäsittelyvaiheessa käytämme ensin kasvojentunnistusmallia eristämään kunkin kuvan suurimmat kasvot. Sitten rajaamme ja pehmustamme kuvan mallillemme vaadittuun 512 x 512 pikselin kokoon. Lopuksi segmentoimme kasvot taustasta ja lisäämme satunnaisia ​​taustamuunnelmia. Tämä auttaa korostamaan kasvojen piirteitä, jolloin mallimme voi oppia itse kasvoista taustan sijaan. Seuraavat kuvat havainnollistavat tämän prosessin kolmea vaihetta.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai. Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai. Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.
Vaihe 1: Kasvojentunnistus tietokonenäön avulla Vaihe 2: Rajaa ja pehmusta kuva 512 x 512 pikseliksi Vaihe 3 (valinnainen): Segmentoi ja lisää taustamuunnelmia

Dreambooth ja LoRA hienosäätö

Hienosäätöä varten yhdistimme Dreamboothin ja LoRA:n tekniikat. Dreamboothin avulla voit mukauttaa Stable Diffusion -malliasi upottamalla aiheen mallin tulosalueeseen käyttämällä yksilöllistä tunnistetta ja laajentamalla mallin kielen visiosanakirjaa. Se käyttää menetelmää ns ennakkosäilytys säilyttää mallin semanttinen tieto subjektin luokasta, tässä tapauksessa henkilöstä, ja käyttää muita luokan esineitä parantamaan lopullista kuvatulostusta. Näin Dreambooth voi saavuttaa korkealaatuisia tuloksia vain muutamalla kohteen kuvalla.

Seuraava koodinpätkä näyttää syötteet meidän trainer.py luokka avatar-ratkaisullemme. Huomaa, että valitsimme <<TOK>> yksilöllisenä tunnisteena. Tämä tehdään tarkoituksella, jotta vältytään valitsemasta nimeä, joka saattaa jo olla mallin sanakirjassa. Jos nimi on jo olemassa, mallin on poistettava oppiminen ja opittava sitten uudelleen aihe, mikä voi johtaa huonoihin hienosäätötuloksiin. Aiheluokka on asetettu “a photo of person”, joka mahdollistaa ennakkosäilöntämisen luomalla ensin kuvia ihmisistä lisäsyötteenä hienosäätöprosessin aikana. Tämä auttaa vähentämään ylisovitusta, kun malli yrittää säilyttää henkilön aiemman tiedon käyttämällä aikaisempaa säilytysmenetelmää.

status = trn.run(base_model="stabilityai/stable-diffusion-2-1-base", resolution=512, n_steps=1000, concept_prompt="photo of <<TOK>>", # << unique identifier of the subject learning_rate=1e-4, gradient_accumulation=1, fp16=True, use_8bit_adam=True, gradient_checkpointing=True, train_text_encoder=True, with_prior_preservation=True, prior_loss_weight=1.0, class_prompt="a photo of person", # << subject class num_class_images=50, class_data_dir=class_data_dir, lora_r=128, lora_alpha=1, lora_bias="none", lora_dropout=0.05, lora_text_encoder_r=64, lora_text_encoder_alpha=1, lora_text_encoder_bias="none", lora_text_encoder_dropout=0.05
)

Kokoonpanossa on otettu käyttöön useita muistinsäästövaihtoehtoja, mukaan lukien fp16, use_8bit_adam, ja gradientin kerääntyminen. Tämä vähentää muistin jalanjäljen alle 12 Gt, mikä mahdollistaa jopa kahden mallin hienosäädön samanaikaisesti ml.g5.2xlarge ilmentymä.

LoRA on tehokas hienosäätötekniikka LLM:ille, joka jäädyttää suurimman osan painoista ja liittää pienen sovitinverkon tiettyihin esikoulutetun LLM:n kerroksiin, mikä mahdollistaa nopeamman harjoittelun ja optimoidun varastoinnin. Vakaa diffuusiota varten sovitin on liitetty päättelyliukuhihnan tekstienkooderiin ja U-Net-komponentteihin. Tekstienkooderi muuntaa syöttökehotteen U-Net-mallin ymmärtämäksi piileväksi tilaksi, ja U-Net-malli käyttää piilevää merkitystä kuvan luomiseen myöhemmässä diffuusioprosessissa. Hienosäädön tulos on vain text_encoder ja U-Net-sovittimen painot. Päättelyhetkellä nämä painot voidaan liittää takaisin vakaan diffuusion perusmalliin hienosäätötulosten toistamiseksi.

Alla olevat kuvat ovat alkuperäisen kirjoittajan toimittamia LoRA-hienosäätökaavioita: Cheng-Han Chiang, Yung-Sung Chuang, Hung-yi Lee, "AACL_2022_tutorial_PLMs", 2022

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai. Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Yhdistämällä molemmat menetelmät pystyimme luomaan personoidun mallin samalla kun viritettiin suuruusluokkaa vähemmän parametreja. Tämä johti paljon nopeampaan harjoitusaikaan ja vähensi GPU:n käyttöastetta. Lisäksi tallennustila optimoitiin siten, että sovittimen paino oli vain 70 Mt, kun se on 6 Gt täydessä Stable Diffusion -mallissa, mikä tarkoittaa 99 %:n koon pienennystä.

Valmistele malliesineet

Kun hienosäätö on valmis, jälkikäsittelyvaihe tekee LoRA-painot TAR:n muiden NVIDIA Tritonin mallitiedostojen kanssa. Käytämme Python-taustajärjestelmää, mikä tarkoittaa, että Triton-konfiguraatiotiedosto ja päättelyyn käytetty Python-komentosarja vaaditaan. Huomaa, että Python-skripti on nimettävä model.py. Lopullisella mallin TAR-tiedostolla tulee olla seuraava tiedostorakenne:

|--sd_lora |--config.pbtxt |--1 |--model.py |--output #LoRA weights |--text_encoder |--unet |--train.sh

Isännöi hienosäädettyjä malleja SageMaker MME:illä ja GPU:lla

Kun mallit on hienosäädetty, isännöimme personoidut Stable Diffusion -mallit SageMaker MME:n avulla. SageMaker MME on tehokas käyttöönottoominaisuus, joka mahdollistaa useiden mallien isännöinnin yhdessä säilössä yhden päätepisteen takana. Se hallitsee automaattisesti liikennettä ja reititystä malleihisi optimoidakseen resurssien käytön, säästääkseen kustannuksia ja minimoidakseen tuhansien päätepisteiden hallinnasta aiheutuvan toiminnallisen taakan. Esimerkissämme käytämme GPU-instanssia, ja SageMaker MME:t tukevat GPU:ta Triton Serverin avulla. Tämän avulla voit käyttää useita malleja yhdessä GPU-laitteessa ja hyödyntää kiihdytettyä laskentaa. Katso lisätietoja Stable Diffusionin isännöimisestä SageMaker MME:issä Luo korkealaatuisia kuvia Stable Diffusion -malleilla ja ota ne käyttöön kustannustehokkaasti Amazon SageMakerin avulla.

Esimerkissämme teimme lisäoptimointia, jotta hienosäädetyt mallit latautuvat nopeammin kylmäkäynnistystilanteissa. Tämä on mahdollista LoRA:n sovittimen suunnittelun ansiosta. Koska perusmallien painot ja Conda-ympäristöt ovat samat kaikissa hienosäädetyissä malleissa, voimme jakaa nämä yhteiset resurssit lataamalla ne valmiiksi isännöintisäiliöön. Jäljelle jää vain Triton-asetustiedosto, Python-taustaosa (model.py), ja LoRA-sovittimen painot ladataan dynaamisesti Amazon S3:sta ensimmäisen kutsun jälkeen. Seuraava kaavio tarjoaa vierekkäisen vertailun.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Tämä vähentää merkittävästi mallin TAR-tiedostoa noin 6 Gt:sta 70 Mt:aan, ja siksi se on paljon nopeampi ladata ja purkaa. Esilatauksen suorittamiseksi esimerkissämme loimme Python-apuohjelman taustamallin models/model_setup. Skripti yksinkertaisesti kopioi Stable Diffusion -perusmallin ja Conda-ympäristön Amazon S3:sta yhteiseen sijaintiin jakaakseen kaikki hienosäädetyt mallit. Seuraava on koodinpätkä, joka suorittaa tehtävän:

def initialize(self, args): #conda env setup self.conda_pack_path = Path(args['model_repository']) / "sd_env.tar.gz" self.conda_target_path = Path("/tmp/conda") self.conda_env_path = self.conda_target_path / "sd_env.tar.gz" if not self.conda_env_path.exists(): self.conda_env_path.parent.mkdir(parents=True, exist_ok=True) shutil.copy(self.conda_pack_path, self.conda_env_path) #base diffusion model setup self.base_model_path = Path(args['model_repository']) / "stable_diff.tar.gz" try: with tarfile.open(self.base_model_path) as tar: tar.extractall('/tmp') self.response_message = "Model env setup successful." except Exception as e: # print the exception message print(f"Caught an exception: {e}") self.response_message = f"Caught an exception: {e}"

Sitten jokainen hienosäädetty malli osoittaa jaettuun sijaintiin säiliössä. Conda-ympäristöön viitataan julkaisussa config.pbtxt.

name: "pipeline_0"
backend: "python"
max_batch_size: 1 ... parameters: { key: "EXECUTION_ENV_PATH", value: {string_value: "/tmp/conda/sd_env.tar.gz"}
}

Stable Diffusion -pohjamalli ladataan initialize() kunkin toiminto model.py tiedosto. Tämän jälkeen käytämme yksilöllisiä LoRA-painoja unet- ja text_encoder malli jokaisen hienosäädetyn mallin toistamiseksi:

... class TritonPythonModel: def initialize(self, args): self.output_dtype = pb_utils.triton_string_to_numpy( pb_utils.get_output_config_by_name(json.loads(args["model_config"]), "generated_image")["data_type"]) self.model_dir = args['model_repository'] device='cuda' self.pipe = StableDiffusionPipeline.from_pretrained('/tmp/stable_diff', torch_dtype=torch.float16, revision="fp16").to(device) # Load the LoRA weights self.pipe.unet = PeftModel.from_pretrained(self.pipe.unet, unet_sub_dir) if os.path.exists(text_encoder_sub_dir): self.pipe.text_encoder = PeftModel.from_pretrained(self.pipe.text_encoder, text_encoder_sub_dir)

Käytä johtopäätösten tekemiseen hienosäädettyä mallia

Nyt voimme kokeilla hienosäädettyä malliamme kutsumalla MME-päätepistettä. Esimerkissämme paljastamiamme syöttöparametreja ovat mm prompt, negative_promptja gen_args, kuten seuraavassa koodinpätkässä näkyy. Asetamme sanakirjan jokaisen syöttökohteen tietotyypin ja muodon ja muunnamme ne JSON-merkkijonoksi. Lopuksi merkkijonon hyötykuorma ja TargetModel siirretään pyyntöön luoda avatar-kuvasi.

import random prompt = """<<TOK>> epic portrait, zoomed out, blurred background cityscape, bokeh, perfect symmetry, by artgem, artstation ,concept art,cinematic lighting, highly detailed, octane, concept art, sharp focus, rockstar games, post processing, picture of the day, ambient lighting, epic composition""" negative_prompt = """
beard, goatee, ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft, amateur, multiple, gross, weird, uneven, furnishing, decorating, decoration, furniture, text, poor, low, basic, worst, juvenile, unprofessional, failure, crayon, oil, label, thousand hands """ seed = random.randint(1, 1000000000) gen_args = json.dumps(dict(num_inference_steps=50, guidance_scale=7, seed=seed)) inputs = dict(prompt = prompt, negative_prompt = negative_prompt, gen_args = gen_args) payload = { "inputs": [{"name": name, "shape": [1,1], "datatype": "BYTES", "data": [data]} for name, data in inputs.items()]
} response = sm_runtime.invoke_endpoint( EndpointName=endpoint_name, ContentType="application/octet-stream", Body=json.dumps(payload), TargetModel="sd_lora.tar.gz",
)
output = json.loads(response["Body"].read().decode("utf8"))["outputs"]
original_image = decode_image(output[0]["data"][0])
original_image

Puhdistaa

Noudata muistikirjan puhdistusosiossa olevia ohjeita poistaaksesi osana tätä viestiä annetut resurssit tarpeettomien kulujen välttämiseksi. Viitata Amazon SageMaker -hinnoittelu lisätietoja päättelytapahtumien kustannuksista.

Yhteenveto

Tässä viestissä osoitimme kuinka luoda henkilökohtainen avatar-ratkaisu käyttämällä Stable Diffusionia SageMakerissa. Hienosäätämällä esikoulutettua mallia vain muutamalla kuvalla, voimme luoda avatareja, jotka kuvastavat jokaisen käyttäjän yksilöllisyyttä ja persoonallisuutta. Tämä on vain yksi monista esimerkeistä siitä, kuinka voimme käyttää generatiivista tekoälyä luodaksemme räätälöityjä ja ainutlaatuisia kokemuksia käyttäjille. Mahdollisuudet ovat rajattomat, ja kehotamme sinua kokeilemaan tätä tekniikkaa ja tutkimaan sen mahdollisuuksia parantaa luovaa prosessia. Toivomme, että tämä viesti on ollut informatiivinen ja inspiroiva. Suosittelemme kokeilemaan esimerkkiä ja jakamaan luomuksesi kanssamme hashtageilla #sagemaker #mme #genai sosiaalisessa mediassa. Haluaisimme nähdä mitä teet.

Stable Diffusionin lisäksi monia muita generatiivisia tekoälymalleja on saatavilla Amazon SageMaker JumpStart. Viitata Amazon SageMaker JumpStartin käytön aloittaminen tutkimaan kykyjään.


Tietoja Tekijät

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.James Wu on AWS:n vanhempi AI/ML-asiantuntijaratkaisuarkkitehti. auttaa asiakkaita suunnittelemaan ja rakentamaan AI/ML-ratkaisuja. Jamesin työ kattaa laajan valikoiman ML-käyttötapauksia, ja hänen ensisijaisena kiinnostuksena ovat tietokonenäkö, syväoppiminen ja ML:n skaalaaminen koko yrityksessä. Ennen AWS:ään liittymistään James oli arkkitehti, kehittäjä ja teknologiajohtaja yli 10 vuoden ajan, joista 6 vuotta suunnittelussa ja 4 vuotta markkinointi- ja mainontateollisuudessa.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Simon Zamarin on tekoäly / ML-ratkaisuarkkitehti, jonka pääpaino on asiakkaiden auttamisessa hyödyntämään arvoa tietovaroistaan. Vapaa-ajallaan Simon nauttii viettää aikaa perheen kanssa, lukea sci-fiä ja työskennellä erilaisissa DIY-taloprojekteissa.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Vikram Elango on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä, jonka kotipaikka on Virginia USA. Vikram auttaa rahoitus- ja vakuutusalan asiakkaita suunnittelussa, ajattelun johtajuudessa rakentamaan ja ottamaan käyttöön koneoppimissovelluksia mittakaavassa. Hän keskittyy tällä hetkellä luonnollisen kielen käsittelyyn, vastuulliseen tekoälyyn, päätelmien optimointiin ja ML:n skaalaukseen koko yrityksessä. Vapaa-ajallaan hän nauttii matkustamisesta, vaeltamisesta, ruoanlaitosta ja telttailusta perheensä kanssa.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Lana Zhang on AWS WWSO AI Services -tiimin vanhempi ratkaisuarkkitehti, joka on erikoistunut tekoälyyn ja ML:ään sisällön moderointiin, tietokonenäköön ja luonnollisen kielen käsittelyyn. Asiantuntijuudellaan hän on omistautunut edistämään AWS AI/ML -ratkaisuja ja auttamaan asiakkaita muuttamaan liiketoimintaratkaisujaan eri toimialoilla, mukaan lukien sosiaalinen media, pelit, sähköinen kaupankäynti sekä mainonta ja markkinointi.

Rakenna henkilökohtainen avatar generatiivisella tekoälyllä Amazon SageMakerin avulla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Saurabh Trikande on Amazon SageMaker Inferencen -tuotepäällikkö. Hän on intohimoinen asiakkaiden kanssa työskentelyyn, ja häntä motivoi tavoite demokratisoida koneoppimista. Hän keskittyy ydinhaasteisiin, jotka liittyvät monimutkaisten ML-sovellusten käyttöönottoon, usean vuokralaisen ML-malleihin, kustannusten optimointiin ja syvän oppimismallien käyttöönoton helpottamiseen. Vapaa-ajallaan Saurabh nauttii vaeltamisesta, innovatiivisten teknologioiden oppimisesta, TechCrunchien seuraamisesta ja perheensä kanssa viettämisestä.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen