Det här inlägget är skrivet i samarbete med Brad Duncan, Rachel Johnson och Richard Alcock från MathWorks.
MATLAB är ett populärt programmeringsverktyg för ett brett utbud av applikationer, såsom databehandling, parallell beräkning, automation, simulering, maskininlärning och artificiell intelligens. Det används flitigt i många branscher som fordon, flyg, kommunikation och tillverkning. Under de senaste åren har MathWorks tagit med många produkterbjudanden till molnet, särskilt på Amazon Web Services (AWS). För mer information om MathWorks molnprodukter, se MATLAB och Simulink i molnet or mejla Mathworks.
I det här inlägget tar vi in MATLABs maskininlärningsmöjligheter Amazon SageMaker, som har flera betydande fördelar:
- Beräkna resurser: Att använda den högpresterande datormiljön som erbjuds av SageMaker kan påskynda utbildningen i maskininlärning.
- Samarbete: MATLAB och SageMaker tillhandahåller tillsammans en robust plattform som t team kan använda för att samarbeta effektivt för att bygga, testa och distribuera modeller för maskininlärning.
- Implementering och tillgänglighet: Modeller kan distribueras som SageMaker-slutpunkter i realtid, vilket gör dem lättillgängliga för andra applikationer för att bearbeta liveströmningsdata.
Vi visar dig hur du tränar en MATLAB maskininlärningsmodell som ett SageMaker-utbildningsjobb och sedan distribuerar modellen som en SageMaker realtidsslutpunkt så att den kan bearbeta liveströmmande data.
För att göra detta använder vi ett exempel på prediktivt underhåll där vi klassificerar fel i en driftpump som strömmar live sensordata. Vi har tillgång till ett stort lager av märkt data som genereras från en Simulink simulering som har tre möjliga feltyper i olika möjliga kombinationer (till exempel en frisk och sju felaktiga tillstånd). Eftersom vi har en modell av systemet och fel är sällsynta i drift kan vi dra fördel av simulerad data för att träna vår algoritm. Modellen kan trimmas för att matcha driftsdata från vår riktiga pump med hjälp av parameteruppskattningstekniker i MATLAB och Simulink.
Vårt mål är att visa den kombinerade kraften hos MATLAB och Amazon SageMaker med hjälp av detta felklassificeringsexempel.
Vi börjar med att träna en klassificeringsmodell på vårt skrivbord med MATLAB. Först extraherar vi funktioner från en delmängd av hela datasetet med hjälp av Diagnostisk funktionsdesigner app och kör sedan modellträningen lokalt med en MATLAB beslutsträdsmodell. När vi är nöjda med parameterinställningarna kan vi generera en MATLAB-funktion och skicka jobbet tillsammans med datamängden till SageMaker. Detta gör att vi kan skala upp utbildningsprocessen för att rymma mycket större datamängder. Efter att ha tränat vår modell distribuerar vi den som en live-slutpunkt som kan integreras i en nedströmsapp eller instrumentpanel, till exempel en MATLAB Web App.
Det här exemplet kommer att sammanfatta varje steg och ge en praktisk förståelse för hur man kan utnyttja MATLAB och Amazon SageMaker för maskininlärningsuppgifter. Den fullständiga koden och beskrivningen för exemplet finns i denna Repository.
Förutsättningar
- Arbetsmiljö för MATLAB 2023a eller senare med MATLAB Compiler och Statistik och Machine Learning Toolbox på Linux. Här är en snabb guide om hur man kör MATLAB på AWS.
- Docker inrättad i en Amazon Elastic Compute Cloud (Amazon EC2) instans där MATLAB körs. Antingen ubuntu or Linux.
- Installation av AWS kommandoradsgränssnitt (AWS CLI), AWS konfigureraoch Python3.
- AWS CLI, borde redan vara installerat om du följde installationsguiden från steg 1.
- Konfigurera AWS Configure att interagera med AWS-resurser.
- Verifiera din python3-installation genom att köra
python -V
orpython --version
kommandot på din terminal. Installera Python om det behövs.
- Kopiera detta arkiv till en mapp i din Linux-maskin genom att köra:
- Kontrollera behörigheten på repo-mappen. Om den inte har skrivbehörighet, kör följande skalkommando:
- Bygg MATLAB träningsbehållare och skjut den till Amazon Elastic Container Registry (Amazon ECR).
- Navigera till mappen
docker
- Skapa en Amazon ECR-repo med AWS CLI (ersätt REGION med din föredragna AWS-region)
- Kör följande docker-kommando:
- Navigera till mappen
- Öppna MATLAB och öppna liveskriptet som heter
PumpFaultClassificationMATLABSageMaker.mlx
i mappenexamples/PumpFaultClassification
. Gör den här mappen till din nuvarande arbetsmapp i MATLAB.
Del 1: Dataförberedelse & funktionsextraktion
Det första steget i ett maskininlärningsprojekt är att förbereda din data. MATLAB tillhandahåller ett brett utbud av verktyg för att importera, rengöra och extrahera funktioner från dina data.:
Smakämnen SensorData.mat
datasetet innehåller 240 poster. Varje rekord har två tidtabeller: flow
och pressure
. Målkolumnen är faultcode
, som är en binär representation av tre möjliga felkombinationer i pumpen. För dessa tidsserietabeller har varje tabell 1,201 1.2 rader som efterliknar 0.001 sekunders pumpflöde och tryckmätning med XNUMX sekunders inkrement.
Därefter låter Diagnostic Feature Designer-appen dig extrahera, visualisera och rangordna en mängd olika funktioner från data. Här använder du Autofunktioner, som snabbt extraherar en bred uppsättning tids- och frekvensdomänfunktioner från datamängden och rankar toppkandidaterna för modellträning. Du kan sedan exportera en MATLAB-funktion som beräknar om de 15 rankade funktionerna från ny indata. Låt oss kalla denna funktion extractFeaturesTraining
. Denna funktion kan konfigureras för att ta in data allt i en batch eller som strömmande data.
Denna funktion ger en tabell över funktioner med tillhörande felkoder, som visas i följande figur:
Del 2: Organisera data för SageMaker
Därefter måste du organisera data på ett sätt som SageMaker kan använda för utbildning i maskininlärning. Vanligtvis innebär detta att dela upp data i tränings- och valideringsuppsättningar och dela upp prediktordata från målsvaret.
I detta skede kan andra mer komplexa datarensnings- och filtreringsoperationer krävas. I det här exemplet är data redan ren. Potentiellt, om databehandlingen är mycket komplex och tidskrävande, kan SageMaker-bearbetningsjobb användas för att köra dessa jobb förutom SageMaker-utbildning så att de kan delas upp i två steg.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Del 3: Träna och testa en maskininlärningsmodell i MATLAB
Innan du flyttar till SageMaker är det en bra idé att bygga och testa maskininlärningsmodellen lokalt i MATLAB. Detta gör att du snabbt kan iterera och felsöka modellen. Du kan ställa in och träna en enkel beslutsträdklassificerare lokalt.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
Träningsjobbet här bör ta mindre än en minut att slutföra och genererar några grafer för att indikera utbildningens framsteg. Efter avslutad utbildning tas en MATLAB maskininlärningsmodell fram. De Klassificeringslärare appen kan användas för att prova många typer av klassificeringsmodeller och ställa in dem för bästa prestanda, producera sedan den nödvändiga koden för att ersätta modellträningskoden ovan.
Efter att ha kontrollerat noggrannhetsmåtten för den lokalt utbildade modellen kan vi flytta utbildningen till Amazon SageMaker.
Del 4: Träna modellen i Amazon SageMaker
När du är nöjd med modellen kan du träna den i skala med SageMaker. För att börja anropa SageMaker SDK:er måste du initiera en SageMaker-session.
session = sagemaker.Session();
Ange en SageMaker-exekvering IAM-roll som utbildningsjobb och endpointhosting kommer att använda.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Från MATLAB, spara träningsdata som en .csv-fil till en Amazon Simple Storage Service (Amazon S3) hink.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Skapa en SageMaker Estimator
Därefter måste du skapa en SageMaker-estimator och skicka alla nödvändiga parametrar till den, såsom en träningsdockabild, träningsfunktion, miljövariabler, utbildningsinstansstorlek och så vidare. Träningsbildens URI ska vara Amazon ECR URI som du skapade i förutsättningssteget med formatet ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. Utbildningsfunktionen bör tillhandahållas längst ner i MATLABs livescript.
Skicka in SageMaker utbildningsjobb
Genom att anropa anpassningsmetoden från estimatorn skickas träningsjobbet till SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
Du kan också kontrollera utbildningsjobbets status från SageMaker-konsolen:
Efter att utbildningsjobben är klara, genom att välja jobblänken kommer du till jobbbeskrivningssidan där du kan se MATLAB-modellen sparad i den dedikerade S3-skopan:
Del 5: Implementera modellen som en SageMaker-slutpunkt i realtid
Efter träning kan du distribuera modellen som en SageMaker-slutpunkt i realtid, som du kan använda för att göra förutsägelser i realtid. För att göra detta, anropa distributionsmetoden från estimatorn. Det är här du kan ställa in önskad instansstorlek för värd beroende på arbetsbelastningen.
Bakom kulisserna bygger detta steg en slutledningsdockningsbild och skjuter den till Amazon ECR-förvaret, inget krävs av användaren för att bygga slutledningsbehållaren. Bilden innehåller all nödvändig information för att betjäna slutledningsbegäran, såsom modellplats, MATLAB-autentiseringsinformation och algoritmer. Efter det skapar Amazon SageMaker en SageMaker-slutpunktskonfiguration och distribuerar slutligen realtidsslutpunkten. Slutpunkten kan övervakas i SageMaker-konsolen och kan avslutas när som helst om den inte längre används.
Del 6: Testa ändpunkten
Nu när slutpunkten är igång kan du testa slutpunkten genom att ge den några poster att förutsäga. Använd följande kod för att välja 10 poster från träningsdata och skicka dem till slutpunkten för förutsägelse. Förutsägelseresultatet skickas tillbaka från slutpunkten och visas i följande bild.
Del 7: Integration av instrumentpanelen
SageMaker-slutpunkten kan anropas av många inbyggda AWS-tjänster. Det kan också användas som ett standard REST API om det distribueras tillsammans med en AWS Lambda funktion och API-gateway, som kan integreras med alla webbapplikationer. För detta specifika användningsfall kan du använda streamingintag med Amazon SageMaker Feature Store och Amazon Managed Streaming för Apache Kafka, MSK, för att fatta maskininlärningsstödda beslut i nästan realtid. En annan möjlig integration är att använda en kombination av Amazon Kinesis, SageMaker och Apache Flink för att bygga en hanterad, tillförlitlig, skalbar och högtillgänglig applikation som kan göra slutledningar i realtid om en dataström.
Efter att algoritmer har distribuerats till en SageMaker-slutpunkt kanske du vill visualisera dem med en instrumentpanel som visar strömningsförutsägelser i realtid. I den anpassade MATLAB-webbappen som följer kan du se tryck- och flödesdata per pump och live-felförutsägelser från den utplacerade modellen.
I den här instrumentbrädan innehåller en modell för återstående livslängd (RUL) för att förutsäga tiden till fel för varje pump i fråga. För att lära dig hur du tränar RUL-algoritmer, se Verktygslåda för förutsägande underhåll.
Clean Up
När du har kört den här lösningen, se till att du rensar upp alla onödiga AWS-resurser för att undvika oväntade kostnader. Du kan rensa upp dessa resurser med hjälp av SageMaker Python SDK eller AWS Management Console för de specifika tjänster som används här (SageMaker, Amazon ECR och Amazon S3). Genom att ta bort dessa resurser förhindrar du ytterligare avgifter för resurser som du inte längre använder.
Slutsats
Vi har visat hur du kan ta MATLAB till SageMaker för ett pumpförutsägande underhållsanvändningsfall med hela livscykeln för maskininlärning. SageMaker tillhandahåller en helt hanterad miljö för att köra maskininlärningsarbetsbelastningar och distribuera modeller med ett stort urval av beräkningsinstanser för olika behov.
Villkor: Koden som används i det här inlägget ägs och underhålls av MathWorks. Se licensvillkoren i GitHub-repo. För eventuella problem med koden eller funktionsförfrågningar, öppna ett GitHub-problem i arkivet
Referensprojekt
Om författarna
Brad Duncan är produktansvarig för maskininlärning i verktygslådan för statistik och maskininlärning på MathWorks. Han arbetar med kunder för att tillämpa AI i nya tekniska områden som att införliva virtuella sensorer i konstruerade system, bygga förklarliga maskininlärningsmodeller och standardisera AI-arbetsflöden med MATLAB och Simulink. Innan han kom till MathWorks ledde han team för 3D-simulering och optimering av fordons aerodynamik, användarupplevelse för 3D-simulering och produkthantering för simuleringsprogramvara. Brad är också gästföreläsare vid Tufts University inom området fordonsaerodynamik.
Richard Alcock är senior utvecklingschef för Cloud Platform Integrations på MathWorks. I den här rollen är han avgörande för att sömlöst integrera MathWorks-produkter i moln- och containerplattformar. Han skapar lösningar som gör det möjligt för ingenjörer och forskare att utnyttja MATLABs och Simulinks fulla potential i molnbaserade miljöer. Han har tidigare arbetat som mjukvaruingenjör på MathWorks och utvecklat lösningar för att stödja parallella och distribuerade datorarbetsflöden.
Rachel Johnson är produktchef för prediktivt underhåll på MathWorks, och ansvarar för övergripande produktstrategi och marknadsföring. Hon var tidigare applikationsingenjör som direkt stöttade flygindustrin i projekt för prediktivt underhåll. Före MathWorks var Rachel en aerodynamik- och framdrivningssimuleringsingenjör för US Navy. Hon tillbringade också flera år med att lära ut matematik, fysik och teknik.
Skynda Mao är senior AI/ML Partner Solutions Architect i Emerging Technologies-teamet på Amazon Web Services. Han brinner för att arbeta med företagskunder och partners för att designa, distribuera och skala AI/ML-applikationer för att få fram deras affärsvärden. Utanför jobbet tycker han om att fiska, resa och spela pingis.
Ramesh Jatiya är en lösningsarkitekt i teamet Independent Software Vendor (ISV) på Amazon Web Services. Han brinner för att arbeta med ISV-kunder för att designa, distribuera och skala sina applikationer i molnet för att få fram deras affärsvärden. Han läser också en MBA i maskininlärning och affärsanalys från Babson College, Boston. Utanför jobbet tycker han om att springa, spela tennis och laga mat.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- : har
- :är
- :inte
- :var
- $UPP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Om Oss
- ovan
- tillgång
- tillgänglig
- rymma
- Konto
- noggrannhet
- Fördel
- Aerospace
- Efter
- AI
- AI / ML
- algoritm
- algoritmer
- Alla
- tillåter
- längs
- redan
- också
- amason
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- an
- analytics
- och
- Annan
- vilken som helst
- Apache
- isär
- api
- app
- app tillåter
- Ansökan
- tillämpningar
- Ansök
- ÄR
- OMRÅDE
- områden
- konstgjord
- artificiell intelligens
- AS
- associerad
- At
- Autentisering
- bil
- Automation
- fordonsindustrin
- tillgänglig
- undvika
- AWS
- AWS Management Console
- Babson
- tillbaka
- BE
- därför att
- innan
- börja
- Fördelarna
- BÄST
- boston
- Botten
- brad
- föra
- bred
- fört
- SLUTRESULTAT
- Byggnad
- bygger
- företag
- by
- Ring
- kallas
- anropande
- KAN
- kandidater
- kapacitet
- kapabel
- Vid
- avgifter
- ta
- kontroll
- klassificering
- klassificera
- rena
- Rengöring
- cloud
- Molnplattform
- koda
- koder
- samarbeta
- samverkan
- College
- Kolumn
- COM
- kombination
- kombinationer
- kombinerad
- kommande
- Kommunikation
- komplex
- Compute
- databehandling
- konfiguration
- konfigurerad
- Konsol
- tidskrävande
- Behållare
- innehåller
- Kostar
- skapa
- skapas
- skapar
- Aktuella
- beställnings
- Kunder
- instrumentbräda
- datum
- Förberedelse av data
- databehandling
- datauppsättningar
- Beslutet
- beslut
- dedicerad
- demonstrera
- demonstreras
- beroende
- distribuera
- utplacerade
- utplacera
- vecklas ut
- härleda
- beskrivning
- Designa
- designer
- önskas
- desktop
- detaljer
- utveckla
- Utveckling
- diagnostik
- direkt
- displayer
- distribueras
- distribuerad databehandling
- do
- Hamnarbetare
- gör
- domän
- duncan
- varje
- effektivt
- antingen
- smärgel
- nya tekniker
- möjliggöra
- änden
- Slutpunkt
- ingenjör
- engineered
- Teknik
- Ingenjörer
- Företag
- Hela
- Miljö
- miljöer
- speciellt
- exempel
- utförande
- erfarenhet
- export
- extrahera
- extrakt
- Misslyckande
- fel
- defekt
- Leverans
- Funktioner
- få
- Figur
- Fil
- filtrering
- Slutligen
- slut
- Förnamn
- Fiske
- passa
- flöda
- följt
- efter
- följer
- För
- format
- Frekvens
- från
- full
- fullständigt
- fungera
- ytterligare
- nätbryggan
- generera
- genereras
- genererar
- GitHub
- Ge
- god
- grafer
- stor
- Gäst
- styra
- sele
- Har
- he
- Hälsa
- friska
- kraftigt
- här.
- högpresterande
- höggradigt
- värd
- Hur ser din drömresa ut
- How To
- html
- HTTPS
- Tanken
- if
- bild
- importera
- in
- innefattar
- införlivande
- ökning
- oberoende
- indikerar
- industrier
- industrin
- informationen
- initiera
- ingång
- installera
- Installationen
- installerad
- exempel
- instrumental
- integrerade
- Integrera
- integrering
- integrationer
- Intelligens
- interagera
- Gränssnitt
- in
- fråga
- problem
- ISV
- IT
- Jobb
- Lediga jobb
- Johnson
- jpg
- Large
- större
- senare
- senaste
- LÄRA SIG
- inlärning
- Led
- mindre
- Hävstång
- Licens
- livet
- livscykel
- LINK
- linux
- lever
- lokalt
- läge
- logga in
- längre
- Maskinen
- maskininlärning
- underhåll
- göra
- Framställning
- förvaltade
- ledning
- chef
- Produktion
- många
- Marknadsföring
- Match
- matte
- mätning
- metod
- Metrics
- kanske
- minut
- ML
- modell
- modeller
- Övervaka
- övervakas
- mer
- flytta
- rörliga
- mycket
- Som heter
- nativ
- Nära
- nödvändigt för
- Behöver
- behövs
- behov
- Nya
- Nej
- inget
- mål
- of
- erbjuds
- offer~~POS=TRUNC
- on
- gång
- ONE
- öppet
- drift
- operativa
- Verksamhet
- optimering
- or
- Övriga
- vår
- produktion
- utanför
- övergripande
- ägd
- sida
- Parallell
- parameter
- parametrar
- särskilt
- partnern
- partner
- passera
- brinner
- prestanda
- tillstånd
- Fysik
- plattform
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- i
- snälla du
- Populära
- möjlig
- Inlägg
- potentiell
- potentiellt
- kraft
- Praktisk
- förutse
- förutsägelse
- Förutsägelser
- Predictor
- föredragen
- beredning
- Förbered
- tryck
- förhindra
- tidigare
- Innan
- process
- bearbetning
- producera
- producerad
- producerar
- Produkt
- produktledning
- produktchef
- Produkter
- Programmering
- Framsteg
- projektet
- projekt
- framdrivning
- ge
- förutsatt
- ger
- tillhandahålla
- pump
- Tryck
- skjuter
- Python
- fråga
- snabbt
- område
- rangordna
- rankad
- leden
- SÄLLSYNT
- lätt
- verklig
- realtid
- senaste
- post
- register
- hänvisa
- region
- register
- pålitlig
- Återstående
- ersätta
- Repository
- representation
- begära
- förfrågningar
- Obligatorisk
- Resurser
- respons
- ansvarig
- REST
- resultera
- Richard
- robusta
- Roll
- Körning
- rinnande
- sagemaker
- nöjd
- nöjd med
- Save
- sparade
- skalbar
- Skala
- scener
- vetenskapsmän
- skript
- sdks
- sömlöst
- sekunder
- se
- väljer
- Val
- sända
- senior
- sensor
- skickas
- Serier
- tjänar
- service
- Tjänster
- portion
- session
- in
- uppsättningar
- inställningar
- sju
- flera
- hon
- Shell
- skall
- show
- visas
- signifikant
- Enkelt
- simulering
- Storlek
- So
- Mjukvara
- mjukvaruutveckling
- lösning
- Lösningar
- några
- specifik
- fart
- spent
- Etapp
- standard
- standardisera
- starta
- Stater
- statistik
- status
- Steg
- Steg
- förvaring
- lagra
- Strategi
- ström
- streaming
- sådana
- sammanfatta
- stödja
- Stödjande
- säker
- system
- System
- bord
- MÄRKA
- Ta
- tar
- Målet
- uppgifter
- Undervisning
- grupp
- lag
- tekniker
- Tekniken
- terminal
- villkor
- testa
- Testning
- än
- den där
- Smakämnen
- Området
- deras
- Dem
- sedan
- Dessa
- de
- detta
- de
- tre
- tid
- Tidsföljder
- till
- tillsammans
- verktyg
- Verktygslåda
- verktyg
- topp
- Tåg
- Utbildning
- Traveling
- träd
- prova
- ställa in
- stämd
- två
- typer
- typiskt
- förståelse
- Oväntat
- universitet
- us
- användning
- användningsfall
- Begagnade
- Användare
- Användarupplevelse
- med hjälp av
- godkännande
- Värden
- mängd
- olika
- vehikel
- leverantör
- mycket
- Virtuell
- visualisera
- vill
- var
- Sätt..
- we
- webb
- webbapplikationer
- webbservice
- som
- bred
- Brett utbud
- kommer
- med
- Arbete
- arbetsflöden
- arbetssätt
- fungerar
- skriva
- skriven
- år
- Om er
- Din
- zephyrnet