Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon-webservices

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon-webservices

Een efficiënt controlebeleid stelt industriële bedrijven in staat hun winstgevendheid te vergroten door de productiviteit te maximaliseren en tegelijkertijd ongeplande stilstand en energieverbruik te verminderen. Het vinden van een optimaal controlebeleid is een complexe taak omdat fysieke systemen, zoals chemische reactoren en windturbines, vaak moeilijk te modelleren zijn en omdat afwijkingen in de procesdynamiek ervoor kunnen zorgen dat de prestaties in de loop van de tijd verslechteren. Offline versterkend leren is een controlestrategie waarmee industriële bedrijven controlebeleid volledig op basis van historische gegevens kunnen opbouwen zonder de noodzaak van een expliciet procesmodel. Deze aanpak vereist geen directe interactie met het proces in een verkenningsfase, waardoor een van de barrières voor de adoptie van versterkend leren in veiligheidskritische toepassingen wordt weggenomen. In dit bericht zullen we een end-to-end-oplossing bouwen om een ​​optimaal controlebeleid te vinden met alleen historische gegevens Amazon Sage Maker met behulp van die van Ray RLlib bibliotheek. Voor meer informatie over versterkend leren, zie Gebruik versterkend leren met Amazon SageMaker.

Use cases

Industriële controle omvat het beheer van complexe systemen, zoals productielijnen, energienetwerken en chemische fabrieken, om een ​​efficiënte en betrouwbare werking te garanderen. Veel traditionele controlestrategieën zijn gebaseerd op vooraf gedefinieerde regels en modellen, die vaak handmatige optimalisatie vereisen. In sommige industrieën is het de standaardpraktijk om de prestaties te monitoren en het controlebeleid aan te passen wanneer bijvoorbeeld apparatuur begint te verslechteren of de omgevingsomstandigheden veranderen. Het opnieuw afstemmen kan weken duren en het kan nodig zijn externe excitaties in het systeem te injecteren om de respons ervan op een proefondervindelijke manier vast te leggen.

Versterkend leren is naar voren gekomen als een nieuw paradigma in procescontrole om optimaal controlebeleid te leren door interactie met de omgeving. Dit proces vereist het opsplitsen van gegevens in drie categorieën: 1) metingen die beschikbaar zijn vanuit het fysieke systeem, 2) de reeks acties die op het systeem kunnen worden ondernomen, en 3) een numerieke maatstaf (beloning) van de prestaties van apparatuur. Een beleid wordt getraind om bij een bepaalde waarneming de actie te vinden die waarschijnlijk de hoogste toekomstige beloningen zal opleveren.

Bij offline versterkend leren kan men beleid trainen op basis van historische gegevens voordat het in productie wordt genomen. Het algoritme dat in deze blogpost wordt getraind heet “Conservatief Q-leren” (CQL). CQL bevat een “actor”-model en een “critic”-model en is ontworpen om conservatief zijn eigen prestaties te voorspellen na het nemen van een aanbevolen actie. In dit bericht wordt het proces gedemonstreerd met een illustratief karrenpolencontroleprobleem. Het doel is om een ​​agent te trainen om een ​​paal op een kar te balanceren en tegelijkertijd de kar naar een aangewezen doellocatie te verplaatsen. De trainingsprocedure maakt gebruik van de offline gegevens, waardoor de agent kan leren van reeds bestaande informatie. Deze casestudy demonstreert het trainingsproces en de effectiviteit ervan in potentiële toepassingen in de echte wereld.

Overzicht oplossingen

De oplossing die in dit bericht wordt gepresenteerd, automatiseert de implementatie van een end-to-end workflow voor offline versterkend leren met historische gegevens. Het volgende diagram beschrijft de architectuur die in deze workflow wordt gebruikt. Meetgegevens worden aan de rand geproduceerd door een industrieel apparaat (hier gesimuleerd door een AWS Lambda functie). De gegevens worden in een Amazon Kinesis Data Firehose, waarin het wordt opgeslagen Amazon eenvoudige opslagservice (Amazone S3). Amazon S3 is een duurzame, performante en goedkope opslagoplossing waarmee je grote hoeveelheden gegevens kunt aanbieden aan een machine learning-trainingsproces.

