Dette innlegget er skrevet i samarbeid med Brad Duncan, Rachel Johnson og Richard Alcock fra MathWorks.
MATLAB er et populært programmeringsverktøy for et bredt spekter av applikasjoner, som databehandling, parallellberegning, automatisering, simulering, maskinlæring og kunstig intelligens. Det er mye brukt i mange bransjer som bilindustri, romfart, kommunikasjon og produksjon. De siste årene har MathWorks brakt mange produkttilbud inn i skyen, spesielt på Amazon Web Services (AWS). For mer informasjon om MathWorks skyprodukter, se MATLAB og Simulink in the Cloud or e-post Mathworks.
I dette innlegget tar vi med oss MATLABs maskinlæringsevner Amazon SageMaker, som har flere betydelige fordeler:
- Beregn ressurser: Bruk av høyytelses databehandlingsmiljøet som tilbys av SageMaker kan øke hastigheten på maskinlæringstrening.
- Collaboration: MATLAB og SageMaker gir sammen en robust plattform som teamene kan bruke til å samarbeide effektivt om å bygge, teste og implementere maskinlæringsmodeller.
- Utplassering og tilgjengelighet: Modeller kan distribueres som SageMaker sanntidsendepunkter, noe som gjør dem lett tilgjengelige for andre applikasjoner for å behandle live streamingdata.
Vi viser deg hvordan du trener en MATLAB-maskinlæringsmodell som en SageMaker-treningsjobb og deretter distribuerer modellen som et SageMaker-endepunkt i sanntid slik at den kan behandle live streamingdata.
For å gjøre dette bruker vi et prediktivt vedlikeholdseksempel der vi klassifiserer feil i en driftspumpe som strømmer live sensordata. Vi har tilgang til et stort lager av merkede data generert fra en simulink simulering som har tre mulige feiltyper i ulike mulige kombinasjoner (for eksempel en sunn og syv defekte tilstander). Fordi vi har en modell av systemet og feil er sjeldne i drift, kan vi dra nytte av simulerte data for å trene opp algoritmen vår. Modellen kan justeres for å matche driftsdata fra vår virkelige pumpe ved å bruke parameterestimeringsteknikker i MATLAB og Simulink.
Målet vårt er å demonstrere den kombinerte kraften til MATLAB og Amazon SageMaker ved å bruke dette feilklassifiseringseksemplet.
Vi starter med å trene en klassifiseringsmodell på skrivebordet vårt med MATLAB. Først trekker vi ut funksjoner fra et undersett av hele datasettet ved å bruke Diagnostisk funksjonsdesigner app, og deretter kjøre modellopplæringen lokalt med en MATLAB-beslutningstremodell. Når vi er fornøyd med parameterinnstillingene, kan vi generere en MATLAB-funksjon og sende jobben sammen med datasettet til SageMaker. Dette lar oss skalere opp opplæringsprosessen for å imøtekomme mye større datasett. Etter å ha trent modellen vår, distribuerer vi den som et live endepunkt som kan integreres i en nedstrøms app eller dashbord, for eksempel en MATLAB Web App.
Dette eksemplet vil oppsummere hvert trinn, og gir en praktisk forståelse av hvordan man kan utnytte MATLAB og Amazon SageMaker for maskinlæringsoppgaver. Den fullstendige koden og beskrivelsen for eksemplet er tilgjengelig i denne Repository.
Forutsetninger
- Arbeidsmiljø for MATLAB 2023a eller nyere med MATLAB-kompileren og verktøykassen for statistikk og maskinlæring på Linux. Her er en hurtiginnføring om hvordan du kjører MATLAB på AWS.
- Docker satt opp i en Amazon Elastic Compute Cloud (Amazon EC2) forekomst der MATLAB kjører. Enten Ubuntu or Linux.
- Installasjon av AWS kommandolinjegrensesnitt (AWS CLI), AWS-konfigureringog Python3.
- AWS CLI, skal allerede være installert hvis du fulgte installasjonsveiledningen fra trinn 1.
- Sett opp AWS Configure å samhandle med AWS-ressurser.
- Bekreft python3-installasjonen ved å kjøre
python -V
orpython --version
kommandoen på terminalen. Installer Python om nødvendig.
- Kopier denne repoen til en mappe i Linux-maskinen din ved å kjøre:
- Sjekk tillatelsen på repo-mappen. Hvis den ikke har skrivetillatelse, kjør følgende skallkommando:
- Bygg MATLAB treningsbeholder og skyv den til Amazon Elastic Container Registry (Amazon ECR).
- Naviger til mappen
docker
- Opprett en Amazon ECR-repo ved å bruke AWS CLI (erstatt REGION med din foretrukne AWS-region)
- Kjør følgende docker-kommando:
- Naviger til mappen
- Åpne MATLAB og åpne live-skriptet som heter
PumpFaultClassificationMATLABSageMaker.mlx
i mappenexamples/PumpFaultClassification
. Gjør denne mappen til din nåværende arbeidsmappe i MATLAB.
Del 1: Dataforberedelse og funksjonsutvinning
Det første trinnet i et maskinlæringsprosjekt er å forberede dataene dine. MATLAB tilbyr et bredt spekter av verktøy for å importere, rense og trekke ut funksjoner fra dataene dine.:
De SensorData.mat
datasettet inneholder 240 poster. Hver rekord har to tidsplaner: flow
og pressure
. Målkolonnen er faultcode
, som er en binær representasjon av tre mulige feilkombinasjoner i pumpen. For disse tidsserietabellene har hver tabell 1,201 rader som etterligner 1.2 sekunders pumpestrøm og trykkmåling med 0.001 sekunders økning.
Deretter lar Diagnostic Feature Designer-appen deg trekke ut, visualisere og rangere en rekke funksjoner fra dataene. Her bruker du Autofunksjoner, som raskt trekker ut et bredt sett med tids- og frekvensdomenefunksjoner fra datasettet og rangerer toppkandidatene for modelltrening. Du kan deretter eksportere en MATLAB-funksjon som vil beregne de 15 øverste rangerte funksjonene på nytt fra nye inndata. La oss kalle denne funksjonen extractFeaturesTraining
. Denne funksjonen kan konfigureres til å ta inn data i én batch eller som strømmedata.
Denne funksjonen produserer en tabell over funksjoner med tilhørende feilkoder, som vist i følgende figur:
Del 2: Organiser data for SageMaker
Deretter må du organisere dataene på en måte som SageMaker kan bruke til maskinlæringstrening. Vanligvis innebærer dette å dele opp dataene i trenings- og valideringssett og dele prediktordataene fra målresponsen.
I dette stadiet kan det være nødvendig med andre mer komplekse datarense- og filtreringsoperasjoner. I dette eksemplet er dataene allerede rene. Potensielt, hvis databehandlingen er svært kompleks og tidkrevende, kan SageMaker-behandlingsjobber brukes til å kjøre disse jobbene bortsett fra SageMaker-opplæringen, slik at de kan deles i to trinn.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Del 3: Tren og test en maskinlæringsmodell i MATLAB
Før du flytter til SageMaker, er det en god idé å bygge og teste maskinlæringsmodellen lokalt i MATLAB. Dette lar deg raskt iterere og feilsøke modellen. Du kan sette opp og trene en enkel beslutningstreklassifiser lokalt.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
Treningsjobben her bør ta mindre enn ett minutt å fullføre og genererer noen grafer for å indikere treningsfremgangen. Etter at opplæringen er ferdig, produseres en MATLAB maskinlæringsmodell. De Klassifiseringslærer appen kan brukes til å prøve mange typer klassifiseringsmodeller og justere dem for best ytelse, og deretter produsere den nødvendige koden for å erstatte modellopplæringskoden ovenfor.
Etter å ha sjekket nøyaktighetsmålingene for den lokalt trente modellen, kan vi flytte opplæringen til Amazon SageMaker.
Del 4: Tren modellen i Amazon SageMaker
Etter at du er fornøyd med modellen, kan du trene den i skala ved hjelp av SageMaker. For å begynne å ringe SageMaker SDK-er, må du starte en SageMaker-økt.
session = sagemaker.Session();
Spesifiser en SageMaker-utførelse IAM-rolle som treningsjobber og endepunktshosting vil bruke.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Fra MATLAB lagrer du treningsdataene som en .csv-fil til en Amazon Simple Storage Service (Amazon S3) bøtte.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Lag en SageMaker Estimator
Deretter må du opprette en SageMaker-estimator og sende alle nødvendige parametere til den, for eksempel et treningsdokkerbilde, treningsfunksjon, miljøvariabler, treningsforekomststørrelse og så videre. Treningsbildet URI skal være Amazon ECR URI du opprettet i forutsetningstrinnet med formatet ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. Opplæringsfunksjonen skal gis nederst i MATLAB live-skriptet.
Send inn SageMaker treningsjobb
Å kalle tilpasningsmetoden fra estimatoren sender treningsjobben inn i SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
Du kan også sjekke status for treningsjobben fra SageMaker-konsollen:
Etter at treningsjobbene er ferdige, vil du ved å velge jobblenken ta deg til jobbbeskrivelsessiden hvor du kan se MATLAB-modellen lagret i den dedikerte S3-bøtten:
Del 5: Distribuer modellen som et sanntids SageMaker-endepunkt
Etter trening kan du distribuere modellen som et sanntids SageMaker-endepunkt, som du kan bruke til å lage spådommer i sanntid. For å gjøre dette, kall distribusjonsmetoden fra estimatoren. Det er her du kan sette opp ønsket forekomststørrelse for hosting avhengig av arbeidsmengden.
Bak kulissene bygger dette trinnet et inferensdokkerbilde og skyver det til Amazon ECR-depotet, ingenting kreves av brukeren for å bygge inferensbeholderen. Bildet inneholder all nødvendig informasjon for å betjene slutningsforespørselen, for eksempel modellplassering, MATLAB-autentiseringsinformasjon og algoritmer. Etter det oppretter Amazon SageMaker en SageMaker-endepunktkonfigurasjon og distribuerer til slutt sanntidsendepunktet. Endepunktet kan overvåkes i SageMaker-konsollen og kan avsluttes når som helst hvis det ikke lenger brukes.
Del 6: Test endepunktet
Nå som endepunktet er oppe og går, kan du teste endepunktet ved å gi det noen få poster å forutsi. Bruk følgende kode for å velge 10 poster fra treningsdataene og sende dem til endepunktet for prediksjon. Prediksjonsresultatet sendes tilbake fra endepunktet og vises i følgende bilde.
Del 7: Dashboard-integrasjon
SageMaker-endepunktet kan kalles av mange native AWS-tjenester. Den kan også brukes som en standard REST API hvis den distribueres sammen med en AWS Lambda funksjon og API-gateway, som kan integreres med alle webapplikasjoner. For denne spesielle brukssaken kan du bruke streaming-inntak med Amazon SageMaker Feature Store og Amazon Managed Streaming for Apache Kafka, MSK, for å ta maskinlæringsstøttede beslutninger i nesten sanntid. En annen mulig integrasjon er å bruke en kombinasjon av Amazon Kinesis, SageMaker og Apache Flink for å bygge en administrert, pålitelig, skalerbar og svært tilgjengelig applikasjon som er i stand til sanntidsslutning om en datastrøm.
Etter at algoritmer er distribuert til et SageMaker-endepunkt, vil du kanskje visualisere dem ved hjelp av et dashbord som viser strømningsspådommer i sanntid. I den tilpassede MATLAB-nettappen som følger, kan du se trykk- og strømningsdata etter pumpe, og live feilprediksjoner fra den utplasserte modellen.
I dette dashbordet inneholder en modell for gjenværende brukstid (RUL) for å forutsi tiden til feil for hver pumpe det gjelder. For å lære hvordan du trener RUL-algoritmer, se Verktøykasse for prediktivt vedlikehold.
Rydd opp
Etter at du har kjørt denne løsningen, sørg for at du rydder opp i alle unødvendige AWS-ressurser for å unngå uventede kostnader. Du kan rydde opp i disse ressursene ved å bruke SageMaker Python SDK eller AWS Management Console for de spesifikke tjenestene som brukes her (SageMaker, Amazon ECR og Amazon S3). Ved å slette disse ressursene forhindrer du ytterligere kostnader for ressurser du ikke lenger bruker.
konklusjonen
Vi har demonstrert hvordan du kan bringe MATLAB til SageMaker for et pumpeforutsigende vedlikeholdsbruk med hele livssyklusen for maskinlæring. SageMaker tilbyr et fullt administrert miljø for å kjøre maskinlæringsarbeidsbelastninger og distribuere modeller med et stort utvalg av dataforekomster som dekker ulike behov.
Ansvarsfraskrivelse: Koden som brukes i dette innlegget eies og vedlikeholdes av MathWorks. Se lisensvilkårene i GitHub-repoen. For eventuelle problemer med koden eller funksjonsforespørsler, vennligst åpne et GitHub-problem i depotet
Referanser
Om forfatterne
Brad Duncan er produktsjef for maskinlæringsevner i verktøykassen for statistikk og maskinlæring hos MathWorks. Han jobber med kunder for å bruke AI i nye områder innen ingeniørfag, som å inkludere virtuelle sensorer i konstruerte systemer, bygge forklarbare maskinlæringsmodeller og standardisere AI-arbeidsflyter ved hjelp av MATLAB og Simulink. Før han kom til MathWorks ledet han team for 3D-simulering og optimalisering av kjøretøyaerodynamikk, brukeropplevelse for 3D-simulering og produktadministrasjon for simuleringsprogramvare. Brad er også gjesteforeleser ved Tufts University innen kjøretøyaerodynamikk.
Richard Alcock er senior utviklingssjef for Cloud Platform Integrations hos MathWorks. I denne rollen er han med på å sømløst integrere MathWorks-produkter i sky- og containerplattformer. Han lager løsninger som gjør det mulig for ingeniører og forskere å utnytte det fulle potensialet til MATLAB og Simulink i skybaserte miljøer. Han var tidligere programvareingeniør i MathWorks, og utviklet løsninger for å støtte parallelle og distribuerte dataarbeidsflyter.
Rachel Johnson er produktsjef for prediktivt vedlikehold i MathWorks, og er ansvarlig for overordnet produktstrategi og markedsføring. Hun var tidligere applikasjonsingeniør og støttet romfartsindustrien direkte i prediktive vedlikeholdsprosjekter. Før MathWorks var Rachel ingeniør for aerodynamikk og fremdriftssimulering for den amerikanske marinen. Hun brukte også flere år på å undervise i matematikk, fysikk og ingeniørfag.
Skyn Mao er senior AI/ML Partner Solutions Architect i Emerging Technologies-teamet hos Amazon Web Services. Han brenner for å jobbe med bedriftskunder og partnere for å designe, distribuere og skalere AI/ML-applikasjoner for å utlede deres forretningsverdier. Utenom jobben liker han å fiske, reise og spille bordtennis.
Ramesh Jatiya er en løsningsarkitekt i Independent Software Vendor (ISV)-teamet hos Amazon Web Services. Han brenner for å jobbe med ISV-kunder for å designe, distribuere og skalere applikasjonene deres i skyen for å utlede forretningsverdiene deres. Han tar også en MBA i maskinlæring og forretningsanalyse fra Babson College, Boston. Utenom jobben liker han å løpe, spille tennis og lage mat.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Om oss
- ovenfor
- adgang
- tilgjengelig
- imøtekomme
- Logg inn
- nøyaktighet
- Fordel
- Aerospace
- Etter
- AI
- AI / ML
- algoritme
- algoritmer
- Alle
- tillater
- langs
- allerede
- også
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- an
- analytics
- og
- En annen
- noen
- Apache
- hverandre
- api
- app
- app tillater
- Søknad
- søknader
- Påfør
- ER
- AREA
- områder
- kunstig
- kunstig intelligens
- AS
- assosiert
- At
- Autentisering
- auto
- Automatisering
- automotive
- tilgjengelig
- unngå
- AWS
- AWS-administrasjonskonsoll
- babsønn
- tilbake
- BE
- fordi
- før du
- begynne
- Fordeler
- BEST
- boston
- Bunn
- brad
- bringe
- bred
- brakte
- bygge
- Bygning
- bygger
- virksomhet
- by
- ring
- som heter
- ringer
- CAN
- kandidater
- evner
- stand
- saken
- avgifter
- sjekk
- kontroll
- klassifisering
- Klassifisere
- ren
- Rengjøring
- Cloud
- Skyplattform
- kode
- koder
- samarbeide
- samarbeid
- Høyskole
- Kolonne
- COM
- kombinasjon
- kombinasjoner
- kombinert
- kommer
- Kommunikasjon
- komplekse
- Beregn
- databehandling
- Konfigurasjon
- konfigurert
- Konsoll
- tidkrevende
- Container
- inneholder
- Kostnader
- skape
- opprettet
- skaper
- Gjeldende
- skikk
- Kunder
- dashbord
- dato
- Dataklargjøring
- databehandling
- datasett
- avgjørelse
- avgjørelser
- dedikert
- demonstrere
- demonstrert
- avhengig
- utplassere
- utplassert
- utplasserings
- Distribueres
- Derive
- beskrivelse
- utforming
- designer
- ønsket
- desktop
- detaljer
- utvikle
- Utvikling
- diagnostisk
- direkte
- skjermer
- distribueres
- distribuert databehandling
- do
- Docker
- gjør
- domene
- duncan
- hver enkelt
- effektivt
- enten
- Emery
- Nye teknologier
- muliggjøre
- slutt
- Endpoint
- ingeniør
- konstruert
- Ingeniørarbeid
- Ingeniører
- Enterprise
- Hele
- Miljø
- miljøer
- spesielt
- eksempel
- gjennomføring
- erfaring
- eksportere
- trekke ut
- ekstrakter
- Failure
- feil
- defekt
- Trekk
- Egenskaper
- Noen få
- Figur
- filet
- filtrering
- Endelig
- ferdig
- Først
- fiske
- passer
- flyten
- fulgt
- etter
- følger
- Til
- format
- Frekvens
- fra
- fullt
- fullt
- funksjon
- videre
- gateway
- generere
- generert
- genererer
- GitHub
- Giving
- god
- grafer
- flott
- Gjest
- veilede
- seletøy
- Ha
- he
- Helse
- sunt
- tungt
- her.
- høy ytelse
- svært
- Hosting
- Hvordan
- Hvordan
- HTML
- HTTPS
- Tanken
- if
- bilde
- importere
- in
- inkluderer
- innlemme
- tilvekst
- uavhengig
- indikerer
- bransjer
- industri
- informasjon
- initiere
- inngang
- installere
- installasjon
- installerte
- f.eks
- instrumental
- integrert
- Integrering
- integrering
- integrasjoner
- Intelligens
- samhandle
- Interface
- inn
- utstedelse
- saker
- isv
- IT
- Jobb
- Jobb
- Johnson
- jpg
- stor
- større
- seinere
- siste
- LÆRE
- læring
- Led
- mindre
- Leverage
- Tillatelse
- Life
- Livssyklus
- LINK
- linux
- leve
- lokalt
- plassering
- Logg inn
- lenger
- maskin
- maskinlæring
- vedlikehold
- gjøre
- Making
- fikk til
- ledelse
- leder
- produksjon
- mange
- Marketing
- Match
- math
- måling
- metode
- Metrics
- kunne
- minutt
- ML
- modell
- modeller
- Overvåke
- overvåket
- mer
- flytte
- flytting
- mye
- oppkalt
- innfødt
- Nær
- nødvendig
- Trenger
- nødvendig
- behov
- Ny
- Nei.
- ingenting
- Målet
- of
- tilbudt
- tilbud
- on
- gang
- ONE
- åpen
- drift
- operasjonell
- Drift
- optimalisering
- or
- Annen
- vår
- produksjon
- utenfor
- samlet
- eide
- side
- Parallel
- parameter
- parametere
- Spesielt
- partner
- partnere
- passere
- lidenskapelig
- ytelse
- tillatelse
- Fysikk
- plattform
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- spiller
- vær så snill
- Populær
- mulig
- Post
- potensiell
- potensielt
- makt
- Praktisk
- forutsi
- prediksjon
- Spådommer
- Predictor
- trekkes
- forberedelse
- Forbered
- press
- forebygge
- tidligere
- Før
- prosess
- prosessering
- produsere
- produsert
- produserer
- Produkt
- produktledelse
- Produktsjef
- Produkter
- Programmering
- Progress
- prosjekt
- prosjekter
- fremdrift
- gi
- forutsatt
- gir
- gi
- pumpe
- Skyv
- skyver
- Python
- spørsmål
- raskt
- område
- rangerer
- rangert
- rekkene
- SJELDEN
- lett
- ekte
- sanntids
- nylig
- rekord
- poster
- referere
- region
- registret
- pålitelig
- gjenværende
- erstatte
- Repository
- representasjon
- anmode
- forespørsler
- påkrevd
- Ressurser
- svar
- ansvarlig
- REST
- resultere
- Richard
- robust
- Rolle
- Kjør
- rennende
- sagemaker
- fornøyd
- fornøyd med
- Spar
- lagret
- skalerbar
- Skala
- Scener
- forskere
- script
- sdks
- sømløst
- sekunder
- se
- velge
- utvalg
- send
- senior
- sensorer
- sendt
- Serien
- betjene
- tjeneste
- Tjenester
- servering
- Session
- sett
- sett
- innstillinger
- syv
- flere
- hun
- Shell
- bør
- Vis
- vist
- signifikant
- Enkelt
- simulering
- Størrelse
- So
- Software
- software engineering
- løsning
- Solutions
- noen
- spesifikk
- fart
- brukt
- Scene
- Standard
- standardisere
- Begynn
- Stater
- statistikk
- status
- Trinn
- Steps
- lagring
- oppbevare
- Strategi
- stream
- streaming
- slik
- oppsummere
- støtte
- Støtte
- sikker
- system
- Systemer
- bord
- TAG
- Ta
- tar
- Target
- oppgaver
- Undervisning
- lag
- lag
- teknikker
- Technologies
- terminal
- vilkår
- test
- Testing
- enn
- Det
- De
- Området
- deres
- Dem
- deretter
- Disse
- de
- denne
- De
- tre
- tid
- Tidsserier
- til
- sammen
- verktøy
- Toolbox
- verktøy
- topp
- Tog
- Kurs
- Traveling
- Treet
- prøve
- melodi
- tuned
- to
- typer
- typisk
- forståelse
- Uventet
- universitet
- us
- bruke
- bruk sak
- brukt
- Bruker
- Brukererfaring
- ved hjelp av
- validering
- Verdier
- variasjon
- ulike
- kjøretøy
- leverandør
- veldig
- virtuelle
- visualisere
- ønsker
- var
- Vei..
- we
- web
- nettapplikasjoner
- webtjenester
- hvilken
- bred
- Bred rekkevidde
- vil
- med
- Arbeid
- arbeidsflyt
- arbeid
- virker
- skrive
- skrevet
- år
- Du
- Din
- zephyrnet