Optimalkan kinerja peralatan dengan data historis, Ray, dan Amazon SageMaker | Layanan Web Amazon

Optimalkan kinerja peralatan dengan data historis, Ray, dan Amazon SageMaker | Layanan Web Amazon

Kebijakan pengendalian yang efisien memungkinkan perusahaan industri meningkatkan profitabilitas mereka dengan memaksimalkan produktivitas sekaligus mengurangi waktu henti yang tidak terjadwal dan konsumsi energi. Menemukan kebijakan pengendalian yang optimal merupakan tugas yang kompleks karena sistem fisik, seperti reaktor kimia dan turbin angin, seringkali sulit untuk dimodelkan dan karena penyimpangan dalam dinamika proses dapat menyebabkan kinerja menurun seiring berjalannya waktu. Pembelajaran penguatan offline adalah strategi pengendalian yang memungkinkan perusahaan industri membangun kebijakan pengendalian sepenuhnya dari data historis tanpa memerlukan model proses yang eksplisit. Pendekatan ini tidak memerlukan interaksi dengan proses secara langsung dalam tahap eksplorasi, sehingga menghilangkan salah satu hambatan penerapan pembelajaran penguatan dalam aplikasi yang kritis terhadap keselamatan. Dalam postingan ini, kami akan membangun solusi end-to-end untuk menemukan kebijakan kontrol optimal hanya dengan menggunakan data historis Amazon SageMaker menggunakan Ray RLlib perpustakaan. Untuk mempelajari lebih lanjut tentang pembelajaran penguatan, lihat Gunakan Pembelajaran Penguatan dengan Amazon SageMaker.

Gunakan kasus

Pengendalian industri melibatkan pengelolaan sistem yang kompleks, seperti jalur produksi, jaringan energi, dan pabrik kimia, untuk memastikan operasi yang efisien dan andal. Banyak strategi pengendalian tradisional didasarkan pada aturan dan model yang telah ditentukan sebelumnya, yang seringkali memerlukan optimasi manual. Merupakan praktik standar di beberapa industri untuk memantau kinerja dan menyesuaikan kebijakan pengendalian ketika, misalnya, peralatan mulai rusak atau kondisi lingkungan berubah. Penyetelan ulang dapat memakan waktu berminggu-minggu dan mungkin memerlukan memasukkan rangsangan eksternal ke dalam sistem untuk mencatat responsnya dalam pendekatan coba-coba.

Pembelajaran penguatan telah muncul sebagai paradigma baru dalam pengendalian proses untuk mempelajari kebijakan pengendalian yang optimal melalui interaksi dengan lingkungan. Proses ini memerlukan pengelompokan data menjadi tiga kategori: 1) pengukuran yang tersedia dari sistem fisik, 2) serangkaian tindakan yang dapat diambil pada sistem, dan 3) metrik numerik (imbalan) kinerja peralatan. Sebuah kebijakan dilatih untuk menemukan tindakan, pada pengamatan tertentu, yang kemungkinan besar akan menghasilkan imbalan tertinggi di masa depan.

Dalam pembelajaran penguatan offline, seseorang dapat melatih kebijakan pada data historis sebelum menerapkannya ke dalam produksi. Algoritme yang dilatih dalam postingan blog ini disebut โ€œPembelajaran Q Konservatifโ€ (CQL). CQL berisi model โ€œaktorโ€ dan model โ€œkritikusโ€ dan dirancang untuk memprediksi kinerjanya secara konservatif setelah mengambil tindakan yang direkomendasikan. Dalam postingan ini, prosesnya didemonstrasikan dengan ilustrasi masalah kendali tiang kereta. Tujuannya adalah untuk melatih agen untuk menyeimbangkan tiang di gerobak sekaligus menggerakkan gerobak menuju lokasi tujuan yang ditentukan. Prosedur pelatihan menggunakan data offline, memungkinkan agen belajar dari informasi yang sudah ada sebelumnya. Studi kasus ini menunjukkan proses pelatihan dan efektivitasnya dalam penerapan potensial di dunia nyata.

Ikhtisar solusi

Solusi yang disajikan dalam postingan ini mengotomatiskan penerapan alur kerja ujung ke ujung untuk pembelajaran penguatan offline dengan data historis. Diagram berikut menjelaskan arsitektur yang digunakan dalam alur kerja ini. Data pengukuran dihasilkan di tepian oleh peralatan industri (di sini disimulasikan oleh sebuah AWS Lambda fungsi). Data dimasukkan ke dalam Amazon Kinesis Data Firehose, yang menyimpannya di Layanan Penyimpanan Sederhana Amazon (Amazon S3). Amazon S3 adalah solusi penyimpanan yang tahan lama, berperforma tinggi, dan berbiaya rendah yang memungkinkan Anda menyajikan data dalam jumlah besar ke proses pelatihan pembelajaran mesin.

Lem AWS mengkatalogkan data dan membuatnya dapat dikueri menggunakan Amazon Athena. Athena mengubah data pengukuran menjadi bentuk yang dapat diserap oleh algoritma pembelajaran penguatan dan kemudian mengeluarkannya kembali ke Amazon S3. Amazon SageMaker memuat data ini ke dalam tugas pelatihan dan menghasilkan model terlatih. SageMaker kemudian menyajikan model tersebut di titik akhir SageMaker. Peralatan industri kemudian dapat menanyakan titik akhir tersebut untuk menerima rekomendasi tindakan.

Gambar 1: Diagram arsitektur yang menunjukkan alur kerja pembelajaran penguatan ujung ke ujung.

Gambar 1: Diagram arsitektur yang menunjukkan alur kerja pembelajaran penguatan ujung ke ujung.

Dalam posting ini, kami akan membagi alur kerja dalam langkah-langkah berikut:

  1. Rumuskan masalahnya. Putuskan tindakan apa yang dapat diambil, pengukuran apa yang menjadi dasar rekomendasi, dan tentukan secara numerik seberapa baik setiap tindakan dilakukan.
  2. Siapkan datanya. Ubah tabel pengukuran menjadi format yang dapat digunakan oleh algoritma pembelajaran mesin.
  3. Latih algoritme pada data itu.
  4. Pilih pelaksanaan pelatihan terbaik berdasarkan metrik pelatihan.
  5. Terapkan model ke titik akhir SageMaker.
  6. Evaluasi kinerja model dalam produksi.

Prasyarat

Untuk menyelesaikan panduan ini, Anda perlu memiliki Akun AWS dan antarmuka baris perintah dengan AWS SAM diinstal. Ikuti langkah-langkah berikut untuk menerapkan templat AWS SAM untuk menjalankan alur kerja ini dan menghasilkan data pelatihan:

  1. Unduh repositori kode dengan perintah
    git clone https://github.com/aws-samples/sagemaker-offline-reinforcement-learning-ray-cql

  2. Ubah direktori ke repo:
    cd sagemaker-offline-reinforcement-learning-ray-cql

  3. Bangun repo:
    sam build --use-container

  4. Terapkan repo
    sam deploy --guided --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND

  5. Gunakan perintah berikut untuk memanggil skrip bash, yang menghasilkan data tiruan menggunakan fungsi AWS Lambda.
    1. sudo yum install jq
    2. cd utils
    3. sh generate_mock_data.sh

Panduan solusi

Merumuskan masalah

Sistem kami dalam postingan blog ini adalah gerobak dengan tiang seimbang di atasnya. Sistem bekerja dengan baik bila tiangnya tegak, dan posisi kereta dekat dengan posisi gawang. Pada langkah prasyarat, kami menghasilkan data historis dari sistem ini.

Tabel berikut menunjukkan data historis yang dikumpulkan dari sistem.

Posisi gerobak Kecepatan gerobak Sudut tiang Kecepatan sudut kutub Posisi tujuan Kekuatan eksternal Pahala Waktu
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

Anda dapat menanyakan informasi sistem historis menggunakan Amazon Athena dengan kueri berikut:

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

Keadaan sistem ini ditentukan oleh posisi kereta, kecepatan kereta, sudut tiang, kecepatan sudut tiang, dan posisi gawang. Tindakan yang dilakukan pada setiap langkah waktu merupakan gaya luar yang diterapkan pada kereta. Lingkungan simulasi menghasilkan nilai reward yang lebih tinggi ketika gerobak lebih dekat ke posisi gawang dan tiang lebih tegak.

Siapkan data

Untuk menyajikan informasi sistem ke model pembelajaran penguatan, ubahlah menjadi objek JSON dengan kunci yang mengkategorikan nilai ke dalam kategori status (juga disebut observasi), tindakan, dan penghargaan. Simpan objek ini di Amazon S3. Berikut contoh objek JSON yang dihasilkan dari langkah waktu pada tabel sebelumnya.

{โ€œ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]]}

Tumpukan AWS CloudFormation berisi output yang disebut AthenaQueryToCreateJsonFormatedData. Jalankan kueri ini di Amazon Athena untuk melakukan transformasi dan menyimpan objek JSON di Amazon S3. Algoritme pembelajaran penguatan menggunakan struktur objek JSON ini untuk memahami nilai mana yang menjadi dasar rekomendasi dan hasil dari pengambilan tindakan dalam data historis.

Agen kereta api

Sekarang kita dapat memulai tugas pelatihan untuk menghasilkan model rekomendasi tindakan yang terlatih. Amazon SageMaker memungkinkan Anda meluncurkan beberapa tugas pelatihan dengan cepat untuk melihat bagaimana berbagai konfigurasi memengaruhi model terlatih yang dihasilkan. Panggil fungsi Lambda dengan nama TuningJobLauncherFunction untuk memulai tugas penyetelan hyperparameter yang bereksperimen dengan empat set hyperparameter berbeda saat melatih algoritme.

Pilih latihan terbaik yang dijalankan

Untuk menemukan tugas pelatihan mana yang menghasilkan model terbaik, periksa kurva kerugian yang dihasilkan selama pelatihan. Model kritik CQL memperkirakan kinerja aktor (disebut nilai Q) setelah mengambil tindakan yang direkomendasikan. Bagian dari fungsi kerugian kritikus mencakup kesalahan perbedaan temporal. Metrik ini mengukur akurasi nilai Q kritikus. Carilah pelatihan yang dijalankan dengan nilai Q rata-rata yang tinggi dan kesalahan perbedaan temporal yang rendah. Makalah ini, Alur Kerja untuk Pembelajaran Penguatan Robot Tanpa Model Offline, merinci cara memilih latihan terbaik. Repositori kode memiliki file, /utils/investigate_training.py, yang membuat gambar html plot yang menjelaskan pekerjaan pelatihan terbaru. Jalankan file ini dan gunakan hasilnya untuk memilih proses pelatihan terbaik.

Kita dapat menggunakan nilai mean Q untuk memprediksi performa model yang dilatih. Nilai Q dilatih untuk memprediksi secara konservatif jumlah diskon nilai imbalan di masa depan. Untuk proses yang berjalan lama, kita dapat mengonversi angka ini menjadi rata-rata tertimbang secara eksponensial dengan mengalikan nilai Q dengan (1- โ€œtingkat diskontoโ€). Pelatihan terbaik yang dijalankan dalam rangkaian ini mencapai nilai rata-rata Q sebesar 539. Tingkat diskon kami adalah 0.99, sehingga model memperkirakan setidaknya 5.39 imbalan rata-rata per langkah waktu. Anda dapat membandingkan nilai ini dengan kinerja sistem historis untuk mengetahui apakah model baru akan mengungguli kebijakan kontrol historis. Dalam eksperimen ini, rata-rata imbalan per langkah waktu dari data historis adalah 4.3, sehingga model CQL memperkirakan kinerja 25 persen lebih baik daripada yang dicapai sistem secara historis.

Terapkan model

Titik akhir Amazon SageMaker memungkinkan Anda menyajikan model pembelajaran mesin dalam beberapa cara berbeda untuk memenuhi berbagai kasus penggunaan. Dalam postingan ini, kami akan menggunakan tipe titik akhir tanpa server sehingga titik akhir kami secara otomatis diskalakan sesuai permintaan, dan kami hanya membayar penggunaan komputasi saat titik akhir menghasilkan inferensi. Untuk menyebarkan titik akhir tanpa server, sertakan a ProductionVariantServerlessConfig dalam varian produksi dari SageMaker konfigurasi titik akhir. Cuplikan kode berikut menunjukkan bagaimana titik akhir tanpa server dalam contoh ini diterapkan menggunakan kit pengembangan perangkat lunak Amazon SageMaker untuk Python. Temukan kode sampel yang digunakan untuk menerapkan model di sagemaker-offline-penguatan-pembelajaran-ray-cql.

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

File model yang dilatih terletak di artefak model S3 untuk setiap pelatihan yang dijalankan. Untuk menerapkan model pembelajaran mesin, temukan file model dari proses pelatihan terbaik, dan panggil fungsi Lambda bernama โ€œModelDeployerFunctionโ€ dengan peristiwa yang berisi data model ini. Fungsi Lambda akan meluncurkan titik akhir tanpa server SageMaker untuk melayani model yang dilatih. Contoh acara yang akan digunakan saat memanggil โ€œModelDeployerFunction"

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

Evaluasi kinerja model yang dilatih

Saatnya melihat performa model terlatih kita dalam produksi! Untuk memeriksa performa model baru, panggil fungsi Lambda bernama โ€œRunPhysicsSimulationFunctionโ€ dengan nama titik akhir SageMaker di acara tersebut. Ini akan menjalankan simulasi menggunakan tindakan yang direkomendasikan oleh titik akhir. Contoh acara yang akan digunakan saat memanggil RunPhysicsSimulatorFunction:

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

Gunakan kueri Athena berikut untuk membandingkan performa model yang dilatih dengan performa sistem historis.

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

Berikut adalah contoh tabel hasil. Kami melihat model yang dilatih memperoleh imbalan 2.5x lebih banyak dibandingkan data historis! Selain itu, performa model sebenarnya 2x lebih baik dibandingkan prediksi performa konservatif.

Sumber tindakan Imbalan rata-rata per langkah waktu
trained_model 10.8
historic_data 4.3

Animasi berikut menunjukkan perbedaan antara episode sampel dari data pelatihan dan episode saat model terlatih digunakan untuk memilih tindakan yang akan diambil. Dalam animasinya, kotak biru adalah gerobak, garis biru adalah tiang, dan persegi panjang hijau adalah lokasi tujuan. Panah merah menunjukkan gaya yang diterapkan pada kereta pada setiap langkah waktu. Panah merah pada data pelatihan cukup melompat maju mundur karena data dihasilkan menggunakan 50 persen tindakan ahli dan 50 persen tindakan acak. Model yang dilatih mempelajari kebijakan pengendalian yang menggerakkan kereta dengan cepat ke posisi tujuan, dengan tetap menjaga stabilitas, sepenuhnya dari pengamatan demonstrasi yang tidak ahli.

Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

 Membersihkan

Untuk menghapus sumber daya yang digunakan dalam alur kerja ini, navigasikan ke bagian sumber daya tumpukan Amazon CloudFormation dan hapus bucket S3 dan IAM role. Kemudian hapus tumpukan CloudFormation itu sendiri.

Kesimpulan

Pembelajaran penguatan offline dapat membantu perusahaan industri mengotomatiskan pencarian kebijakan optimal tanpa mengorbankan keselamatan dengan menggunakan data historis. Untuk menerapkan pendekatan ini dalam operasi Anda, mulailah dengan mengidentifikasi pengukuran yang membentuk sistem yang ditentukan negara, tindakan yang dapat Anda kendalikan, dan metrik yang menunjukkan kinerja yang diinginkan. Lalu, akses repositori GitHub ini untuk implementasi solusi end-to-end otomatis menggunakan Ray dan Amazon SageMaker.

Postingan ini hanya menjelaskan sekilas tentang apa yang dapat Anda lakukan dengan Amazon SageMaker RL. Cobalah, dan kirimkan masukan kepada kami, baik di Forum diskusi Amazon SageMaker atau melalui kontak AWS biasa Anda.


Tentang Penulis

Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Walt Mayfield adalah Arsitek Solusi di AWS dan membantu perusahaan energi beroperasi dengan lebih aman dan efisien. Sebelum bergabung dengan AWS, Walt bekerja sebagai Insinyur Operasi di Hilcorp Energy Company. Dia suka berkebun dan menerbangkan ikan di waktu luangnya.

Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Felipe Lopez adalah Arsitek Solusi Senior di AWS dengan konsentrasi Operasi Produksi Minyak & Gas. Sebelum bergabung dengan AWS, Felipe bekerja dengan GE Digital dan Schlumberger, di mana ia berfokus pada pemodelan dan pengoptimalan produk untuk aplikasi industri.

Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Yingwei Yu adalah Ilmuwan Terapan di Generative AI Incubator, AWS. Dia memiliki pengalaman bekerja dengan beberapa organisasi di berbagai industri dalam berbagai pembuktian konsep dalam pembelajaran mesin, termasuk pemrosesan bahasa alami, analisis deret waktu, dan pemeliharaan prediktif. Di waktu luangnya, ia menikmati berenang, melukis, mendaki gunung, serta menghabiskan waktu bersama keluarga dan teman.

Optimize equipment performance with historical data, Ray, and Amazon SageMaker | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Haozu Wang adalah seorang ilmuwan riset di Amazon Bedrock yang berfokus pada pembuatan model fondasi Titan Amazon. Sebelumnya dia bekerja di Amazon ML Solutions Lab sebagai salah satu pimpinan Reinforcement Learning Vertical dan membantu pelanggan membangun solusi ML tingkat lanjut dengan penelitian terbaru tentang pembelajaran penguatan, pemrosesan bahasa alami, dan pembelajaran grafik. Haozhu menerima gelar PhD di bidang Teknik Listrik dan Komputer dari Universitas Michigan.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS