Deteksi anomali dalam data manufaktur menggunakan Amazon SageMaker Canvas | Layanan Web Amazon

Deteksi anomali dalam data manufaktur menggunakan Amazon SageMaker Canvas | Layanan Web Amazon

Dengan penggunaan komputasi awan, data besar, dan alat pembelajaran mesin (ML). Amazon Athena or Amazon SageMaker telah tersedia dan dapat digunakan oleh siapa saja tanpa banyak usaha dalam pembuatan dan pemeliharaan. Perusahaan-perusahaan industri semakin memperhatikan analisis data dan pengambilan keputusan berdasarkan data untuk meningkatkan efisiensi sumber daya di seluruh portofolio mereka, mulai dari operasional hingga melakukan pemeliharaan atau perencanaan prediktif.

Karena kecepatan perubahan di bidang TI, pelanggan di industri tradisional menghadapi dilema keahlian. Di satu sisi, analis dan pakar domain memiliki pengetahuan yang sangat mendalam tentang data yang dipermasalahkan dan interpretasinya, namun sering kali kurang memahami alat ilmu data dan bahasa pemrograman tingkat tinggi seperti Python. Di sisi lain, pakar ilmu data sering kali kurang memiliki pengalaman dalam menafsirkan konten data mesin dan memfilternya berdasarkan hal-hal yang relevan. Dilema ini menghambat pembuatan model efisien yang menggunakan data untuk menghasilkan wawasan bisnis yang relevan.

Kanvas Amazon SageMaker mengatasi dilema ini dengan menyediakan antarmuka tanpa kode kepada pakar domain untuk membuat model analisis dan ML yang kuat, seperti perkiraan, klasifikasi, atau model regresi. Hal ini juga memungkinkan Anda untuk menerapkan dan berbagi model ini dengan spesialis ML dan MLOps setelah pembuatan.

Dalam postingan ini, kami menunjukkan cara menggunakan SageMaker Canvas untuk mengkurasi dan memilih fitur yang tepat dalam data Anda, lalu melatih model prediksi untuk deteksi anomali, menggunakan fungsionalitas SageMaker Canvas tanpa kode untuk penyetelan model.

Deteksi anomali untuk industri manufaktur

Pada saat penulisan, SageMaker Canvas berfokus pada kasus penggunaan bisnis umum, seperti perkiraan, regresi, dan klasifikasi. Untuk postingan ini, kami menunjukkan bagaimana kemampuan ini juga dapat membantu mendeteksi titik data abnormal yang kompleks. Kasus penggunaan ini relevan, misalnya, untuk menunjukkan malfungsi atau pengoperasian mesin industri yang tidak biasa.

Deteksi anomali penting dalam bidang industri, karena mesin (mulai dari kereta api hingga turbin) biasanya sangat andal, dengan rentang waktu kegagalan selama bertahun-tahun. Sebagian besar data dari mesin ini, seperti pembacaan sensor suhu atau pesan status, menjelaskan pengoperasian normal dan memiliki nilai terbatas untuk pengambilan keputusan. Insinyur mencari data yang tidak normal ketika menyelidiki akar penyebab suatu kesalahan atau sebagai indikator peringatan untuk kesalahan di masa depan, dan manajer kinerja memeriksa data yang tidak normal untuk mengidentifikasi potensi perbaikan. Oleh karena itu, langkah pertama menuju pengambilan keputusan berbasis data bergantung pada penemuan data yang relevan (tidak normal).

Dalam postingan ini, kami menggunakan SageMaker Canvas untuk mengkurasi dan memilih fitur yang tepat dalam data, lalu melatih model prediksi untuk deteksi anomali, menggunakan fungsionalitas tanpa kode SageMaker Canvas untuk penyetelan model. Kemudian kami menerapkan model tersebut sebagai titik akhir SageMaker.

Ikhtisar solusi

Untuk kasus penggunaan deteksi anomali, kami melatih model prediksi untuk memprediksi fitur karakteristik pengoperasian normal mesin, seperti suhu motor yang ditunjukkan di dalam mobil, dari fitur yang memengaruhi, seperti kecepatan dan torsi terkini yang diterapkan di mobil. . Untuk mendeteksi anomali pada sampel pengukuran baru, kami membandingkan prediksi model untuk fitur karakteristik dengan observasi yang diberikan.

