Bagikan melalui


Tutorial: Solusi end-to-end menggunakan Azure Machine Learning dan IoT Edge

Berlaku untuk:ikon ya IoT Edge 1.1

Penting

Tanggal akhir dukungan IoT Edge 1.1 adalah 13 Desember 2022. Periksa Siklus Hidup Produk Microsoft untuk mendapatkan informasi tentang bagaimana produk, layanan, teknologi, atau API ini didukung. Untuk informasi selengkapnya tentang memperbarui ke versi terbaru IoT Edge, lihat Memperbarui IoT Edge.

Seringkali, aplikasi IoT ingin memanfaatkan cloud cerdas dan tepi cerdas. Dalam tutorial ini, kami memandu Anda melatih model pembelajaran mesin dengan data yang dikumpulkan dari perangkat IoT di cloud, menyebarkan model tersebut ke IoT Edge, dan memelihara dan menyempurnakan model secara berkala.

Nota

Konsep dalam set tutorial ini berlaku untuk semua versi IoT Edge, tetapi perangkat sampel yang Anda buat untuk mencoba skenario menjalankan IoT Edge versi 1.1.

Tujuan utama tutorial ini adalah untuk memperkenalkan pemrosesan data IoT dengan pembelajaran mesin, khususnya di perangkat ujung. Meskipun kami menyentuh banyak aspek alur kerja pembelajaran mesin umum, tutorial ini tidak dimaksudkan sebagai pengenalan mendalam untuk pembelajaran mesin. Sebagai contoh kasus, kami tidak mencoba membuat model yang sangat dioptimalkan untuk skenario penggunaan - kami hanya melakukan yang cukup untuk mengilustrasikan proses pembuatan dan penggunaan model yang layak untuk pemrosesan data IoT.

Bagian tutorial ini membahas:

  • Prasyarat untuk menyelesaikan bagian tutorial berikutnya.
  • Audiens sasaran dari tutorial.
  • Kasus penggunaan yang disimulasikan dalam tutorial.
  • Proses keseluruhan yang diikuti tutorial untuk memenuhi kasus penggunaan.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

Untuk menyelesaikan tutorial, Anda memerlukan akses ke langganan Azure tempat Anda memiliki hak untuk membuat sumber daya. Beberapa layanan yang digunakan dalam tutorial ini akan dikenakan biaya Azure. Jika Anda belum memiliki langganan Azure, Anda dapat memulai dengan Azure Akun Gratis.

Anda juga memerlukan komputer dengan PowerShell yang terinstal di mana Anda dapat menjalankan skrip untuk menyiapkan Azure Virtual Machine sebagai komputer pengembangan Anda.

Dalam dokumen ini, kami menggunakan sekumpulan alat berikut:

  • Hub Azure IoT untuk pengambilan data

  • Azure Notebooks sebagai antarmuka utama kami untuk persiapan data dan eksperimen dalam pembelajaran mesin. Menjalankan kode Python di notebook pada subset data sampel adalah cara yang bagus untuk mendapatkan solusi berulang dan interaktif yang cepat selama persiapan data. Notebook Jupyter juga dapat digunakan untuk menyiapkan skrip untuk dijalankan dalam skala besar dalam backend komputasi.

  • Azure Machine Learning sebagai backend untuk pembelajaran mesin dalam skala besar dan untuk pembuatan gambar pembelajaran mesin. Kami mendorong backend Azure Machine Learning menggunakan skrip yang disiapkan dan diuji di notebook Jupyter.

  • Azure IoT Edge untuk aplikasi gambar pembelajaran mesin di luar cloud

Jelas, ada opsi lain yang tersedia. Dalam skenario tertentu, misalnya, IoT Central dapat digunakan sebagai alternatif tanpa kode untuk mengambil data pelatihan awal dari perangkat IoT.

Menargetkan audiens dan peran

