Dette indlæg er skrevet i samarbejde med Brad Duncan, Rachel Johnson og Richard Alcock fra MathWorks.
MATLAB er et populært programmeringsværktøj til en lang række applikationer, såsom databehandling, parallel computing, automatisering, simulering, maskinlæring og kunstig intelligens. Det er meget brugt i mange industrier såsom bilindustrien, rumfart, kommunikation og fremstilling. I de seneste år har MathWorks bragt mange produkttilbud ind i skyen, især på Amazon Web Services (AWS). For flere detaljer om MathWorks cloud-produkter, se MATLAB og Simulink i skyen or e-mail Mathworks.
I dette indlæg bringer vi MATLABs maskinlæringsmuligheder ind Amazon SageMaker, som har flere væsentlige fordele:
- Beregn ressourcer: Brug af det højtydende computermiljø, der tilbydes af SageMaker, kan fremskynde maskinlæringstræning.
- Samarbejde: MATLAB og SageMaker giver sammen en robust platform, som teams kan bruge til at samarbejde effektivt om at bygge, teste og implementere maskinlæringsmodeller.
- Implementering og tilgængelighed: Modeller kan implementeres som SageMaker-endepunkter i realtid, hvilket gør dem let tilgængelige for andre applikationer til at behandle livestreamingdata.
Vi viser dig, hvordan du træner en MATLAB-maskinelæringsmodel som et SageMaker-træningsjob og derefter implementerer modellen som et SageMaker-endepunkt i realtid, så den kan behandle live streamingdata.
For at gøre dette bruger vi et forudsigende vedligeholdelseseksempel, hvor vi klassificerer fejl i en operationel pumpe, der streamer live sensordata. Vi har adgang til et stort lager af mærkede data genereret fra en simulink simulering, der har tre mulige fejltyper i forskellige mulige kombinationer (for eksempel en sund og syv defekte tilstande). Fordi vi har en model af systemet og fejl er sjældne i drift, kan vi drage fordel af simulerede data til at træne vores algoritme. Modellen kan tunes til at matche driftsdata fra vores rigtige pumpe ved hjælp af parameterestimeringsteknikker i MATLAB og Simulink.
Vores mål er at demonstrere den kombinerede kraft af MATLAB og Amazon SageMaker ved hjælp af dette fejlklassificeringseksempel.
Vi starter med at træne en klassificeringsmodel på vores desktop med MATLAB. Først udtrækker vi funktioner fra en delmængde af det fulde datasæt ved hjælp af Diagnostisk funktionsdesigner app, og kør derefter modeltræningen lokalt med en MATLAB beslutningstræmodel. Når vi er tilfredse med parameterindstillingerne, kan vi generere en MATLAB-funktion og sende jobbet sammen med datasættet til SageMaker. Dette giver os mulighed for at skalere træningsprocessen op, så den kan rumme meget større datasæt. Efter at have trænet vores model, implementerer vi den som et live-slutpunkt, der kan integreres i en downstream-app eller dashboard, såsom en MATLAB Web App.
Dette eksempel vil opsummere hvert trin og give en praktisk forståelse af, hvordan man kan udnytte MATLAB og Amazon SageMaker til maskinlæringsopgaver. Den fulde kode og beskrivelse for eksemplet er tilgængelig i denne Repository.
Forudsætninger
- Arbejdsmiljø for MATLAB 2023a eller nyere med MATLAB Compiler og Statistik og Machine Learning Toolbox på Linux. Her er en hurtig guide om hvordan man kører MATLAB på AWS.
- Docker oprettet i en Amazon Elastic Compute Cloud (Amazon EC2) forekomst, hvor MATLAB kører. Enten Ubuntu or Linux.
- Installation af AWS Command-Line Interface (AWS CLI), AWS-konfigurationog Python3.
- AWS CLI, skulle allerede være installeret, hvis du fulgte installationsvejledningen fra trin 1.
- Konfigurer AWS Configure at interagere med AWS-ressourcer.
- Bekræft din python3-installation ved at køre
python -V
orpython --version
kommando på din terminal. Installer Python om nødvendigt.
- Kopier denne repo til en mappe på din Linux-maskine ved at køre:
- Tjek tilladelsen på repo-mappen. Hvis den ikke har skrivetilladelse, skal du køre følgende shell-kommando:
- Byg MATLAB træningsbeholderen og skub den til Amazon Elastic Container Registry (Amazon ECR).
- Naviger til mappe
docker
- Opret en Amazon ECR-repo ved hjælp af AWS CLI (erstat REGION med din foretrukne AWS-region)
- Kør følgende docker-kommando:
- Naviger til mappe
- Åbn MATLAB og åbn det levende script kaldet
PumpFaultClassificationMATLABSageMaker.mlx
i mappeexamples/PumpFaultClassification
. Gør denne mappe til din nuværende arbejdsmappe i MATLAB.
Del 1: Dataforberedelse og udtræk af funktioner
Det første trin i et maskinlæringsprojekt er at forberede dine data. MATLAB tilbyder en bred vifte af værktøjer til at importere, rense og udtrække funktioner fra dine data.:
SensorData.mat
Datasættet indeholder 240 poster. Hver rekord har to tidsplaner: flow
, pressure
. Målkolonnen er faultcode
, som er en binær repræsentation af tre mulige fejlkombinationer i pumpen. For disse tidsserietabeller har hver tabel 1,201 rækker, som efterligner 1.2 sekunders pumpeflow og trykmåling med 0.001 sekunders stigning.
Dernæst giver Diagnostic Feature Designer-appen dig mulighed for at udtrække, visualisere og rangere en række funktioner fra dataene. Her bruger du Auto funktioner, som hurtigt udtrækker et bredt sæt af tids- og frekvensdomænefunktioner fra datasættet og rangerer topkandidaterne til modeltræning. Du kan derefter eksportere en MATLAB-funktion, der genberegner de 15 øverste rangerede funktioner fra nye inputdata. Lad os kalde denne funktion extractFeaturesTraining
. Denne funktion kan konfigureres til at tage alle data ind i én batch eller som streaming data.
Denne funktion producerer en tabel over funktioner med tilhørende fejlkoder, som vist i følgende figur:
Del 2: Organiser data til SageMaker
Dernæst skal du organisere dataene på en måde, som SageMaker kan bruge til maskinlæringstræning. Typisk involverer dette opdeling af dataene i trænings- og valideringssæt og opdeling af prædiktordata fra målresponsen.
I denne fase kan andre mere komplekse datarensnings- og filtreringsoperationer være påkrævet. I dette eksempel er dataene allerede rene. Potentielt, hvis databehandlingen er meget kompleks og tidskrævende, kan SageMaker-behandlingsjob bruges til at køre disse opgaver bortset fra SageMaker-uddannelsen, så de kan adskilles i to trin.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Del 3: Træn og test en maskinlæringsmodel i MATLAB
Inden du flytter til SageMaker, er det en god idé at bygge og teste machine learning-modellen lokalt i MATLAB. Dette giver dig mulighed for hurtigt at gentage og fejlfinde modellen. Du kan opsætte og træne en simpel beslutningstræklassificering lokalt.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
Træningsjobbet her bør tage mindre end et minut at afslutte og genererer nogle grafer for at angive træningsfremskridtet. Efter at uddannelsen er afsluttet, produceres en MATLAB maskinlæringsmodel. Det Klassifikationslærer app kan bruges til at prøve mange typer klassifikationsmodeller og tune dem til den bedste ydeevne, og derefter producere den nødvendige kode til at erstatte modeltræningskoden ovenfor.
Efter at have tjekket nøjagtighedsmålingerne for den lokalt trænede model, kan vi flytte træningen til Amazon SageMaker.
Del 4: Træn modellen i Amazon SageMaker
Når du er tilfreds med modellen, kan du træne den i skala ved hjælp af SageMaker. For at begynde at kalde SageMaker SDK'er skal du starte en SageMaker-session.
session = sagemaker.Session();
Angiv en SageMaker-udførelse IAM rolle som træningsjob og endpoint-hosting vil bruge.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Fra MATLAB skal du gemme træningsdataene som en .csv-fil i en Amazon Simple Storage Service (Amazon S3) spand.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Opret en SageMaker Estimator
Dernæst skal du oprette en SageMaker-estimator og videregive alle de nødvendige parametre til den, såsom et træningsdockerbillede, træningsfunktion, miljøvariabler, træningsforekomststørrelse og så videre. Træningsbilledet-URI'en skal være den Amazon ECR-URI, du oprettede i forudsætningstrinnet med formatet ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. Træningsfunktionen skal findes i bunden af MATLAB live-scriptet.
Indsend SageMaker træningsjob
Kaldning af tilpasningsmetoden fra estimatoren sender træningsjobbet ind i SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
Du kan også tjekke status for træningsjob fra SageMaker-konsollen:
Når træningsjob er afsluttet, vil du ved at vælge joblinket føre dig til jobbeskrivelsessiden, hvor du kan se MATLAB-modellen gemt i den dedikerede S3-spand:
Del 5: Implementer modellen som et SageMaker-slutpunkt i realtid
Efter træning kan du implementere modellen som et SageMaker-slutpunkt i realtid, som du kan bruge til at lave forudsigelser i realtid. For at gøre dette skal du kalde implementeringsmetoden fra estimatoren. Det er her, du kan indstille den ønskede instansstørrelse til hosting afhængigt af arbejdsbyrden.
Bag kulisserne opbygger dette trin et inferens-docker-billede og skubber det til Amazon ECR-lageret. Der kræves intet af brugeren for at bygge inferensbeholderen. Billedet indeholder alle de nødvendige oplysninger til at betjene slutningsanmodningen, såsom modelplacering, MATLAB-godkendelsesoplysninger og algoritmer. Derefter opretter Amazon SageMaker en SageMaker-slutpunktskonfiguration og implementerer endelig realtidsslutpunktet. Slutpunktet kan overvåges i SageMaker-konsollen og kan afsluttes når som helst, hvis det ikke længere bruges.
Del 6: Test endepunktet
Nu hvor endepunktet er oppe at køre, kan du teste endepunktet ved at give det et par registreringer at forudsige. Brug følgende kode til at vælge 10 poster fra træningsdataene og sende dem til slutpunktet til forudsigelse. Forudsigelsesresultatet sendes tilbage fra slutpunktet og vises på det følgende billede.
Del 7: Dashboard-integration
SageMaker-endepunktet kan kaldes af mange native AWS-tjenester. Den kan også bruges som en standard REST API, hvis den implementeres sammen med en AWS Lambda funktion og API-gateway, som kan integreres med alle webapplikationer. Til denne særlige brugssag kan du bruge streaming-indtagelse med Amazon SageMaker Feature Store og Amazon Managed Streaming til Apache Kafka, MSK, til at træffe beslutninger baseret på maskinlæring i næsten realtid. En anden mulig integration er at bruge en kombination af Amazon Kinesis, SageMaker og Apache Flink til at bygge en administreret, pålidelig, skalerbar og yderst tilgængelig applikation, der er i stand til at foretage realtidsslutning om en datastrøm.
Efter at algoritmer er implementeret til et SageMaker-slutpunkt, vil du måske visualisere dem ved hjælp af et dashboard, der viser streaming-forudsigelser i realtid. I den tilpassede MATLAB-webapp, der følger, kan du se tryk- og flowdata efter pumpe og live fejlforudsigelser fra den implementerede model.
I dette dashboard inkluderer en resterende brugstid (RUL) model til at forudsige tiden til fejl for hver pumpe. For at lære at træne RUL-algoritmer, se Værktøjskasse til forudsigelig vedligeholdelse.
Clean Up
Når du har kørt denne løsning, skal du sørge for at rydde op i alle unødvendige AWS-ressourcer for at undgå uventede omkostninger. Du kan rydde op i disse ressourcer ved hjælp af SageMaker Python SDK eller AWS Management Console for de specifikke tjenester, der bruges her (SageMaker, Amazon ECR og Amazon S3). Ved at slette disse ressourcer forhindrer du yderligere gebyrer for ressourcer, du ikke længere bruger.
Konklusion
Vi har demonstreret, hvordan du kan bringe MATLAB til SageMaker for en pumpeforudsigende vedligeholdelsesbrug med hele maskinens livscyklus. SageMaker giver et fuldt administreret miljø til at køre maskinlæringsarbejdsbelastninger og implementering af modeller med et stort udvalg af computerforekomster, der tjener forskellige behov.
Ansvarsfraskrivelse: Koden, der bruges i dette indlæg, ejes og vedligeholdes af MathWorks. Se licensbetingelserne i GitHub-repoen. For eventuelle problemer med koden eller funktionsanmodninger, skal du åbne et GitHub-problem i lageret
Referencer
Om forfatterne
Brad Duncan er produktchef for maskinlæringskapaciteter i Statistik og Machine Learning Toolbox hos MathWorks. Han arbejder sammen med kunder om at anvende AI i nye ingeniørområder, såsom at inkorporere virtuelle sensorer i konstruerede systemer, opbygning af forklarelige maskinlæringsmodeller og standardisering af AI-arbejdsgange ved hjælp af MATLAB og Simulink. Før han kom til MathWorks, ledede han teams til 3D-simulering og optimering af køretøjets aerodynamik, brugeroplevelse til 3D-simulering og produktstyring til simuleringssoftware. Brad er også gæsteforelæser på Tufts University inden for køretøjets aerodynamik.
Richard Alcock er senior udviklingschef for Cloud Platform Integrations hos MathWorks. I denne rolle er han medvirkende til problemfrit at integrere MathWorks-produkter i cloud- og containerplatforme. Han skaber løsninger, der gør det muligt for ingeniører og forskere at udnytte det fulde potentiale af MATLAB og Simulink i cloud-baserede miljøer. Han var tidligere softwareingeniør hos MathWorks, hvor han udviklede løsninger til at understøtte parallelle og distribuerede computerarbejdsgange.
Rachel Johnson er produktchef for prædiktiv vedligeholdelse hos MathWorks, og er ansvarlig for overordnet produktstrategi og markedsføring. Hun var tidligere applikationsingeniør, der direkte støttede luftfartsindustrien i forudsigende vedligeholdelsesprojekter. Før MathWorks var Rachel aerodynamik- og fremdriftssimuleringsingeniør for den amerikanske flåde. Hun brugte også flere år på at undervise i matematik, fysik og teknik.
Skynd Mao er senior AI/ML Partner Solutions Architect i Emerging Technologies-teamet hos Amazon Web Services. Han brænder for at arbejde med virksomhedskunder og partnere for at designe, implementere og skalere AI/ML-applikationer for at udlede deres forretningsværdier. Uden for arbejdet nyder han at fiske, rejse og spille bordtennis.
Ramesh Jatiya er Solutions Architect i teamet Independent Software Vendor (ISV) hos Amazon Web Services. Han brænder for at arbejde med ISV-kunder om at designe, implementere og skalere deres applikationer i skyen for at udlede deres forretningsværdier. Han forfølger også en MBA i Machine Learning og Business Analytics fra Babson College, Boston. Uden for arbejdet nyder han at løbe, spille tennis og lave mad.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- :har
- :er
- :ikke
- :hvor
- $OP
- 001
- 1
- 10
- 100
- 15 %
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Om
- over
- adgang
- tilgængelig
- imødekomme
- Konto
- nøjagtighed
- Fordel
- Luftfart
- Efter
- AI
- AI / ML
- algoritme
- algoritmer
- Alle
- tillader
- sammen
- allerede
- også
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- an
- analytics
- ,
- En anden
- enhver
- Apache
- fra hinanden
- api
- app
- app tillader
- Anvendelse
- applikationer
- Indløs
- ER
- OMRÅDE
- områder
- kunstig
- kunstig intelligens
- AS
- forbundet
- At
- Godkendelse
- auto
- Automation
- automotive
- til rådighed
- undgå
- AWS
- AWS Management Console
- Babson
- tilbage
- BE
- fordi
- før
- begynde
- fordele
- BEDSTE
- boston
- Bund
- brad
- bringe
- bred
- bragte
- bygge
- Bygning
- bygger
- virksomhed
- by
- ringe
- kaldet
- ringer
- CAN
- kandidater
- kapaciteter
- stand
- tilfælde
- afgifter
- kontrollere
- kontrol
- klassificering
- Klassificere
- ren
- Rengøring
- Cloud
- Cloud platform
- kode
- koder
- samarbejde
- samarbejde
- Kollegium
- Kolonne
- KOM
- kombination
- kombinationer
- kombineret
- kommer
- Kommunikation
- komplekse
- Compute
- computing
- Konfiguration
- konfigureret
- Konsol
- forbrugende
- Container
- indeholder
- Omkostninger
- skabe
- oprettet
- skaber
- Nuværende
- skik
- Kunder
- instrumentbræt
- data
- Dataforberedelse
- databehandling
- datasæt
- beslutning
- afgørelser
- dedikeret
- demonstrere
- demonstreret
- Afhængigt
- indsætte
- indsat
- implementering
- udruller
- udlede
- beskrivelse
- Design
- Designer
- ønskes
- desktop
- detaljer
- udvikling
- Udvikling
- diagnostisk
- direkte
- displays
- distribueret
- distribueret computing
- do
- Docker
- gør
- domæne
- duncan
- hver
- effektivt
- enten
- smergel
- nye teknologier
- muliggøre
- ende
- Endpoint
- ingeniør
- manipuleret
- Engineering
- Ingeniører
- Enterprise
- Hele
- Miljø
- miljøer
- især
- eksempel
- udførelse
- erfaring
- eksport
- ekstrakt
- Uddrag
- Manglende
- fejl
- defekt
- Feature
- Funktionalitet
- få
- Figur
- File (Felt)
- filtrering
- Endelig
- slut
- Fornavn
- Fiskeri
- passer
- flow
- efterfulgt
- efter
- følger
- Til
- format
- Frekvens
- fra
- fuld
- fuldt ud
- funktion
- yderligere
- gateway
- generere
- genereret
- genererer
- GitHub
- Give
- godt
- grafer
- stor
- Gæst
- vejlede
- seletøj
- Have
- he
- Helse
- sund
- stærkt
- link.
- Høj ydeevne
- stærkt
- Hosting
- Hvordan
- How To
- HTML
- HTTPS
- idé
- if
- billede
- importere
- in
- omfatter
- inkorporering
- tilvækst
- uafhængig
- angiver
- industrier
- industrien
- oplysninger
- indlede
- indgang
- installere
- installation
- installeret
- instans
- medvirkende
- integreret
- Integration
- integration
- integrationer
- Intelligens
- interagere
- grænseflade
- ind
- spørgsmål
- spørgsmål
- ISV
- IT
- Job
- Karriere
- Johnson
- jpg
- stor
- større
- senere
- seneste
- LÆR
- læring
- Led
- mindre
- Leverage
- Licens
- Livet
- livscyklus
- LINK
- linux
- leve
- lokalt
- placering
- Logge på
- længere
- maskine
- machine learning
- vedligeholdelse
- lave
- Making
- lykkedes
- ledelse
- leder
- Produktion
- mange
- Marketing
- Match
- matematik
- måling
- metode
- Metrics
- måske
- minut
- ML
- model
- modeller
- Overvåg
- overvåges
- mere
- bevæge sig
- flytning
- meget
- Som hedder
- indfødte
- I nærheden af
- nødvendig
- Behov
- behov
- behov
- Ny
- ingen
- intet
- objektiv
- of
- tilbydes
- tilbud
- on
- engang
- ONE
- åbent
- drift
- operationelle
- Produktion
- optimering
- or
- Andet
- vores
- output
- uden for
- samlet
- ejede
- side
- Parallel
- parameter
- parametre
- særlig
- partner
- partnere
- passerer
- lidenskabelige
- ydeevne
- tilladelse
- Fysik
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- Vær venlig
- Populær
- mulig
- Indlæg
- potentiale
- potentielt
- magt
- Praktisk
- forudsige
- forudsigelse
- Forudsigelser
- Predictor
- foretrækkes
- forberedelse
- Forbered
- tryk
- forhindre
- tidligere
- Forud
- behandle
- forarbejdning
- producere
- produceret
- producerer
- Produkt
- produktstyring
- produktchef
- Produkter
- Programmering
- Progress
- projekt
- projekter
- fremdrift
- give
- forudsat
- giver
- leverer
- pumpe
- Skub ud
- skubber
- Python
- spørgsmål
- hurtigt
- rækkevidde
- rangerer
- rangeret
- rækker
- SJÆLDEN
- let
- ægte
- realtid
- nylige
- optage
- optegnelser
- henvise
- region
- register
- pålidelig
- resterende
- erstatte
- Repository
- repræsentation
- anmode
- anmodninger
- påkrævet
- Ressourcer
- svar
- ansvarlige
- REST
- resultere
- Richard
- robust
- roller
- Kør
- kører
- sagemaker
- tilfreds
- Tilfreds med
- Gem
- gemt
- skalerbar
- Scale
- scener
- forskere
- script
- sdks
- problemfrit
- sekunder
- se
- udvælgelse
- valg
- send
- senior
- sensorer
- sendt
- Series
- tjener
- tjeneste
- Tjenester
- servering
- Session
- sæt
- sæt
- indstillinger
- syv
- flere
- hun
- Shell
- bør
- Vis
- vist
- signifikant
- Simpelt
- simulation
- Størrelse
- So
- Software
- software Engineering
- løsninger
- Løsninger
- nogle
- specifikke
- hastighed
- brugt
- Stage
- standard
- standardisering
- starte
- Stater
- statistik
- Status
- Trin
- Steps
- opbevaring
- butik
- Strategi
- strøm
- streaming
- sådan
- opsummere
- support
- Støtte
- sikker
- systemet
- Systemer
- bord
- TAG
- Tag
- tager
- mål
- opgaver
- Undervisning
- hold
- hold
- teknikker
- Teknologier
- terminal
- vilkår
- prøve
- Test
- end
- at
- Området
- deres
- Them
- derefter
- Disse
- de
- denne
- dem
- tre
- tid
- Tidsserier
- til
- sammen
- værktøj
- Værktøjskasse
- værktøjer
- top
- Tog
- Kurser
- Traveling
- træ
- prøv
- tune
- tunet
- to
- typer
- typisk
- forståelse
- Uventet
- universitet
- us
- brug
- brug tilfælde
- anvendte
- Bruger
- Brugererfaring
- ved brug af
- validering
- Værdier
- række
- forskellige
- køretøj
- sælger
- meget
- Virtual
- Visualiser
- ønsker
- var
- Vej..
- we
- web
- webapplikationer
- webservices
- som
- bred
- Bred rækkevidde
- vilje
- med
- Arbejde
- arbejdsgange
- arbejder
- virker
- skriver
- skriftlig
- år
- Du
- Din
- zephyrnet