Misalnya motor mobil, pakar domain memperoleh pengukuran suhu motor normal, torsi motor terkini, suhu lingkungan, dan faktor-faktor potensial lainnya yang mempengaruhi. Ini memungkinkan Anda melatih model untuk memprediksi suhu dari fitur lainnya. Kemudian kita dapat menggunakan model tersebut untuk memprediksi suhu motor secara teratur. Jika suhu prediksi untuk data tersebut serupa dengan suhu pengamatan dalam data tersebut, maka motor bekerja normal; ketidaksesuaian akan menunjukkan adanya anomali, seperti kegagalan sistem pendingin atau kerusakan pada motor.

Diagram berikut menggambarkan arsitektur solusi.

Ikhtisar proses: Model dibuat di SageMaker Canvas, diterapkan, lalu diakses dari AWS Lambda Funcino.

Solusinya terdiri dari empat langkah utama:

  1. Pakar domain membuat model awal, termasuk analisis data dan kurasi fitur menggunakan SageMaker Canvas.
  2. Pakar domain membagikan model melalui Registri Model Amazon SageMaker atau menyebarkannya secara langsung sebagai titik akhir waktu nyata.
  3. Pakar MLOps membuat infrastruktur inferensi dan kode yang menerjemahkan keluaran model dari prediksi menjadi indikator anomali. Kode ini biasanya berjalan di dalam sebuah AWS Lambda fungsi.
  4. Saat aplikasi memerlukan deteksi anomali, aplikasi akan memanggil fungsi Lambda, yang menggunakan model untuk inferensi dan memberikan respons (baik itu anomali atau tidak).

Prasyarat

Untuk mengikuti postingan ini, Anda harus memenuhi prasyarat berikut:

Buat model menggunakan SageMaker

Proses pembuatan model mengikuti langkah-langkah standar untuk membuat model regresi di SageMaker Canvas. Untuk informasi lebih lanjut, lihat Memulai menggunakan Amazon SageMaker Canvas.

Pertama, pakar domain memuat data yang relevan ke SageMaker Canvas, seperti serangkaian pengukuran waktu. Untuk postingan ini, kami menggunakan file CSV yang berisi pengukuran motor listrik (yang dihasilkan secara sintetis). Untuk detailnya, lihat Impor data ke Canvas. Data sampel yang digunakan tersedia untuk diunduh sebagai a CSV.

Gambar yang menunjukkan baris pertama csv. Selain itu, histogram dan metrik benchmark ditampilkan untuk model pratinjau cepat.

Kurasi data dengan SageMaker Canvas

Setelah data dimuat, pakar domain dapat menggunakan SageMaker Canvas untuk mengkurasi data yang digunakan dalam model akhir. Untuk melakukan ini, pakar memilih kolom-kolom yang berisi pengukuran karakteristik untuk masalah yang dimaksud. Lebih tepatnya, pakar memilih kolom yang terkait satu sama lain, misalnya, dengan hubungan fisik seperti kurva tekanan-suhu, dan perubahan dalam hubungan tersebut merupakan anomali yang relevan untuk kasus penggunaannya. Model deteksi anomali akan mempelajari hubungan normal antara kolom yang dipilih dan menunjukkan bila data tidak sesuai, seperti suhu motor tinggi yang tidak normal mengingat beban saat ini pada motor.

Dalam praktiknya, pakar domain perlu memilih sekumpulan kolom masukan dan kolom target yang sesuai. Input biasanya berupa kumpulan kuantitas (numerik atau kategorikal) yang menentukan perilaku mesin, mulai dari pengaturan permintaan, hingga beban, kecepatan, atau suhu sekitar. Outputnya biasanya berupa kuantitas numerik yang menunjukkan kinerja operasi mesin, seperti suhu yang mengukur disipasi energi atau metrik kinerja lainnya yang berubah ketika mesin berjalan dalam kondisi suboptimal.

