Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Веб-сервіси Amazon

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Веб-сервіси Amazon

Ефективна політика контролю дозволяє промисловим компаніям підвищити свою прибутковість шляхом максимізації продуктивності, одночасно зменшуючи позапланові простої та споживання енергії. Пошук оптимальної політики управління є складним завданням, оскільки фізичні системи, такі як хімічні реактори та вітрові турбіни, часто важко моделювати, а дрейф у динаміці процесу може призвести до погіршення продуктивності з часом. Офлайн-навчання з посиленням — це стратегія контролю, яка дозволяє промисловим компаніям будувати політику контролю повністю на основі історичних даних без потреби в явній моделі процесу. Цей підхід не вимагає взаємодії з процесом безпосередньо на етапі дослідження, що усуває одну з перешкод для впровадження навчання з підкріпленням у критично важливих для безпеки програмах. У цій публікації ми створимо наскрізне рішення для пошуку оптимальних політик контролю, використовуючи лише історичні дані Amazon SageMaker за допомогою Ray's RLlib бібліотека. Щоб дізнатися більше про навчання з підкріпленням, див Використовуйте Reinforcement Learning з Amazon SageMaker.

Use cases

Промисловий контроль передбачає керування складними системами, такими як виробничі лінії, енергетичні мережі та хімічні заводи, для забезпечення ефективної та надійної роботи. Багато традиційних стратегій контролю базуються на попередньо визначених правилах і моделях, які часто потребують ручної оптимізації. У деяких галузях стандартною практикою є моніторинг продуктивності та коригування політики контролю, коли, наприклад, обладнання починає виходити з ладу або змінюються умови навколишнього середовища. Повторне налаштування може зайняти тижні та може вимагати введення зовнішніх збуджень у систему, щоб записати її відповідь методом проб і помилок.

Навчання з підкріпленням з’явилося як нова парадигма в управлінні процесами, щоб навчитися оптимальній політиці управління шляхом взаємодії з навколишнім середовищем. Цей процес вимагає розбиття даних на три категорії: 1) вимірювання, доступні з фізичної системи, 2) набір дій, які можна виконати над системою, і 3) числова метрика (винагорода) продуктивності обладнання. Політика навчена знаходити дію, за певного спостереження, яка, ймовірно, принесе найвищі майбутні винагороди.

У офлайн-навчанні підкріплення можна навчити політику на історичних даних перед розгортанням її у виробництві. Алгоритм, навчений у цій публікації блогу, називається «Консервативне Q навчання” (CQL). CQL містить моделі «актор» і модель «критик» і розроблено для консервативного прогнозування власної продуктивності після виконання рекомендованої дії. У цьому дописі процес демонструється за допомогою ілюстративної проблеми керування візком-стовпом. Мета полягає в тому, щоб навчити агента балансувати жердиною на візку, одночасно переміщаючи візок до визначеного місця цілі. У процедурі навчання використовуються офлайн-дані, що дозволяє агенту навчатися на попередньо існуючій інформації. Цей практичний приклад демонструє процес навчання та його ефективність у потенційних реальних застосуваннях.

Огляд рішення

Рішення, представлене в цій публікації, автоматизує розгортання наскрізного робочого процесу для офлайн-навчання підкріплення з історичними даними. На наступній діаграмі описано архітектуру, яка використовується в цьому робочому процесі. Дані вимірювань виробляються на краю промисловим обладнанням (тут імітується за допомогою AWS Lambda функція). Дані вводяться в Амазонський кінезіс Data Firehose, де вони зберігаються Служба простого зберігання Amazon (Amazon S3). Amazon S3 — це довговічне, продуктивне та недороге рішення для зберігання даних, яке дозволяє обслуговувати великі обсяги даних у навчальному процесі машинного навчання.

Клей AWS каталогізує дані та робить їх доступними для запиту Амазонка Афіна. Athena перетворює дані вимірювань у форму, яку може отримати алгоритм навчання з підкріпленням, а потім вивантажує їх назад в Amazon S3. Amazon SageMaker завантажує ці дані в навчальну роботу та створює навчену модель. Потім SageMaker обслуговує цю модель у кінцевій точці SageMaker. Потім промислове обладнання може запитувати цю кінцеву точку, щоб отримати рекомендації щодо дій.

Малюнок 1. Діаграма архітектури, що демонструє наскрізний процес навчання підкріплення.

Малюнок 1. Діаграма архітектури, що демонструє наскрізний процес навчання підкріплення.

У цій публікації ми розберемо робочий процес на наступні етапи:

  1. Сформулюйте задачу. Вирішіть, які дії можна виконати, на основі яких вимірювань давати рекомендації та чисельно визначити, наскільки добре виконана кожна дія.
  2. Підготуйте дані. Перетворіть таблицю вимірювань у формат, який може використовувати алгоритм машинного навчання.
  3. Навчіть алгоритм на цих даних.
  4. Виберіть найкращий тренувальний запуск на основі навчальних показників.
  5. Розгорніть модель на кінцевій точці SageMaker.
  6. Оцініть роботу моделі у виробництві.

Передумови

Щоб виконати це покрокове керівництво, вам потрібно мати Обліковий запис AWS та інтерфейс командного рядка з Встановлено AWS SAM. Виконайте наведені нижче дії, щоб розгорнути шаблон AWS SAM для запуску цього робочого циклу та створення навчальних даних:

  1. Завантажте сховище коду з командою
    git clone https://github.com/aws-samples/sagemaker-offline-reinforcement-learning-ray-cql

  2. Змініть каталог на репо:
    cd sagemaker-offline-reinforcement-learning-ray-cql

  3. Створіть репо:
    sam build --use-container

  4. Розгорніть репо
    sam deploy --guided --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND

  5. Використовуйте наступні команди, щоб викликати сценарій bash, який генерує макет даних за допомогою функції AWS Lambda.
    1. sudo yum install jq
    2. cd utils
    3. sh generate_mock_data.sh

Покрокове керівництво

Сформулюйте проблему

Наша система в цьому дописі блогу — це візок із жердиною, збалансованою зверху. Система добре працює, коли жердина стоїть у вертикальному положенні, а візок знаходиться близько до позиції воріт. На попередньому кроці ми створили історичні дані з цієї системи.

У наведеній нижче таблиці показано історичні дані, зібрані з системи.

Позиція кошика Швидкість візка Полюсний кут Полюсна кутова швидкість Гольова позиція Зовнішня сила Винагороджувати Time
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

Ви можете отримати історичну інформацію про систему за допомогою Amazon Athena за допомогою такого запиту:

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

Стан цієї системи визначається положенням візка, швидкістю візка, полюсним кутом, полюсною кутовою швидкістю та положенням цілі. Дія, що виконується на кожному кроці часу, є зовнішньою силою, прикладеною до візка. Змодельоване середовище виводить значення винагороди, яке є вищим, коли візок знаходиться ближче до цільової позиції, а жердина стоїть вертикальніше.

Підготуйте дані

Щоб представити системну інформацію в моделі навчання з підкріпленням, перетворіть її в об’єкти JSON із ключами, які класифікують цінності за категоріями стану (також називаються спостереженням), дії та винагороди. Зберігайте ці об’єкти в Amazon S3. Ось приклад об’єктів JSON, створених із часових кроків у попередній таблиці.

{“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]]}

Стек AWS CloudFormation містить вихід, який називається AthenaQueryToCreateJsonFormatedData. Запустіть цей запит в Amazon Athena, щоб виконати перетворення та зберегти об’єкти JSON в Amazon S3. Алгоритм навчання з підкріпленням використовує структуру цих об’єктів JSON, щоб зрозуміти, на яких значеннях базувати рекомендації, і результат виконання дій у історичних даних.

Агент поїзда

Тепер ми можемо розпочати навчальну роботу для створення навченої моделі рекомендацій щодо дій. Amazon SageMaker дозволяє швидко запускати кілька навчальних завдань, щоб побачити, як різні конфігурації впливають на отриману навчену модель. Викличте лямбда-функцію з іменем TuningJobLauncherFunction щоб почати роботу з налаштування гіперпараметрів, яка експериментує з чотирма різними наборами гіперпараметрів під час навчання алгоритму.

Виберіть найкращий тренувальний пробіг

Щоб визначити, яке з навчальних завдань створило найкращу модель, дослідіть криві втрат, створені під час навчання. Критична модель CQL оцінює продуктивність актора (називається значенням Q) після виконання рекомендованої дії. Частина функції втрат критика включає помилку часової різниці. Цей показник вимірює точність значення Q критика. Шукайте тренувальні цикли з високим середнім значенням Q і низькою похибкою тимчасової різниці. Цей папір, Робочий процес для офлайн-безмодельного роботизованого підсилювального навчання, детально описано, як вибрати найкращу тренувальну пробіжку. У сховищі коду є файл, /utils/investigate_training.py, що створює графічну HTML-фігуру, що описує останню навчальну роботу. Запустіть цей файл і використовуйте результат, щоб вибрати найкращий тренувальний запуск.

Ми можемо використовувати середнє значення Q для прогнозування продуктивності навченої моделі. Значення Q навчені консервативно прогнозувати суму дисконтованих значень майбутніх винагород. Для тривалих процесів ми можемо перетворити це число на експоненціально зважене середнє, помноживши значення Q на (1-«ставка дисконту»). Найкраще тренування в цьому наборі досягло середнього значення Q 539. Наша ставка дисконту становить 0.99, тому модель передбачає принаймні 5.39 середньої винагороди за часовий крок. Ви можете порівняти це значення з хронологічною продуктивністю системи, щоб визначити, чи перевершить нова модель історичну політику керування. У цьому експерименті середня винагорода історичних даних за часовий крок становила 4.3, тому модель CQL передбачає на 25 відсотків кращу продуктивність, ніж система досягала за минулий період.

Розгорнути модель

Кінцеві точки Amazon SageMaker дозволяють обслуговувати моделі машинного навчання декількома різними способами, щоб відповідати різноманітним варіантам використання. У цій публікації ми будемо використовувати безсерверний тип кінцевої точки, щоб наша кінцева точка автоматично масштабувалася відповідно до попиту, і ми платили за використання обчислень лише тоді, коли кінцева точка генерувала висновок. Щоб розгорнути безсерверну кінцеву точку, додайте a ProductionVariantServerlessConfig в виробничий варіант SageMaker конфігурація кінцевої точки. У наведеному нижче фрагменті коду показано, як безсерверна кінцева точка в цьому прикладі розгортається за допомогою комплекту розробки програмного забезпечення Amazon SageMaker для Python. Знайдіть зразок коду, використаний для розгортання моделі, за адресою sagemaker-offline-reinforcement-learning-ray-cql.

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

Файли навченої моделі розташовані в артефактах моделі S3 для кожного тренувального прогону. Щоб розгорнути модель машинного навчання, знайдіть файли моделі найкращого навчального циклу та викличте функцію Lambda під назвою «ModelDeployerFunction” із подією, яка містить дані моделі. Функція Lambda запустить безсерверну кінцеву точку SageMaker для обслуговування навченої моделі. Приклад події для використання під час виклику "ModelDeployerFunction"

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

Оцініть продуктивність навченої моделі

Настав час подивитися, як наша тренована модель працює у виробництві! Щоб перевірити продуктивність нової моделі, викличте лямбда-функцію з назвою “RunPhysicsSimulationFunction” із назвою кінцевої точки SageMaker у події. Це запустить симуляцію з використанням дій, рекомендованих кінцевою точкою. Приклад події для використання під час виклику RunPhysicsSimulatorFunction:

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

Використовуйте наведений нижче запит Athena, щоб порівняти продуктивність навченої моделі з продуктивністю системи за попередні періоди.

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

Ось приклад таблиці результатів. Ми бачимо, що навчена модель отримала в 2.5 рази більше винагороди, ніж історичні дані! Крім того, справжня продуктивність моделі була вдвічі кращою, ніж консервативний прогноз продуктивності.

Джерело дії Середня винагорода за часовий крок
trained_model 10.8
historic_data 4.3

Наступні анімації показують різницю між зразком епізоду з навчальних даних і епізодом, де навчена модель використовувалася для вибору дії. В анімації синя коробка — це візок, синя лінія — стовп, а зелений прямокутник — це місце цілі. Червона стрілка показує силу, прикладену до візка на кожному кроці часу. Червона стрілка в тренувальних даних досить сильно стрибає вперед і назад, оскільки дані були згенеровані з використанням 50 відсотків експертних дій і 50 відсотків випадкових дій. Навчена модель навчилася політиці керування, яка швидко переміщує візок до цільової позиції, зберігаючи стабільність, повністю спостерігаючи за неекспертними демонстраціями.

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

 Прибирати

Щоб видалити ресурси, які використовуються в цьому робочому процесі, перейдіть до розділу ресурсів стека Amazon CloudFormation і видаліть сегменти S3 і ролі IAM. Потім видаліть сам стек CloudFormation.

Висновок

Офлайн-навчання з посиленням може допомогти промисловим компаніям автоматизувати пошук оптимальних політик без шкоди для безпеки за допомогою історичних даних. Щоб застосувати цей підхід у своїй діяльності, почніть з визначення вимірювань, які складають систему, що визначається станом, дій, якими ви можете керувати, і показників, які вказують на бажану продуктивність. Потім доступ це сховище GitHub для реалізації автоматичного наскрізного рішення за допомогою Ray і Amazon SageMaker.

Публікація лише дряпає поверхню того, що ви можете робити з Amazon SageMaker RL. Спробуйте й надішліть нам відгук або в Дискусійний форум Amazon SageMaker або через звичайні контакти AWS.


Про авторів

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Волт Мейфілд є архітектором рішень в AWS і допомагає енергетичним компаніям працювати безпечніше та ефективніше. До приходу в AWS Волт працював інженером з експлуатації в Hilcorp Energy Company. У вільний час любить займатися садівництвом і ловити нахлистом.

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Феліпе Лопес є старшим архітектором рішень в AWS, який спеціалізується на видобутку нафти та газу. До приходу в AWS Феліпе працював у GE Digital і Schlumberger, де він зосереджувався на моделюванні та оптимізації продуктів для промислового застосування.

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Інвей Ю є прикладним науковцем у Generative AI Incubator, AWS. Він має досвід роботи з кількома організаціями в різних галузях над різними доказами концепції в машинному навчанні, включаючи обробку природної мови, аналіз часових рядів і прогнозне обслуговування. У вільний час він захоплюється плаванням, малюванням, пішим туризмом, а також проводить час з родиною та друзями.

Оптимізуйте продуктивність обладнання за допомогою історичних даних, Ray і Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Хаочжу Ван є науковим співробітником Amazon Bedrock, який зосереджується на розробці фундаментних моделей Amazon Titan. Раніше він працював у Amazon ML Solutions Lab як співкерівник Reinforcement Learning Vertical і допомагав клієнтам створювати передові рішення ML завдяки останнім дослідженням навчання з підкріпленням, обробки природної мови та вивчення графів. Хаочжу отримав ступінь доктора філософії з електротехніки та комп’ютерної інженерії в Мічиганському університеті.

Часова мітка:

Більше від AWS Машинне навчання