Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services

Generatiiviset tekoälymallit ovat kasvaneet nopeasti viime kuukausina, koska ne pystyvät luomaan realistista tekstiä, kuvia, koodia ja ääntä. Näistä malleista Stable Diffusion -mallit erottuvat ainutlaatuisesta vahvuudestaan ​​korkealaatuisten kuvien luomisessa tekstikehotteiden perusteella. Vakaa diffuusio voi tuottaa laajan valikoiman korkealaatuisia kuvia, mukaan lukien realistisia muotokuvia, maisemia ja jopa abstraktia taidetta. Ja kuten muutkin generatiiviset tekoälymallit, Stable Diffusion -mallit vaativat tehokkaan tietojenkäsittelyn alhaisen latenssin päättelyn tekemiseksi.

Tässä viestissä näytämme, kuinka voit käyttää Stable Diffusion -malleja ja saavuttaa korkean suorituskyvyn alhaisin kustannuksin Amazonin elastinen laskentapilvi (Amazon EC2) käyttäen Amazon EC2 Inf2 -tapaukset virtansa AWS Inferentia2. Tarkastelemme vakaan diffuusiomallin arkkitehtuuria ja käymme läpi vaiheet vakaan diffuusiomallin laatimiseksi käyttämällä AWS Neuron ja ottaa sen käyttöön Inf2-instanssiin. Keskustelemme myös optimoinneista, joita Neuron SDK tekee automaattisesti suorituskyvyn parantamiseksi. Voit käyttää sekä Stable Diffusion 2.1- että 1.5 -versioita AWS Inferentia2:ssa kustannustehokkaasti. Lopuksi näytämme, kuinka voit ottaa käyttöön Stable Diffusion -mallin Inf2-instanssiin Amazon Sage Maker.

Stable Diffusion 2.1 -mallin koko liukulukussa 32 (FP32) on 5 Gt ja 2.5 Gt bfoat16:ssa (BF16). Yhdellä inf2.xlarge-instanssilla on yksi AWS Inferentia2 -kiihdytin, jossa on 32 Gt HBM-muistia. Stable Diffusion 2.1 -malli mahtuu yhteen inf2.xlarge-instanssiin. Stable Diffusion on tekstistä kuvaksi -malli, jonka avulla voit luoda erilaisia ​​tyylejä ja sisältöjä sisältäviä kuvia yksinkertaisesti antamalla syötteenä tekstikehotteen. Lisätietoja Stable Diffusion -mallin arkkitehtuurista on kohdassa Luo korkealaatuisia kuvia Stable Diffusion -malleilla ja ota ne käyttöön kustannustehokkaasti Amazon SageMakerin avulla.

Kuinka Neuron SDK optimoi vakaan diffuusion suorituskyvyn

Ennen kuin voimme ottaa käyttöön Stable Diffusion 2.1 -mallin AWS Inferentia2 -esiintymissä, meidän on käännettävä mallin komponentit käyttämällä Neuron SDK. Neuron SDK, joka sisältää syväoppimiskääntäjän, suoritusajan ja työkalut, kokoaa ja optimoi automaattisesti syväoppimismalleja, jotta ne voivat toimia tehokkaasti Inf2-esiintymissä ja poimia täyden suorituskyvyn AWS Inferentia2 -kiihdyttimestä. Meillä on esimerkkejä saatavilla Stable Diffusion 2.1 -mallista GitHub repo. Tämä muistikirja tarjoaa kattavan esimerkin vakaan diffuusiomallin kokoamisesta, käännetyn Neuron-mallin tallentamisesta ja sen lataamisesta suoritusaikaan päätelmiä varten.

Käytämme StableDiffusionPipeline Hugging Facesta diffusers kirjasto mallin lataamista ja kääntämistä varten. Sitten kokoamme kaikki mallin komponentit Neuronille käyttämällä torch_neuronx.trace() ja tallenna optimoitu malli TorchScript-muodossa. Käännösprosessit voivat olla melko muistiintensiivisiä ja vaativat huomattavan määrän RAM-muistia. Tämän kiertämiseksi luomme ennen kunkin mallin jäljittämistä a deepcopy putkilinjan jäljitettävästä osasta. Tämän jälkeen poistamme liukuhihnaobjektin muistista käyttämällä del pipe. Tämä tekniikka on erityisen hyödyllinen käännettäessä instansseja, joissa on vähän RAM-muistia.