AWS lijm catalogiseert de gegevens en maakt deze bevraagbaar met behulp van Amazone Athene. Athena transformeert de meetgegevens in een vorm die een versterkend leeralgoritme kan opnemen en vervolgens weer in Amazon S3 kan laden. Amazon SageMaker laadt deze gegevens in een trainingstaak en produceert een getraind model. SageMaker levert dat model vervolgens in een SageMaker-eindpunt. De industriële apparatuur kan vervolgens dat eindpunt opvragen om actieaanbevelingen te ontvangen.

Figuur 1: Architectuurdiagram dat de end-to-end leerworkflow voor versterking toont.

Figuur 1: Architectuurdiagram dat de end-to-end leerworkflow voor versterking toont.

In dit bericht zullen we de workflow in de volgende stappen opsplitsen:

  1. Formuleer het probleem. Bepaal welke acties kunnen worden ondernomen, op welke metingen aanbevelingen moeten worden gebaseerd, en bepaal numeriek hoe goed elke actie heeft gepresteerd.
  2. Bereid de gegevens voor. Transformeer de metingentabel in een formaat dat door het machine learning-algoritme kan worden gebruikt.
  3. Train het algoritme op die gegevens.
  4. Selecteer de beste trainingsrun op basis van trainingsstatistieken.
  5. Implementeer het model op een SageMaker-eindpunt.
  6. Evalueer de prestaties van het model in productie.

Voorwaarden

Om deze walkthrough te voltooien, heeft u een AWS-account en een opdrachtregelinterface met AWS SAM geïnstalleerd. Volg deze stappen om de AWS SAM-sjabloon te implementeren om deze workflow uit te voeren en trainingsgegevens te genereren:

  1. Download de coderepository met de opdracht
    git clone https://github.com/aws-samples/sagemaker-offline-reinforcement-learning-ray-cql

  2. Wijzig de map naar de repository:
    cd sagemaker-offline-reinforcement-learning-ray-cql

  3. Bouw de repository:
    sam build --use-container

  4. Implementeer de opslagplaats
    sam deploy --guided --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND

  5. Gebruik de volgende opdrachten om een ​​bash-script aan te roepen, dat nepgegevens genereert met behulp van een AWS Lambda-functie.
    1. sudo yum install jq
    2. cd utils
    3. sh generate_mock_data.sh

Oplossingsoverzicht

Probleem formuleren

Ons systeem in deze blogpost is een karretje met een gebalanceerde paal erop. Het systeem presteert goed als de paal rechtop staat en de wagenpositie dicht bij de doelpositie is. In de vereiste stap hebben we historische gegevens uit dit systeem gegenereerd.

De volgende tabel toont historische gegevens die uit het systeem zijn verzameld.

Positie van winkelwagen Snelheid van de kar Poolhoek Hoeksnelheid van de pool Doelpositie Externe kracht Belonen Tijd
0.53 -0.79 -0.08 0.16 0.50 -0.04 11.5 5: 37: 54 PM
0.51 -0.82 -0.07 0.17 0.50 -0.04 11.9 5: 37: 55 PM
0.50 -0.84 -0.07 0.18 0.50 -0.03 12.2 5: 37: 56 PM
0.48 -0.85 -0.07 0.18 0.50 -0.03 10.5 5: 37: 57 PM
0.46 -0.87 -0.06 0.19 0.50 -0.03 10.3 5: 37: 58 PM

U kunt historische systeeminformatie opvragen met Amazon Athena met de volgende zoekopdracht:

SELECT *
FROM "AWS CloudFormation Stack Name_glue_db"."measurements_table"
ORDER BY episode_id, epoch_time ASC
limit 10;

De toestand van dit systeem wordt bepaald door de wagenpositie, wagensnelheid, poolhoek, poolhoeksnelheid en doelpositie. De actie die bij elke tijdstap wordt ondernomen, is de externe kracht die op de kar wordt uitgeoefend. De gesimuleerde omgeving levert een beloningswaarde op die hoger is als de kar dichter bij de doelpositie is en de paal meer rechtop staat.

Gegevens voorbereiden

Om de systeeminformatie aan het versterkingsleermodel te presenteren, transformeert u deze in JSON-objecten met sleutels die waarden categoriseren in de categorieën status (ook wel observatie), actie en beloning genoemd. Bewaar deze objecten in Amazon S3. Hier is een voorbeeld van JSON-objecten die zijn geproduceerd op basis van tijdstappen in de vorige tabel.

{“obs”:[[0.53,-0.79,-0.08,0.16,0.5]], “action”:[[-0.04]], “reward”:[11.5] ,”next_obs”:[[0.51,-0.82,-0.07,0.17,0.5]]}

{“obs”:[[0.51,-0.82,-0.07,0.17,0.5]], “action”:[[-0.04]], “reward”:[11.9], “next_obs”:[[0.50,-0.84,-0.07,0.18,0.5]]}

{“obs”:[[0.50,-0.84,-0.07,0.18,0.5]], “action”:[[-0.03]], “reward”:[12.2], “next_obs”:[[0.48,-0.85,-0.07,0.18,0.5]]}

De AWS CloudFormation-stack bevat een uitvoer genaamd AthenaQueryToCreateJsonFormatedData. Voer deze query uit in Amazon Athena om de transformatie uit te voeren en de JSON-objecten op te slaan in Amazon S3. Het versterkende leeralgoritme gebruikt de structuur van deze JSON-objecten om te begrijpen op welke waarden aanbevelingen moeten worden gebaseerd en wat de uitkomst is van het ondernemen van acties in de historische gegevens.

Treinagent

Nu kunnen we een trainingstaak starten om een ​​getraind actie-aanbevelingsmodel te produceren. Met Amazon SageMaker kunt u snel meerdere trainingstaken starten om te zien hoe verschillende configuraties het resulterende getrainde model beïnvloeden. Noem de Lambda-functie genaamd TuningJobLauncherFunction om een ​​taak voor het afstemmen van hyperparameters te starten die experimenteert met vier verschillende sets hyperparameters bij het trainen van het algoritme.

Selecteer de beste trainingsrun

Om erachter te komen welke van de trainingstaken het beste model opleverde, onderzoekt u de verliescurven die tijdens de training zijn geproduceerd. Het criticusmodel van CQL schat de prestaties van de acteur (een zogenaamde Q-waarde) nadat hij een aanbevolen actie heeft ondernomen. Een deel van de verliesfunctie van de criticus omvat de temporele verschilfout. Deze metriek meet de nauwkeurigheid van de Q-waarde van de criticus. Zoek naar trainingsruns met een hoge gemiddelde Q-waarde en een lage temporele verschilfout. Dit papier, Een workflow voor offline modelvrij robotversterkingsleren, details over hoe u de beste trainingsrun selecteert. De coderepository bevat een bestand, /utils/investigate_training.py, dat een plotse html-figuur creëert die de nieuwste trainingstaak beschrijft. Voer dit bestand uit en gebruik de uitvoer om de beste trainingsrun te kiezen.

We kunnen de gemiddelde Q-waarde gebruiken om de prestaties van het getrainde model te voorspellen. De Q-waarden zijn getraind om conservatief de som van verdisconteerde toekomstige beloningswaarden te voorspellen. Voor langlopende processen kunnen we dit getal omzetten naar een exponentieel gewogen gemiddelde door de Q-waarde te vermenigvuldigen met (1 – “discontovoet”). De beste trainingsrun in deze set behaalde een gemiddelde Q-waarde van 539. Onze disconteringsvoet is 0.99, dus het model voorspelt een gemiddelde beloning van ten minste 5.39 per tijdstap. U kunt deze waarde vergelijken met historische systeemprestaties om een ​​indicatie te krijgen of het nieuwe model beter zal presteren dan het historische controlebeleid. In dit experiment was de gemiddelde beloning per tijdstap van de historische gegevens 4.3, dus het CQL-model voorspelt 25 procent betere prestaties dan het systeem historisch heeft bereikt.

Model implementeren

Met Amazon SageMaker-eindpunten kunt u machine learning-modellen op verschillende manieren bedienen om aan verschillende gebruiksscenario's te voldoen. In dit bericht gebruiken we het serverloze eindpunttype, zodat ons eindpunt automatisch meeschaalt met de vraag, en we betalen alleen voor rekengebruik wanneer het eindpunt een gevolgtrekking genereert. Als u een serverloos eindpunt wilt implementeren, voegt u een ProductieVariantServerlessConfig in de productie variant van de SalieMaker eindpunt configuratie. Het volgende codefragment laat zien hoe het serverloze eindpunt in dit voorbeeld wordt geïmplementeerd met behulp van de Amazon SageMaker-softwareontwikkelingskit voor Python. Zoek de voorbeeldcode die wordt gebruikt om het model te implementeren op sagemaker-offline-versterking-leren-ray-cql.

predictor = model.deploy( serverless_inference_config=ServerlessInferenceConfig( memory_size_in_mb=2048, max_concurrency=200 ), <…>
)

De getrainde modelbestanden bevinden zich voor elke trainingsuitvoering bij de S3-modelartefacten. Om het machine learning-model te implementeren, zoekt u de modelbestanden van de beste trainingsrun en roept u de Lambda-functie met de naam "ModelDeployerFunction” met een gebeurtenis die deze modelgegevens bevat. De Lambda-functie start een serverloos eindpunt van SageMaker om het getrainde model te bedienen. Voorbeeldgebeurtenis om te gebruiken bij het aanroepen van de “ModelDeployerFunction"

{ "DescribeTrainingJob": { "ModelArtifacts": { "S3ModelArtifacts": "s3://your-bucket/training/my-training-job/output/model.tar.gz"} } }

Evalueer de prestaties van getrainde modellen

Het is tijd om te zien hoe ons getrainde model het doet in de productie! Om de prestaties van het nieuwe model te controleren, roept u de Lambda-functie op met de naam “RunPhysicsSimulationFunction” met de SageMaker-eindpuntnaam in de gebeurtenis. Hierdoor wordt de simulatie uitgevoerd met behulp van de acties die door het eindpunt worden aanbevolen. Voorbeeldgebeurtenis die u kunt gebruiken bij het aanroepen van de RunPhysicsSimulatorFunction:

{"random_action_fraction": 0.0, "inference_endpoint_name": "sagemaker-endpoint-name"}

Gebruik de volgende Athena-query om de prestaties van het getrainde model te vergelijken met historische systeemprestaties.

WITH sum_reward_by_episode AS ( SELECT SUM(reward) as sum_reward, m_temp.action_source FROM "<AWS CloudFormation Stack Name>_glue_db"."measurements_table" m_temp GROUP BY m_temp.episode_id, m_temp.action_source ) SELECT sre.action_source, AVG(sre.sum_reward) as avg_total_reward_per_episode
FROM sum_reward_by_episode sre
GROUP BY sre.action_source
ORDER BY avg_total_reward_per_episode DESC

Hier is een voorbeeld van een resultatentabel. We zien dat het getrainde model 2.5x meer beloning heeft behaald dan de historische gegevens! Bovendien waren de werkelijke prestaties van het model tweemaal beter dan de conservatieve prestatievoorspelling.

Actie bron Gemiddelde beloning per tijdstap
trained_model 10.8
historic_data 4.3

De volgende animaties laten het verschil zien tussen een voorbeeldaflevering uit de trainingsgegevens en een aflevering waarin het getrainde model werd gebruikt om te kiezen welke actie moest worden ondernomen. In de animaties is het blauwe vak de kar, de blauwe lijn de paal en de groene rechthoek de doellocatie. De rode pijl toont de kracht die bij elke tijdstap op de kar wordt uitgeoefend. De rode pijl in de trainingsgegevens springt nogal heen en weer omdat de gegevens zijn gegenereerd met 50 procent expertacties en 50 procent willekeurige acties. Het getrainde model leerde een controlebeleid dat de kar snel naar de doelpositie brengt, terwijl de stabiliteit behouden blijft, geheel door het observeren van niet-deskundige demonstraties.

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai. Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

 Opruimen

Om bronnen te verwijderen die in deze workflow worden gebruikt, navigeert u naar het bronnengedeelte van de Amazon CloudFormation-stack en verwijdert u de S3-buckets en IAM-rollen. Verwijder vervolgens de CloudFormation-stack zelf.

Conclusie

Offline versterkend leren kan industriële bedrijven helpen de zoektocht naar optimaal beleid te automatiseren zonder de veiligheid in gevaar te brengen door gebruik te maken van historische gegevens. Om deze aanpak in uw bedrijfsvoering te implementeren, begint u met het identificeren van de metingen waaruit een door de toestand bepaald systeem bestaat, de acties die u kunt controleren en de meetgegevens die de gewenste prestaties aangeven. Dan toegang deze GitHub-opslagplaats voor de implementatie van een automatische end-to-end oplossing met behulp van Ray en Amazon SageMaker.

De post schetst slechts het oppervlak van wat u kunt doen met Amazon SageMaker RL. Probeer het eens en stuur ons alstublieft feedback, hetzij in de Amazon SageMaker-discussieforum of via uw gebruikelijke AWS-contacten.


Over de auteurs

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Walt Mayfield is Solutions Architect bij AWS en helpt energiebedrijven veiliger en efficiënter te opereren. Voordat hij bij AWS kwam, werkte Walt als Operations Engineer voor Hilcorp Energy Company. In zijn vrije tijd houdt hij van tuinieren en vissen.

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Felipe López is een Senior Solutions Architect bij AWS met een concentratie in olie- en gasproductieactiviteiten. Voordat Felipe bij AWS kwam, werkte hij bij GE Digital en Schlumberger, waar hij zich richtte op het modelleren en optimaliseren van producten voor industriële toepassingen.

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Yingwei Yu is een toegepast wetenschapper bij Generative AI Incubator, AWS. Hij heeft ervaring met het werken met verschillende organisaties in verschillende sectoren aan verschillende proofs of concept op het gebied van machinaal leren, waaronder natuurlijke taalverwerking, tijdreeksanalyse en voorspellend onderhoud. In zijn vrije tijd houdt hij van zwemmen, schilderen, wandelen en tijd doorbrengen met familie en vrienden.

Optimaliseer de prestaties van apparatuur met historische gegevens, Ray en Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Haozhu Wang is een onderzoekswetenschapper bij Amazon Bedrock die zich richt op het bouwen van de Titan Foundation-modellen van Amazon. Voorheen werkte hij bij Amazon ML Solutions Lab als co-leider van de Reinforcement Learning Vertical en hielp hij klanten bij het bouwen van geavanceerde ML-oplossingen met het nieuwste onderzoek op het gebied van versterkend leren, natuurlijke taalverwerking en grafisch leren. Haozhu promoveerde in elektrische en computertechniek aan de Universiteit van Michigan.

Tijdstempel:

Meer van AWS-machine learning