Tutorial: Memulai dengan SageMaker Manager edge - 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 Manager edge

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 Amazon SageMaker Model neo-compiled langsung pada perangkat inti Greengrass. Dengan menggunakan SageMaker Edge Manager, Anda juga dapat membuat sampel model input dan output data dari perangkat inti Anda, dan mengirim data keAWS Clouduntuk pemantauan dan analisis. Untuk informasi lebih lanjut tentang bagaimana SageMaker Edge Manager bekerja pada perangkat inti Greengrass, lihatGunakan Amazon SageMaker Edge Manager pada perangkat inti Greengrass.

Tutorial ini menunjukkan cara mulai menggunakan SageMaker Manager edge denganAWSkomponen sampel yang disediakan oleh pada perangkat inti yang ada. Komponen sampel ini menggunakan SageMaker Komponen Edge Manager sebagai dependensi untuk men-deploy agen Edge Manager, dan melakukan inferensi dengan menggunakan model yang teratih sebelumnya yang dikompilasi dengan menggunakan SageMaker Neo. Untuk informasi lebih lanjut tentang SageMaker Agen Manajer Edge, lihatSageMaker Manager edgedi dalamAmazon SageMaker Panduan Pengembang.

Untuk mengatur dan menggunakan SageMaker Agen Edge Manager pada perangkat inti Greengrass yang ada,AWSmenyediakan contoh kode yang dapat Anda gunakan untuk membuat contoh inferensi dan model komponen.

  • 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 men-deploy komponen sampel dan SageMaker Agen edge.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda harus memenuhi prasyarat berikut:

  • Perangkat inti Greengrass yang berjalan pada 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.

  • Waktu aktif OpenGL API GLX (libgl1-mesa-glx) yang terpasang pada perangkat inti Anda.

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

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

  • Bucket S3 berikut dibuat padaAkun AWSdanWilayah AWSsebagai perangkat inti Greengrass Anda:

    • Bucket S3 untuk menyimpan artefak yang disertakan dalam inferensi sampel dan komponen model. Tutorial ini menggunakan DOC-EXAMPLE-BUCKET1 untuk mengacu pada bucket ini.

    • Bucket S3 yang Anda kaitkan dengan SageMaker armada perangkat edge. SageMaker S3 Manager memerlukan bucket S3 untuk membuat armada perangkat edge, dan untuk menyimpan data sampel agar tidak menjalankan inferensi pada perangkat Anda. Tutorial ini menggunakan DOC-EXAMPLE-BUCKET2 untuk mengacu pada 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 meneruskan peran, seperti yang ditunjukkan dalam contoh kebijakan IAM 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" } ] }
    • YangAmazonSageMakerEdgeDeviceFleetPolicyKebijakan yang dikelola IAM.

    • YangAmazonSageMakerFullAccessKebijakan yang dikelola IAM.

    • Tindakan s3:GetObject untuk bucket S3 yang berisi artefak komponen Anda, seperti yang ditunjukkan dalam contoh kebijakan IAM berikut.

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/*" ], "Effect": "Allow" } ] }

Menyiapkan perangkat inti Greengrass Anda SageMaker Manager edge

Armada perangkat edge SageMaker Edge Manager adalah kumpulan perangkat yang dikelompokkan secara logis. Untuk menggunakan SageMaker Manager edge denganAWS IoT Greengrass, Anda harus membuat armada perangkat edge yang menggunakan yang samaAWS IoTalias peran sebagai perangkat inti Greengrass tempat Anda menerapkan SageMaker Agen edge. Kemudian, Anda harus mendaftarkan perangkat inti sebagai bagian dari armada itu.

Buat armada perangkat edge

Untuk membuat armada perangkat edge (konsol)

  1. DiAmazon SageMaker konsol, MemiilihManager edge, dan kemudian pilihArmada 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 IAM role, masukkan Amazon Resource Name (ARN) alias peran AWS IoT yang Anda tentukan saat menyiapkan perangkat inti Greengrass Anda.

    • Nonaktifkan toggle Buat alias IAM role.

  4. Pilih Selanjutnya.

  5. Di bawah Konfigurasi output, untuk URI bucket S3, masukkan URI bucket S3 yang ingin Anda kaitkan dengan armada perangkat tersebut.

  6. Pilih Submit (Kirim).

Daftarkan perangkat inti Greengrass Anda

Untuk mendaftarkan perangkat inti Greengrass Anda sebagai perangkat edge (konsol)

  1. DiAmazon SageMaker konsol, MemiilihManager edge, dan kemudian pilihPerangkat 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 Selanjutnya.

  5. Di bawah Sumber perangkat, untuk Nama perangkat, masukkan nama objek AWS IoT perangkat inti Greengrass Anda.

  6. Pilih Submit (Kirim).

Buat komponen sampel

Untuk membantu Anda mulai menggunakan SageMaker Komponen Manager edgeAWSmenyediakan skrip Python GitHub yang menciptakan contoh inferensi dan komponen model dan mengunggahnya keAWS Clouduntuk Anda. Selesaikan langkah-langkah berikut pada komputer pengembangan.

Untuk membuat komponen sampel

  1. UnduhAWS IoT Greengrasscontoh komponenrepositori pada 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 DOC-EXAMPLE-BUCKET

    Ganti wilayah dengan Wilayah AWS tempat Anda membuat perangkat inti Greengrass Anda, dan ganti DOC-EXAMPLE-BUCKET1 dengan nama bucket 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.

Contoh inferensi dan komponen model yang akan digunakan dengan SageMaker Edge Manager sekarang dibuat diAkun 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 menggunakanAWS-disediakan komponen sampel dan SageMaker Agen Edge Manager, Anda harus men-deploy komponen ini ke perangkat inti Anda. Menerapkan komponen ini mendownload SageMaker Model Resnet-50 yang telah dilatih sebelumnya yang terkompilasi dan menginstal SageMaker Agen Edge Manager di perangkat Anda. Yang SageMaker Agen edge Manager memuat model tersebut dan menerbitkan hasil inferensi padagg/sageMakerEdgeManager/image-classificationtopik. Untuk melihat hasil inferensi ini, gunakan klien MQTT AWS IoT di konsol AWS IoT untuk berlangganan topik ini.

Berlangganan topik notifikasi

Pada langkah ini, Anda mengonfigurasi klien MQTT AWS IoT di konsol AWS IoT untuk melihat pesan MQTT 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 konsol AWS IoT tersebut, pilih Uji, klien uji MQTT.

  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 Selanjutnya.

  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": "DOC-EXAMPLE-BUCKET" }

      Gantidevice-fleet-namedengan nama armada perangkat edge yang Anda buat, dan gantiDOC-CONTOH-EMBERdengan nama bucket S3 yang terkait 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. Pada komputer pengembangan Anda, buatdeployment.jsonfile untuk menentukan konfigurasi penyebaran untuk SageMaker Komponen edge. File ini akan terlihat seperti contoh berikut.

    { "targetArn":"targetArn", "components": { "aws.greengrass.SageMakerEdgeManager": { "componentVersion": "1.0.x", "configurationUpdate": { "merge": "{\"DeviceFleetName\":\"device-fleet-name\",\"BucketName\":\"DOC-EXAMPLE-BUCKET2\"}" } }, "com.greengrass.SageMakerEdgeManager.ImageClassification": { "componentVersion": "1.0.x", "configurationUpdate": { } }, "com.greengrass.SageMakerEdgeManager.ImageClassification.Model": { "componentVersion": "1.0.x", "configurationUpdate": { } }, } }
    • Di kolom targetArn, ganti targetArn dengan Amazon Resource Name (ARN) dari grup objek atau objek yang ditargetkan untuk deployment tersebut, dalam format berikut:

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

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

    • Dimergebidang, gantidevice-fleet-namedengan nama armada perangkat edge yang Anda buat. Kemudian, gantiDOC-EXAMPLE-BUCKET2 dengan nama bucket S3 yang terkait 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 Anda men-deploy komponen tersebut, Anda dapat melihat hasil inferensi dalam log komponen pada perangkat inti Greengrass Anda dan di klien MQTT AWS IoT di konsol AWS IoT tersebut. Untuk berlangganan topik di mana komponen menerbitkan hasil inferensi, lihat Berlangganan topik notifikasi.

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

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

    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 klien MQTT, deployment tersebut 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 berkas log perangkat inti AWS IoT Greengrass. 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.