Lakukan inferensi machine learning - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Lakukan inferensi machine learning

Fitur ini tersedia untuk Core AWS IoT Greengrass v1.6 atau yang lebih baru.

Dengan AWS IoT Greengrass, Anda dapat menampilkan inferensi machine learning (ML) di edge pada data yang dihasilkan secara lokal menggunakan model cloud-trained. Anda mendapatkan keuntungan dari latensi rendah dan penghematan biaya untuk menjalankan inferensi lokal, namun masih memanfaatkan daya komputasi cloud untuk model pelatihan dan pemrosesan yang rumit.

Untuk memulai melakukan inferensi lokal, lihat Cara mengonfigurasi inferensi machine learning menggunakan AWS Management Console.

Bagaimana inferensi ML AWS IoT Greengrass bekerja

Anda dapat melatih model inferensi Anda di mana saja, men-deploy secara lokal sebagai sumber daya machine learning di grup Greengrass, dan kemudian mengaksesnya dari fungsi Greengrass Lambda. Sebagai contoh, Anda dapat membangun dan melatih model pembelajaran mendalam di SageMaker dan men-deploy mereka ke Greengrass core Anda. Kemudian, fungsi Lambda Anda dapat menggunakan model lokal untuk melakukan inferensi pada perangkat yang terhubung dan mengirim data pelatihan baru kembali ke cloud.

Diagram berikut menunjukkan AWS IoT Greengrass alur kerja kesimpulan ML.


        Komponen alur kerja pembelajaran machine learning dan aliran informasi antara perangkat core, AWS IoT Greengrass layanan, dan model cloud-trained.

AWS IoT Greengrass Inferensi ML menyederhanakan setiap langkah dari alur kerja ML, termasuk:

  • Membangun dan deploying prototipe kerangka ML.

  • Mengakses model cloud-trained dan deploying mereka ke perangkat Greengrass core.

  • Membuat aplikasi inferensi yang dapat mengakses akselerator perangkat keras (seperti GPU dan FPGA) sebagai sumber daya lokal.

Sumber daya machine learning

Sumber daya machine learning mewakili model inferensi cloud-trained yang di-deploy ke core AWS IoT Greengrass ini. Untuk men-deploy sumber daya machine learning, pertama Anda tambahkan sumber daya ke grup Greengrass, dan kemudian Anda tentukan bagaimana fungsi Lambda dalam grup dapat mengaksesnya. Selama deployment grup, AWS IoT Greengrass ambil paket model sumber dari cloud dan ekstrak mereka ke direktori di dalam namespace waktu aktif Lambda. Kemudian, fungsi Greengrass Lambda menggunakan model lokal di-deploy untuk melakukan inferensi.

Untuk memperbarui model lokal yang di-deploy, pertama perbarui model sumber (di cloud) yang sesuai dengan sumber daya machine learning, dan kemudian men-deploy grup. Selama deployment, AWS IoT Greengrass memeriksa sumber untuk perubahan. Jika perubahan terdeteksi, maka AWS IoT Greengrass memperbarui model lokal.

Sumber model yang didukung

AWS IoT Greengrassmendukung SageMaker dan sumber model Amazon S3 untuk sumber daya machine learning.

Persyaratan berikut berlaku untuk sumber model:

  • Ember S3 yang menyimpan SageMaker Sumber model Amazon S3 tidak harus dienkripsi menggunakan SSE-C. Untuk bucket yang menggunakan enkripsi sisi server,AWS IoT GreengrassInferensi saat ini mendukung opsi enkripsi SSE-S3 atau SSE-KMS saja. Untuk informasi selengkapnya tentang opsi enkripsi sisi server, lihatMelindungi data menggunakan enkripsi sisi serverdiPanduan Pengguna Amazon Simple Storage Service.

  • Nama-nama ember S3 yang menyimpan SageMaker sumber model Amazon S3 tidak harus mencakup periode (.). Untuk informasi selengkapnya, lihat aturan tentang penggunaan bucket hosted-style dengan SSL diAturan penamaan bucketdiPanduan Pengguna Amazon Simple Storage Service.

  • Tingkat layanan dukungan Wilayah AWS harus tersedia untuk AWS IoT Greengrass dan SageMaker. Saat ini,AWS IoT Greengrassmendukung SageMaker model di Wilayah berikut ini:

    • AS Timur (Ohio)

    • US East (N. Virginia)

    • US West (Oregon)

    • Asia Pacific (Mumbai)

    • Asia Pacific (Seoul)

    • Asia Pacific (Singapore)

    • Asia Pacific (Sydney)

    • Asia Pacific (Tokyo)

    • Europe (Frankfurt)

    • Europe (Ireland)

    • Europe (London)

  • AWS IoT Greengrass harus memiliki izin read ke sumber model, seperti yang dijelaskan di bagian berikut.

SageMaker

AWS IoT Greengrassmendukung model yang disimpan sebagai SageMaker pekerjaan pelatihan. SageMaker adalah layanan ML-nya yang dikelola sepenuhnya yang dapat Anda gunakan untuk membangun dan melatih model menggunakan algoritma built-in atau kustom. Untuk informasi lebih lanjut, lihat Apakah SageMaker? dalam Panduan Developer SageMaker.

Jika Anda mengonfigurasi SageMaker lingkungan olehmembuat emberyang namanya berisisagemaker, makaAWS IoT Greengrassmemiliki izin yang cukup untuk mengakses SageMaker pekerjaan pelatihan. Kebijakan terkelola AWSGreengrassResourceAccessRolePolicy mengizinkan akses ke bucket yang namanya berisi string sagemaker. Kebijakan ini terlampir pada peran layanan Greengrass.

Jika tidak, Anda harus memberikan izin AWS IoT Greengrass read ke bucket tempat tugas pelatihan Anda disimpan. Untuk melakukannya, menanamkan kebijakan inline berikut di peran layanan. Anda dapat daftar beberapa bucket ARN.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my-bucket-name" ] } ] }
Amazon S3

AWS IoT Greengrass mendukung model yang disimpan di Amazon S3 sebagai tar.gz atau .zip file.

Untuk mengaktifkan AWS IoT Greengrass untuk mengakses model yang disimpan dalam bucket Amazon S3, Anda harus memberikan AWS IoT Greengrass read izin untuk mengakses bucket dengan melakukan satu dari hal berikut:

  • Simpan model Anda dalam bucket yang namanya berisi greengrass.

    Kebijakan terkelola AWSGreengrassResourceAccessRolePolicy mengizinkan akses ke bucket yang namanya berisi string greengrass. Kebijakan ini terlampir pada peran layanan Greengrass.

     

  • Menanam kebijakan inline di peran layanan Greengrass.

    Jika nama bucket Anda tidak berisi greengrass, tambahkan kebijakan inline berikut untuk peran layanan. Anda dapat daftar beberapa bucket ARN.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my-bucket-name" ] } ] }

    Untuk informasi lebih lanjut, lihat. Menanamkan kebijakan inline dalam Panduan Pengguna IAM.

Persyaratan

Persyaratan berikut berlaku untuk membuat dan menggunakan sumber daya machine learning:

  • Anda harus menggunakan AWS IoT Greengrass Core v1.6 atau yang lebih baru.

  • Fungsi Lambda yang ditetapkan pengguna dapat melakukan operasi read atau read and write pada sumber daya. Izin untuk operasi lain tidak tersedia. Mode kontainerisasi fungsi Lambda berafiliasi menentukan bagaimana Anda mengatur izin akses. Untuk informasi selengkapnya, lihat Mengakses sumber daya machine learning dari fungsi Lambda.

  • Anda harus menyediakan jalur penuh sumber daya pada sistem operasi perangkat core.

  • Nama sumber daya atau ID memiliki panjang maksimum 128 karakter dan harus menggunakan pola [a-zA-Z0-9:_-]+.