Lisäksi teemme optimointeja Stable Diffusion -malleille. UNet sisältää päättelyn laskennallisesti intensiivisimmän osan. UNet-komponentti toimii tulotensoreilla, joiden eräkoko on kaksi, ja se tuottaa vastaavan lähtötensorin myös kahden eräkoon kanssa yhden kuvan tuottamiseksi. Näiden erien elementit ovat täysin riippumattomia toisistaan. Voimme hyödyntää tätä käyttäytymistä saadaksemme optimaalisen latenssin suorittamalla yhden erän jokaisessa Neuron-ytimessä. Kokoamme UNetin yhdelle erälle (käyttäen syöttötensoreja yhdellä erällä), käytä sitten torch_neuronx.DataParallel API lataamaan tämän yksittäisen erämallin jokaiseen ytimeen. Tämän API:n tulos on saumaton kahden erän moduuli: voimme välittää UNetille kahden erän syötteet, ja kahden erän lähtö palautetaan, mutta sisäisesti kaksi yhden erän mallia toimivat kahdella Neuron-ytimellä. . Tämä strategia optimoi resurssien käytön ja vähentää latenssia.

Kääntää ja ottaa käyttöön Stable Diffusion -malli Inf2 EC2 -esiintymässä

Jos haluat kääntää ja ottaa käyttöön Stable Diffusion -mallin Inf2 EC2 -esiintymässä, kirjaudu sisään AWS-hallintakonsoli ja luo inf2.8xlarge-instanssi. Huomaa, että inf2.8xlarge-instanssi tarvitaan vain mallin kääntämiseen, koska käännös vaatii suurempaa isäntämuistia. Stable Diffusion -mallia voidaan isännöidä inf2.xlarge-esiintymässä. Löydät uusimman AMI:n Neuron-kirjastoilla käyttämällä seuraavaa AWS-komentoriviliitäntä (AWS CLI) -komento:

aws ec2 describe-images --region us-east-1 --owners amazon --filters 'Name=name,Values=Deep Learning AMI Neuron PyTorch 1.13.? (Amazon Linux 2) ????????' 'Name=state,Values=available' --query 'reverse(sort_by(Images, &CreationDate))[:1].ImageId' --output text

Tätä esimerkkiä varten loimme EC2-esiintymän käyttämällä Deep Learning AMI Neuron PyTorch 1.13:a (Ubuntu 20.04). Voit sitten luoda JupyterLab-laboratorioympäristön muodostamalla yhteyden ilmentymään ja suorittamalla seuraavat vaiheet:

run source /opt/aws_neuron_venv_pytorch/bin/activate
pip install jupyterlab
jupyter-lab

Muistikirja, jossa on kaikki mallin kokoamisen ja isännöinnin vaiheet, sijaitsee GitHub.

Katsotaanpa yhden tekstienkooderilohkon käännösvaiheita. Muut lohkot, jotka ovat osa Stable Diffusion -putkilinjaa, voidaan koota samalla tavalla.

Ensimmäinen askel on ladata esikoulutettu malli Hugging Facesta. The StableDiffusionPipeline.from_pretrained menetelmä lataa esiopetetun mallin putkiobjektiin, pipe. Luomme sitten a deepcopy tekstienkooderista putkistamme, kloonaamalla sen tehokkaasti. The del pipe komentoa käytetään sitten poistamaan alkuperäinen liukuhihnaobjekti vapauttaen sen käyttämää muistia. Tässä kvantisoimme mallin BF16-painoihin:

model_id = "stabilityai/stable-diffusion-2-1-base"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
text_encoder = copy.deepcopy(pipe.text_encoder)
del pipe

Tämä vaihe sisältää tekstienkooderimme käärimisen NeuronTextEncoder kääre. Käännetty tekstienkooderimoduulin tulos on dict. Muunnamme sen a list kirjoita tällä kääreellä:

text_encoder = NeuronTextEncoder(text_encoder)

Alustamme PyTorch-tensorin emb joillain arvoilla. The emb tensoria käytetään esimerkkisyötteenä torch_neuronx.trace toiminto. Tämä toiminto jäljittää tekstienkooderimme ja kokoaa sen Neuronille optimoituun muotoon. Käännetyn mallin hakemistopolku muodostetaan yhdistämällä COMPILER_WORKDIR_ROOT alihakemiston kanssa text_encoder:

emb = torch.tensor([...])
text_encoder_neuron = torch_neuronx.trace(
        text_encoder.neuron_text_encoder,
        emb,
        compiler_workdir=os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder'),
        )

Käytetty tekstienkooderi tallennetaan käyttämällä torch.jit.save. Se on tallennettu tiedostonimellä model.pt tiedostoon text_encoder kääntäjämme työtilan hakemisto:

text_encoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder/model.pt')
torch.jit.save(text_encoder_neuron, text_encoder_filename)

- muistikirja sisältää samanlaiset vaiheet mallin muiden komponenttien kääntämiseksi: UNet, VAE-dekooderi ja VAE post_quant_conv. Kun olet koonnut kaikki mallit, voit ladata ja suorittaa mallin seuraavasti:

  1. Määritä polut käännetyille malleille.
  2. Lataa esikoulutettu StableDiffusionPipeline malli, jonka kokoonpano on määritetty käyttämään bfloat16-tietotyyppiä.
  3. Lataa UNet-malli kahteen Neuron-ytimeen käyttämällä torch_neuronx.DataParallel API. Tämä mahdollistaa tietojen rinnakkaisen päättelyn suorittamisen, mikä voi merkittävästi nopeuttaa mallin suorituskykyä.
  4. Lataa mallin loput osat (text_encoder, decoderja post_quant_conv) yhdelle neuroniytimelle.

Voit sitten suorittaa liukuhihnan antamalla syöttötekstiä kehotteina. Seuraavassa on joitain kuvia, jotka malli on luonut kehotteita varten:

  • Renaud sechanin muotokuva, kynä ja muste, monimutkaisia ​​viivapiirroksia, kirjoittanut Craig mullins, ruan jia, kentaro miura, greg rutkowski, loundraw

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

  • Muotokuva vanhasta hiilikaivostyöntekijästä 19-luvulla, kaunis maalaus, erittäin yksityiskohtainen greg rutkowskin kasvomaalaus

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

  • Linna metsän keskellä

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Host Stable Diffusion 2.1 AWS Inferentia2:ssa ja SageMakerissa

Stable Diffusion -mallien isännöinti SageMakerilla edellyttää myös kääntämistä Neuron SDK:lla. Voit viimeistellä kokoamisen etukäteen tai ajon aikana käyttämällä Large Model Inference (LMI) -säiliöitä. Kääntäminen etukäteen mahdollistaa nopeammat mallin latausajat ja on suositeltava vaihtoehto.

SageMaker LMI -säilöt tarjoavat kaksi tapaa ottaa malli käyttöön:

  • Ei-koodivaihtoehto, jossa tarjoamme vain a serving.properties tiedosto vaadituilla kokoonpanoilla
  • Ota mukaan oma päätelmäkäsikirjoitus

Tarkastelemme molempia ratkaisuja ja käymme läpi kokoonpanot ja päättelykomentosarjan (model.py). Tässä viestissä esittelemme käyttöönoton käyttämällä valmiiksi käännettyä mallia, joka on tallennettu an Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri. Voit käyttää tätä valmiiksi laadittua mallia käyttöönotoksissasi.

Määritä malli toimitetulla komentosarjalla

Tässä osiossa näytämme, kuinka LMI-säilö määritetään isännöimään Stable Diffusion -malleja. SD2.1-kannettava saatavilla osoitteessa GitHub. Ensimmäinen vaihe on luoda mallikonfiguraatiopaketti seuraavan hakemistorakenteen mukaisesti. Tavoitteemme on käyttää mallin isännöimiseen tarvittavia vähimmäismäärityksiä. Tarvittava hakemistorakenne on seuraava:

<config-root-directory> / 
    ├── serving.properties
    │   
    └── model.py [OPTIONAL]

Seuraavaksi luomme palvelevat.ominaisuudet tiedosto seuraavilla parametreilla:

%%writefile code_sd/serving.properties
engine=Python
option.entryPoint=djl_python.transformers-neuronx
option.use_stable_diffusion=True
option.model_id=s3url
option.tensor_parallel_degree=2
option.dtype=bf16