Untuk mengilustrasikan konsep besaran apa yang harus dipilih untuk masukan dan keluaran, mari kita perhatikan beberapa contoh:

  • Untuk peralatan berputar, seperti model yang kami buat di postingan ini, masukan tipikalnya adalah kecepatan putaran, torsi (arus dan riwayat), dan suhu lingkungan, dan targetnya adalah suhu bantalan atau motor yang dihasilkan yang menunjukkan kondisi operasional putaran yang baik.
  • Untuk turbin angin, masukan tipikalnya adalah riwayat kecepatan angin dan pengaturan bilah rotor saat ini dan terkini, dan kuantitas targetnya adalah daya yang dihasilkan atau kecepatan putaran.
  • Untuk proses kimia, input tipikalnya adalah persentase bahan-bahan yang berbeda dan suhu lingkungan, dan targetnya adalah panas yang dihasilkan atau viskositas produk akhir.
  • Untuk peralatan bergerak seperti pintu geser, masukan tipikalnya adalah masukan daya ke motor, dan nilai targetnya adalah kecepatan atau waktu penyelesaian pergerakan.
  • Untuk sistem HVAC, masukan tipikal adalah perbedaan suhu yang dicapai dan pengaturan beban, dan kuantitas target adalah konsumsi energi yang diukur

Pada akhirnya, masukan dan target yang tepat untuk peralatan tertentu akan bergantung pada kasus penggunaan dan perilaku anomali yang ingin dideteksi, dan paling baik diketahui oleh pakar domain yang memahami seluk-beluk kumpulan data tertentu.

Dalam kebanyakan kasus, memilih input dan jumlah target yang sesuai berarti memilih kolom yang tepat saja dan menandai kolom target (untuk contoh ini, bearing_temperature). Namun, pakar domain juga dapat menggunakan fitur tanpa kode SageMaker Canvas untuk mengubah kolom dan menyaring atau menggabungkan data. Misalnya, Anda dapat mengekstrak atau memfilter tanggal atau stempel waktu tertentu dari data yang tidak relevan. SageMaker Canvas mendukung proses ini, menampilkan statistik kuantitas yang dipilih, memungkinkan Anda memahami apakah suatu kuantitas memiliki outlier dan penyebaran yang dapat memengaruhi hasil model.

Latih, sesuaikan, dan evaluasi model

Setelah pakar domain memilih kolom yang sesuai dalam kumpulan data, mereka dapat melatih model untuk mempelajari hubungan antara masukan dan keluaran. Lebih tepatnya, model akan belajar memprediksi nilai target yang dipilih dari masukan.

Biasanya, Anda dapat menggunakan SageMaker Canvas Pratinjau Model pilihan. Hal ini memberikan indikasi cepat tentang kualitas model yang diharapkan, dan memungkinkan Anda menyelidiki pengaruh berbagai masukan terhadap metrik keluaran. Misalnya, pada tangkapan layar berikut, model paling terpengaruh oleh motor_speed dan ambient_temperature metrik saat memprediksi bearing_temperature. Hal ini masuk akal, karena suhu ini berkaitan erat. Pada saat yang sama, gesekan tambahan atau kehilangan energi lainnya kemungkinan besar akan mempengaruhi hal ini.

Untuk kualitas model, RMSE model merupakan indikator seberapa baik model mampu mempelajari perilaku normal dalam data pelatihan dan mereproduksi hubungan antara ukuran input dan output. Misalnya pada model berikut, model tersebut harus mampu memprediksi dengan benar motor_bearing suhu dalam kisaran 3.67 derajat Celcius, sehingga kita dapat menganggap penyimpangan suhu sebenarnya dari prediksi model yang lebih besar dari, misalnya, 7.4 derajat sebagai anomali. Namun, ambang batas sebenarnya yang akan Anda gunakan akan bergantung pada sensitivitas yang diperlukan dalam skenario penerapan.

Grafik yang menunjukkan kecepatan motor aktual dan prediksi. Hubungannya linier dengan beberapa gangguan.

Terakhir, setelah evaluasi dan penyetelan model selesai, Anda dapat memulai pelatihan model lengkap yang akan membuat model yang akan digunakan untuk inferensi.

Menyebarkan model

Meskipun SageMaker Canvas dapat menggunakan model untuk inferensi, penerapan produktif untuk deteksi anomali mengharuskan Anda menerapkan model di luar SageMaker Canvas. Lebih tepatnya, kita perlu menerapkan model tersebut sebagai titik akhir.