Waktu aktif dan perpustakaan untuk inferensi ML

Anda dapat menggunakan waktu aktif ML berikut dan perpustakaan dengan AWS IoT Greengrass.

Waktu aktif dan perpustakaan dapat diinstal pada platform NVIDIA Jetson TX2, Intel Atom, dan Raspberry Pi. Untuk informasi unduhan, lihat Waktu aktif dan perpustakaan machine learning yang didukung. Anda dapat menginstalnya langsung di perangkat core Anda.

Pastikan untuk membaca informasi berikut tentang kompatibilitas dan keterbatasan.

Waktu aktif deep learning SageMaker Neo

Anda dapat menggunakan SageMaker Waktu aktif deep learning Neo untuk melakukan inferensi dengan model machine learning yang dioptimalkan diAWS IoT Greengrassperangkat. Model ini dioptimalkan menggunakan SageMaker Kompilator deep learning Neo untuk meningkatkan kecepatan prediksi inferensi machine learning. Untuk informasi lebih lanjut tentang model optimasi di SageMaker, lihat Dokumentasi SageMaker Neo.

catatan

Saat ini, Anda dapat mengoptimalkan model machine learning menggunakan kompilator Neo deep learning di Amazon Web Services Region tertentu saja. Namun, Anda dapat menggunakan Neo deep learning runtime dengan model yang dioptimalkan di masing-masing Wilayah AWS di mana core AWS IoT Greengrass didukung. Untuk informasi lebih lanjut, lihat Cara Mengonfigurasi Inferensi Machine Learning yang Dioptimalkan.

Versioning MXNet

Apache MXNet saat ini tidak memastikan kompatibilitas maju, sehingga model yang Anda melatih menggunakan versi kerangka mungkin tidak bekerja dengan baik di versi sebelumnya dari kerangka. Untuk menghindari konflik antara tahap pelatihan model dan model, dan untuk memberikan yang konsisten end-to-end pengalaman, menggunakan versi framework MXNet yang sama di kedua tahap.

MXNet pada Raspberry P

Fungsi Greengrass Lambda yang mengakses model MXNet lokal harus mengatur variabel lingkungan berikut:

MXNET_ENGINE_TYPE=NativeEngine

Anda dapat mengatur variabel lingkungan dalam kode fungsi atau menambahkannya ke konfigurasi grup spesifik fungsi ini. Untuk contoh yang menambahkannya sebagai pengaturan konfigurasi, lihat langkah.

catatan

Untuk penggunaan umum dari kerangka MXNet, seperti menjalankan contoh kode pihak ketiga, variabel lingkungan harus dikonfigurasi pada Raspberry Pi.

TensorFlow model melayani keterbatasan pada Raspberry Pi

Rekomendasi berikut untuk meningkatkan hasil inferensi didasarkan pada pengujian kami dengan TensorFlow Perpustakaan lengan 32-bit pada platform Raspberry Pi. Rekomendasi ini ditujukan untuk pengguna tingkat lanjut untuk referensi saja, tanpa jaminan apa pun.

  • Model yang dilatih menggunakan Titik pemeriksaan format harus "dibekukan" ke format penyangga protokol sebelum disajikan. Sebagai contoh, lihat Perpustakaan model klasifikasi citra Tensorflow-slim.

  • Jangan gunakan TF-estimator dan perpustakaan TF-slim baik pelatihan atau kode inferensi. Sebagai gantinya, gunakan .pb pola pemuatan model file yang ditunjukkan dalam contoh berikut.

    graph = tf.Graph() graph_def = tf.GraphDef() graph_def.ParseFromString(pb_file.read()) with graph.as_default(): tf.import_graph_def(graph_def)
catatan

Untuk informasi selengkapnya tentang platform yang didukung untuk TensorFlow, lihatMenginstal TensorFlowdi TensorFlow dokumentasi.