Parametrit määrittelevät seuraavat:

  • option.model_id – LMI-kontit käyttävät s5cmd-komentoa mallin lataamiseen S3-paikasta, ja siksi meidän on määritettävä sijainti, jossa koostetut painomme ovat.
  • option.entryPoint – Sisäänrakennettujen ohjaimien käyttöä varten määritämme transformers-neuronx-luokan. Jos sinulla on mukautettu päättelykomentosarja, sinun on annettava se sen sijaan.
  • option.dtype – Tämä määrittää painojen lataamisen tietyssä koossa. Tässä viestissä käytämme BF16:ta, mikä vähentää edelleen muistivaatimuksiamme verrattuna FP32:een ja alentaa latenssiamme tästä johtuen.
  • option.tensor_parallel_degree – Tämä parametri määrittää tässä mallissa käyttämiemme kiihdyttimien määrän. AWS Inferentia2 -sirukiihdyttimessä on kaksi Neuron-ydintä, joten arvon 2 määrittäminen tarkoittaa, että käytämme yhtä kiihdytintä (kaksi ydintä). Tämä tarkoittaa, että voimme nyt luoda useita työntekijöitä lisätäksemme päätepisteen suorituskykyä.
  • vaihtoehto.moottori - Tämä on asetettu Pythonille osoittamaan, että emme käytä muita kääntäjiä, kuten DeepSpeediä tai Faster Transformeria, tähän isännöintiin.

Tuo oma käsikirjoitus

Jos haluat tuoda oman mukautetun johtopäätösskriptin, sinun on poistettava option.entryPoint alkaen serving.properties. Tässä tapauksessa LMI-säiliö etsii a model.py tiedosto samassa paikassa kuin serving.properties ja käytä sitä päättelyn suorittamiseen.

Luo oma päättelyskripti (model.py)

Oman johtopäätösskriptin luominen on suhteellisen yksinkertaista LMI-säilön avulla. Säiliö vaatii sinun model.py tiedostossa on seuraavan menetelmän toteutus:

def handle(inputs: Input) which returns an object of type Outputs

Tarkastellaanpa joitain kriittisiä alueita liitteenä muistikirja, joka osoittaa oman skriptitoiminnon tuomisen.

Vaihda cross_attention moduuli optimoidulla versiolla:

# Replace original cross-attention module with custom cross-attention module for better performance
    CrossAttention.get_attention_scores = get_attention_scores
Load the compiled weights for the following
text_encoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'text_encoder.pt')
decoder_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'vae_decoder.pt')
unet_filename = os.path.join(COMPILER_WORKDIR_ROOT, 'unet.pt')
post_quant_conv_filename =. os.path.join(COMPILER_WORKDIR_ROOT, 'vae_post_quant_conv.pt')

Nämä ovat käännetyn painotustiedoston nimet, joita käytimme käännöksiä luodessasi. Voit vapaasti muuttaa tiedostonimiä, mutta varmista, että painotiedostojen nimet vastaavat tässä määrittämiäsi.

Sitten meidän on ladattava ne Neuron SDK:lla ja asetettava ne todellisiin mallipainoihin. Kun lataat UNet-optimoituja painoja, huomaa, että määritämme myös niiden Neuron-ytimien määrän, joille ne on ladattava. Tässä lataamme yhteen kiihdytin, jossa on kaksi ydintä:

# Load the compiled UNet onto two neuron cores.
    pipe.unet = NeuronUNet(UNetWrap(pipe.unet))
    logging.info(f"Loading model: unet:created")
    device_ids = [idx for idx in range(tensor_parallel_degree)]
   
    pipe.unet.unetwrap = torch_neuronx.DataParallel(torch.jit.load(unet_filename), device_ids, set_dynamic_batching=False)
   
 
    # Load other compiled models onto a single neuron core.
 
    # - load encoders
    pipe.text_encoder = NeuronTextEncoder(pipe.text_encoder)
    clip_compiled = torch.jit.load(text_encoder_filename)
    pipe.text_encoder.neuron_text_encoder = clip_compiled
    #- load decoders
    pipe.vae.decoder = torch.jit.load(decoder_filename)
    pipe.vae.post_quant_conv = torch.jit.load(post_quant_conv_filename)

Päätelmän suorittaminen kehotteen avulla kutsuu pipe-objektin luomaan kuvan.