Dalam postingan ini dan untuk kesederhanaan, kami menerapkan model sebagai titik akhir dari SageMaker Canvas secara langsung. Untuk instruksi, lihat Terapkan model Anda ke titik akhir. Pastikan untuk mencatat nama penerapan dan mempertimbangkan harga jenis instans yang Anda gunakan (untuk postingan ini, kami menggunakan ml.m5.large). SageMaker Canvas kemudian akan membuat titik akhir model yang dapat dipanggil untuk mendapatkan prediksi.

Jendela aplikasi yang menampilkan konfigurasi penerapan model. Pengaturan yang ditampilkan adalah ukuran mesin ml.m5.large dan nama penerapan model-anomali sampel.

Dalam lingkungan industri, suatu model perlu menjalani pengujian menyeluruh sebelum dapat diterapkan. Untuk ini, pakar domain tidak akan menyebarkannya, melainkan membagikan modelnya ke SageMaker Model Registry. Di sini, pakar operasi MLOps dapat mengambil alih. Biasanya, pakar tersebut akan menguji titik akhir model, mengevaluasi ukuran peralatan komputasi yang diperlukan untuk aplikasi target, dan menentukan penerapan yang paling hemat biaya, seperti penerapan untuk inferensi tanpa server atau inferensi batch. Langkah-langkah ini biasanya dilakukan secara otomatis (misalnya, menggunakan Saluran Pipa Amazon Sagemaker atau itu SDK Amazon).

Gambar yang memperlihatkan tombol untuk berbagi model dari Amazon Sgemaker ke Model Registry.

Gunakan model untuk mendeteksi anomali

Pada langkah sebelumnya, kita membuat penerapan model di SageMaker Canvas, yang disebut canvas-sample-anomaly-model. Kita dapat menggunakannya untuk mendapatkan prediksi a bearing_temperature nilai berdasarkan kolom lain dalam kumpulan data. Sekarang, kami ingin menggunakan titik akhir ini untuk mendeteksi anomali.

Untuk mengidentifikasi data anomali, model kami akan menggunakan titik akhir model prediksi untuk mendapatkan nilai yang diharapkan dari metrik target dan kemudian membandingkan nilai prediksi dengan nilai sebenarnya dalam data. Nilai prediksi menunjukkan nilai yang diharapkan untuk metrik target kami berdasarkan data pelatihan. Oleh karena itu, selisih nilai ini merupakan metrik ketidaknormalan data aktual yang diamati. Kita dapat menggunakan kode berikut:

# We are using pandas dataframes for data handling
import pandas as pd import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime') # Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' def do_inference(data, endpoint_name): # Example Code provided by Sagemaker Canvas body = data.to_csv(header=False, index=True).encode("utf-8") response = sm_runtime_client.invoke_endpoint(Body = body, EndpointName = endpoint_name, ContentType = "text/csv", Accept = "application/json", ) return json.loads(response["Body"].read()) def input_transformer(input_data, drop_cols = [ TARGET_COL ] ): # Transform the input: Drop the Target column return input_data.drop(drop_cols,axis =1 ) def output_transformer(input_data,response): # Take the initial input data and compare it to the response of the prediction model scored = input_data.copy() scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index )['score'] scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs() return scored # Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

Kode sebelumnya melakukan tindakan berikut:

  1. Data masukan disaring ke fitur yang tepat (fungsi โ€œinput_transformer").
  2. Titik akhir model SageMaker dipanggil dengan data yang difilter (fungsi โ€œdo_inferenceโ€œ), di mana kami menangani pemformatan input dan output sesuai dengan kode contoh yang diberikan saat membuka halaman detail penerapan kami di SageMaker Canvas.
  3. Hasil pemanggilan digabungkan dengan data masukan asli dan selisihnya disimpan pada kolom kesalahan (fungsi โ€œoutput_transform").

Temukan anomali dan evaluasi kejadian anomali

Dalam pengaturan umum, kode untuk mendapatkan anomali dijalankan dalam fungsi Lambda. Fungsi Lambda dapat dipanggil dari aplikasi atau Gerbang API Amazon. Fungsi utama mengembalikan skor anomali untuk setiap baris data masukanโ€”dalam hal ini, rangkaian waktu skor anomali.

Untuk pengujian, kita juga dapat menjalankan kode di notebook SageMaker. Grafik berikut menunjukkan masukan dan keluaran model kami saat menggunakan data sampel. Puncak deviasi antara nilai prediksi dan nilai aktual (skor anomali, ditunjukkan pada grafik bawah) menunjukkan anomali. Misalnya, pada grafik, kita dapat melihat tiga puncak berbeda yang skor anomalinya (selisih antara suhu perkiraan dan suhu sebenarnya) melampaui 7 derajat Celcius: puncak pertama setelah waktu idle yang lama, puncak kedua saat penurunan tajam sebesar bearing_temperature, dan yang terakhir di mana bearing_temperature tinggi dibandingkan dengan motor_speed.

Dua grafik untuk deret waktu. Bagian atas menunjukkan deret waktu suhu motor dan kecepatan motor. Grafik bawah menunjukkan skor anomali dari waktu ke waktu dengan tiga puncak yang menunjukkan anomali.

Dalam banyak kasus, mengetahui rangkaian waktu dari skor anomali sudah cukup; Anda dapat menetapkan ambang batas kapan harus memperingatkan anomali signifikan berdasarkan kebutuhan sensitivitas model. Skor saat ini kemudian menunjukkan bahwa suatu mesin memiliki keadaan tidak normal yang memerlukan penyelidikan. Misalnya, untuk model kami, nilai absolut dari skor anomali didistribusikan seperti yang ditunjukkan pada grafik berikut. Hal ini menegaskan bahwa sebagian besar skor anomali berada di bawah (2xRMS=)8 derajat yang ditemukan selama pelatihan untuk model sebagai kesalahan umum. Grafik dapat membantu Anda memilih ambang batas secara manual, sehingga persentase sampel yang dievaluasi yang tepat ditandai sebagai anomali.

Histogram kemunculan nilai skor anomali. Kurva menurun dari x=0 ke x=15.

Jika keluaran yang diinginkan adalah kejadian anomali, maka skor anomali yang diberikan oleh model memerlukan penyempurnaan agar relevan untuk penggunaan bisnis. Untuk melakukan hal ini, pakar ML biasanya akan menambahkan pascapemrosesan untuk menghilangkan noise atau puncak besar pada skor anomali, seperti menambahkan rata-rata bergulir. Selain itu, pakar biasanya akan mengevaluasi skor anomali dengan logika yang mirip dengan menaikkan nilai anomali amazoncloudwatch alarm, seperti pemantauan pelanggaran ambang batas selama durasi tertentu. Untuk informasi lebih lanjut tentang mengatur alarm, lihat Menggunakan alarm Amazon CloudWatch. Menjalankan evaluasi ini di fungsi Lambda memungkinkan Anda mengirim peringatan, misalnya, dengan menerbitkan peringatan ke Layanan Pemberitahuan Sederhana Amazon (Amazon SNS).

Membersihkan

Setelah Anda selesai menggunakan solusi ini, Anda harus membersihkannya untuk menghindari biaya yang tidak perlu:

  1. Di SageMaker Canvas, temukan penerapan titik akhir model Anda dan hapus.
  2. Keluar dari SageMaker Canvas untuk menghindari biaya karena tidak berfungsi.

Kesimpulan

Dalam postingan ini, kami menunjukkan bagaimana pakar domain dapat mengevaluasi data masukan dan membuat model ML menggunakan SageMaker Canvas tanpa perlu menulis kode. Kemudian kami menunjukkan cara menggunakan model ini untuk melakukan deteksi anomali real-time menggunakan SageMaker dan Lambda melalui alur kerja sederhana. Kombinasi ini memberdayakan pakar domain untuk menggunakan pengetahuan mereka guna membuat model ML yang canggih tanpa pelatihan tambahan dalam ilmu data, dan memungkinkan pakar MLOps menggunakan model ini dan membuatnya tersedia untuk inferensi secara fleksibel dan efisien.

Tingkat gratis 2 bulan tersedia untuk SageMaker Canvas, dan setelahnya Anda hanya membayar untuk apa yang Anda gunakan. Mulailah bereksperimen hari ini dan tambahkan ML untuk memaksimalkan data Anda.


Tentang Penulis

Detect anomalies in manufacturing data using Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai. Helge Aufderheide adalah seorang yang antusias membuat data dapat digunakan di dunia nyata dengan fokus kuat pada Otomatisasi, Analisis, dan Pembelajaran Mesin dalam Aplikasi Industri, seperti Manufaktur dan Mobilitas.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS