Det här blogginlägget är medförfattare av Guillermo Ribeiro, Sr. Data Scientist vid Cepsa.
Maskininlärning (ML) har snabbt utvecklats från att vara en trendig trend som växer fram från akademiska miljöer och innovationsavdelningar till att bli ett nyckelmedel för att leverera värde mellan företag i alla branscher. Denna övergång från experiment i laboratorier till att lösa verkliga problem i produktionsmiljöer går hand i hand med MLOps, eller anpassningen av DevOps till ML-världen.
MLOps hjälper till att effektivisera och automatisera hela livscykeln för en ML-modell, med fokus på källdatauppsättningar, experimentreproducerbarhet, ML-algoritmkod och modellkvalitet.
At Cepsa, ett globalt energiföretag, använder vi ML för att ta itu med komplexa problem inom våra verksamhetsgrenar, från att utföra förutsägande underhåll för industriell utrustning till att övervaka och förbättra petrokemiska processer vid våra raffinaderier.
I det här inlägget diskuterar vi hur vi byggde vår referensarkitektur för MLOps med hjälp av följande viktiga AWS-tjänster:
- Amazon SageMaker, en tjänst för att bygga, träna och distribuera ML-modeller
- AWS stegfunktioner, en serverlös visuell arbetsflödestjänst med låg kod som används för att orkestrera och automatisera processer
- Amazon EventBridge, en serverlös händelsebuss
- AWS Lambda, en serverlös datortjänst som låter dig köra kod utan att tillhandahålla eller hantera servrar
Vi förklarar också hur vi tillämpade denna referensarkitektur för att starta upp nya ML-projekt i vårt företag.
Utmaningen
Under de senaste fyra åren har flera branscher över Cepsa startat ML-projekt, men snart började vissa problem och begränsningar uppstå.
Vi hade ingen referensarkitektur för ML, så varje projekt följde en annan implementeringsväg och utförde ad hoc-modellutbildning och implementering. Utan en gemensam metod för att hantera projektkod och parametrar och utan ett ML-modellregister eller versioneringssystem förlorade vi spårbarheten mellan datauppsättningar, kod och modeller.
Vi upptäckte också utrymme för förbättringar i hur vi körde modeller i produktionen, eftersom vi inte övervakade utplacerade modeller och därför inte hade möjlighet att spåra modellprestanda. Som en följd av detta omskolade vi vanligtvis modeller utifrån tidsscheman, eftersom vi saknade rätt mått för att fatta välgrundade omskolningsbeslut.
Lösningen
Med utgångspunkt från de utmaningar vi var tvungna att övervinna, designade vi en generell lösning som syftade till att frikoppla dataförberedelse, modellträning, slutledning och modellövervakning, och innehöll ett centraliserat modellregister. På så sätt förenklade vi hanteringen av miljöer över flera AWS-konton, samtidigt som vi introducerade centraliserad modellspårbarhet.
Våra datavetare och utvecklare använder AWS Cloud9 (en moln-IDE för att skriva, köra och felsöka kod) för datatvistning och ML-experimentering och GitHub som Git-kodarkivet.
Ett automatiskt träningsarbetsflöde använder koden som byggts av datavetenskapsteamet för att träna modeller på SageMaker och att registrera utdatamodeller i modellregistret.
Ett annat arbetsflöde hanterar modelldistribution: det hämtar referensen från modellregistret och skapar en slutpunkt för slutledning med SageMaker modellvärdfunktioner.
Vi implementerade både modellutbildning och implementeringsarbetsflöden med hjälp av Step Functions, eftersom det gav ett flexibelt ramverk som möjliggör skapandet av specifika arbetsflöden för varje projekt och orkestrerar olika AWS-tjänster och komponenter på ett enkelt sätt.
Dataförbrukningsmodell
I Cepsa använder vi en serie datasjöar för att täcka olika affärsbehov, och alla dessa datasjöar delar en gemensam datakonsumtionsmodell som gör det lättare för dataingenjörer och datavetare att hitta och konsumera den data de behöver.
För att enkelt hantera kostnader och ansvar är datasjömiljöer helt separerade från dataproducent- och konsumentapplikationer och distribueras i olika AWS-konton som tillhör en gemensam AWS-organisation.
Data som används för att träna ML-modeller och data som används som slutledningsindata för tränade modeller görs tillgängliga från de olika datasjöarna genom en uppsättning väldefinierade API:er med Amazon API Gateway, en tjänst för att skapa, publicera, underhålla, övervaka och säkra API:er i stor skala. API-backend använder Amazonas Athena (en interaktiv frågetjänst för att analysera data med standard SQL) för att komma åt data som redan är lagrad i Amazon enkel lagringstjänst (Amazon S3) och katalogiserad i AWS-lim Datakatalog.
Följande diagram ger en allmän översikt över Cepsas MLOps-arkitektur.
Modellutbildning
Utbildningsprocessen är oberoende för varje modell och hanteras av en Step Functions standard arbetsflöde, vilket ger oss flexibilitet att modellera processer utifrån olika projektkrav. Vi har en definierad basmall som vi återanvänder i de flesta projekt, och utför mindre justeringar vid behov. Till exempel har vissa projektägare bestämt sig för att lägga till manuella grindar för att godkänna implementeringar av nya produktionsmodeller, medan andra projektägare har implementerat sina egna feldetekterings- och försök igen.
Vi utför även transformationer på de indatauppsättningar som används för modellträning. För detta ändamål använder vi Lambda-funktioner som är integrerade i utbildningens arbetsflöden. I vissa scenarier där mer komplexa datatransformationer krävs kör vi in vår kod Amazon Elastic Container Service (Amazon ECS) den AWS Fargate, en serverlös beräkningsmotor för att köra containrar.
Vårt datavetenskapsteam använder anpassade algoritmer ofta, så vi drar fördel av möjligheten att använda anpassade behållare i SageMaker modellutbildning, förlita sig på Amazon Elastic Container Registry (Amazon ECR), ett fullständigt hanterat containerregister som gör det enkelt att lagra, hantera, dela och distribuera containeravbildningar.
De flesta av våra ML-projekt är baserade på Scikit-learn-biblioteket, så vi har utökat standarden SageMaker Scikit-lär behållare att inkludera de miljövariabler som krävs för projektet, såsom Git-förvaret och distributionsalternativ.
Med detta tillvägagångssätt behöver våra datavetare bara fokusera på att utveckla träningsalgoritmen och att specificera de bibliotek som krävs av projektet. När de trycker kodändringar till Git-förvaret, kommer vårt CI/CD-system (Jenkins värd på AWS) bygger behållaren med träningskoden och biblioteken. Denna behållare skjuts till Amazon ECR och skickas slutligen som en parameter till SageMaker-utbildningsanropet.
När träningsprocessen är klar lagras den resulterande modellen i Amazon S3, en referens läggs till i modellregistret och all insamlad information och mätvärden sparas i experimentkatalogen. Detta säkerställer full reproducerbarhet eftersom algoritmkoden och biblioteken är länkade till den tränade modellen tillsammans med data som är kopplade till experimentet.
Följande diagram illustrerar modellens tränings- och omskolningsprocessen.
Modelldistribution
Arkitekturen är flexibel och tillåter både automatiska och manuella driftsättningar av de tränade modellerna. Arbetsflödet för modelldeployer anropas automatiskt med hjälp av en händelse som SageMaker-utbildningen publicerar i EventBridge efter avslutad utbildning, men den kan även anropas manuellt vid behov, genom att skicka rätt modellversion från modellregistret. För mer information om automatisk anrop, se Automatisera Amazon SageMaker med Amazon EventBridge.
Modelldistributörens arbetsflöde hämtar modellinformationen från modellregistret och använder AWS molnformation, en hanterad infrastruktur som kodtjänst, för att antingen distribuera modellen till en slutpunkt i realtid eller utföra batch-inferens med en lagrad indatauppsättning, beroende på projektets krav.
Närhelst en modell implementeras framgångsrikt i en miljö uppdateras modellregistret med en ny tagg som anger i vilka miljöer modellen körs. Varje gång en slutpunkt tas bort tas dess tagg också bort från modellregistret.
Följande diagram visar arbetsflödet för modelldistribution och slutledning.
Experiment och modellregister
Att lagra varje experiment och modellversion på en enda plats och ha ett centraliserat kodlager gör det möjligt för oss att koppla bort modellträning och implementering och att använda olika AWS-konton för varje projekt och miljö.
Alla experimentposter lagrar commit ID för träningen och slutledningskoden, så vi har fullständig spårbarhet av hela experimentprocessen och kan enkelt jämföra olika experiment. Detta hindrar oss från att utföra dubbelarbete på den vetenskapliga utforskningsfasen för algoritmer och modeller, och gör det möjligt för oss att distribuera våra modeller var som helst, oberoende av kontot och miljön där modellen tränades. Detta gäller även för modeller som tränats i vår AWS Cloud9-experimentmiljö.
Sammantaget har vi helt automatiserade modelltränings- och distributionspipelines och har flexibiliteten att utföra snabba manuella modelldistributioner när något inte fungerar som det ska eller när ett team behöver en modell distribuerad till en annan miljö för experimentändamål.
Ett detaljerat användningsfall: YET Dragon-projektet
YET Dragon-projektet syftar till att förbättra produktionsprestandan för Cepsas petrokemiska fabrik i Shanghai. För att uppnå detta mål studerade vi produktionsprocessen grundligt och letade efter de mindre effektiva stegen. Vårt mål var att öka utbyteseffektiviteten för processerna genom att hålla komponentkoncentrationen exakt under en tröskel.
För att simulera denna process byggde vi fyra generaliserade additivmodeller eller GAM, linjära modeller vars svar beror på smidiga funktioner hos prediktorvariabler, för att förutsäga resultaten av två oxidationsprocesser, en koncentrationsprocess och det tidigare nämnda utbytet. Vi byggde också en optimerare för att bearbeta resultaten från de fyra GAM-modellerna och hitta de bästa optimeringarna som skulle kunna tillämpas i anläggningen.
Även om våra modeller är tränade med historiska data, kan anläggningen ibland fungera under omständigheter som inte registrerades i träningsdatauppsättningen; vi förväntar oss att våra simuleringsmodeller inte kommer att fungera bra under dessa scenarier, så vi byggde också två avvikelsedetekteringsmodeller med hjälp av Isolation Forests-algoritmer, som avgör hur långt datapunkterna är till resten av data för att detektera avvikelserna. Dessa modeller hjälper oss att upptäcka sådana situationer för att inaktivera de automatiska optimeringsprocesserna när detta händer.
Industriella kemiska processer är mycket varierande och ML-modellerna måste vara väl anpassade till anläggningens drift, så frekvent omskolning krävs liksom spårbarhet av modellerna som används i varje situation. ÄNNU Dragon var vårt första ML-optimeringsprojekt som innehöll ett modellregister, fullständig reproducerbarhet av experimenten och en helt hanterad automatiserad träningsprocess.
Nu är den kompletta pipeline som tar en modell i produktion (datatransformation, modellträning, experimentspårning, modellregister och modelldistribution) oberoende för varje ML-modell. Detta gör det möjligt för oss att förbättra modeller iterativt (till exempel lägga till nya variabler eller testa nya algoritmer) och koppla tränings- och implementeringsstadierna till olika triggers.
Resultaten och framtida förbättringar
Vi kan för närvarande automatiskt träna, distribuera och spåra de sex ML-modellerna som används i YET Dragon-projektet, och vi har redan distribuerat över 30 versioner för var och en av produktionsmodellerna. Denna MLOps-arkitektur har utökats till hundratals ML-modeller i andra projekt över hela företaget.
Vi planerar att fortsätta lansera nya YET-projekt baserade på denna arkitektur, som har minskat projektets genomsnittliga varaktighet med 25 %, tack vare minskningen av bootstrapping-tiden och automatiseringen av ML-pipelines. Vi har också uppskattat besparingar på cirka 300,000 XNUMX € per år tack vare ökningen i avkastning och koncentration som är ett direkt resultat av YET Dragon-projektet.
Den kortsiktiga utvecklingen av denna MLOps-arkitektur går mot modellövervakning och automatiserad testning. Vi planerar att automatiskt testa modelleffektivitet mot tidigare distribuerade modeller innan en ny modell distribueras. Vi arbetar också med implementeringen av modellövervakning och slutledningsövervakning av datadrift med Amazon SageMaker modellmonitor, för att automatisera modellomskolning.
Slutsats
Företag står inför utmaningen att få sina ML-projekt till produktion på ett automatiserat och effektivt sätt. Att automatisera hela ML-modellens livscykel hjälper till att minska projekttiden och garanterar bättre modellkvalitet och snabbare och mer frekventa distributioner till produktionen.
Genom att utveckla en standardiserad MLOps-arkitektur som har anammats av olika företag över hela företaget, kunde vi på Cepsa påskynda ML-projektstart och förbättra ML-modellkvaliteten, vilket ger ett tillförlitligt och automatiserat ramverk på vilket våra datavetenskapsteam kan förnya snabbare .
För mer information om MLOps på SageMaker, besök Amazon SageMaker för MLOps och kolla in andra kundanvändningsfall i AWS-maskininlärningsblogg.
Om författarna
Guillermo Ribeiro Jiménez är Sr Data Scientist vid Cepsa med en doktorsexamen. i kärnfysik. Han har 6 års erfarenhet av datavetenskapliga projekt, främst inom telekom- och energibranschen. Han leder för närvarande dataforskarteam på Cepsas avdelning för digital transformation, med fokus på skalning och produktisering av maskininlärningsprojekt.
Guillermo Menéndez Corral är en lösningsarkitekt på AWS Energy and Utilities. Han har över 15 års erfarenhet av att designa och bygga SW-applikationer, och ger för närvarande arkitektonisk vägledning till AWS-kunder inom energibranschen, med fokus på analys och maskininlärning.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: https://aws.amazon.com/blogs/machine-learning/how-cepsa-used-amazon-sagemaker-and-aws-step-functions-to-industrialize-their-ml-projects-and-operate- deras-modeller-i-skala/
- "
- 000
- 100
- 15 år
- a
- förmåga
- Om oss
- tillgång
- Konto
- Uppnå
- tvärs
- Ad
- lagt till
- Fördel
- mot
- algoritm
- algoritmer
- Alla
- tillåter
- redan
- amason
- bland
- analytics
- analysera
- var som helst
- api
- API: er
- tillämpningar
- tillämpas
- tillvägagångssätt
- godkänna
- arkitektoniska
- arkitektur
- runt
- associerad
- automatisera
- Automatiserad
- Automat
- automatiskt
- automatisera
- Automation
- tillgänglig
- AWS
- därför att
- passande
- innan
- Där vi får lov att vara utan att konstant prestera,
- nedan
- BÄST
- Blogg
- SLUTRESULTAT
- Byggnad
- bygger
- företag
- företag
- Vid
- fall
- centraliserad
- vissa
- utmanar
- utmaningar
- kemisk
- cloud
- koda
- förbinda
- Gemensam
- företag
- fullborda
- fullständigt
- komplex
- komponent
- komponenter
- Compute
- koncentration
- Kontakta
- konsumera
- Konsumenten
- konsumtion
- Behållare
- Behållare
- Kostar
- kunde
- täcka
- skapa
- skapar
- skapande
- För närvarande
- beställnings
- kund
- Kunder
- datum
- datavetenskap
- datavetare
- beslutade
- beslut
- beroende
- beror
- distribuera
- utplacerade
- utplacering
- distributioner
- utformade
- design
- detaljerad
- detekterad
- Detektering
- Bestämma
- utvecklare
- utveckla
- olika
- digital
- digital Transformation
- rikta
- diskutera
- drake
- varje
- lätt
- effektivitet
- effektiv
- smärgel
- möjliggör
- Slutpunkt
- energi
- Motor
- Ingenjörer
- Miljö
- Utrustning
- beräknad
- händelse
- Utvecklingen
- exakt
- exempel
- förvänta
- erfarenhet
- experimentera
- utforskning
- vänd
- SNABB
- snabbare
- Leverans
- skisserat
- Slutligen
- Förnamn
- Flexibilitet
- flexibel
- Fokus
- efter
- Ramverk
- från
- full
- funktioner
- framtida
- grindar
- Allmänt
- gå
- GitHub
- Välgörenhet
- Målet
- hantera
- har
- hjälpa
- hjälper
- höggradigt
- historisk
- innehar
- värd
- värd
- Hur ser din drömresa ut
- HTTPS
- Hundratals
- bilder
- genomförande
- genomföras
- förbättra
- förbättring
- förbättra
- I andra
- innefattar
- Öka
- oberoende
- oberoende av
- industriell
- industrin
- informationen
- informeras
- Infrastruktur
- Innovation
- ingång
- integrerade
- interaktiva
- införa
- isolering
- problem
- IT
- Ha kvar
- hålla
- Nyckel
- lansera
- ledande
- inlärning
- Bibliotek
- rader
- läge
- du letar
- Maskinen
- maskininlärning
- gjord
- bibehålla
- underhåll
- göra
- GÖR
- hantera
- förvaltade
- hantera
- sätt
- manuell
- manuellt
- betyder
- Metrics
- ML
- modell
- modeller
- Övervaka
- övervakning
- mer
- mest
- multipel
- behov
- driva
- drift
- optimering
- Tillbehör
- beställa
- organisation
- Övriga
- egen
- ägare
- Förbi
- prestanda
- utför
- fas
- Fysik
- poäng
- förutse
- problem
- process
- processer
- producent
- Produktion
- projektet
- projekt
- förutsatt
- ger
- tillhandahålla
- publicera
- Syftet
- syfte
- sköt
- kvalitet
- realtid
- minska
- registrera
- registrerat
- pålitlig
- Repository
- Obligatorisk
- Krav
- respons
- ansvar
- REST
- resulterande
- Resultat
- Körning
- rinnande
- Skala
- skalning
- Vetenskap
- Forskare
- vetenskapsmän
- säkra
- Serier
- Server
- service
- Tjänster
- in
- shanghai
- Dela
- kortsiktigt
- Enkelt
- simulering
- enda
- Situationen
- SEX
- So
- lösning
- Lösningar
- några
- något
- specifik
- fart
- stadier
- standard
- igång
- förvaring
- lagra
- effektivisera
- Framgångsrikt
- system
- Målet
- grupp
- lag
- Telco
- testa
- Testning
- Smakämnen
- källan
- därför
- grundligt
- tröskelvärde
- Genom
- tid
- gånger
- mot
- Spårbarhet
- spår
- Spårning
- Utbildning
- Transformation
- transformationer
- övergång
- under
- us
- användning
- vanligen
- verktyg
- värde
- version
- väldefinierad
- medan
- utan
- Arbete
- arbetsflöden
- arbetssätt
- världen
- skrivning
- år
- år
- Avkastning