Luo SageMaker-päätepiste

Käytämme Boto3-sovellusliittymiä SageMaker-päätepisteen luomiseen. Suorita seuraavat vaiheet:

  1. Luo tarball vain tarjoilulla ja valinnaisella model.py tiedostot ja lähetä se Amazon S3:een.
  2. Luo malli käyttämällä kuvasäilöä ja aiemmin ladattua mallin tarballia.
  3. Luo päätepisteen konfiguraatio seuraavilla avainparametreilla:
    1. Käytä ml.inf2.xlarge ilmentymä.
    2. Asettaa ContainerStartupHealthCheckTimeoutInSeconds arvoon 240 varmistaaksesi, että kuntotarkastus alkaa mallin käyttöönoton jälkeen.
    3. Asettaa VolumeInGB suurempaan arvoon, jotta sitä voidaan käyttää 32 Gt:n kokoisten mallipainojen lataamiseen.

Luo SageMaker-malli

Kun olet luonut model.tar.gz-tiedoston ja ladannut sen Amazon S3:een, meidän on luotava SageMaker-malli. Käytämme LMI-säilöä ja edellisen vaiheen artefaktia SageMaker-mallin luomiseen. SageMakerin avulla voimme mukauttaa ja lisätä erilaisia ​​ympäristömuuttujia. Tässä työnkulussa voimme jättää kaiken oletusarvoksi. Katso seuraava koodi:

inference_image_uri = (
    f"763104351884.dkr.ecr.{region}.amazonaws.com/djl-inference:0 djl-serving-inf2"
)

Luo malliobjekti, joka luo käytännössä lukitussäiliön, joka ladataan ilmentymään ja jota käytetään päättelyyn:

model_name = name_from_base(f"inf2-sd")
create_model_response = boto3_sm_client.create_model(
    ModelName=model_name,
    ExecutionRoleArn=role,
    PrimaryContainer={"Image": inference_image_uri, "ModelDataUrl": s3_code_artifact},
)

Luo SageMaker-päätepiste

Tässä esittelyssä käytämme ml.inf2.xlarge-instanssia. Meidän on asetettava VolumeSizeInGB parametrit, jotka tarjoavat tarvittavan levytilan mallin ja painojen lataamiseen. Tämä parametri soveltuu tapauksiin, jotka tukevat Amazonin elastisten lohkojen myymälä (Amazon EBS) volyymikiinnitys. Voimme jättää mallin latauksen aikakatkaisun ja kontin käynnistyksen kuntotarkastuksen korkeampaan arvoon, jolloin kontti saa riittävästi aikaa vetää painot Amazon S3:sta ja latautua AWS Inferentia2 -kiihdyttimiin. Katso lisätietoja osoitteesta LuoEndpointConfig.

endpoint_config_response = boto3_sm_client.create_endpoint_config( EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            "VariantName": "variant1",
            "ModelName": model_name,
            "InstanceType": "ml.inf2.xlarge", # - 
            "InitialInstanceCount": 1,
            "ContainerStartupHealthCheckTimeoutInSeconds": 360, 
            "VolumeSizeInGB": 400
        },
    ],
)

Lopuksi luomme SageMaker-päätepisteen:

create_endpoint_response = boto3_sm_client.create_endpoint(
    EndpointName=f"{endpoint_name}", EndpointConfigName=endpoint_config_name
)

Kutsu mallin päätepiste

Tämä on generatiivinen malli, joten välitämme kehotteen, jota malli käyttää kuvan luomiseen. Hyötykuorma on tyyppiä JSON:

response_model = boto3_sm_run_client.invoke_endpoint( EndpointName=endpoint_name,
    Body=json.dumps(
        {
            "prompt": "Mountain Landscape", 
            "parameters": {} # 
        }
    ), 
    ContentType="application/json",
)

Stable Diffusion -mallin vertailu Inf2:ssa

Suoritimme muutamia testejä Stable Diffusion -mallin vertaamiseksi BF 16 -tietotyypille Inf2:ssa, ja pystymme johtamaan latenssilukuja, jotka kilpailevat tai ylittävät joitain muita vakaan diffuusion kiihdyttimiä. Tämä yhdessä AWS Inferentia2 -sirujen alhaisempien kustannusten kanssa tekee tästä erittäin arvokkaan ehdotuksen.

Seuraavat numerot ovat Stable Diffusion -mallista, joka on otettu käyttöön inf2.xl-esiintymässä. Lisätietoja kuluista on osoitteessa Amazon EC2 Inf2 -tapahtumat.

Malli päätöslauselma Tietotyyppi Toistot P95-viive (ms) Inf2.xl On-Demand -hinta per tunti Inf2.xl (Kuvan hinta)
Vakaa diffuusio 1.5 512 × 512 bf16 50 2,427.4 $0.76 $0.0005125
Vakaa diffuusio 1.5 768 × 768 bf16 50 8,235.9 $0.76 $0.0017387
Vakaa diffuusio 1.5 512 × 512 bf16 30 1,456.5 $0.76 $0.0003075
Vakaa diffuusio 1.5 768 × 768 bf16 30 4,941.6 $0.76 $0.0010432
Vakaa diffuusio 2.1 512 × 512 bf16 50 1,976.9 $0.76 $0.0004174
Vakaa diffuusio 2.1 768 × 768 bf16 50 6,836.3 $0.76 $0.0014432
Vakaa diffuusio 2.1 512 × 512 bf16 30 1,186.2 $0.76 $0.0002504
Vakaa diffuusio 2.1 768 × 768 bf16 30 4,101.8 $0.76 $0.0008659

Yhteenveto

Tässä viestissä perehdymme syvälle Stable Diffusion 2.1 -mallin kokoamiseen, optimointiin ja käyttöönottoon Inf2-instanssien avulla. Esitimme myös Stable Diffusion -mallien käyttöönoton SageMakerin avulla. Inf2-instanssit tarjoavat myös erinomaisen hinta-suorituskyvyn Stable Diffusion 1.5:lle. Saat lisätietoja siitä, miksi Inf2-instanssit ovat hyviä generatiivisille tekoälymalleille ja suurille kielimalleille, katso Amazon EC2 Inf2 -instanssit edullisia ja tehokkaita generatiivisia tekoälypäätelmiä varten ovat nyt yleisesti saatavilla. Katso suoritustiedot kohdasta Inf2-suorituskyky. Katso lisää esimerkkejä aiheesta GitHub repo.

Erityiset kiitokset Matthew McClainille, Beni Hegedukselle, Kamran Khanille, Shruti Koparkarille ja Qing Lanille arvokkaiden palautteiden arvioinnista ja antamisesta.


Tietoja Tekijät

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Vivek Gangasani on vanhempi koneoppimisratkaisuarkkitehti Amazon Web Servicesissä. Hän työskentelee koneoppimisyritysten kanssa rakentaakseen ja ottaakseen käyttöön AI/ML-sovelluksia AWS:ssä. Hän keskittyy tällä hetkellä ratkaisujen toimittamiseen MLOps-, ML-päätelmä- ja matalakoodi-ML-ratkaisuihin. Hän on työskennellyt projekteissa eri aloilla, mukaan lukien luonnollisen kielen käsittely ja tietokonenäkö.

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.KC Tung on vanhempi ratkaisuarkkitehti AWS Annapurna Labsissa. Hän on erikoistunut laajaan syväoppimismallien koulutukseen ja mittakaavaan pilvessä. Hän on Ph.D. molekyylibiofysiikassa Texasin yliopiston Southwestern Medical Centeristä Dallasissa. Hän on puhunut AWS Summitsissa ja AWS Reinventissä. Nykyään hän auttaa asiakkaita kouluttamaan ja ottamaan käyttöön suuria PyTorch- ja TensorFlow-malleja AWS-pilvessä. Hän on kirjoittanut kaksi kirjaa: Opi TensorFlow Enterprise ja TensorFlow 2 Pocket Reference.

Maksimoi vakaa diffuusion suorituskyky ja alenna päättelykustannuksia AWS Inferentia2 |:lla Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Rupinder Grewal on AWS:n Sr Ai/ML Specialist Solutions -arkkitehti. Tällä hetkellä hän keskittyy mallien ja MLO:iden tarjoamiseen SageMakerissa. Ennen tätä roolia hän on työskennellyt koneoppimisinsinöörinä mallien rakentamisessa ja isännöinnissa. Työn ulkopuolella hän pelaa tennistä ja pyöräilee vuoristopoluilla.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen