Această postare de blog este co-autoră de Guillermo Ribeiro, Data Scientist Sr. la Cepsa.
Învățarea automată (ML) a evoluat rapid de la a fi o tendință la modă care a apărut din mediile academice și din departamentele de inovare la a deveni un mijloc cheie de a oferi valoare în afaceri în fiecare industrie. Această tranziție de la experimente în laboratoare la rezolvarea problemelor din lumea reală în medii de producție merge mână în mână MLOps, sau adaptarea DevOps la lumea ML.
MLOps ajută la eficientizarea și automatizarea întregului ciclu de viață al unui model ML, punându-și accent pe seturile de date sursă, reproductibilitatea experimentului, codul algoritmului ML și calitatea modelului.
At CEPSA, o companie globală de energie, folosim ML pentru a aborda probleme complexe din liniile noastre de afaceri, de la întreținerea predictivă a echipamentelor industriale până la monitorizarea și îmbunătățirea proceselor petrochimice la rafinăriile noastre.
În această postare, discutăm despre modul în care am construit arhitectura noastră de referință pentru MLOps folosind următoarele servicii cheie AWS:
- Amazon SageMaker, un serviciu pentru a construi, antrena și implementa modele ML
- Funcții pas AWS, un serviciu de flux de lucru vizual low-code fără server, folosit pentru a orchestra și automatiza procesele
- Amazon EventBridge, o magistrală de evenimente fără server
- AWS Lambdas, un serviciu de calcul fără server care vă permite să rulați cod fără a furniza sau gestiona servere
De asemenea, explicăm cum am aplicat această arhitectură de referință pentru a porni noi proiecte ML în compania noastră.
Provocarea
În ultimii 4 ani, mai multe linii de afaceri din Cepsa au dat startul proiectelor ML, dar în curând au început să apară anumite probleme și limitări.
Nu aveam o arhitectură de referință pentru ML, așa că fiecare proiect a urmat o cale de implementare diferită, efectuând antrenament și implementare model ad-hoc. Fără o metodă comună de a gestiona codul și parametrii proiectului și fără un registru de model ML sau un sistem de versiuni, am pierdut trasabilitatea între seturile de date, cod și modele.
Am detectat, de asemenea, loc de îmbunătățire în modul în care operam modelele în producție, deoarece nu am monitorizat modelele implementate și, prin urmare, nu aveam mijloacele de a urmări performanța modelului. În consecință, de obicei am reinstruit modele pe baza programelor de timp, deoarece ne-au lipsit valorile potrivite pentru a lua decizii informate de recalificare.
Soluția
Pornind de la provocările pe care a trebuit să le depășim, am proiectat o soluție generală care urmărea să decupleze pregătirea datelor, antrenamentul modelului, inferența și monitorizarea modelului și a prezentat un registru de model centralizat. În acest fel, am simplificat gestionarea mediilor în mai multe conturi AWS, introducând în același timp trasabilitatea modelului centralizat.
Oamenii noștri de știință și dezvoltatorii de date le folosesc AWS Cloud9 (un IDE cloud pentru scrierea, rularea și depanarea codului) pentru dispute de date și experimentare ML și GitHub ca depozit de cod Git.
Un flux de lucru automat de instruire folosește codul creat de echipa de știință a datelor pentru a modele de tren pe SageMaker și pentru a înregistra modele de ieșire în registrul de modele.
Un flux de lucru diferit gestionează implementarea modelului: obține referința din registrul modelului și creează un punct final de inferență folosind Caracteristici de găzduire a modelului SageMaker.
Am implementat atât fluxuri de lucru de formare a modelului, cât și de implementare folosind Step Functions, deoarece a oferit un cadru flexibil care permite crearea de fluxuri de lucru specifice pentru fiecare proiect și orchestrează diferite servicii și componente AWS într-un mod simplu.
Model de consum de date
În Cepsa, folosim o serie de lacuri de date pentru a acoperi diverse nevoi de afaceri și toate aceste lacuri de date au în comun un model comun de consum de date, care facilitează inginerilor de date și oamenilor de știință să găsească și să consume datele de care au nevoie.
Pentru a gestiona cu ușurință costurile și responsabilitățile, mediile lacurilor de date sunt complet separate de aplicațiile producătoare de date și de consum și sunt implementate în diferite conturi AWS aparținând unei organizații AWS comune.
Datele utilizate pentru antrenarea modelelor ML și datele utilizate ca intrare de inferență pentru modelele antrenate sunt puse la dispoziție din diferitele lacuri de date printr-un set de API-uri bine definite folosind Gateway API Amazon, un serviciu pentru crearea, publicarea, întreținerea, monitorizarea și securizarea API-urilor la scară. Backend-ul API folosește Amazon Atena (un serviciu de interogare interactiv pentru analiza datelor folosind SQL standard) pentru a accesa datele care sunt deja stocate Serviciul Amazon de stocare simplă (Amazon S3) și catalogat în AWS Adeziv Catalog de date.
Următoarea diagramă oferă o prezentare generală a arhitecturii MLOps a Cepsa.
Antrenamentul modelului
Procesul de instruire este independent pentru fiecare model și gestionat de a Flux de lucru standard Funcții pas, ceea ce ne oferă flexibilitate pentru a modela procesele pe baza diferitelor cerințe ale proiectului. Avem un șablon de bază definit pe care îl reutilizam în majoritatea proiectelor, efectuând ajustări minore atunci când este necesar. De exemplu, unii proprietari de proiecte au decis să adauge porți manuale pentru a aproba implementările de noi modele de producție, în timp ce alți proprietari de proiecte au implementat propriile mecanisme de detectare a erorilor și reîncercare.
De asemenea, efectuăm transformări pe seturile de date de intrare utilizate pentru antrenamentul modelului. În acest scop, folosim funcții Lambda care sunt integrate în fluxurile de lucru de antrenament. În unele scenarii în care sunt necesare transformări de date mai complexe, rulăm codul nostru Serviciul Amazon de containere elastice (Amazon ECS) activat AWS Fargate, un motor de calcul fără server pentru a rula containere.
Echipa noastră de știință a datelor utilizează frecvent algoritmi personalizați, așa că profităm de capacitatea de a face acest lucru utilizați containere personalizate în instruirea modelului SageMaker, mă bazez pe Registrul Amazon de containere elastice (Amazon ECR), un registru de containere complet gestionat care facilitează stocarea, gestionarea, partajarea și implementarea imaginilor containerelor.
Majoritatea proiectelor noastre ML se bazează pe biblioteca Scikit-learn, așa că am extins standardul Container de învățare SageMaker Scikit pentru a include variabilele de mediu necesare pentru proiect, cum ar fi informațiile din depozitul Git și opțiunile de implementare.
Cu această abordare, oamenii noștri de știință de date trebuie doar să se concentreze pe dezvoltarea algoritmului de antrenament și să specifice bibliotecile cerute de proiect. Când introduc modificări de cod în depozitul Git, sistemul nostru CI/CD (Jenkins găzduit pe AWS) construiește containerul cu codul de antrenament și bibliotecile. Acest container este împins către Amazon ECR și în cele din urmă trecut ca parametru la invocarea de formare SageMaker.
Când procesul de instruire este finalizat, modelul rezultat este stocat în Amazon S3, o referință este adăugată în registrul modelului și toate informațiile și valorile colectate sunt salvate în catalogul de experimente. Acest lucru asigură reproductibilitatea completă deoarece codul algoritmului și bibliotecile sunt legate de modelul antrenat împreună cu datele asociate experimentului.
Următoarea diagramă ilustrează procesul de formare și recalificare model.
Implementarea modelului
Arhitectura este flexibilă și permite implementări atât automate, cât și manuale ale modelelor instruite. Fluxul de lucru al implementării modelului este invocat automat prin intermediul unui eveniment pe care instruirea SageMaker îl publică în EventBridge după terminarea antrenamentului, dar poate fi invocat și manual dacă este necesar, trecând versiunea corectă a modelului din registrul modelului. Pentru mai multe informații despre invocarea automată, consultați Automatizarea Amazon SageMaker cu Amazon EventBridge.
Fluxul de lucru al implementatorului de modele preia informațiile despre model din registrul modelului și le utilizează Formarea AWS Cloud, o infrastructură gestionată ca serviciu de cod, fie pentru a implementa modelul la un punct final de inferență în timp real, fie pentru a efectua inferențe în lot cu un set de date de intrare stocat, în funcție de cerințele proiectului.
Ori de câte ori un model este implementat cu succes în orice mediu, registrul modelului este actualizat cu o nouă etichetă care indică în ce medii rulează modelul în prezent. De fiecare dată când un punct final este eliminat, eticheta acestuia este, de asemenea, ștearsă din registrul modelului.
Următoarea diagramă arată fluxul de lucru pentru implementarea modelului și inferența.
Experimente și model de registru
Stocarea fiecărui experiment și versiune de model într-o singură locație și a avea un depozit de cod centralizat ne permite să decuplăm formarea și implementarea modelului și să folosim diferite conturi AWS pentru fiecare proiect și mediu.
Toate intrările de experiment stochează ID-ul de comitere al codului de antrenament și de inferență, astfel încât avem trasabilitate completă a întregului proces de experimentare și putem compara cu ușurință diferite experimente. Acest lucru ne împiedică să efectuăm lucrări duplicate în faza de explorare științifică pentru algoritmi și modele și ne permite să ne implementăm modelele oriunde, independent de contul și mediul în care a fost antrenat modelul. Acest lucru este valabil și pentru modelele antrenate în mediul nostru de experimentare AWS Cloud9.
Una peste alta, avem conducte de instruire și implementare a modelelor complet automatizate și avem flexibilitatea de a efectua implementări manuale rapide de model atunci când ceva nu funcționează corect sau când o echipă are nevoie de un model implementat într-un mediu diferit în scopuri de experimentare.
Un caz de utilizare detaliat: proiectul YET Dragon
Proiectul YET Dragon își propune să îmbunătățească performanța de producție a fabricii petrochimice a Cepsa din Shanghai. Pentru a atinge acest obiectiv, am studiat amănunțit procesul de producție, căutând pașii mai puțin eficienți. Ținta noastră a fost creșterea eficienței randamentului proceselor prin menținerea concentrației componentelor exact sub un prag.
Pentru a simula acest proces, am construit patru modele aditive generalizate sau GAM, modele liniare al căror răspuns depinde de funcțiile netede ale variabilelor predictoare, pentru a prezice rezultatele a două procese de oxidare, un proces de concentrare și randamentul menționat mai sus. De asemenea, am construit un optimizator pentru a procesa rezultatele celor patru modele GAM și pentru a găsi cele mai bune optimizări care ar putea fi aplicate în fabrică.
Deși modelele noastre sunt antrenate cu date istorice, instalația poate funcționa uneori în circumstanțe care nu au fost înregistrate în setul de date de antrenament; ne așteptăm ca modelele noastre de simulare să nu funcționeze bine în aceste scenarii, așa că am construit, de asemenea, două modele de detectare a anomaliilor folosind algoritmi Isolation Forests, care determină cât de departe sunt punctele de date față de restul datelor pentru a detecta anomaliile. Aceste modele ne ajută să detectăm astfel de situații pentru a dezactiva procesele automate de optimizare ori de câte ori se întâmplă acest lucru.
Procesele chimice industriale sunt foarte variabile și modelele ML trebuie să fie bine aliniate cu funcționarea instalației, astfel încât este necesară recalificare frecventă, precum și trasabilitatea modelelor implementate în fiecare situație. YET Dragon a fost primul nostru proiect de optimizare ML care a prezentat un registru model, reproductibilitatea completă a experimentelor și un proces de instruire automatizat complet gestionat.
Acum, conducta completă care aduce un model în producție (transformarea datelor, antrenamentul modelului, urmărirea experimentului, registrul modelului și implementarea modelului) este independentă pentru fiecare model ML. Acest lucru ne permite să îmbunătățim modelele în mod iterativ (de exemplu, adăugarea de noi variabile sau testarea de noi algoritmi) și să conectăm etapele de instruire și implementare la diferiți declanșatori.
Rezultatele și îmbunătățirile viitoare
În prezent, suntem capabili să antrenăm, să implementăm și să urmărim automat cele șase modele ML utilizate în proiectul YET Dragon și am implementat deja peste 30 de versiuni pentru fiecare dintre modelele de producție. Această arhitectură MLOps a fost extinsă la sute de modele ML în alte proiecte din cadrul companiei.
Intenționăm să lansăm în continuare noi proiecte YET bazate pe această arhitectură, care a redus durata medie a proiectului cu 25%, datorită reducerii timpului de bootstrapping și automatizării conductelor ML. De asemenea, am estimat economii de aproximativ 300,000 EUR pe an datorită creșterii randamentului și concentrării, care este un rezultat direct al proiectului YET Dragon.
Evoluția pe termen scurt a acestei arhitecturi MLOps este către monitorizarea modelului și testarea automată. Intenționăm să testăm automat eficiența modelului față de modelele implementate anterior înainte de implementarea unui nou model. Lucrăm, de asemenea, la implementarea monitorizării modelului și a monitorizării derivației datelor de inferență cu Monitor de model Amazon SageMaker, pentru a automatiza recalificarea modelului.
Concluzie
Companiile se confruntă cu provocarea de a-și aduce proiectele ML în producție într-un mod automat și eficient. Automatizarea întregului ciclu de viață al modelului ML ajută la reducerea duratei proiectului și asigură o calitate mai bună a modelului și implementări mai rapide și mai frecvente în producție.
Prin dezvoltarea unei arhitecturi MLOps standardizate care a fost adoptată de diferite companii din cadrul companiei, noi cei de la Cepsa am reușit să accelerăm bootstrappingul proiectelor ML și să îmbunătățim calitatea modelului ML, oferind un cadru de încredere și automatizat pe baza căruia echipele noastre de știință a datelor pot inova mai rapid. .
Pentru mai multe informații despre MLOps pe SageMaker, vizitați Amazon SageMaker pentru MLOps și verificați alte cazuri de utilizare ale clienților în Blog de AWS Machine Learning.
Despre autori
Guillermo Ribeiro Jiménez este cercetător senior în date la Cepsa cu un doctorat. în Fizica Nucleară. Are 6 ani de experiență în proiecte de știință a datelor, în principal în industria de telecomunicații și energie. În prezent, conduce echipe de cercetători de date în departamentul de transformare digitală al Cepsa, cu accent pe scalarea și producția proiectelor de învățare automată.
Guillermo Menéndez Corral este arhitect de soluții la AWS Energy and Utilities. Are peste 15 ani de experiență în proiectarea și construirea de aplicații SW și în prezent oferă îndrumări arhitecturale clienților AWS din industria energetică, cu accent pe analiză și învățarea automată.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/how-cepsa-used-amazon-sagemaker-and-aws-step-functions-to-industrialize-their-ml-projects-and-operate- modelele-lor-la-scale/
- "
- 000
- 100
- ani 15
- a
- capacitate
- Despre Noi
- acces
- Cont
- Obține
- peste
- Ad
- adăugat
- Avantaj
- împotriva
- Algoritmul
- algoritmi
- TOATE
- permite
- deja
- Amazon
- între
- Google Analytics
- analiza
- oriunde
- api
- API-uri
- aplicatii
- aplicat
- abordare
- aproba
- arhitectural
- arhitectură
- în jurul
- asociate
- automatizarea
- Automata
- Automat
- în mod automat
- automatizarea
- Automatizare
- disponibil
- AWS
- deoarece
- devenire
- înainte
- fiind
- de mai jos
- CEL MAI BUN
- Blog
- construi
- Clădire
- construiește
- afaceri
- întreprinderi
- caz
- cazuri
- centralizat
- sigur
- contesta
- provocări
- chimic
- Cloud
- cod
- comite
- Comun
- companie
- Completă
- complet
- complex
- component
- componente
- Calcula
- concentrare
- Conectați
- consuma
- consumator
- consum
- Recipient
- Containere
- Cheltuieli
- ar putea
- acoperi
- crea
- creează
- creaţie
- În prezent
- personalizat
- client
- clienţii care
- de date
- știința datelor
- om de știință de date
- hotărât
- Deciziile
- În funcție
- depinde de
- implementa
- dislocate
- desfășurarea
- implementări
- proiectat
- proiect
- detaliat
- detectat
- Detectare
- Determina
- Dezvoltatorii
- în curs de dezvoltare
- diferit
- digital
- Transformarea digitală
- direcționa
- discuta
- balaur
- fiecare
- cu ușurință
- eficiență
- eficient
- șmirghel
- permite
- Punct final
- energie
- Motor
- inginerii
- Mediu inconjurator
- echipament
- estimativ
- eveniment
- evoluţie
- exact
- exemplu
- aștepta
- experienţă
- experiment
- explorare
- cu care se confruntă
- FAST
- mai repede
- Caracteristică
- Recomandate
- În cele din urmă
- First
- Flexibilitate
- flexibil
- Concentra
- următor
- Cadru
- din
- Complet
- funcții
- viitor
- porti
- General
- merge
- GitHub
- Caritate
- scop
- manipula
- având în
- ajutor
- ajută
- extrem de
- istoric
- deține
- găzduit
- găzduire
- Cum
- HTTPS
- sute
- imagini
- implementarea
- implementat
- îmbunătăţi
- îmbunătățire
- îmbunătățirea
- În altele
- include
- Crește
- independent
- independent
- industrial
- industrie
- informații
- informat
- Infrastructură
- Inovaţie
- intrare
- integrate
- interactiv
- introducerea
- izolare
- probleme de
- IT
- A pastra
- păstrare
- Cheie
- lansare
- conducere
- învăţare
- Bibliotecă
- linii
- locaţie
- cautati
- maşină
- masina de învățare
- făcut
- menține
- întreținere
- face
- FACE
- administra
- gestionate
- de conducere
- manieră
- manual
- manual
- mijloace
- Metrici
- ML
- model
- Modele
- monitor
- Monitorizarea
- mai mult
- cele mai multe
- multiplu
- nevoilor
- funcionar
- operaţie
- optimizare
- Opţiuni
- comandă
- organizație
- Altele
- propriu
- Proprietarii
- Care trece
- performanță
- efectuarea
- fază
- Fizică
- puncte
- prezice
- probleme
- proces
- procese
- producător
- producere
- proiect
- Proiecte
- prevăzut
- furnizează
- furnizarea
- publica
- scop
- scopuri
- împins
- calitate
- în timp real
- reduce
- Inregistreaza-te
- înregistrată
- de încredere
- depozit
- necesar
- Cerinţe
- răspuns
- responsabilităţi
- REST
- rezultând
- REZULTATE
- Alerga
- funcţionare
- Scară
- scalare
- Ştiinţă
- Om de stiinta
- oamenii de stiinta
- sigur
- serie
- serverless
- serviciu
- Servicii
- set
- Shanghai
- Distribuie
- Pe termen scurt
- simplu
- simulare
- singur
- situație
- SIX
- So
- soluţie
- soluţii
- unele
- ceva
- specific
- viteză
- Stadiile
- standard
- început
- depozitare
- stoca
- simplifica
- Reușit
- sistem
- Ţintă
- echipă
- echipe
- Telco
- test
- Testarea
- Sursa
- prin urmare
- complet
- prag
- Prin
- timp
- ori
- față de
- Trasabilitatea
- urmări
- Urmărire
- Pregătire
- Transformare
- transformări
- tranziţie
- în
- us
- utilizare
- obișnuit
- utilitati
- valoare
- versiune
- bine definit
- în timp ce
- fără
- Apartamente
- fluxuri de lucru
- de lucru
- lume
- scris
- an
- ani
- Randament