Nykyään monet AWS-asiakkaat rakentavat yritysvalmiita koneoppimisalustoja (ML). Amazonin elastisten kuberneettien palvelu (Amazon EKS) käyttäen Kubeflow AWS:ssä (AWS-spesifinen Kubeflow-jakelu) monissa käyttötapauksissa, mukaan lukien tietokonenäkö, luonnollisen kielen ymmärtäminen, puheen kääntäminen ja taloudellinen mallinnus.
Kanssa avoimen lähdekoodin Kubeflow v1.6.1 uusin julkaisu, Kubeflow-yhteisö tukee edelleen tätä laajamittaista Kubeflown käyttöönottoa yrityskäyttötapauksissa. Uusin julkaisu sisältää monia uusia jännittäviä ominaisuuksia, kuten tuki Kubernetes v1.22:lle, yhdistetty Python SDK PyTorchille, MXNet, MPI, XGBoost Kubeflown hajautettuun koulutusoperaattoriin, uudet ClusterServingRuntime- ja ServingRuntime CRD:t mallipalveluun ja paljon muuta.
Kubeflow:n AWS-panos äskettäin julkaistun Kubeflown AWS 1.6.1:ssä tukee kaikkia ylävirran avoimen lähdekoodin Kubeflow-ominaisuuksia ja sisältää monia uusia integraatioita erittäin optimoituihin, pilvipohjaisiin, yrityskäyttöön sopiviin AWS-palveluihin, jotka auttavat sinua rakentamaan erittäin luotettavia, turvalliset, kannettavat ja skaalautuvat ML-järjestelmät.
Tässä viestissä käsittelemme uusia Kubeflow AWS v1.6.1 -ominaisuuksia ja korostamme kolmea tärkeää integraatiota, jotka on yhdistetty yhdelle alustalle tarjoamaan sinulle:
- Infrastructure as Code (IaaC) yhden napsautuksen ratkaisu, joka automatisoi Kubeflown päästä päähän -asennuksen, mukaan lukien EKS-klusterin luomisen
- Tuki hajautettuun koulutukseen Amazon Sage Maker käyttämällä Amazon SageMaker -operaattorit Kubernetesille (ACK) ja SageMaker-komponentit Kubeflow-putkilinjoille ja paikallisesti Kubernetesin avulla Kubeflow-koulutusoperaattorit. Monet asiakkaat käyttävät tätä kykyä hybridikoneoppimisarkkitehtuurien rakentamiseen, joissa he hyödyntävät sekä Kubernetes-laskentaa kokeiluvaiheessa että SageMaker-sovellusta tuotantolaajuisten työkuormien suorittamiseen.
- Parannettu seuranta ja havainnointi ML-työkuormille mukaan lukien Amazon EKS, Kubeflow-mittarit ja sovelluslokit käyttämällä Prometheusta, Grafanaa ja amazonin pilvikello integraatiot
Tämän blogin käyttötapaus keskittyy erityisesti SageMaker-integraatioon Kubeflowin kanssa AWS:ssä, joka voidaan lisätä olemassa oleviin Kubernetes-työnkulkuihisi, jotta voit rakentaa hybridikoneoppimisarkkitehtuureja.
Kubeflow AWS:ssä
Kubeflow AWS 1.6.1:ssä tarjoaa selkeän polun Kubeflow:n käyttöön, ja siihen on lisätty seuraavat AWS-palvelut olemassa olevien ominaisuuksien lisäksi:
- SageMaker-integraatio Kubeflow:n kanssa hybridi-ML-työnkulkujen suorittamiseksi SageMaker Operators for Kubernetes (ACK) - ja SageMaker Components for Kubeflow -putkistojen avulla.
- Automaattisia käyttöönottovaihtoehtoja on parannettu ja yksinkertaistettu Kustomize-skriptien ja Helm-kaavioiden avulla.
- Lisätty tuki Infrastructure as Code (IaC) yhden napsautuksen käyttöönotolle Kubeflowlle AWS:ssä käyttäen Terraformia kaikille saatavilla oleville käyttöönottovaihtoehdot. Tämä komentosarja automatisoi seuraavien AWS-resurssien luomisen:
- Tuki AWS PrivateLink Amazon S3:lle, jonka avulla ei-kaupalliset alueen käyttäjät voivat muodostaa yhteyden vastaaviin S3-päätepisteisiinsä.
- Lisätty integraatio kanssa Amazonin hallinnoima palvelu Prometheukselle (AMP) ja Amazonin hallinnoima Grafana seurata mittareita Kubeflown avulla AWS:ssä.
- Päivitetty Kubeflow-muistikirjan palvelinkontit uusimmilla syväoppimissäiliökuvilla, jotka perustuvat TensorFlow 2.10.0:aan ja PyTorch 1.12.1:een.
- Integrointi AWS DLC:ien kanssa hajautettua käyttöä varten koulutus ja päättely työmäärät.
Seuraava arkkitehtuurikaavio on nopea tilannekuva kaikista palveluintegraatioista (mukaan lukien jo mainitut), jotka ovat saatavilla Kubeflow-ohjaus- ja tietotason komponenteille AWS:n Kubeflowssa. Kubeflow-ohjaustaso on asennettu Amazon EKS:n päälle, joka on hallittu konttipalvelu, jota käytetään Kubernetes-sovellusten ajamiseen ja skaalaamiseen pilvessä. Näiden AWS-palveluintegraatioiden avulla voit irrottaa Kubeflow-ohjaustason kriittiset osat Kubernetesista, mikä tarjoaa turvallisen, skaalautuvan, joustavan ja kustannusoptimoidun suunnittelun. Lisätietoja arvosta, jota nämä palveluintegraatiot lisäävät avoimen lähdekoodin Kubeflowin verrattuna, on kohdassa Rakenna ja ota käyttöön skaalautuva koneoppimisjärjestelmä Kubernetesissa Kubeflown avulla AWS:ssä.
Keskustellaan tarkemmin siitä, kuinka Kubeflow on AWS 1.6.1 -avainominaisuudet voivat olla hyödyllisiä organisaatiollesi.
Kubeflow on AWS:n ominaisuustiedot
Kubeflow 1.6.1 -julkaisun myötä yritimme tarjota parempia työkaluja erilaisille asiakkaille, jotka helpottavat Kubeflown käytön aloittamista riippumatta siitä, mitkä vaihtoehdot valitset. Nämä työkalut tarjoavat hyvän lähtökohdan, ja niitä voidaan muokata vastaamaan täsmällisiä tarpeitasi.
Käyttöönottovaihtoehdot
Tarjoamme erilaisia käyttöönottovaihtoehtoja erilaisiin asiakaskäyttötapauksiin. Täällä voit valita, mihin AWS-palveluihin haluat integroida Kubeflow-asennuksesi. Jos päätät muuttaa käyttöönottoasetuksia myöhemmin, suosittelemme, että teet uuden asennuksen uutta käyttöönottoa varten. Seuraavat käyttöönottovaihtoehdot ovat käytettävissä:
Jos haluat ottaa Kubeflown käyttöön pienin muutoksin, harkitse vanilja käyttöönottovaihtoehto. Kaikki käytettävissä olevat käyttöönottovaihtoehdot voidaan asentaa Kustomizen, Helmin tai Terraformin avulla.
Meillä on myös erilaisia lisäosien käyttöönottoja, jotka voidaan asentaa minkä tahansa seuraavista käyttöönottovaihtoehdoista:
Asennusvaihtoehdot
Kun olet päättänyt, mikä käyttöönottovaihtoehto sopii parhaiten tarpeisiisi, voit valita, kuinka haluat asentaa nämä käyttöönotot. Pyrimme palvelemaan niin asiantuntijoita kuin uusia tulokkaitakin, sillä meillä on erilaisia automaatio- ja konfigurointitasoja.
Vaihtoehto 1: Terraform (IaC)
Tämä luo EKS-klusterin ja kaikki siihen liittyvät AWS-infrastruktuuriresurssit ja ottaa sitten Kubeflown käyttöön yhdessä komennossa Terraformin avulla. Sisäisesti tämä käyttää EKS-piirustuksia ja Helm-kaavioita.
Tällä vaihtoehdolla on seuraavat edut:
- Se tarjoaa yrityksille joustavuutta ottaa käyttöön Amazon EKS ja Kubeflow yhdellä komennolla ilman, että sinun tarvitsee huolehtia tietyistä Kubeflow-komponenttikokoonpanoista. Tämä nopeuttaa valtavasti teknologian arviointia, prototyyppien valmistusta ja tuotekehityksen elinkaarta tarjoten joustavuutta terraform-moduuleiden käyttöön ja muokkaamiseen projektikohtaisten tarpeiden mukaan.
- Monet organisaatiot, joilla on nykyään Terraform pilvistrategiansa keskipisteenä, voivat nyt käyttää Kubeflow on AWS Terraform -ratkaisua saavuttaakseen pilvitavoitteensa.
Vaihtoehto 2: Kustomize tai Helm Charts:
Tämän vaihtoehdon avulla voit ottaa Kubeflown käyttöön kaksivaiheisessa prosessissa:
- Luo AWS-resursseja, kuten Amazon EKS, Amazon RDS, Amazon S3 ja Amazon Cognito, joko AWS-jakeluun sisältyvien automaattisten komentosarjojen avulla tai manuaalisesti seuraamalla askel-askeleelta opas.
- Asenna Kubeflow-asennukset joko Helm-kaavioiden tai Kustomizen avulla.
Tällä vaihtoehdolla on seuraavat edut:
- Tämän asennusvaihtoehdon päätavoite on tarjota Kubeflow-liittyviä Kubernetes-kokoonpanoja. Siksi voit luoda tai tuoda olemassa olevia EKS-klustereita tai mitä tahansa niihin liittyviä AWS-resursseja, kuten Amazon RDS, Amazon S3 ja Amazon Cognito, ja määrittää ja hallita sitä toimimaan Kubeflown kanssa AWS:ssä.
- On helpompi siirtyä avoimen lähdekoodin Kustomize Kubeflow -luettelosta AWS Kubeflow -jakeluun.
Seuraava kaavio havainnollistaa molempien vaihtoehtojen arkkitehtuurit.
Integrointi SageMakerin kanssa
SageMaker on täysin hallittu palvelu, joka on suunniteltu ja optimoitu erityisesti ML-työnkulkujen hallintaan. Se poistaa infrastruktuurin hallinnan eriyttämättömän raskaan nostamisen ja poistaa tarpeen investoida IT- ja DevOpsiin klustereiden hallintaan ML-mallin rakentamista, koulutusta ja päätelmiä varten.
Monet AWS-asiakkaat, joilla on siirrettävyysvaatimuksia tai paikallisia vakiorajoituksia, käyttävät Amazon EKS:ää toistettavien ML-putkien määrittämiseen koulutus- ja päätelmätyökuormien suorittamiseen. Tämä edellyttää kuitenkin, että kehittäjät kirjoittavat mukautetun koodin taustalla olevan ML-infrastruktuurin optimoimiseksi, korkean käytettävyyden ja luotettavuuden takaamiseksi sekä asianmukaisten turvallisuus- ja säädösvaatimusten noudattamiseksi. Nämä asiakkaat haluavat siksi käyttää SageMakeria kustannusoptimoituun ja hallinnoituun infrastruktuuriin mallien koulutukseen ja käyttöönottoon ja jatkaa Kubernetesin käyttöä orkestraatioon ja ML-putkistojen käyttöä standardoinnin ja siirrettävyyden säilyttämiseksi.
Vastatakseen tähän tarpeeseen AWS antaa sinun kouluttaa, virittää ja ottaa käyttöön malleja SageMakerissa Amazon EKS:stä käyttämällä seuraavia kahta vaihtoehtoa:
- Amazon SageMaker ACK -operaattorit Kubernetesille, jotka perustuvat AWS-ohjaimet Kubernetesille (ACK) puitteet. ACK on AWS-strategia, joka tuo standardisoinnin mukautettujen Kubernetes-ohjainten rakentamiseen, jotta Kubernetes-käyttäjät voivat tarjota AWS-resursseja, kuten tietokantoja tai viestijonoja, yksinkertaisesti käyttämällä Kubernetes-sovellusliittymää. SageMaker ACK -operaattorit helpottavat ML-kehittäjien ja datatieteilijöiden, jotka käyttävät Kubernetesia ohjaustasonaan, kouluttaa, virittää ja ottaa käyttöön ML-malleja SageMakerissa kirjautumatta SageMaker-konsoliin.
- - SageMaker-komponentit Kubeflow-putkilinjoille, joiden avulla voit integroida SageMakerin Kubeflow Pipelinesin siirrettävyyteen ja orkestrointiin. SageMaker-komponenttien avulla jokainen liukuhihnatyönkulun työ suoritetaan SageMakerissa paikallisen Kubernetes-klusterin sijaan. Tämän avulla voit luoda ja seurata alkuperäisiä SageMaker-koulutus-, viritys-, päätepisteiden käyttöönotto- ja erämuunnostöitä Kubeflow-putkista, jolloin voit siirtää täydelliset laskennat mukaan lukien tietojenkäsittely- ja koulutustyöt Kubernetes-klusterista SageMakerin koneoppimisoptimoituun hallintapalveluun.
Alkaen AWS v1.6.1:n Kubeflowsta, kaikki saatavilla olevat Kubeflow-käyttöönottovaihtoehdot yhdistävät molemmat Amazon SageMaker -integraatiovaihtoehdot oletusarvoisesti yhdelle alustalle. Tämä tarkoittaa, että voit nyt lähettää SageMaker-töitä käyttämällä SageMaker ACK -operaattoreita itse Kubeflow Notebook -palvelimelta lähettämällä mukautetun SageMaker-resurssin tai Kubeflow-prosessivaiheesta käyttämällä SageMaker-komponentteja.
SageMaker Componentsista on kaksi versiota - Boto3 (AWS SDK for AWS SDK for Python) -pohjaiset versio 1 -komponentit ja SageMaker Operator for K8s (ACK) -pohjaiset versio 2 komponentit. Uudet SageMaker-komponentit versio 2 tukevat viimeisintä SageMaker-harjoitussovellusta, ja jatkamme SageMaker-ominaisuuksien lisäämistä tähän komponentin versioon. Sinulla on kuitenkin joustavuus yhdistää Sagemaker-komponenttien versio 2 koulutusta varten ja versio 1 muihin SageMaker-ominaisuuksiin, kuten hyperparametrien virittäminen, käsittelytyöt, hosting ja monet muut.
Integrointi Prometheuksen ja Grafanan kanssa
Prometheus on avoimen lähdekoodin mittareiden yhdistämistyökalu, jonka voit määrittää toimimaan Kubernetes-klustereissa. Kun ajetaan Kubernetes-klustereissa, Prometheus-pääpalvelin kaapii ajoittain pod-päätepisteitä.
Kubeflow-komponentit, kuten Kubeflow Pipelines (KFP) ja Notebook, lähettävät Prometheus-mittareita, joiden avulla voidaan seurata komponenttiresursseja, kuten käynnissä olevien kokeiden tai muistikirjan määrää.
Kubernetes-klusterissa toimiva Prometheus-palvelin voi koota nämä tiedot ja tehdä kyselyjä Prometheus-kyselykielellä (PromQL). Lisätietoja Prometheuksen tukemista ominaisuuksista on osoitteessa Prometheus-dokumentaatio.
Kubeflow on AWS-jakelu tukee integraatiota seuraavien AWS-hallittujen palvelujen kanssa:
- Amazon Managed Prometheus (AMP), joka on a Prometheus- yhteensopiva konttiinfrastruktuurin valvontapalvelu ja konttien sovellusmittarit, joiden avulla asiakkaiden on helppo valvoa konttiympäristöjä turvallisesti mittakaavassa. AMP:n avulla voit visualisoida, analysoida ja hälyttää mittareistasi, lokeistasi ja jäljistä, jotka on kerätty havainnointijärjestelmäsi useista tietolähteistä, mukaan lukien AWS, kolmannen osapuolen ISV:t ja muut IT-portfoliosi resurssit.
- Amazon Managed Grafana, täysin hallittu ja turvallinen tiedon visualisointipalvelu, joka perustuu avoimeen lähdekoodiin grafana -projekti, jonka avulla asiakkaat voivat välittömästi tehdä kyselyitä, korreloida ja visualisoida sovellusten käyttömittareita, lokeja ja jälkiä useista tietolähteistä. Amazon Managed Grafana kuormittaa Grafanan toiminnanhallinnan skaalaamalla automaattisesti laskenta- ja tietokantainfrastruktuuria käyttötarpeiden kasvaessa automaattisilla versiopäivityksillä ja tietoturvakorjauksilla.
Kubeflow on AWS-jakelu tukee Amazon Managed Servicen integrointia Prometheus- ja Amazon Managed Grafana -palveluille, mikä helpottaa Prometheus-mittareiden käsittelyä ja visualisointia turvallisesti ja laajassa mittakaavassa.
Seuraavat tiedot on otettu käyttöön ja ne voidaan visualisoida:
- Kubeflow-komponenttien, kuten Kubeflow Pipelinesin ja Notebook-palvelimen, lähettämät tiedot
- KubeFlow ohjaustason metriikka
Jos haluat määrittää Amazonin hallinnoiman palvelun Prometheukselle ja Amazon Managed Grafanalle Kubeflow-klusterillesi, katso Käytä Prometheusta, Amazon Managed Service for Prometheus -palvelua ja Amazon Managed Grafanaa seurataksesi mittareita Kubeflown avulla AWS:ssä.
Ratkaisun yleiskatsaus
Tässä käyttötapauksessa käytämme Kubeflow vanilla -käyttöönottoa käyttämällä Terraform-asennusvaihtoehtoa. Kun asennus on valmis, kirjaudumme sisään Kubeflow-hallintapaneeliin. Kojelaudan avulla kehitämme Kubeflow Jupyter -muistikirjapalvelimen rakentaaksemme Kubeflow-putkilinjan, joka käyttää SageMakeria kuvien luokittelumallin hajautetun koulutuksen suorittamiseen ja SageMaker-päätepisteen mallin käyttöönottoa varten.
Edellytykset
Varmista, että täytät seuraavat edellytykset:
- Sinulla on AWS-tili.
- Varmista, että olet
us-west-2
Alue suorittaa tämän esimerkin. - Käytä Google Chromea vuorovaikutukseen AWS-hallintakonsoli ja Kubeflow.
- Varmista, että tililläsi on SageMaker Training -resurssityyppirajoitus ml.p3.2xlargelle nostettu kahteen käyttämällä Service Quota -konsolia.
- Vaihtoehtoisesti voit käyttää AWS-pilvi9, pilvipohjainen integroitu kehitysympäristö (IDE), joka mahdollistaa kaiken työn suorittamisen verkkoselaimella. Katso asennusohjeet kohdasta Asenna Cloud9 IDE. Valitse Ubuntu Server 18.04 alustaksi AWS Cloud9 -asetuksista.Valitse sitten AWS Cloud9 -ympäristöstäsi plusmerkki ja avaa uusi pääte.
Voit myös määrittää an AWS-komentoriviliitäntä (AWS CLI) -profiili. Tätä varten tarvitset pääsyavaimen tunnuksen ja salaisen pääsyavaimen AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (MINÄ OLEN) lähettämä tili, jolla on järjestelmänvalvojan oikeudet (liitä olemassa oleva hallinnoitu käytäntö) ja ohjelmallinen käyttöoikeus. Katso seuraava koodi:
Tarkista käyttöoikeudet, joita cloud9 käyttää AWS-resurssien kutsumiseen.
Tarkista alla olevasta lähdöstä, että näet AWS CLI -profiilissa määrittämäsi järjestelmänvalvojan käyttäjän arn. Tässä esimerkissä se on "kubeflow-user"
Asenna Amazon EKS ja Kubeflow AWS:ään
Asenna Amazon EKS ja Kubeflow AWS:ään suorittamalla seuraavat vaiheet:
- Määritä ympäristösi Kubeflown käyttöönottoa varten AWS:ssä:
- Ota Kubeflown vanillaversio käyttöön AWS:ssä ja siihen liittyvissä AWS-resursseissa, kuten EKS, Terraformin avulla. Huomaa, että EKS-solmuryhmässä käytetyt EBS-taltiot eivät ole oletusarvoisesti salattuja:
Määritä Kubeflow-oikeudet
- Lisää käyttöoikeudet Notebook podiin ja Pipeline-komponenttikoteloon, jotta voit soittaa SageMaker-, S3- ja IAM-sovellusliittymäkutsuja käyttämällä
kubeflow_iam_permissions.sh
skriptejä. - Luo SageMaker-suoritusrooli, jotta SageMaker-harjoitustyö voi käyttää harjoitustietojoukkoa S3-palvelusta käyttämällä
sagemaker_role.sh
skriptejä.
Käytä Kubeflow-hallintapaneelia
Pääset Kubeflow-hallintapaneeliin suorittamalla seuraavat vaiheet:
- Voit käyttää Kubeflow-hallintapaneelia paikallisesti Cloud9-ympäristössä paljastamatta URL-osoitteitasi julkiseen Internetiin suorittamalla alla olevia komentoja.
- Valita Esikatsele käynnissä olevaa sovellusta.
- Valitse Kubeflow-hallintapaneelin kulmassa oleva kuvake avataksesi sen erillisenä välilehtenä Chromessa.
- Anna oletustunnistetiedot (
user@example.com/12341234
) kirjautuaksesi Kubeflow-hallintapaneeliin.
Määritä Kubeflow on AWS-ympäristö
Kun olet kirjautunut Kubeflow-hallintapaneeliin, varmista, että sinulla on oikea nimiavaruus (kubeflow-user-example-com
) valittu. Suorita seuraavat vaiheet määrittääksesi Kubeflow on AWS-ympäristö:
- Valitse Kubeflow-hallintapaneelista Kannettavat navigointipaneelissa.
- Valita Uusi muistikirja.
- varten Nimi, tulla sisään
aws-nb
. - varten Jupyter Docket -kuva, valitse kuva
jupyter-pytorch:1.12.0-cpu-py38-ubuntu20.04-ec2-2022-09-20
(viimeisin saatavillajupyter-pytorch
DLC-kuva). - varten prosessori, tulla sisään
1
. - varten Muisti, tulla sisään
5
. - varten GPU, jätä nimellä Ei eristetty.
- Älä tee mitään muutoksia Työtila ja Tietomäärät osissa.
- valita Salli pääsy Kubeflow-putkiin vuonna Kokoonpanot -osio ja valitse Käynnistä.
- Varmista, että muistikirjasi on luotu onnistuneesti (se voi kestää muutaman minuutin).
- Valita kytkeä kirjautuaksesi JupyterLabiin.
- Kloonaa repo syöttämällä
https://github.com/aws-samples/eks-kubeflow-cloudformation-quick-start.git
vuonna Kloonaa repo ala. - Valita klooni.
Suorita hajautettu koulutusesimerkki
Kun olet määrittänyt Jupyter-muistikirjan, voit suorittaa koko esittelyn seuraavien korkean tason vaiheiden avulla kansiosta eks-kubeflow-cloudformation-quick-start/workshop/pytorch-distributed-training
kloonatussa arkistossa:
- Suorita PyTorch Distributed Data Parallel (DDP) -harjoituskomentosarja – Katso PyTorch DDP -harjoitusskripti
cifar10-distributed-gpu-final.py
, joka sisältää mallikonvoluutiohermoverkon ja logiikan koulutuksen jakamiseksi monisolmuisessa CPU- ja GPU-klusterissa. - Luo Kubeflow-putki – Käytä muistikirjaa
STEP1.0_create_pipeline_k8s_sagemaker.ipynb
luodaksesi putkiston, joka ajaa ja ottaa käyttöön malleja SageMakerissa. Varmista, että asennat SageMaker-kirjaston osana ensimmäistä muistikirjan solua ja käynnistä ydin uudelleen ennen kuin suoritat muut muistikirjan solut. - Kutsu SageMaker-päätepiste – Käytä muistikirjaa
STEP1.1_invoke_sagemaker_endpoint.ipynb
kutsua ja testata edellisessä muistikirjassa luotua SageMaker-mallin päättelypäätepistettä.
Seuraavissa osioissa käsittelemme jokaista näistä vaiheista yksityiskohtaisesti.
Suorita PyTorch DDP -harjoitusskripti
Osana hajautettua koulutusta koulutamme luokittelumallin, jonka luo yksinkertainen konvoluutiohermoverkko, joka toimii CIFAR10-aineistolla. Harjoittelun käsikirjoitus cifar10-distributed-gpu-final.py
sisältää vain avoimen lähdekoodin kirjastot ja on yhteensopiva sekä Kubernetes- että SageMaker-koulutusklustereissa joko GPU-laitteissa tai CPU-esiintymissä. Katsotaanpa muutamia tärkeitä koulutusohjelman näkökohtia ennen kuin suoritamme muistikirjaesimerkkejä.
Käytämme torch.distributed
moduuli, joka sisältää PyTorch-tuen ja tietoliikenneprimitiivit usean prosessin rinnakkaisuudelle klusterin solmujen välillä:
Luomme yksinkertaisen kuvan luokittelumallin käyttämällä konvoluutio-, maksimipoolaus- ja lineaarisia kerroksia, joihin relu
aktivointitoimintoa käytetään malliharjoittelun eteenpäin siirtymisessä:
Jos koulutusklusterissa on GPU:ita, komentosarja suorittaa harjoituksen CUDA-laitteissa ja laitemuuttuja sisältää oletusarvoisen CUDA-laitteen:
Ennen kuin suoritat hajautetun harjoittelun PyTorchin avulla DistributedDataParallel
Jos haluat suorittaa hajautetun käsittelyn useissa solmuissa, sinun on alustettava hajautettu ympäristö kutsumalla init_process_group
. Tämä alustetaan jokaisessa koulutusklusterin koneessa.
Instantoimme luokitinmallin ja kopioimme mallin kohdelaitteeseen. Jos hajautettu koulutus on otettu käyttöön useissa solmuissa, DistributedDataParallel
luokkaa käytetään wrapper-objektina malliobjektin ympärillä, mikä mahdollistaa synkronisen hajautetun koulutuksen useille koneille. Syöttötiedot jaetaan erämitan mukaan ja mallin kopio asetetaan jokaiseen koneeseen ja jokaiseen laitteeseen. Katso seuraava koodi:
Luo Kubeflow-putki
Muistikirja käyttää Kubeflow Pipelines SDK ja sen mukana toimitetut Python-paketit ML-työnkulkuputkien määrittämiseen ja suorittamiseen. Osana tätä SDK:ta käytämme verkkotunnuskohtaisen kielen (DSL) pakettien koristelua dsl.pipeline
, joka koristaa Python-funktiot palauttamaan liukuhihnan.
Kubeflow-liukuhihna käyttää SageMaker-komponenttia V2 koulutuksen lähettämiseen SageMakerille käyttämällä SageMaker ACK -operaattoreita. SageMaker-mallin luomisessa ja käyttöönotossa käytetään SageMaker-komponenttia V1, jotka ovat Boto3-pohjaisia SageMaker-komponentteja. Käytämme tässä esimerkissä molempien komponenttien yhdistelmää osoittaaksemme valinnan joustavuuden.
- Lataa SageMaker-komponentit käyttämällä seuraavaa koodia:
Seuraavassa koodissa luomme Kubeflow-putkilinjan, jossa suoritamme SageMaker-hajautetun koulutuksen kahdella
ml.p3.2xlarge
tapauksia:Kun liukuhihna on määritetty, voit kääntää putkilinjan Argo YAML -määritykseen käyttämällä Kubeflow Pipelines SDK:ta
kfp.compiler
paketti. Voit suorittaa tämän liukuhihnan käyttämällä Kubeflow Pipelines SDK -asiakasohjelmaa, joka kutsuu Pipelines-palvelun päätepisteen ja välittää asianmukaiset todennusotsikot suoraan muistikirjasta. Katso seuraava koodi: - Valitse Ajon tiedot linkki viimeisen solun alla nähdäksesi Kubeflow-putkilinjan. Seuraava kuvakaappaus näyttää SageMaker-koulutus- ja käyttöönottokomponenttimme tiedot.
- Valitse koulutustyön vaihe ja Lokit -välilehti, valitse CloudWatch-lokit -linkki päästäksesi SageMaker-lokeihin.
Seuraava kuvakaappaus näyttää CloudWatch-lokit kummallekin ml.p3.2xlarge-esiintymälle. - Valitse mikä tahansa ryhmä nähdäksesi lokit.
- Kaappaa SageMaker-päätepiste valitsemalla Sagemaker – Ota malli käyttöön vaihe ja kopiointi
endpoint_name
ulostulon artefaktin arvo.
Kutsu SageMaker-päätepiste
Muistikirja STEP1.1_invoke_sagemaker_endpoint.ipynb
kutsuu edellisessä vaiheessa luodun SageMaker-päätelmäpäätepisteen. Varmista, että päivität päätepisteen nimen:
Puhdistaa
Voit puhdistaa resurssit suorittamalla seuraavat vaiheet:
- Suorita seuraavat komennot AWS Cloud9:ssä poistaaksesi AWS-resurssit:
- Poista IAM-rooli"
sagemakerrole
" käyttämällä seuraavaa AWS CLI -komentoa: - Poista SageMaker-päätepiste käyttämällä seuraavaa AWS CLI -komentoa:
Yhteenveto
Tässä viestissä korostimme arvoa, jonka Kubeflow AWS 1.6.1:ssä tarjoaa alkuperäisten AWS-hallittujen palveluintegraatioiden kautta yritystason AI- ja ML-käyttötapausten tarpeisiin. Voit valita useista käyttöönottovaihtoehdoista Kubeflow:n asentamiseksi AWS:ään erilaisilla palveluintegroinneilla käyttämällä Terraformia, Kustomizea tai Helmiä. Tämän viestin käyttötapaus osoitti Kubeflow-integraation SageMakerin kanssa, joka käyttää SageMaker-hallittua koulutusklusteria suorittamaan hajautettua koulutusta kuvien luokittelumallille ja SageMaker-päätepisteelle mallin käyttöönottoa varten.
Olemme myös asettaneet saataville a esimerkki putkilinjasta joka käyttää uusimpia SageMaker-komponentteja; voit suorittaa tämän suoraan Kubeflow-hallintapaneelista. Tämä putki vaatii Amazon S3 tiedot ja SageMaker-suoritus IAM-rooli tarvittavina tuloina.
Aloita Kubeflow AWS:ssä tutustumalla käytettävissä oleviin AWS-integroituihin käyttöönottovaihtoehtoihin Kubeflow AWS:ssä. Voit seurata AWS Labs -arkisto seurataksesi kaikkia AWS-panoksia Kubeflowiin. Löydät meidät myös osoitteesta Kubeflow #AWS Slack Channel; antamasi palautteesi auttaa meitä priorisoimaan seuraavat Kubeflow-projektin ominaisuudet.
Tietoja kirjoittajista
Kanwaljit Khurmi on vanhempi ratkaisuarkkitehti Amazon Web Servicesissä. Hän työskentelee AWS-asiakkaiden kanssa tarjotakseen ohjausta ja teknistä apua, joka auttaa heitä parantamaan ratkaisujensa arvoa AWS:n käytössä. Kanwaljit on erikoistunut auttamaan asiakkaita kontti- ja koneoppimissovelluksissa.
Kartik Kalamadi on ohjelmistokehitysinsinööri Amazon AI:ssa. Tällä hetkellä keskittynyt koneoppimiseen Kubernetesin avoimen lähdekoodin projekteihin, kuten Kubeflow ja AWS SageMaker Controller for k8s. Vapaa-ajallani pelaan PC-pelejä ja näpertelen VR:ää Unity-moottorilla.
Rahul Kharse on ohjelmistokehitysinsinööri Amazon Web Services -palvelussa. Hänen työnsä keskittyy AWS-palvelujen integroimiseen avoimen lähdekoodin ML Ops -alustoille niiden skaalautuvuuden, luotettavuuden ja turvallisuuden parantamiseksi. Sen lisäksi, että Rahul keskittyy asiakkaiden ominaisuuksiin liittyviin pyyntöihin, hän nauttii myös alan uusimman teknologian kehityksen kokeilemisesta.
- Lisäasetukset (300)
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- Amazon Sage Maker
- tekoäly
- tekoälyn sertifiointi
- tekoäly pankkitoiminnassa
- tekoäly robotti
- tekoälyrobotit
- tekoälyohjelmisto
- AWS-koneoppiminen
- blockchain
- blockchain-konferenssi ai
- coingenius
- keskustelullinen tekoäly
- kryptokonferenssi ai
- dall's
- syvä oppiminen
- google ai
- KubeFlow
- koneoppiminen
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- mittakaava ai
- syntaksi
- zephyrnet