Această postare este scrisă în colaborare cu Brad Duncan, Rachel Johnson și Richard Alcock de la MathWorks.
MATLAB este un instrument de programare popular pentru o gamă largă de aplicații, cum ar fi procesarea datelor, calculul paralel, automatizarea, simularea, învățarea automată și inteligența artificială. Este foarte utilizat în multe industrii, cum ar fi auto, aerospațial, comunicații și producție. În ultimii ani, MathWorks a adus multe oferte de produse în cloud, în special pe Amazon Web Services (AWS). Pentru mai multe detalii despre produsele cloud MathWorks, consultați MATLAB și Simulink în cloud or e-mail Mathworks.
În această postare, aducem capacitățile de învățare automată ale MATLAB Amazon SageMaker, care are mai multe beneficii semnificative:
- Resurse de calcul: Utilizarea mediului de calcul de înaltă performanță oferit de SageMaker poate accelera instruirea învățării automate.
- Colaborare: MATLAB și SageMaker oferă împreună o platformă robustă pe care echipele o pot folosi pentru a colabora eficient la construirea, testarea și implementarea modelelor de învățare automată.
- Implementare și accesibilitate: Modelele pot fi implementate ca puncte finale SageMaker în timp real, făcându-le ușor accesibile pentru alte aplicații pentru a procesa date în flux live.
Vă arătăm cum să antrenați un model de învățare automată MATLAB ca un job de instruire SageMaker și apoi să implementați modelul ca un punct final în timp real SageMaker, astfel încât să poată procesa date live, în flux.
Pentru a face acest lucru, vom folosi un exemplu de întreținere predictivă în care clasificăm defecțiunile dintr-o pompă funcțională care transmite date live ale senzorului. Avem acces la un depozit mare de date etichetate generate de a simulink simulare care are trei tipuri de defecțiuni posibile în diferite combinații posibile (de exemplu, o stare sănătoasă și șapte stări defectuoase). Deoarece avem un model al sistemului și defecțiunile sunt rare în funcționare, putem profita de datele simulate pentru a ne antrena algoritmul. Modelul poate fi reglat pentru a se potrivi cu datele operaționale de la pompa noastră reală folosind tehnici de estimare a parametrilor în MATLAB și Simulink.
Obiectivul nostru este să demonstrăm puterea combinată a MATLAB și Amazon SageMaker folosind acest exemplu de clasificare a erorilor.
Începem prin a antrena un model de clasificator pe desktop-ul nostru cu MATLAB. În primul rând, extragem caracteristici dintr-un subset al setului de date complet folosind Designer de caracteristici de diagnosticare aplicație, apoi rulați antrenamentul modelului la nivel local cu un model de arbore de decizie MATLAB. Odată ce suntem mulțumiți de setările parametrilor, putem genera o funcție MATLAB și trimite jobul împreună cu setul de date către SageMaker. Acest lucru ne permite să extindem procesul de instruire pentru a găzdui seturi de date mult mai mari. După antrenarea modelului nostru, îl implementăm ca un punct final live care poate fi integrat într-o aplicație sau un tablou de bord din aval, cum ar fi o aplicație web MATLAB.
Acest exemplu va rezuma fiecare pas, oferind o înțelegere practică a modului de a utiliza MATLAB și Amazon SageMaker pentru sarcinile de învățare automată. Codul complet și descrierea exemplului sunt disponibile în aceasta depozit.
Cerințe preliminare
- Mediul de lucru al MATLAB 2023a sau mai recent cu MATLAB Compiler și Statistics and Machine Learning Toolbox pe Linux. Aici este ghid rapid despre cum să rulați MATLAB pe AWS.
- Docker configurat într-un Amazon Elastic Compute Cloud (Amazon EC2) exemplu în care rulează MATLAB. Fie Ubuntu or Linux.
- Instalarea Interfață de linie de comandă AWS (AWS CLI), AWS Configurare, și Python3.
- AWS CLI, ar trebui să fie deja instalat dacă ați urmat ghidul de instalare de la pasul 1.
- Configurați AWS Configure pentru a interacționa cu resursele AWS.
- Verificați instalarea python3 rulând
python -V
orpython --version
comanda pe terminalul dvs. Instalați Python dacă este necesar.
- Copiați acest depozit într-un folder din mașina dvs. Linux rulând:
- Verificați permisiunea din folderul repo. Dacă nu are permisiunea de scriere, rulați următoarea comandă shell:
- Construiți containerul de antrenament MATLAB și împingeți-l în Amazon Elastic Container Registry (Amazon ECR).
- Navigați la dosar
docker
- Creați un depozit Amazon ECR utilizând AWS CLI (înlocuiți REGION cu regiunea AWS preferată)
- Rulați următoarea comandă docker:
- Navigați la dosar
- Deschideți MATLAB și deschideți scriptul live numit
PumpFaultClassificationMATLABSageMaker.mlx
în dosarexamples/PumpFaultClassification
. Faceți din acest folder folderul de lucru curent în MATLAB.
Partea 1: Pregătirea datelor și extragerea caracteristicilor
Primul pas în orice proiect de învățare automată este să vă pregătiți datele. MATLAB oferă o gamă largă de instrumente pentru importarea, curățarea și extragerea caracteristicilor din datele dvs.:
SensorData.mat
setul de date conține 240 de înregistrări. Fiecare înregistrare are două orare: flow
și pressure
. Coloana țintă este faultcode
, care este o reprezentare binară a trei combinații de erori posibile în pompă. Pentru acele tabele cu serii de timp, fiecare tabel are 1,201 de rânduri care imită 1.2 secunde de măsurare a debitului pompei și a presiunii cu un increment de 0.001 secunde.
Apoi, aplicația Diagnostic Feature Designer vă permite să extrageți, să vizualizați și să clasați o varietate de caracteristici din date. Aici, folosești Funcții automate, care extrage rapid un set larg de caracteristici ale domeniului timp și frecvență din setul de date și clasifică cei mai buni candidați pentru formarea modelului. Puteți exporta apoi o funcție MATLAB care va recalcula primele 15 caracteristici clasate din noi date de intrare. Să numim această funcție extractFeaturesTraining
. Această funcție poate fi configurată pentru a prelua date într-un singur lot sau ca date în flux.
Această funcție produce un tabel de caracteristici cu codurile de eroare asociate, așa cum se arată în figura următoare:
Partea 2: Organizați datele pentru SageMaker
Apoi, trebuie să organizați datele într-un mod pe care SageMaker le poate folosi pentru instruirea învățării automate. De obicei, aceasta implică împărțirea datelor în seturi de instruire și validare și împărțirea datelor predictorilor din răspunsul țintă.
În această etapă, ar putea fi necesare alte operațiuni mai complexe de curățare și filtrare a datelor. În acest exemplu, datele sunt deja curate. Potențial, dacă procesarea datelor este foarte complexă și necesită timp, joburile de procesare SageMaker pot fi folosite pentru a rula aceste joburi în afară de instruirea SageMaker, astfel încât să poată fi separate în două etape.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Partea 3: Antrenați și testați un model de învățare automată în MATLAB
Înainte de a trece la SageMaker, este o idee bună să construiți și să testați modelul de învățare automată la nivel local în MATLAB. Acest lucru vă permite să repetați și să depanați rapid modelul. Puteți configura și antrena un clasificator simplu de arbore de decizie la nivel local.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
Lucrarea de antrenament de aici ar trebui să dureze mai puțin de un minut pentru a se termina și generează câteva grafice pentru a indica progresul antrenamentului. După terminarea instruirii, este produs un model de învățare automată MATLAB. The Clasificare Learner aplicația poate fi utilizată pentru a încerca multe tipuri de modele de clasificare și pentru a le regla pentru performanță optimă, apoi pentru a produce codul necesar pentru a înlocui codul de antrenament al modelului de mai sus.
După verificarea valorilor de acuratețe pentru modelul antrenat local, putem muta instruirea în Amazon SageMaker.
Partea 4: Antrenați modelul în Amazon SageMaker
După ce sunteți mulțumit de model, îl puteți antrena la scară folosind SageMaker. Pentru a începe să apelați SDK-uri SageMaker, trebuie să inițiați o sesiune SageMaker.
session = sagemaker.Session();
Specificați o execuție SageMaker Rolul IAM pe care le vor folosi joburile de formare și găzduirea punctelor finale.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Din MATLAB, salvați datele de antrenament ca fișier .csv într-un Serviciul Amazon de stocare simplă (Amazon S3) găleată.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Creați un estimator SageMaker
Apoi, trebuie să creați un estimator SageMaker și să îi transmiteți toți parametrii necesari, cum ar fi imaginea docker de antrenament, funcția de antrenament, variabilele de mediu, dimensiunea instanței de antrenament și așa mai departe. URI-ul imaginii de antrenament ar trebui să fie URI-ul Amazon ECR pe care l-ați creat în pasul de precondiție cu formatul ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. Funcția de antrenament ar trebui să fie furnizată în partea de jos a scriptului live MATLAB.
Trimiteți jobul de formare SageMaker
Apelarea metodei de potrivire din estimator trimite jobul de instruire în SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
De asemenea, puteți verifica starea jobului de instruire din consola SageMaker:
După ce joburile de instruire se termină, selectarea link-ului jobului vă duce la pagina cu fișa postului unde puteți vedea modelul MATLAB salvat în bucketul S3 dedicat:
Partea 5: Implementați modelul ca punct final SageMaker în timp real
După antrenament, puteți implementa modelul ca punct final SageMaker în timp real, pe care îl puteți utiliza pentru a face predicții în timp real. Pentru a face acest lucru, apelați metoda de implementare din estimator. Aici puteți configura dimensiunea dorită a instanței pentru găzduire, în funcție de volumul de lucru.
În culise, acest pas creează o imagine docker de inferență și o împinge în depozitul Amazon ECR, utilizatorului nu este necesar să construiască containerul de inferență. Imaginea conține toate informațiile necesare pentru a servi cererea de inferență, cum ar fi locația modelului, informațiile de autentificare MATLAB și algoritmi. După aceea, Amazon SageMaker creează o configurație a punctului final SageMaker și în cele din urmă implementează punctul final în timp real. Punctul final poate fi monitorizat în consola SageMaker și poate fi oprit oricând dacă nu mai este utilizat.
Partea 6: Testați punctul final
Acum că punctul final este activ și rulează, puteți testa punctul final oferindu-i câteva înregistrări pentru a le prezice. Utilizați următorul cod pentru a selecta 10 înregistrări din datele de antrenament și trimiteți-le la punctul final pentru predicție. Rezultatul predicției este trimis înapoi de la punctul final și afișat în imaginea următoare.
Partea 7: Integrarea tabloului de bord
Punctul final SageMaker poate fi apelat de multe servicii AWS native. Poate fi folosit și ca API REST standard dacă este implementat împreună cu un AWS Lambdas funcție și gateway API, care poate fi integrat cu orice aplicație web. Pentru acest caz particular de utilizare, puteți utiliza ingerarea în flux cu Amazon SageMaker Feature Store și Amazon Managed Streaming pentru Apache Kafka, MSK, pentru a lua decizii susținute de învățarea automată aproape în timp real. O altă posibilă integrare este utilizarea unei combinații de Amazon Kinesis, SageMaker și Apache Flink pentru a construi o aplicație gestionată, fiabilă, scalabilă și foarte disponibilă, capabilă să facă inferențe în timp real asupra unui flux de date.
După ce algoritmii sunt implementați la un punct final SageMaker, este posibil să doriți să-i vizualizați folosind un tablou de bord care afișează predicțiile de streaming în timp real. În aplicația web personalizată MATLAB care urmează, puteți vedea datele despre presiune și debit în funcție de pompă și previziuni live de defecțiuni din modelul implementat.
În acest tablou de bord include un model de viață utilă rămasă (RUL) pentru a prezice timpul până la defecțiune pentru fiecare pompă în cauză. Pentru a afla cum să antrenezi algoritmi RUL, vezi Caseta de instrumente de întreținere predictivă.
Clean Up
După ce rulați această soluție, asigurați-vă că curățați toate resursele AWS care nu sunt necesare pentru a evita costuri neașteptate. Puteți curăța aceste resurse folosind SageMaker Python SDK sau AWS Management Console pentru serviciile specifice utilizate aici (SageMaker, Amazon ECR și Amazon S3). Prin ștergerea acestor resurse, preveniți alte taxe pentru resursele pe care nu le mai utilizați.
Concluzie
Am demonstrat cum puteți aduce MATLAB la SageMaker pentru un caz de utilizare pentru întreținerea predictivă a pompei cu întregul ciclu de viață al învățării automate. SageMaker oferă un mediu complet gestionat pentru rularea sarcinilor de lucru de învățare automată și implementarea modelelor cu o selecție mare de instanțe de calcul care servesc diverse nevoi.
Declinare a responsabilităţii: Codul folosit în această postare este deținut și întreținut de MathWorks. Consultați termenii licenței din depozitul GitHub. Pentru orice problemă cu codul sau solicitările de caracteristici, deschideți o problemă GitHub în depozit
Referinte
Despre Autori
Brad Duncan este managerul de produs pentru capabilitățile de învățare automată din Statistics and Machine Learning Toolbox la MathWorks. El lucrează cu clienții pentru a aplica AI în noi domenii ale ingineriei, cum ar fi încorporarea senzorilor virtuali în sistemele proiectate, construirea de modele explicabile de învățare automată și standardizarea fluxurilor de lucru AI folosind MATLAB și Simulink. Înainte de a veni la MathWorks, a condus echipe pentru simularea 3D și optimizarea aerodinamicii vehiculelor, experiența utilizatorului pentru simularea 3D și managementul produselor pentru software de simulare. Brad este, de asemenea, lector invitat la Universitatea Tufts în domeniul aerodinamicii vehiculelor.
Richard Alcock este managerul senior de dezvoltare pentru Cloud Platform Integrations la MathWorks. În acest rol, el este esențial în integrarea perfectă a produselor MathWorks în platformele cloud și container. El creează soluții care le permit inginerilor și oamenilor de știință să valorifice întregul potențial al MATLAB și Simulink în medii bazate pe cloud. Anterior a fost inginer de software la MathWorks, dezvoltând soluții pentru a sprijini fluxurile de lucru de calcul paralele și distribuite.
Rachel Johnson este manager de produs pentru întreținerea predictivă la MathWorks și este responsabil pentru strategia generală de produs și marketing. Ea a fost anterior inginer de aplicații, sprijinind direct industria aerospațială în proiecte de întreținere predictivă. Înainte de MathWorks, Rachel a fost inginer în simulare de aerodinamică și propulsie pentru Marina SUA. De asemenea, a petrecut câțiva ani predând matematică, fizică și inginerie.
Shun Mao este un Senior AI/ML Partner Solutions Architect în echipa Emerging Technologies din Amazon Web Services. El este pasionat de lucrul cu clienții și partenerii întreprinderilor pentru a proiecta, implementa și scala aplicații AI/ML pentru a le deriva valorile de afaceri. În afara serviciului, îi place să pescuiască, să călătorească și să joace ping-pong.
Ramesh Jatiya este arhitect de soluții în echipa furnizorului independent de software (ISV) de la Amazon Web Services. Este pasionat de lucrul cu clienții ISV pentru a proiecta, implementa și scala aplicațiile lor în cloud pentru a-și deriva valorile de afaceri. De asemenea, urmează un MBA în Machine Learning și Business Analytics de la Babson College, Boston. În afara serviciului, îi place să alerge, să joace tenis și să gătească.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/machine-learning-with-matlab-and-amazon-sagemaker/
- :are
- :este
- :nu
- :Unde
- $UP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Despre Noi
- mai sus
- acces
- accesibil
- găzdui
- Cont
- precizie
- Avantaj
- Industria aerospațială
- După
- AI
- AI / ML
- Algoritmul
- algoritmi
- TOATE
- permite
- de-a lungul
- deja
- de asemenea
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- an
- Google Analytics
- și
- O alta
- Orice
- Apache
- separat
- api
- aplicaţia
- aplicația permite
- aplicație
- aplicatii
- Aplică
- SUNT
- ZONĂ
- domenii
- artificial
- inteligență artificială
- AS
- asociate
- At
- Autentificare
- Auto
- Automatizare
- auto
- disponibil
- evita
- AWS
- Consola de administrare AWS
- Babson
- înapoi
- BE
- deoarece
- înainte
- începe
- Beneficiile
- CEL MAI BUN
- boston
- De jos
- cui fără floare
- aduce
- larg
- adus
- construi
- Clădire
- construiește
- afaceri
- by
- apel
- denumit
- apel
- CAN
- candidaţilor
- capacități
- capabil
- caz
- taxe
- verifica
- control
- clasificare
- Clasifica
- curat
- Curățenie
- Cloud
- Platforma Cloud
- cod
- Coduri
- colabora
- colaborare
- Colegiu
- Coloană
- COM
- combinaţie
- combinaţii
- combinate
- venire
- Comunicare
- complex
- Calcula
- tehnica de calcul
- Configuraţie
- configurat
- Consoleze
- mistuitor
- Recipient
- conține
- Cheltuieli
- crea
- a creat
- creează
- Curent
- personalizat
- clienţii care
- tablou de bord
- de date
- Pregătirea datelor
- de prelucrare a datelor
- seturi de date
- decizie
- Deciziile
- dedicat
- demonstra
- demonstrat
- În funcție
- implementa
- dislocate
- Implementarea
- implementează
- deriva
- descriere
- Amenajări
- proiectant
- dorit
- desktop
- detalii
- în curs de dezvoltare
- Dezvoltare
- diagnostic
- direct
- afișează
- distribuite
- calcul distribuit
- do
- Docher
- face
- domeniu
- duncan
- fiecare
- în mod eficient
- oricare
- șmirghel
- tehnologii emergente
- permite
- capăt
- Punct final
- inginer
- inginerie
- Inginerie
- inginerii
- Afacere
- Întreg
- Mediu inconjurator
- medii
- mai ales
- exemplu
- execuție
- experienţă
- exporturile
- extrage
- extracte
- Eșec
- defecte
- defect
- Caracteristică
- DESCRIERE
- puțini
- Figura
- Fișier
- filtrare
- În cele din urmă
- termina
- First
- Pescuit
- potrivi
- debit
- a urmat
- următor
- urmează
- Pentru
- format
- Frecvență
- din
- Complet
- complet
- funcţie
- mai mult
- poartă
- genera
- generată
- generează
- GitHub
- Oferirea
- bine
- grafice
- mare
- Oaspete
- ghida
- valorifica
- Avea
- he
- Sănătate
- sănătos
- puternic
- aici
- performanta ridicata
- extrem de
- găzduire
- Cum
- Cum Pentru a
- HTML
- HTTPS
- idee
- if
- imagine
- importatoare
- in
- include
- care încorporează
- creştere
- independent
- indica
- industrii
- industrie
- informații
- iniția
- intrare
- instala
- instalare
- instalat
- instanță
- instrumental
- integrate
- integrarea
- integrare
- integrările
- Inteligență
- interacţiona
- interfaţă
- în
- problema
- probleme de
- isv
- IT
- Loc de munca
- Locuri de munca
- Johnson
- jpg
- mare
- mai mare
- mai tarziu
- Ultimele
- AFLAȚI
- învăţare
- Led
- mai puțin
- Pârghie
- Licență
- Viaţă
- ciclu de viață
- LINK
- linux
- trăi
- la nivel local
- locaţie
- Logare
- mai lung
- maşină
- masina de învățare
- întreținere
- face
- Efectuarea
- gestionate
- administrare
- manager
- de fabricaţie
- multe
- Marketing
- Meci
- matematica
- măsurare
- metodă
- Metrici
- ar putea
- minut
- ML
- model
- Modele
- monitor
- monitorizate
- mai mult
- muta
- în mişcare
- mult
- Numit
- nativ
- În apropiere
- necesar
- Nevoie
- necesar
- nevoilor
- Nou
- Nu.
- nimic
- obiectiv
- of
- oferit
- ofertele
- on
- dată
- ONE
- deschide
- operaţie
- operațional
- Operațiuni
- optimizare
- or
- Altele
- al nostru
- producție
- exterior
- global
- deţinute
- pagină
- Paralel
- parametru
- parametrii
- special
- partener
- parteneri
- trece
- pasionat
- performanță
- permisiune
- Fizică
- platformă
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- joc
- "vă rog"
- Popular
- posibil
- Post
- potenţial
- potenţial
- putere
- Practic
- prezice
- prezicere
- Predictii
- Predictor
- preferat
- pregătire
- Pregăti
- presiune
- împiedica
- în prealabil
- anterior
- proces
- prelucrare
- produce
- Produs
- produce
- Produs
- management de produs
- manager de produs
- Produse
- Programare
- Progres
- proiect
- Proiecte
- propulsie
- furniza
- prevăzut
- furnizează
- furnizarea
- pompa
- Împinge
- împinge
- Piton
- întrebare
- repede
- gamă
- rank
- clasat
- rândurile
- RAR
- uşor
- real
- în timp real
- recent
- record
- înregistrări
- trimite
- regiune
- registru
- de încredere
- rămas
- înlocui
- depozit
- reprezentare
- solicita
- cereri de
- necesar
- Resurse
- răspuns
- responsabil
- REST
- rezultat
- Richard
- robust
- Rol
- Alerga
- funcţionare
- sagemaker
- satisfăcut
- mulțumit cu
- Economisiți
- salvate
- scalabil
- Scară
- scene
- oamenii de stiinta
- scenariu
- sdks
- perfect
- secunde
- vedea
- selectarea
- selecţie
- trimite
- senior
- senzori
- trimis
- serie
- servi
- serviciu
- Servicii
- servire
- sesiune
- set
- Seturi
- setări
- Șapte
- câteva
- ea
- Coajă
- să
- Arăta
- indicat
- semnificativ
- simplu
- simulare
- Mărimea
- So
- Software
- Inginerie software
- soluţie
- soluţii
- unele
- specific
- viteză
- uzat
- Etapă
- standard
- standardizarea
- Începe
- Statele
- statistică
- Stare
- Pas
- paşi
- depozitare
- stoca
- Strategie
- curent
- de streaming
- astfel de
- rezuma
- a sustine
- De sprijin
- sigur
- sistem
- sisteme
- tabel
- TAG
- Lua
- ia
- Ţintă
- sarcini
- Predarea
- echipă
- echipe
- tehnici de
- Tehnologii
- Terminal
- termeni
- test
- Testarea
- decât
- acea
- Zona
- lor
- Lor
- apoi
- Acestea
- ei
- acest
- aceste
- trei
- timp
- Seria de timp
- la
- împreună
- instrument
- Toolbox
- Unelte
- top
- Tren
- Pregătire
- Traveling
- copac
- încerca
- ton
- reglate
- Două
- Tipuri
- tipic
- înţelegere
- Neașteptat
- universitate
- us
- utilizare
- carcasa de utilizare
- utilizat
- Utilizator
- Experiența de utilizare
- folosind
- validare
- Valori
- varietate
- diverse
- vehicul
- vânzător
- foarte
- Virtual
- imagina
- vrea
- a fost
- Cale..
- we
- web
- aplicații web
- servicii web
- care
- larg
- Gamă largă
- voi
- cu
- Apartamente
- fluxuri de lucru
- de lucru
- fabrică
- scrie
- scris
- ani
- Tu
- Ta
- zephyrnet