Tutorial: Memulai dengan SageMaker Edge Manager - AWS IoT Greengrass

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

Tutorial: Memulai dengan SageMaker Edge Manager

penting

SageMaker Edge Manager dihentikan pada 26 April 2024. Untuk informasi selengkapnya tentang melanjutkan penerapan model Anda ke perangkat edge, lihat SageMaker Edge Manager akhir masa pakai.

Amazon SageMaker Edge Manager adalah agen perangkat lunak yang berjalan pada perangkat edge. SageMaker Edge Manager menyediakan manajemen model untuk perangkat edge sehingga Anda dapat mengemas dan menggunakan model Amazon SageMaker Neo yang dikompilasi langsung di perangkat inti Greengrass. Dengan menggunakan SageMaker Edge Manager, Anda juga dapat mengambil sampel data input dan output model dari perangkat inti Anda, dan mengirim data tersebut ke AWS Cloud untuk pemantauan dan analisis. Untuk informasi selengkapnya tentang cara kerja SageMaker Edge Manager pada perangkat inti Greengrass, lihat. Gunakan Amazon SageMaker Edge Manager di perangkat inti Greengrass

Tutorial ini menunjukkan kepada Anda bagaimana memulai menggunakan SageMaker Edge Manager dengan komponen sampel AWS yang disediakan pada perangkat inti yang ada. Komponen sampel ini menggunakan komponen SageMaker Edge Manager sebagai dependensi untuk menyebarkan agen Edge Manager, dan melakukan inferensi menggunakan model pra-terlatih yang dikompilasi menggunakan Neo. SageMaker Untuk informasi selengkapnya tentang agen SageMaker Edge Manager, lihat Manajer SageMaker Edge di Panduan SageMaker Pengembang Amazon.

Untuk menyiapkan dan menggunakan agen SageMaker Edge Manager pada perangkat inti Greengrass yang ada AWS , berikan contoh kode yang dapat Anda gunakan untuk membuat inferensi sampel dan komponen model berikut.

  • Klasifikasi gambar

    • com.greengrass.SageMakerEdgeManager.ImageClassification

    • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  • Deteksi objek

    • com.greengrass.SageMakerEdgeManager.ObjectDetection

    • com.greengrass.SageMakerEdgeManager.ObjectDetection.Model

Tutorial ini menunjukkan cara menerapkan komponen sampel dan agen SageMaker Edge Manager.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda harus memenuhi prasyarat berikut:

  • Perangkat inti Greengrass yang berjalan di Amazon Linux 2, platform Linux berbasis Debian (x86_64 atau Armv8), atau Windows (x86_64). Jika Anda tidak memilikinya, lihat Tutorial: Memulai dengan AWS IoT Greengrass V2.

  • Python 3.6 atau yang lebih baru, termasuk pip untuk versi Python Anda, diinstal pada perangkat inti anda.

  • APIGLXOpenGL runtime libgl1-mesa-glx () diinstal pada perangkat inti Anda.

  • Pengguna AWS Identity and Access Management (IAM) dengan izin administrator.

  • Komputer pengembangan seperti Windows, Mac, atau UNIX dengan internet aktif yang memenuhi persyaratan berikut:

  • Bucket S3 berikut dibuat sama Akun AWS dan Wilayah AWS sebagai perangkat inti Greengrass Anda:

    • Bucket S3 untuk menyimpan artefak yang disertakan dalam inferensi sampel dan komponen model. Tutorial ini menggunakan amzn-s3-demo-bucket1 untuk merujuk ke bucket ini.

    • Bucket S3 yang Anda kaitkan dengan armada perangkat SageMaker edge Anda. SageMaker Edge Manager memerlukan bucket S3 untuk membuat armada perangkat edge, dan menyimpan data sampel dari inferensi yang sedang berjalan di perangkat Anda. Tutorial ini menggunakan amzn-s3-demo-bucket2 untuk merujuk ke bucket ini.

    Untuk informasi selengkapnya tentang pembuatan bucket S3, lihat Memulai Amazon S3.

  • Peran perangkat Greengrass yang dikonfigurasi dengan berikut ini:

    • Hubungan kepercayaan yang memungkinkan credentials.iot.amazonaws.com dan sagemaker.amazonaws.com untuk mengambil peran, seperti yang ditunjukkan dalam contoh IAM kebijakan berikut.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    • Kebijakan yang AmazonSageMakerEdgeDeviceFleetPolicyIAMdikelola.

    • Kebijakan yang AmazonSageMakerFullAccessIAMdikelola.

    • s3:GetObjectTindakan untuk bucket S3 yang berisi artefak komponen Anda, seperti yang ditunjukkan pada contoh IAM kebijakan berikut.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Effect": "Allow" } ] }

Siapkan perangkat inti Greengrass Anda di Edge Manager SageMaker

Armada perangkat Edge di SageMaker Edge Manager adalah kumpulan perangkat yang dikelompokkan secara logis. Untuk menggunakan SageMaker Edge Manager AWS IoT Greengrass, Anda harus membuat armada perangkat edge yang menggunakan alias AWS IoT peran yang sama dengan perangkat inti Greengrass tempat Anda menggunakan agen Edge Manager. SageMaker Kemudian, Anda harus mendaftarkan perangkat inti sebagai bagian dari armada itu.

Buat armada perangkat edge

Untuk membuat armada perangkat edge (konsol)
  1. Di SageMaker konsol Amazon, pilih Edge Manager, lalu pilih armada perangkat Edge.

  2. Pada halaman Armada perangkat, pilih Buat armada perangkat.

  3. Di bawah Properti armada perangkat, lakukan hal berikut:

    • Untuk Nama armada perangkat, masukkan nama untuk armada perangkat Anda.

    • Untuk IAMperan, masukkan Nama Sumber Daya Amazon (ARN) alias AWS IoT peran yang Anda tentukan saat menyiapkan perangkat inti Greengrass Anda.

    • Nonaktifkan tombol Create IAM role alias.

  4. Pilih Berikutnya.

  5. Di bawah konfigurasi Output, untuk bucket S3 URI, masukkan bucket S3 yang ingin Anda kaitkan dengan armada perangkat. URI

  6. Pilih Kirim.

Daftarkan perangkat inti Greengrass Anda

Untuk mendaftarkan perangkat inti Greengrass Anda sebagai perangkat edge (konsol)
  1. Di SageMaker konsol Amazon, pilih Edge Manager, lalu pilih perangkat Edge.

  2. Pada halaman Perangkat, pilih Daftarkan perangkat.

  3. Di bawah Properti perangkat, untuk Nama armada perangkat, masukkan nama armada perangkat yang Anda buat, lalu pilih Selanjutnya.

  4. Pilih Berikutnya.

  5. Di bawah Sumber perangkat, untuk nama Perangkat, masukkan nama AWS IoT benda perangkat inti Greengrass Anda.

  6. Pilih Kirim.

Buat komponen sampel

Untuk membantu Anda mulai menggunakan komponen SageMaker Edge Manager, AWS sediakan skrip Python GitHub yang membuat inferensi sampel dan komponen model dan mengunggahnya ke untuk Anda. AWS Cloud Selesaikan langkah-langkah berikut pada komputer pengembangan.

Untuk membuat komponen sampel
  1. Unduh repositori contoh AWS IoT Greengrass komponen GitHub ke komputer pengembangan Anda.

  2. Arahkan ke unduhan folder /machine-learning/sagemaker-edge-manager.

    cd download-directory/machine-learning/sagemaker-edge-manager
  3. Jalankan perintah berikut untuk membuat dan meng-upload komponen sampel untuk AWS Cloud.

    python3 create_components.py -r region -b amzn-s3-demo-bucket

    Ganti region dengan Wilayah AWS tempat Anda membuat perangkat inti Greengrass Anda, dan mengganti amzn-s3-demo-bucket1 dengan nama ember S3 untuk menyimpan artefak komponen Anda.

    catatan

    Secara default, skrip tersebut membuat komponen sampel baik untuk klasifikasi gambar maupun inferensi deteksi objek. Untuk membuat komponen hanya untuk jenis inferensi tertentu, tentukan argumen -i ImageClassification | ObjectDetection.

Inferensi sampel dan komponen model untuk digunakan dengan SageMaker Edge Manager sekarang dibuat di file Anda Akun AWS. Untuk melihat komponen sampel di Konsol AWS IoT Greengrass tersebut, pilih Komponen, dan kemudian di bawah Komponen saya, cari komponen berikut:

  • com.greengrass.SageMakerEdgeManager.ImageClassification

  • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  • com.greengrass.SageMakerEdgeManager.ObjectDetection

  • com.greengrass.SageMakerEdgeManager.ObjectDetection.Model

Jalankan contoh inferensi klasifikasi gambar

Untuk menjalankan inferensi klasifikasi gambar menggunakan komponen sampel AWS yang disediakan dan agen SageMaker Edge Manager, Anda harus menerapkan komponen ini ke perangkat inti Anda. Menyebarkan komponen ini mengunduh model SageMaker Resnet-50 pra-terlatih yang dikompilasi NEO dan menginstal agen Edge Manager di perangkat Anda. SageMaker Agen SageMaker Edge Manager memuat model dan menerbitkan hasil inferensi pada topik tersebut. gg/sageMakerEdgeManager/image-classification Untuk melihat hasil inferensi ini, gunakan AWS IoT MQTT klien di AWS IoT konsol untuk berlangganan topik ini.

Berlangganan topik notifikasi

Pada langkah ini, Anda mengonfigurasi AWS IoT MQTT klien di AWS IoT konsol untuk menonton MQTT pesan yang diterbitkan oleh komponen inferensi sampel. Secara default, komponen tersebut menerbitkan hasil inferensi pada topik gg/sageMakerEdgeManager/image-classification. Berlanggananlah topik ini sebelum Anda men-deploy komponen untuk perangkat inti Greengrass Anda untuk melihat hasil inferensi ketika komponen berjalan untuk pertama kalinya.

Untuk berlangganan topik notifikasi default
  1. Di menu navigasi AWS IoT konsol, pilih Uji, MQTT uji klien.

  2. Di bawah Berlangganan topik, di kotak Nama topik, masukkan gg/sageMakerEdgeManager/image-classification.

  3. Pilih Langganan.

Deploy komponen sampel tersebut

Pada langkah ini, Anda mengonfigurasi dan men-deploy komponen berikut ke perangkat inti Anda:

  • aws.greengrass.SageMakerEdgeManager

  • com.greengrass.SageMakerEdgeManager.ImageClassification

  • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

  1. Di menu navigasi konsol AWS IoT Greengrass tersebut, pilih Deployment, lalu pilih deployment untuk perangkat target yang ingin Anda revisi.

  2. Pada halaman deployment, pilih Revisi, lalu pilih Revisi deployment.

  3. Pada halaman Tentukan target, pilih Selanjutnya.

  4. Pada halaman Pilih komponen, lakukan hal berikut:

    1. Di bawah Komponen saya, pilih komponen berikut:

      • com.greengrass.SageMakerEdgeManager.ImageClassification

      • com.greengrass.SageMakerEdgeManager.ImageClassification.Model

    2. Di bawah Komponen publik, matikan toggle Tampilkan hanya komponen yang dipilih, dan kemudian pilih komponen aws.greengrass.SageMakerEdgeManager.

    3. Pilih Berikutnya.

  5. Pada halaman Konfigurasikan komponen, pilih komponen aws.greengrass.SageMakerEdgeManager dan lakukan hal berikut.

    1. Pilih Konfigurasi komponen.

    2. Di bawah Pembaruan konfigurasi, di Konfigurasi untuk menggabungkan, masukkan konfigurasi berikut.

      { "DeviceFleetName": "device-fleet-name", "BucketName": "amzn-s3-demo-bucket" }

      Ganti device-fleet-name dengan nama armada perangkat edge yang Anda buat, dan ganti amzn-s3-demo-bucket dengan nama bucket S3 yang dikaitkan dengan armada perangkat Anda.

    3. Pilih Konfirmasi dan kemudian pilih Selanjutnya.

  6. Pada halaman Konfigurasikan pengaturan lanjutan, simpan pengaturan konfigurasi default tersebut, dan pilih Selanjutnya.

  7. Di halaman Tinjau, pilih Deploy.

  1. Di komputer pengembangan Anda, buat deployment.json file untuk menentukan konfigurasi penerapan untuk komponen SageMaker Edge Manager Anda. File ini akan terlihat seperti contoh berikut.

    { "targetArn":"targetArn", "components": { "aws.greengrass.SageMakerEdgeManager": { "componentVersion": "1.0.x", "configurationUpdate": { "merge": "{\"DeviceFleetName\":\"device-fleet-name\",\"BucketName\":\"amzn-s3-demo-bucket2\"}" } }, "com.greengrass.SageMakerEdgeManager.ImageClassification": { "componentVersion": "1.0.x", "configurationUpdate": { } }, "com.greengrass.SageMakerEdgeManager.ImageClassification.Model": { "componentVersion": "1.0.x", "configurationUpdate": { } }, } }
    • Di targetArn bidang, ganti targetArn dengan Amazon Resource Name (ARN) dari grup benda atau benda yang akan ditargetkan untuk penerapan, dalam format berikut:

      • Objek: arn:aws:iot:region:account-id:thing/thingName

      • Grup objek: arn:aws:iot:region:account-id:thinggroup/thingGroupName

    • Di merge lapangan, ganti device-fleet-name dengan nama armada perangkat edge yang Anda buat. Kemudian, ganti amzn-s3-demo-bucket2 dengan nama bucket S3 yang dikaitkan dengan armada perangkat Anda.

    • Ganti versi komponen untuk setiap komponen dengan versi terbaru yang tersedia.

  2. Jalankan perintah berikut untuk men-deploy komponen pada perangkat:

    aws greengrassv2 create-deployment \ --cli-input-json file://path/to/deployment.json

Deployment ini dapat memakan waktu beberapa menit hingga selesai. Pada langkah berikutnya, periksa log komponen untuk memverifikasi bahwa deployment tersebut berhasil diselesaikan dan untuk melihat hasil inferensi.

Lihat hasil inferensi

Setelah menerapkan komponen, Anda dapat melihat hasil inferensi di log komponen di perangkat inti Greengrass Anda dan di klien di konsol. AWS IoT MQTT AWS IoT Untuk berlangganan topik di mana komponen menerbitkan hasil inferensi, lihat Berlangganan topik notifikasi.

  • AWS IoT MQTTclient —Untuk melihat hasil yang diterbitkan komponen inferensi pada topik notifikasi default, selesaikan langkah-langkah berikut:

    1. Di menu navigasi AWS IoT konsol, pilih Uji, MQTT uji klien.

    2. Di bawah Langganan, pilih gg/sageMakerEdgeManager/image-classification.

     

  • Log komponen—Untuk melihat hasil inferensi dalam log komponen, jalankan perintah berikut pada perangkat inti Greengrass Anda.

    sudo tail -f /greengrass/v2/logs/com.greengrass.SageMakerEdgeManager.ImageClassification.log

Jika Anda tidak dapat melihat hasil inferensi di log komponen atau di MQTT klien, penerapan gagal atau tidak mencapai perangkat inti. Hal ini dapat terjadi jika perangkat inti Anda tidak tersambung ke internet atau tidak memiliki izin yang tepat untuk menjalankan komponen. Jalankan perintah berikut pada perangkat inti Anda untuk melihat file log perangkat lunak AWS IoT Greengrass inti. File ini mencakup log dari layanan deployment perangkat inti Greengrass.

sudo tail -f /greengrass/v2/logs/greengrass.log

Untuk informasi selengkapnya, lihat Menyelesaikan masalah inferensi machine learning.