Med bruken av høyhastighets 5G-mobilnettverk er bedrifter lettere enn noen gang posisjonert med muligheten til å utnytte konvergensen av telekommunikasjonsnettverk og skyen. Som en av de mest fremtredende brukssakene til dags dato, har maskinlæring (ML) på kanten gjort det mulig for bedrifter å distribuere ML-modeller nærmere sluttkundene for å redusere ventetiden og øke responsen til applikasjonene deres. Som et eksempel, smarte lokale løsninger kan bruke nesten-sanntidsdatasyn for publikumsanalyse over 5G-nettverk, samtidig som investeringene i lokalt maskinvarenettverksutstyr minimeres. Forhandlere kan levere mer friksjonsfrie opplevelser på farten med naturlig språkbehandling (NLP), anbefalingssystemer i sanntid og svindeloppdagelse. Til og med bakke- og luftrobotikk kan bruke ML for å låse opp sikrere, mer autonome operasjoner.
For å redusere barrieren for inntreden av ML på kanten, ønsket vi å demonstrere et eksempel på utplassering av en forhåndstrent modell fra Amazon SageMaker til AWS Bølgelengde, alt på mindre enn 100 linjer med kode. I dette innlegget viser vi hvordan du distribuerer en SageMaker-modell til AWS Wavelength for å redusere modellslutningsforsinkelse for 5G-nettverksbaserte applikasjoner.
Løsningsoversikt
På tvers av AWSs raskt voksende globale infrastruktur bringer AWS Wavelength kraften til cloud computing og lagring til kanten av 5G-nettverk, og låser opp mer effektive mobile opplevelser. Med AWS Wavelength kan du utvide din virtuelle private sky (VPC) til Wavelength Zones som tilsvarer teleoperatørens nettverkskant i 29 byer over hele kloden. Følgende diagram viser et eksempel på denne arkitekturen.
Du kan melde deg på bølgelengdesonene innenfor en gitt region via AWS-administrasjonskonsoll eller AWS kommandolinjegrensesnitt (AWS CLI). For å lære mer om distribusjon av geodistribuerte applikasjoner på AWS Wavelength, se Distribuer geodistribuerte Amazon EKS-klynger på AWS Wavelength.
Ved å bygge på det grunnleggende som er diskutert i dette innlegget, ser vi på ML ved kanten som et eksempel på en arbeidsbelastning for å distribuere til AWS Wavelength. Som vårt eksempel på arbeidsmengden distribuerer vi en forhåndsopplært modell fra Amazon SageMaker JumpStart.
SageMaker er en fullt administrert ML-tjeneste som lar utviklere enkelt distribuere ML-modeller i sine AWS-miljøer. Selv om AWS tilbyr en rekke alternativer for modelltrening—fra AWS Marketplace modeller og SageMaker innebygde algoritmer – det finnes en rekke teknikker for å distribuere åpen kildekode ML-modeller.
JumpStart gir tilgang til hundrevis av innebygde algoritmer med forhåndstrente modeller som sømløst kan distribueres til SageMaker-endepunkter. Fra prediktivt vedlikehold og datasyn til autonom kjøring og svindeldeteksjon, støtter JumpStart en rekke populære brukstilfeller med ett-klikks-distribusjon på konsollen.
Fordi SageMaker ikke er naturlig støttet i bølgelengdesoner, viser vi hvordan man trekker ut modellartefakter fra regionen og distribuerer på nytt til kanten. For å gjøre det bruker du Amazon Elastic Kubernetes-tjeneste (Amazon EKS) klynger og nodegrupper i bølgelengdesoner, etterfulgt av å lage et distribusjonsmanifest med beholderbildet generert av JumpStart. Følgende diagram illustrerer denne arkitekturen.
Forutsetninger
For å gjøre dette så enkelt som mulig, sørg for at AWS-kontoen din har aktivert bølgelengdesoner. Merk at denne integrasjonen kun er tilgjengelig i us-east-1
og us-west-2
, og du vil bruke us-east-1
for varigheten av demoen.
For å melde deg på AWS Wavelength, fullfør følgende trinn:
- Velg på Amazon VPC-konsollen Soner etter innstillinger Og velg US East (Verizon) / us-east-1-wl1.
- Velg Administrer.
- Plukke ut Meldte seg på.
- Velg Oppdater soner.
Lag AWS Wavelength-infrastruktur
Før vi konverterer det lokale SageMaker-modellens sluttpunkt til en Kubernetes-distribusjon, kan du opprette en EKS-klynge i en bølgelengdesone. For å gjøre det, distribuer en Amazon EKS-klynge med en AWS Wavelength-nodegruppe. For å lære mer, kan du besøke denne veiledningen på AWS Containers Blog or Verizons 5GEdgeTutorials-depot for et slikt eksempel.
Deretter bruker du en AWS Cloud9 miljø eller interaktivt utviklingsmiljø (IDE) etter eget valg, last ned de nødvendige SageMaker-pakkene og Docker komponere, en nøkkelavhengighet av JumpStart.
Lag modellartefakter ved hjelp av JumpStart
Først må du sørge for at du har en AWS identitets- og tilgangsadministrasjon (IAM) utførelsesrolle for SageMaker. For å lære mer, besøk SageMaker-roller.
- Ved hjelp av dette eksemplet, opprette en fil kalt train_model.py som bruker SageMaker Software Development Kit (SDK) for å hente en forhåndsbygd modell (erstatt med Amazon Resource Name (ARN) til SageMaker-utførelsesrollen din). I denne filen distribuerer du en modell lokalt ved å bruke
instance_type
attributt imodel.deploy()
funksjon, som starter en Docker-beholder i IDE-en din ved å bruke alle nødvendige modellartefakter du definerte:
- Neste, sett
infer_model_id
til ID-en til SageMaker-modellen du ønsker å bruke.
For en fullstendig liste, se Innebygde algoritmer med forhåndstrent modellbord. I vårt eksempel bruker vi Bidirectional Encoder Representations from Transformers (BERT)-modellen, vanligvis brukt for naturlig språkbehandling.
- Kjør
train_model.py
skript for å hente JumpStart-modellartefakter og distribuere den forhåndstrente modellen til din lokale maskin:
Hvis dette trinnet lykkes, kan utgangen din ligne på følgende:
I utdataene vil du se tre artefakter i rekkefølge: basisbildet for TensorFlow-inferens, inferensskriptet som tjener modellen, og artefaktene som inneholder den trente modellen. Selv om du kan lage et tilpasset Docker-bilde med disse artefaktene, er en annen tilnærming å la SageMaker lokal modus lage Docker-bildet for deg. I de påfølgende trinnene trekker vi ut beholderbildet som kjører lokalt og distribuerer til Amazon Elastic Container Registry (Amazon ECR) samt skyve modellartefakten separat til Amazon enkel lagringstjeneste (Amazon S3).
Konverter lokalmodusartefakter til ekstern Kubernetes-distribusjon
Nå som du har bekreftet at SageMaker fungerer lokalt, la oss trekke ut distribusjonsmanifestet fra den kjørende beholderen. Fullfør følgende trinn:
Identifiser plasseringen av SageMaker lokal modus-implementeringsmanifestet: For å gjøre det, søk i rotkatalogen vår etter filer med navn docker-compose.yaml
.
docker_manifest=$( find /tmp/tmp* -name "docker-compose.yaml" -printf '%T+ %pn' | sort | tail -n 1 | cut -d' ' -f2-)
echo $docker_manifest
Identifiser plasseringen av SageMaker lokalmodusmodellartefakter: Finn deretter det underliggende volumet montert på den lokale SageMaker-inferensbeholderen, som vil bli brukt i hver EKS-arbeidernode etter at vi lastet opp artefakten til Amazon s3.
model_local_volume = $(grep -A1 -w "volumes:" $docker_manifest | tail -n 1 | tr -d ' ' | awk -F: '{print $1}' | cut -c 2-) # Returns something like: /tmp/tmpcr4bu_a7</p>
Lag en lokal kopi av å kjøre SageMaker-inferensbeholder: Deretter finner vi det aktuelle beholderbildet som kjører vår maskinlærings-inferensmodell og lager en kopi av beholderen lokalt. Dette vil sikre at vi har vår egen kopi av beholderbildet å hente fra Amazon ECR.
# Find container ID of running SageMaker Local container
mkdir sagemaker-container
container_id=$(docker ps --format "{{.ID}} {{.Image}}" | grep "tensorflow" | awk '{print $1}')
# Retrieve the files of the container locally
docker cp $my_container_id:/ sagemaker-container/
Før du handler på model_local_volume
, som vi sender til Amazon S3, skyver en kopi av det kjørende Docker-bildet, nå i sagemaker-container
katalog, til Amazon Elastic Container Registry. Pass på å bytte ut region
, aws_account_id
, docker_image_id
og my-repository:tag
eller følg Amazon ECR brukerveiledning. Husk også å legge merke til den endelige ECR-bilde-URLen (aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
), som vi vil bruke i vår EKS-distribusjon.
Nå som vi har et ECR-bilde som tilsvarer inferensendepunktet, lag en ny Amazon S3-bøtte og kopier SageMaker Local-artefakter (model_local_volume
) til denne bøtta. Parallelt oppretter du en Identity Access Management (IAM) som gir Amazon EC2-forekomster tilgang til å lese objekter i bøtten. Pass på å bytte ut med et globalt unikt navn for din Amazon S3-bøtte.
Deretter, for å sikre at hver EC2-forekomst henter en kopi av modellartefakten ved lansering, rediger brukerdataene for EKS-arbeidernodene dine. I brukerdataskriptet ditt, sørg for at hver node henter modellartefakter ved hjelp av S3 API ved lansering. Pass på å bytte ut med et globalt unikt navn for din Amazon S3-bøtte. Gitt at nodens brukerdata også vil inkludere EKS bootstrap-skriptet, kan de fullstendige brukerdataene se omtrent slik ut.
Nå kan du inspisere det eksisterende docker-manifestet og oversette det til Kubernetes-vennlige manifestfiler ved hjelp av Komponer, et velkjent konverteringsverktøy. Merk: Hvis du får en versjonskompatibilitetsfeil, endre version
attributt i linje 27 i docker-compose.yml til “2”
.
Etter å ha kjørt Kompose, vil du se fire nye filer: a Deployment
gjenstand, Service
gjenstand, PersistentVolumeClaim
objekt, og NetworkPolicy
gjenstand. Du har nå alt du trenger for å begynne ditt inntog i Kubernetes på kanten!
Distribuer SageMaker-modellartefakter
Sørg for at du har lastet ned kubectl og aws-iam-authenticator til din AWS Cloud9 IDE. Hvis ikke, følg installasjonsveiledningene:
Fullfør nå følgende trinn:
endre service/algo-1-ow3nv
objekt å bytte tjenestetype fra ClusterIP
til NodePort
. I vårt eksempel har vi valgt port 30,007 XNUMX som vår NodePort
:
Deretter må du tillate NodePort i sikkerhetsgruppen for noden din. For å gjøre det, hent sikkerhetsgruppe-IDen og tillat-liste NodePort:
Deretter endrer du algo-1-ow3nv-deployment.yaml
manifest for å montere /tmp/model hostPath
katalogen til beholderen. Erstatte med ECR-bildet du opprettet tidligere:
Med manifestfilene du opprettet fra Kompose, bruk kubectl til å bruke konfigurasjonene til klyngen din:
Koble til 5G-kantmodellen
For å koble til modellen din, fullfør følgende trinn:
På Amazon EC2-konsollen, hent operatør-IP-en til EKS-arbeidernoden eller bruk AWS CLI for å spørre operatørens IP-adresse direkte:
Nå, med operatørens IP-adresse ekstrahert, kan du koble til modellen direkte ved å bruke NodePort. Lag en fil som heter invoke.py
å påkalle BERT-modellen direkte ved å gi en tekstbasert inngang som kjøres mot en sentimentanalysator for å avgjøre om tonen var positiv eller negativ:
Utgangen din skal ligne følgende:
Rydd opp
For å ødelegge alle opprettede applikasjonsressurser, slett AWS Wavelength-arbeidernodene, EKS-kontrollplanet og alle ressursene som er opprettet i VPC. Slett i tillegg ECR-repoen som ble brukt til å være vert for beholderbildet, S3-bøttene som ble brukt til å være vert for SageMaker-modellartefakter og sagemaker-demo-app-s3 IAM
Politikk.
konklusjonen
I dette innlegget demonstrerte vi en ny tilnærming til å distribuere SageMaker-modeller til nettverkskanten ved å bruke Amazon EKS og AWS Wavelength. For å lære om Amazon EKS beste praksis på AWS Wavelength, se Distribuer geodistribuerte Amazon EKS-klynger på AWS Wavelength. I tillegg, for å lære mer om Jumpstart, besøk Amazon SageMaker JumpStart utviklerveiledning eller JumpStart tilgjengelig modellbord.
Om forfatterne
Robert Belson er en utvikleradvokat i AWS Worldwide Telecom Business Unit, som spesialiserer seg på AWS Edge Computing. Han fokuserer på å jobbe med utviklermiljøet og store bedriftskunder for å løse forretningsutfordringene deres ved å bruke automatisering, hybridnettverk og edge-skyen.
Mohammed Al-Mehdar er Senior Solutions Architect i Worldwide Telecom Business Unit hos AWS. Hans hovedfokus er å hjelpe kunder i stand til å bygge og distribuere Telco- og Enterprise IT-arbeidsbelastninger på AWS. Før han begynte i AWS, har Mohammed jobbet i Telco-bransjen i over 13 år og har et vell av erfaring innen områdene LTE Packet Core, 5G, IMS og WebRTC. Mohammed har en bachelorgrad i telekommunikasjonsteknikk fra Concordia University.
Evan Kravitz er programvareingeniør hos Amazon Web Services, og jobber med SageMaker JumpStart. Han liker å lage mat og gå på løpetur i New York City.
Justin St. Arnauld er Associate Director – Solution Architects hos Verizon for offentlig sektor med over 15 års erfaring i IT-bransjen. Han er en lidenskapelig talsmann for kraften i edge computing og 5G-nettverk og er en ekspert på å utvikle innovative teknologiløsninger som utnytter disse teknologiene. Justin er spesielt begeistret for mulighetene som tilbys av Amazon Web Services (AWS) for å levere banebrytende løsninger for sine kunder. På fritiden liker Justin å holde seg oppdatert med de nyeste teknologitrendene og dele sin kunnskap og innsikt med andre i bransjen.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/deploy-pre-trained-models-on-aws-wavelength-with-5g-edge-using-amazon-sagemaker-jumpstart/
- :er
- 1
- 10
- 100
- 11
- 15 år
- 5G
- 7
- 8
- 9
- a
- Om oss
- Aksepterer
- adgang
- Logg inn
- tvers
- Handling
- I tillegg
- adresse
- advent
- advokat
- Etter
- mot
- algoritmer
- Alle
- tillater
- Selv
- alltid
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- Amazon Web Services (AWS)
- analytics
- og
- En annen
- api
- Søknad
- søknader
- Påfør
- tilnærming
- arkitektur
- ER
- områder
- AS
- Førsteamanuensis
- Association
- At
- Automatisering
- autonom
- tilgjengelig
- AWS
- AWS Cloud9
- barriere
- basen
- BE
- begynne
- BEST
- beste praksis
- Bootstrap
- Bringer
- bygge
- innebygd
- virksomhet
- by
- som heter
- CAN
- evner
- saker
- CAT
- CD
- utfordringer
- endring
- valg
- Velg
- City
- klienter
- nærmere
- Cloud
- Cloud9
- Cluster
- kode
- COM
- vanligvis
- samfunnet
- kompatibilitet
- fullføre
- Beregn
- datamaskin
- Datamaskin syn
- databehandling
- BEKREFTET
- Koble
- Konsoll
- Container
- Containere
- kontroll
- Konvergens
- Konvertering
- konvertere
- Kjerne
- Tilsvarende
- kunne
- skape
- opprettet
- Opprette
- mengde
- I dag
- skikk
- Kunder
- Kutt
- skjærekant
- dato
- Dato
- definert
- Grad
- leverer
- levere
- demonstrere
- demonstrert
- Avhengighet
- utplassere
- utplassert
- utplasserings
- distribusjon
- ødelegge
- Gjenkjenning
- Bestem
- Utvikler
- utviklere
- utvikle
- Utvikling
- direkte
- Regissør
- diskutert
- Docker
- nedlasting
- kjøring
- hver enkelt
- Tidligere
- lett
- øst
- savner
- Edge
- kanten beregning
- effekt
- muliggjøre
- aktivert
- Endpoint
- ingeniør
- Ingeniørarbeid
- sikre
- Enterprise
- bedrifter
- entusiastisk
- entry
- Miljø
- miljøer
- utstyr
- feil
- Selv
- NOEN GANG
- alt
- eksempel
- gjennomføring
- eksisterende
- ekspanderende
- erfaring
- Erfaringer
- Expert
- utvide
- trekke ut
- filet
- Filer
- slutt~~POS=TRUNC
- Finn
- Fokus
- fokuserer
- følge
- fulgt
- etter
- Til
- streiftog
- svindel
- svindeloppdagelse
- Gratis
- friksjons
- fra
- fullt
- funksjon
- Fundamentals
- generert
- få
- gitt
- Global
- Globalt
- globus
- Go
- skal
- Gruppe
- Gruppens
- veilede
- Guider
- maskinvare
- seletøy
- Ha
- hjelpe
- holder
- vert
- Hvordan
- Hvordan
- HTML
- http
- HTTPS
- Hundrevis
- Hybrid
- ID
- Identitet
- bilde
- importere
- in
- inkludere
- Øke
- industri
- Infrastruktur
- innovative
- innovativ teknologi
- inngang
- innsikt
- installere
- f.eks
- integrering
- interaktiv
- investering
- IP
- IP-adresse
- IT
- IT-bransjen
- sammenføyning
- jpg
- JSON
- Justin
- holde
- nøkkel
- Type
- Sett (SDK)
- kunnskap
- etiketter
- Språk
- stor
- Ventetid
- siste
- lansere
- LÆRE
- læring
- Leverage
- i likhet med
- linje
- linjer
- Liste
- lokal
- lokalt
- plassering
- Se
- maskin
- maskinlæring
- Hoved
- vedlikehold
- gjøre
- fikk til
- ledelse
- metadata
- minimere
- ML
- Mobil
- mobile nettverk
- Mote
- modell
- modeller
- modifisere
- mer
- mest
- MONTER
- navn
- oppkalt
- Naturlig
- Natural Language Processing
- Trenger
- negativ
- nettverk
- nettverksbasert
- nettverk
- nettverk
- Ny
- New York
- New York City
- neste
- nlp
- node
- noder
- roman
- Antall
- objekt
- gjenstander
- of
- tilbudt
- Tilbud
- on
- ONE
- åpen kildekode
- Drift
- Opportunity
- alternativer
- rekkefølge
- andre
- produksjon
- egen
- pakker
- Parallel
- spesielt
- lidenskapelig
- banen
- plato
- Platon Data Intelligence
- PlatonData
- politikk
- Populær
- posisjonert
- positiv
- mulig
- Post
- makt
- praksis
- Predictor
- Før
- privat
- prosessering
- fremtredende
- gir
- gi
- offentlig
- Trekker
- Skyv
- raskt
- Lese
- sanntids
- Anbefaling
- redusere
- region
- registret
- fjernkontroll
- erstatte
- forespørsler
- nødvendig
- ressurs
- Ressurser
- forhandlere
- avkastning
- Rolle
- root
- Kjør
- rennende
- sikrere
- sagemaker
- SageMaker Inference
- SDK
- sømløst
- Søk
- sektor
- sikkerhet
- valgt
- senior
- betjene
- serverer
- tjeneste
- Tjenester
- sett
- deling
- bør
- Viser
- Enkelt
- ganske enkelt
- So
- Software
- programvareutvikling
- Software Engineer
- løsning
- Solutions
- LØSE
- noe
- spesialisert
- starter
- Uttalelse
- status
- Trinn
- Steps
- lagring
- Strategi
- senere
- lykkes
- slik
- Støttes
- Støtter
- Bytte om
- Systemer
- TAG
- Ta
- teknikker
- Technologies
- Teknologi
- Telco
- telekom
- telekommunikasjon
- Telekommunikasjonsteknologi
- mal
- tensorflow
- Det
- De
- deres
- Disse
- tre
- tid
- til
- TONE
- verktøy
- trent
- transformers
- oversette
- Trender
- sant
- etter
- underliggende
- unik
- enhet
- universitet
- låse opp
- opplåsing
- up-to-date
- URL
- bruke
- Bruker
- v1
- verdi
- variasjon
- Venue
- Verizon
- versjon
- av
- virtuelle
- syn
- Besøk
- volum
- volumer
- ønsket
- Rikdom
- web
- webtjenester
- VI VIL
- velkjent
- om
- hvilken
- mens
- vil
- med
- innenfor
- arbeidstaker
- arbeid
- verdensomspennende
- ville
- yaml
- år
- Du
- Din
- youtube
- zephyrnet
- soner