Med fremkomsten af højhastigheds 5G-mobilnetværk er virksomheder nemmere end nogensinde før med muligheden for at udnytte konvergensen mellem telekommunikationsnetværk og skyen. Som en af de mest fremtrædende use cases til dato har maskinlæring (ML) på kanten gjort det muligt for virksomheder at implementere ML-modeller tættere på deres slutkunder for at reducere latens og øge reaktionsevnen af deres applikationer. Som et eksempel, smarte spillestedsløsninger kan bruge næsten-realtid computersyn til crowd-analyse over 5G-netværk, alt imens investeringen i lokalt hardwarenetværksudstyr minimeres. Forhandlere kan levere mere friktionsfri oplevelser på farten med naturlig sprogbehandling (NLP), anbefalingssystemer i realtid og registrering af svindel. Også selvom jord- og luftrobotik kan bruge ML til at låse op for sikrere, mere autonome operationer.
For at reducere barrieren for indtrængen af ML på kanten, ønskede vi at demonstrere et eksempel på implementering af en præ-trænet model fra Amazon SageMaker til AWS bølgelængde, alt sammen i mindre end 100 linjer kode. I dette indlæg demonstrerer vi, hvordan man implementerer en SageMaker-model til AWS Wavelength for at reducere modelslutningsforsinkelse for 5G-netværksbaserede applikationer.
Løsningsoversigt
På tværs af AWS' hurtigt ekspanderende globale infrastruktur bringer AWS Wavelength kraften i cloud compute og lagring til kanten af 5G-netværk og låser op for mere effektive mobile oplevelser. Med AWS Wavelength kan du udvide din virtuelle private sky (VPC) til bølgelængdezoner svarende til teleoperatørens netværkskant i 29 byer verden over. Følgende diagram viser et eksempel på denne arkitektur.
Du kan tilmelde dig bølgelængdezonerne inden for en given region via AWS Management Console eller AWS kommandolinjegrænseflade (AWS CLI). For at lære mere om implementering af geo-distribuerede applikationer på AWS Wavelength, se Implementer geo-distribuerede Amazon EKS-klynger på AWS Wavelength.
Med udgangspunkt i de grundlæggende principper, der er diskuteret i dette indlæg, ser vi på ML på kanten som et eksempel på en arbejdsbyrde, som vi kan implementere til AWS Wavelength. Som vores eksempel på arbejdsbyrde implementerer vi en præ-trænet model fra Amazon SageMaker JumpStart.
SageMaker er en fuldt administreret ML-tjeneste, der giver udviklere mulighed for nemt at implementere ML-modeller i deres AWS-miljøer. Selvom AWS tilbyder en række muligheder for modeltræning — fra AWS Marketplace modeller og SageMaker indbyggede algoritmer – der er en række teknikker til at implementere open source ML-modeller.
JumpStart giver adgang til hundredvis af indbyggede algoritmer med forudtrænede modeller, der problemfrit kan implementeres til SageMaker-slutpunkter. Fra forudsigelig vedligeholdelse og computersyn til autonom kørsel og registrering af svindel understøtter JumpStart en række populære brugssager med et-klik-implementering på konsollen.
Fordi SageMaker ikke er indbygget understøttet i bølgelængdezoner, demonstrerer vi, hvordan man udtrækker modelartefakter fra regionen og genudruller til kanten. For at gøre det bruger du Amazon Elastic Kubernetes Service (Amazon EKS) klynger og nodegrupper i bølgelængdezoner, efterfulgt af oprettelse af et implementeringsmanifest med containerbilledet genereret af JumpStart. Følgende diagram illustrerer denne arkitektur.
Forudsætninger
For at gøre dette så nemt som muligt skal du sikre dig, at din AWS-konto har bølgelængdezoner aktiveret. Bemærk, at denne integration kun er tilgængelig i us-east-1
, us-west-2
, og du vil bruge us-east-1
i løbet af demoen.
For at tilmelde dig AWS Wavelength skal du udføre følgende trin:
- På Amazon VPC-konsollen skal du vælge Zoner under Indstillinger Og vælg US East (Verizon) / us-east-1-wl1.
- Vælg Administrer.
- Type Tilmeldt.
- Vælg Opdater zoner.
Opret AWS-bølgelængde-infrastruktur
Før vi konverterer det lokale SageMaker-modelslutningsendepunkt til en Kubernetes-implementering, kan du oprette en EKS-klynge i en bølgelængdezone. For at gøre det skal du implementere en Amazon EKS-klynge med en AWS Wavelength-nodegruppe. Hvis du vil vide mere, kan du besøge denne vejledning på AWS Containers Blog or Verizons 5GEdgeTutorials-depot for et sådant eksempel.
Dernæst ved hjælp af en AWS Cloud9 miljø eller interaktivt udviklingsmiljø (IDE) efter eget valg, download de nødvendige SageMaker-pakker og Docker komponere, en nøgleafhængighed af JumpStart.
Opret modelartefakter ved hjælp af JumpStart
Først skal du sikre dig, at du har en AWS identitets- og adgangsstyring (IAM) eksekveringsrolle for SageMaker. For at lære mere, besøg SageMaker roller.
- Ved brug af dette eksempel, opret en fil kaldet train_model.py, der bruger SageMaker Software Development Kit (SDK) til at hente en forudbygget model (erstat med Amazon Resource Name (ARN) for din SageMaker-udførelsesrolle). I denne fil implementerer du en model lokalt ved hjælp af
instance_type
attribut imodel.deploy()
funktion, som starter en Docker-beholder i din IDE ved hjælp af alle nødvendige modelartefakter, du har defineret:
- Dernæst sæt
infer_model_id
til ID'et for SageMaker-modellen, som du gerne vil bruge.
For en komplet liste, se Indbyggede algoritmer med fortrænet modelbord. I vores eksempel bruger vi BERT-modellen (Bidirectional Encoder Representations from Transformers), der almindeligvis bruges til naturlig sprogbehandling.
- Kør
train_model.py
script for at hente JumpStart-modellens artefakter og implementere den forudtrænede model til din lokale maskine:
Hvis dette trin lykkes, kan dit output ligne følgende:
I outputtet vil du se tre artefakter i rækkefølge: basisbilledet for TensorFlow-inferens, inferensscriptet, der tjener modellen, og artefakterne, der indeholder den trænede model. Selvom du kunne oprette et brugerdefineret Docker-billede med disse artefakter, er en anden tilgang at lade SageMaker lokal tilstand skabe Docker-billedet for dig. I de efterfølgende trin udtrækker vi containerbilledet, der kører lokalt og implementerer til Amazon Elastic Container Registry (Amazon ECR) samt skubbe modelartefakten separat til Amazon Simple Storage Service (Amazon S3).
Konverter artefakter i lokal tilstand til ekstern Kubernetes-implementering
Nu hvor du har bekræftet, at SageMaker arbejder lokalt, lad os udtrække implementeringsmanifestet fra den kørende container. Udfør følgende trin:
Identificer placeringen af SageMaker lokal tilstand implementeringsmanifestet: For at gøre det skal du søge i vores rodmappe efter 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
Identificer placeringen af SageMaker-lokaltilstandsmodelartefakter: Find derefter det underliggende volumen monteret på den lokale SageMaker-inferensbeholder, som vil blive brugt i hver EKS-arbejderknude, efter at vi har uploadet 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>
Opret lokal kopi af at køre SageMaker-inferenscontainer: Dernæst finder vi det aktuelle containerbillede, der kører vores maskinlærings-inferensmodel og laver en kopi af containeren lokalt. Dette sikrer, at vi har vores egen kopi af containerbilledet til at 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, skal du skubbe en kopi af det kørende Docker-billede, nu i sagemaker-container
bibliotek, til Amazon Elastic Container Registry. Sørg for at udskifte region
, aws_account_id
, docker_image_id
, my-repository:tag
eller følg Amazon ECR brugervejledning. Husk også at notere den endelige ECR-billed-URL (aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
), som vi vil bruge i vores EKS-implementering.
Nu hvor vi har et ECR-billede, der svarer til inferensslutpunktet, skal du oprette en ny Amazon S3-bøtte og kopiere SageMaker Local-artefakter (model_local_volume
) til denne spand. Opret sideløbende en Identity Access Management (IAM), der giver Amazon EC2-instanser adgang til at læse objekter i bucket. Sørg for at udskifte med et globalt unikt navn til din Amazon S3-spand.
For at sikre, at hver EC2-instans trækker en kopi af modelartefakten ved lancering, skal du redigere brugerdataene for dine EKS-arbejderknudepunkter. I dit brugerdatascript skal du sikre dig, at hver node henter modelartefakter ved hjælp af S3 API'et ved lanceringen. Sørg for at udskifte med et globalt unikt navn til din Amazon S3-spand. Da nodens brugerdata også vil inkludere EKS bootstrap scriptet, kan de komplette brugerdata se nogenlunde sådan ud.
Nu kan du inspicere det eksisterende docker-manifest og oversætte det til Kubernetes-venlige manifestfiler ved hjælp af Komponere, et velkendt konverteringsværktøj. Bemærk: Hvis du får en versionskompatibilitetsfejl, skal du ændre version
attribut i linje 27 i docker-compose.yml til “2”
.
Efter at have kørt Kompose, vil du se fire nye filer: a Deployment
objekt, Service
objekt, PersistentVolumeClaim
objekt, og NetworkPolicy
objekt. Du har nu alt, hvad du behøver for at begynde dit indtog i Kubernetes på kanten!
Implementer SageMaker-modelartefakter
Sørg for, at du har downloadet kubectl og aws-iam-authenticator til din AWS Cloud9 IDE. Hvis ikke, følg installationsvejledningerne:
Udfør nu følgende trin:
Rediger service/algo-1-ow3nv
objekt at skifte servicetype fra ClusterIP
til NodePort
. I vores eksempel har vi valgt port 30,007 som vores NodePort
:
Dernæst skal du tillade NodePort i sikkerhedsgruppen for din node. For at gøre det skal du hente sikkerhedsgruppe-id'et og tillade NodePort:
Dernæst skal du ændre algo-1-ow3nv-deployment.yaml
manifest at montere /tmp/model hostPath
mappe til containeren. Erstatte med det ECR-billede, du oprettede tidligere:
Med de manifestfiler, du har oprettet fra Kompose, skal du bruge kubectl til at anvende konfigurationerne på din klynge:
Tilslut til 5G edge-modellen
For at oprette forbindelse til din model skal du udføre følgende trin:
På Amazon EC2-konsollen skal du hente operatørens IP-adresse for EKS-arbejderknuden eller bruge AWS CLI til at forespørge operatørens IP-adresse direkte:
Nu, med transportørens IP-adresse udtrukket, kan du oprette forbindelse til modellen direkte ved hjælp af NodePort. Opret en fil kaldet invoke.py
at påberåbe BERT-modellen direkte ved at give et tekstbaseret input, der vil blive kørt mod en sentiment-analyzer for at bestemme, om tonen var positiv eller negativ:
Dit output skal ligne følgende:
Ryd op
For at ødelægge alle oprettede applikationsressourcer skal du slette AWS Wavelength-arbejderknuderne, EKS-kontrolplanet og alle de ressourcer, der er oprettet i VPC'en. Derudover skal du slette ECR-reposen, der blev brugt til at være vært for containerbilledet, S3-bøtterne, der blev brugt til at være vært for SageMaker-modelartefakter og sagemaker-demo-app-s3 IAM
politik.
Konklusion
I dette indlæg demonstrerede vi en ny tilgang til implementering af SageMaker-modeller til netværkskanten ved hjælp af Amazon EKS og AWS Wavelength. For at lære om Amazon EKS bedste praksis på AWS Wavelength, se Implementer geo-distribuerede Amazon EKS-klynger på AWS Wavelength. Besøg desuden for at lære mere om Jumpstart Amazon SageMaker JumpStart Developer Guide eller JumpStart tilgængelig model tabel.
Om forfatterne
Robert Belson er udvikleradvokat i AWS Worldwide Telecom Business Unit med speciale i AWS Edge Computing. Han fokuserer på at arbejde med udviklerfællesskabet og store virksomhedskunder for at løse deres forretningsudfordringer ved hjælp af automatisering, hybrid netværk og edge-skyen.
Mohammed Al-Mehdar er Senior Solutions Architect i Worldwide Telecom Business Unit hos AWS. Hans hovedfokus er at hjælpe kunder med at opbygge og implementere Telco- og Enterprise IT-arbejdsbelastninger på AWS. Før han kom til AWS, har Mohammed arbejdet i telekommunikationsindustrien i over 13 år og bringer et væld af erfaring inden for områderne LTE Packet Core, 5G, IMS og WebRTC. Mohammed har en bachelorgrad i telekommunikationsingeniør fra Concordia University.
Evan Kravitz er softwareingeniør hos Amazon Web Services, der arbejder på SageMaker JumpStart. Han nyder at lave mad og løbe i New York City.
Justin St. Arnauld er Associate Director – Solution Architects hos Verizon for den offentlige sektor med over 15 års erfaring i it-branchen. Han er en lidenskabelig fortaler for styrken af edge computing og 5G-netværk og er ekspert i at udvikle innovative teknologiløsninger, der udnytter disse teknologier. Justin er især begejstret for de muligheder, som Amazon Web Services (AWS) tilbyder til at levere banebrydende løsninger til sine kunder. I sin fritid nyder Justin at holde sig ajour med de nyeste teknologitrends og dele sin viden og indsigt med andre i branchen.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang 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
- Acceptere
- adgang
- Konto
- tværs
- Handling
- Derudover
- adresse
- advent
- fortaler
- Efter
- mod
- algoritmer
- Alle
- tillader
- Skønt
- altid
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- Amazon Web Services (AWS)
- analytics
- ,
- En anden
- api
- Anvendelse
- applikationer
- Indløs
- tilgang
- arkitektur
- ER
- områder
- AS
- Associate
- Association
- At
- Automation
- autonom
- til rådighed
- AWS
- AWS Cloud9
- barriere
- bund
- BE
- begynde
- BEDSTE
- bedste praksis
- Bootstrap
- Bringer
- bygge
- indbygget
- virksomhed
- by
- kaldet
- CAN
- kapaciteter
- tilfælde
- KAT
- CD
- udfordringer
- lave om
- valg
- Vælg
- By
- kunder
- tættere
- Cloud
- Cloud9
- Cluster
- kode
- KOM
- almindeligt
- samfund
- kompatibilitet
- fuldføre
- Compute
- computer
- Computer Vision
- computing
- BEKRÆFTET
- Tilslut
- Konsol
- Container
- Beholdere
- kontrol
- Konvergens
- Konvertering
- konvertere
- Core
- Tilsvarende
- kunne
- skabe
- oprettet
- Oprettelse af
- crowd
- For øjeblikket
- skik
- Kunder
- Klip
- banebrydende
- data
- Dato
- definerede
- Degree
- levere
- leverer
- demonstrere
- demonstreret
- Afhængighed
- indsætte
- indsat
- implementering
- implementering
- ødelægge
- Detektion
- Bestem
- Udvikler
- udviklere
- udvikling
- Udvikling
- direkte
- Direktør
- drøftet
- Docker
- downloade
- kørsel
- hver
- tidligere
- nemt
- Øst
- ekko
- Edge
- kant computing
- effekt
- muliggøre
- aktiveret
- Endpoint
- ingeniør
- Engineering
- sikre
- Enterprise
- virksomheder
- entusiastiske
- indrejse
- Miljø
- miljøer
- udstyr
- fejl
- Endog
- NOGENSINDE
- at alt
- eksempel
- udførelse
- eksisterende
- ekspanderende
- erfaring
- Oplevelser
- ekspert
- udvide
- ekstrakt
- File (Felt)
- Filer
- endelige
- Finde
- Fokus
- fokuserer
- følger
- efterfulgt
- efter
- Til
- strejftog
- bedrageri
- bedrageri afsløring
- Gratis
- gnidningsfri
- fra
- fuldt ud
- funktion
- Fundamentals
- genereret
- få
- given
- Global
- Globalt
- kloden
- Go
- gå
- gruppe
- Gruppens
- vejlede
- Guides
- Hardware
- seletøj
- Have
- hjælpe
- besidder
- host
- Hvordan
- How To
- HTML
- http
- HTTPS
- Hundreder
- Hybrid
- ID
- Identity
- billede
- importere
- in
- omfatter
- Forøg
- industrien
- Infrastruktur
- innovativ
- innovativ teknologi
- indgang
- indsigt
- installere
- instans
- integration
- interaktiv
- investering
- IP
- IP-adresse
- IT
- It-industrien
- sammenføjning
- jpg
- json
- Justin
- holde
- Nøgle
- Venlig
- Kit (SDK)
- viden
- Etiketter
- Sprog
- stor
- Latency
- seneste
- lancere
- LÆR
- læring
- Leverage
- ligesom
- Line (linje)
- linjer
- Liste
- lokale
- lokalt
- placering
- Se
- maskine
- machine learning
- Main
- vedligeholdelse
- lave
- lykkedes
- ledelse
- Metadata
- minimering
- ML
- Mobil
- mobilnetværk
- tilstand
- model
- modeller
- ændre
- mere
- mest
- MONTERING
- navn
- Som hedder
- Natural
- Natural Language Processing
- Behov
- negativ
- netværk
- netværksbaseret
- netværk
- net
- Ny
- New York
- New York
- næste
- NLP
- node
- noder
- roman
- nummer
- objekt
- objekter
- of
- tilbydes
- Tilbud
- on
- ONE
- open source
- Produktion
- Opportunity
- Indstillinger
- ordrer
- Andre
- output
- egen
- pakker
- Parallel
- især
- lidenskabelige
- sti
- plato
- Platon Data Intelligence
- PlatoData
- politik
- Populær
- positionerede
- positiv
- mulig
- Indlæg
- magt
- praksis
- Predictor
- Forud
- private
- forarbejdning
- fremtrædende
- giver
- leverer
- offentlige
- Sweatre & trøjer
- Skub ud
- hurtigt
- Læs
- realtid
- Anbefaling
- reducere
- region
- register
- fjern
- erstatte
- anmodninger
- krævet
- ressource
- Ressourcer
- detailhandlere
- afkast
- roller
- rod
- Kør
- kører
- sikrere
- sagemaker
- SageMaker Inference
- SDK
- problemfrit
- Søg
- sektor
- sikkerhed
- valgt
- senior
- tjener
- tjener
- tjeneste
- Tjenester
- sæt
- deling
- bør
- Shows
- Simpelt
- ganske enkelt
- So
- Software
- softwareudvikling
- Software Engineer
- løsninger
- Løsninger
- SOLVE
- noget
- speciale
- starter
- Statement
- Status
- Trin
- Steps
- opbevaring
- Strategi
- efterfølgende
- lykkes
- sådan
- Understøttet
- Understøtter
- Kontakt
- Systemer
- TAG
- Tag
- teknikker
- Teknologier
- Teknologier
- Telco
- telecom
- telekommunikation
- Telekommunikationsteknik
- skabelon
- tensorflow
- at
- deres
- Disse
- tre
- tid
- til
- TONE
- værktøj
- uddannet
- transformers
- Oversætte
- Tendenser
- sand
- under
- underliggende
- enestående
- enhed
- universitet
- låse
- oplåsning
- up-to-date
- URL
- brug
- Bruger
- v1
- værdi
- række
- Venue
- Tele Danmark Mobil
- udgave
- via
- Virtual
- vision
- Besøg
- bind
- mængder
- ønskede
- Rigdom
- web
- webservices
- GODT
- Kendt
- hvorvidt
- som
- mens
- vilje
- med
- inden for
- arbejdstager
- arbejder
- verdensplan
- ville
- yaml
- år
- Du
- Din
- youtube
- zephyrnet
- zoner