Kumpulan artikel ini ditujukan untuk pengembang tanpa pengalaman sebelumnya dalam pengembangan IoT atau pembelajaran mesin. Menyebarkan pembelajaran mesin di tepi membutuhkan pengetahuan tentang cara menghubungkan berbagai teknologi. Oleh karena itu, tutorial ini mencakup seluruh skenario end-to-end untuk menunjukkan salah satu cara menggabungkan teknologi ini bersama-sama untuk solusi IoT. Dalam lingkungan dunia nyata, tugas-tugas ini mungkin didistribusikan di antara beberapa orang dengan spesialisasi yang berbeda. Misalnya, pengembang akan fokus pada kode perangkat atau cloud, sementara ilmuwan data merancang model analitik. Untuk memungkinkan pengembang individu berhasil menyelesaikan tutorial ini, kami telah memberikan panduan tambahan dengan wawasan dan tautan ke informasi lebih lanjut yang kami harapkan cukup untuk memahami apa yang sedang dilakukan, serta alasannya.

Atau, Anda dapat bergabung dengan rekan kerja dari berbagai peran untuk mengikuti tutorial bersama, menggunakan keahlian penuh Anda, dan belajar sebagai tim bagaimana semuanya saling terkait.

Dalam kedua kasus, untuk membantu mengorientasikan pembaca, setiap artikel dalam tutorial ini menunjukkan peran pengguna. Peran tersebut meliputi:

  • Pengembangan cloud (termasuk pengembang cloud yang bekerja dalam kapasitas DevOps)
  • Analisis data

Kasus penggunaan: Pemeliharaan prediktif

Kami mendasarkan skenario ini pada kasus penggunaan yang dipresentasikan dalam Conference on Prognostics and Health Management (PHM08) tahun 2008. Tujuannya adalah untuk memprediksi sisa masa pakai yang berguna (RUL) dari satu set mesin pesawat turbofan. Data ini dihasilkan menggunakan C-MAPSS, versi komersial perangkat lunak MAPSS (Modular Aero-Propulsion System Simulation). Perangkat lunak ini menyediakan lingkungan simulasi mesin turbofan yang fleksibel untuk mensimulasikan parameter kesehatan, kontrol, dan mesin dengan mudah.

Data yang digunakan dalam tutorial ini diambil dari himpunan data simulasi degradasi mesin Turbofan.

Dari dokumentasi:

Skenario Eksperimental

Himpunan data terdiri dari beberapa rangkaian waktu multivariat. Setiap himpunan data dibagi lebih lanjut menjadi subset pelatihan dan pengujian. Setiap rangkaian waktu berasal dari mesin yang berbeda - yaitu, data dapat dianggap berasal dari armada mesin dengan jenis yang sama. Setiap mesin dimulai dengan berbagai tingkat keausan awal dan variasi manufaktur yang tidak diketahui oleh pengguna. Keausan dan variasi ini dianggap normal, yaitu tidak dianggap sebagai kondisi kesalahan. Ada tiga pengaturan operasional yang memiliki efek besar pada performa mesin. Pengaturan ini juga disertakan dalam data. Data terkontaminasi dengan kebisingan sensor.

Mesin beroperasi secara normal pada awal setiap rangkaian waktu dan mengembangkan kesalahan pada beberapa titik selama seri. Dalam set pelatihan, kesalahan semakin meningkat hingga kegagalan sistem. Dalam set pengujian, rangkaian waktu berakhir beberapa waktu sebelum kegagalan sistem. Tujuan dari kompetisi ini adalah untuk memprediksi jumlah siklus operasional yang tersisa sebelum kegagalan dalam set pengujian, yaitu, jumlah siklus operasional setelah siklus terakhir yang akan terus dioperasikan mesin. Juga menyediakan vektor nilai True Remaining Useful Life (RUL) untuk data pengujian.

Karena data diterbitkan untuk kompetisi, beberapa pendekatan untuk memperoleh model pembelajaran mesin telah diterbitkan secara independen. Kami menemukan bahwa mempelajari contoh sangat membantu dalam memahami proses dan penalaran yang terlibat dalam pembuatan model pembelajaran mesin tertentu. Lihat misalnya:

Model prediksi kegagalan mesin pesawat oleh pengguna GitHub jancervenka.

Degradasi Mesin Turbofan oleh pengguna GitHub hankroark.

Proses

Gambar di bawah ini menggambarkan langkah-langkah kasar yang kita ikuti dalam tutorial ini:

diagram Arsitektur untuk langkah-langkah proses

  1. Kumpulkan data pelatihan: Proses dimulai dengan mengumpulkan data pelatihan. Dalam beberapa kasus, data telah dikumpulkan dan tersedia dalam database, atau dalam bentuk file data. Dalam kasus lain, terutama untuk skenario IoT, data perlu dikumpulkan dari perangkat dan sensor IoT dan disimpan di cloud.

    Kami berasumsi bahwa Anda tidak memiliki koleksi mesin turbofan, sehingga file proyek menyertakan simulator perangkat sederhana yang mengirim data perangkat NASA ke cloud.

  2. Siapkan data. Dalam kebanyakan kasus, data mentah seperti yang dikumpulkan dari perangkat dan sensor akan memerlukan persiapan untuk pembelajaran mesin. Langkah ini mungkin melibatkan pembersihan data, pemformatan ulang data, atau pra-pemrosesan untuk menyuntikkan informasi tambahan yang dapat digunakan oleh pembelajaran mesin.

    Untuk data mesin pesawat terbang kami, pendataan melibatkan perhitungan waktu kerusakan secara eksplisit untuk setiap titik data dalam sampel berdasarkan pengamatan aktual pada data. Informasi ini memungkinkan algoritma pembelajaran mesin untuk menemukan korelasi antara pola data sensor aktual dan sisa waktu hidup mesin yang diharapkan. Langkah ini sangat khusus untuk bidang tertentu.

  3. Membangun model pembelajaran mesin. Berdasarkan data yang disiapkan, kita sekarang dapat bereksperimen dengan algoritma dan parameterisasi pembelajaran mesin yang berbeda untuk melatih model dan membandingkan hasilnya satu sama lain.

    Dalam hal ini, untuk pengujian, kami membandingkan hasil yang diprediksi yang dihitung oleh model dengan hasil nyata yang diamati pada satu set mesin. Di Azure Machine Learning, kita dapat mengelola berbagai iterasi model yang kita buat dalam registri model.

  4. Sebarkan model. Setelah kita memiliki model yang memenuhi kriteria keberhasilan kita, kita dapat pindah ke penyebaran. Itu melibatkan pembungkusan model ke dalam aplikasi layanan web yang dapat diberi makan dengan data menggunakan panggilan REST dan mengembalikan hasil analisis. Aplikasi layanan web kemudian dikemas ke dalam kontainer docker, yang pada gilirannya dapat disebarkan baik di cloud atau sebagai modul IoT Edge. Dalam contoh ini, kami fokus pada penyebaran ke IoT Edge.

  5. Memelihara dan menyempurnakan model. Pekerjaan kami belum selesai setelah model disebarkan. Dalam banyak kasus, kami ingin terus mengumpulkan data dan secara berkala mengunggah data tersebut ke cloud. Kita kemudian dapat menggunakan data ini untuk melatih kembali dan menyempurnakan model kita, yang kemudian dapat kita sebarkan ulang ke IoT Edge.

Membersihkan sumber daya

Tutorial ini adalah bagian dari rangkaian di mana setiap artikel melanjutkan pekerjaan dari artikel sebelumnya. Harap tunggu untuk membersihkan sumber daya apa pun sampai Anda menyelesaikan tutorial akhir.

Langkah berikutnya

Tutorial ini dibagi menjadi bagian berikut:

  1. Siapkan mesin pengembangan dan layanan Azure Anda.
  2. Hasilkan data pelatihan untuk modul pembelajaran mesin.
  3. Melatih dan menyebarkan modul pembelajaran mesin.
  4. Konfigurasikan perangkat IoT Edge untuk bertindak sebagai gateway transparan.
  5. Membuat dan menyebarkan modul IoT Edge.
  6. Kirim data ke perangkat IoT Edge Anda.

Lanjutkan ke artikel berikutnya untuk menyiapkan mesin pengembangan dan menyediakan sumber daya Azure.