Opsional: Mengonfigurasi perangkat Anda untuk kualifikasi ML-nya - 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.

Opsional: Mengonfigurasi perangkat Anda untuk kualifikasi ML-nya

IDT untuk AWS IoT Greengrass menyediakan tes kualifikasi machine learning (ML) untuk memvalidasi bahwa perangkat Anda dapat melakukan inferensi ML secara lokal menggunakan model cloud-trained.

Untuk menjalankan tes kualifikasi ML, Anda harus terlebih dahulu mengonfigurasi perangkat Anda seperti yang dijelaskan di Konfigurasikan perangkat Anda untuk menjalankan tes IDT. Kemudian, ikuti langkah-langkah dalam topik ini untuk menginstal dependensi untuk kerangka kerja ML yang Anda ingin jalankan.

IDT v3.1.0 atau yang lebih baru diperlukan untuk menjalankan tes untuk kualifikasi ML.

Menginstal dependensi kerangka kerja ML

Semua dependensi kerangka kerja ML harus diinstal di bawah direktori /usr/local/lib/python3.x/site-packages ini. Untuk memastikan mereka dipasang di direktori yang benar, kami merekomendasikan Anda menggunakan sudo izin root ketika menginstal dependensi. Lingkungan virtual tidak didukung untuk tes kualifikasi.

catatan

Jika anda sedang mengetes fungsi Lambda yang berjalan dengan kontainerisasi (di mode kontainer Greengrass ini), membuat symlink untuk perpustakaan Python di bawah /usr/local/lib/python3.x tidak didukung. Untuk menghindari kesalahan, Anda harus menginstal dependensi di bawah direktori yang benar.

Ikuti langkah-langkah untuk menginstal dependensi untuk kerangka kerja target Anda:

 

Instal dependensi Apache MXNet

Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:

  • Python 3.6 atau Python 3.7.

    catatan

    Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • Apache MXNet v1.2.1 atau yang lebih baru.

  • NumPy. Versi harus kompatibel dengan versi MXNet Anda.

Menginstal MXNet

Ikuti instruksi di dokumentasi MXNet untuk instal MXNet.

catatan

Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.

Memvalidasi instalasi MXNet

Memilih salah satu opsi berikut untuk memvalidasi instalasi MXNet.

Opsi 1: SSH ke perangkat Anda dan jalankan skrip

  1. SSH ke perangkat Anda.

  2. Jalankan skrip berikut untuk memverifikasi bahwa dependensi diinstal dengan benar.

    sudo python3.7 -c "import mxnet; print(mxnet.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.

Opsi 2: Menjalankan tes depedensi IDT

  1. Pastikan bahwa device.json dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML.

  2. Jalankan tes dependensi untuk kerangka kerja.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id mxnet_dependency_check

    Ringkasan tes menampilkan PASSED hasil untuk mldependencies.

 

Pasang TensorFlow dependensi

Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:

  • Python 3.6 atau Python 3.7.

    catatan

    Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • TensorFlow 1.x.

Menginstal TensorFlow

Ikuti instruksi di TensorFlow dokumentasi untuk menginstal TensorFlow 1.xdengan pipataudari sumber.

catatan

Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.

Memvalidasi TensorFlow instalasi

Pilih salah satu opsi berikut untuk memvalidasi TensorFlow instalasi.

Opsi 1: SSH ke perangkat Anda dan jalankan skrip

  1. SSH ke perangkat Anda.

  2. Menjalankan skrip berikut untuk memverifikasi bahwa depedensi telah diinstal dengan benar.

    sudo python3.7 -c "import tensorflow; print(tensorflow.__version__)"

    Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.

Opsi 2: Menjalankan tes depedensi IDT

  1. Pastikan bahwa device.json dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML.

  2. Jalankan tes dependensi untuk kerangka kerja.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id tensorflow_dependency_check

    Ringkasan tes menampilkan PASSED hasil untuk mldependencies.

 

Instal Amazon SageMaker Deep Learning Runtime (DLR) dependensi

Tes kualifikasi IDT untuk kerangka kerja ini memiliki dependensi sebagai berikut:

  • Python 3.6 atau Python 3.7.

    catatan

    Jika Anda menggunakan Python 3.6, Anda harus membuat sebuah tautan simbolik dari binari Python 3.7 ke Python 3.6. Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass. Misalnya:

    sudo ln -s path-to-python-3.6/python3.6 path-to-python-3.7/python3.7
  • SageMaker Neo DLR.

  • numpy.

Setelah Anda menginstal dependensi tes DLR, Anda harus mengkompilasi model.

Menginstal DLR

Ikuti instruksi di dokumentasi DLR untuk instal Neo DLR.

catatan

Jika Python 2.x dan Python 3.x keduanya diinstal pada perangkat Anda, gunakan Python 3.x dalam perintah yang Anda jalankan untuk menginstal dependensi.

Memvalidasi instalasi DLR

Pilih salah satu opsi berikut untuk memvalidasi instalasi DLR.

Opsi 1: SSH ke perangkat Anda dan jalankan skrip

  1. SSH ke perangkat Anda.

  2. Jalankan skrip berikut untuk memverifikasi bahwa dependensi diinstal dengan benar.

    sudo python3.7 -c "import dlr; print(dlr.__version__)"
    sudo python3.7 -c "import numpy; print(numpy.__version__)"

    Output mencetak nomor versi dan skrip harus keluar tanpa kesalahan.

Opsi 2: Menjalankan tes depedensi IDT

  1. Pastikan bahwa device.json dikonfigurasi untuk kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML.

  2. Jalankan tes dependensi untuk kerangka kerja.

    devicetester_[linux | mac | win_x86-64] run-suite --group-id mldependencies --test-id dlr_dependency_check

    Ringkasan tes menampilkan PASSED hasil untuk mldependencies.

Kompilasi model DLR

Anda harus mengkompilasi model DLR sebelum Anda dapat menggunakannya untuk tes kualifikasi ML. Pilih langkah-langkah, memilih salah satu opsi berikut.

Opsi 1: Gunakan Amazon SageMaker untuk mengkompilasi model

Ikuti langkah-langkah berikut untuk menggunakan SageMaker untuk mengkompilasi model ML-yang disediakan oleh IDT. Model ini sudah dilatih dengan Apache MXNet.

  1. Verifikasi bahwa jenis perangkat Anda didukung oleh SageMaker. Untuk informasi selengkapnya, lihatopsi perangkatsangAmazon SageMaker Referensi API. Jika jenis perangkat Anda saat ini tidak didukung oleh SageMaker, ikuti langkah-langkah di Opsi 2: Gunakan TVM untuk mengompilasi model DLR.

    catatan

    Menjalankan tes DLR dengan model yang disusun oleh SageMaker mungkin memakan waktu 4 atau 5 menit. Jangan hentikan IDT selama waktu ini.

  2. Mengunduh file tarball yang berisi model MXNet yang belum dikompilasi dan telah terlatih untuk DLR:

  3. Dekompresi tarball. Perintah ini menghasilkan struktur direktori berikut.

    Direktori resnet18 berisi tiga file.
  4. Pindahkan synset.txt keluar dari resnet18 direktori. Buat catatan tentang lokasi baru. Anda salin file ini ke direktori model dikompilasi yang lebih baru..

  5. Kompres konten resnet18 direktori.

    tar cvfz model.tar.gz resnet18v1-symbol.json resnet18v1-0000.params
  6. Unggah file terkompresi ke bucket Amazon S3 di Akun AWS, dan kemudian ikuti langkah-langkah dalam Mengkompilasi Model (Konsol) untuk membuat pekerjaan kompilasi.

    1. Untuk Konfigurasi input, gunakan nilai berikut:

      • Untuk Konfigurasi input data, memasukkan {"data": [1, 3, 224, 224]}.

      • Untuk Kerangka kerja machine learning, memilih MXNet.

    2. Untuk Konfigurasi output, gunakan nilai berikut:

      • Untuk Lokasi output S3, memasukkan jalur ke bucket atau folder Amazon S3 di mana Anda ingin menyimpan model yang dikompilasi.

      • Untuk Perangkat target, pilih jenis perangkat Anda.

  7. Mengunduh model yang dikompilasi dari lokasi output yang Anda tentukan, dan kemudian unzip file.

  8. Salin synset.txt ke dalam direktori model yang dikompilasi.

  9. Ubah nama direktori model yang dikompilasi menjadi resnet18.

    Direktori model terkompilasi Anda harus memiliki struktur direktori berikut.

    Direktori model terkompilasi resnet18 berisi empat file.

Opsi 2: Gunakan TVM untuk mengompilasi model DLR

Ikuti langkah-langkah berikut untuk menggunakan TVM untuk mengompilasi model ML yang disediakan oleh IDT. Model ini sudah dilatih dengan Apache MXNet, sehingga Anda harus menginstal MXNet pada komputer atau perangkat di mana Anda mengkompilasi model. Untuk menginstal MXNet, ikuti petunjuk di dokumentasi MXNet.

catatan

Kami merekomendasikan bahwa Anda mengkompilasi model pada perangkat target Anda. Praktek ini opsional, tetapi dapat membantu memastikan kompatibilitas dan mengurangi potensi masalah.

 

  1. Mengunduh file tarball yang berisi model MXNet yang belum dikompilasi dan telah terlatih untuk DLR:

  2. Dekompresi tarball. Perintah ini menghasilkan struktur direktori berikut.

    Direktori resnet18 berisi tiga file.
  3. Ikuti instruksi di dokumentasi TVM untuk membangun dan menginstal TVM dari sumber untuk platform Anda.

  4. Setelah TVM dibangun, jalankan kompilasi TVM untuk model resnet18. Langkah-langkah berikut didasarkan pada Tutorial Quick Start untuk Mengkompilasi Model Deep Learning dalam dokumentasi TVM.

    1. Buka relay_quick_start.py file dari repositori TVM kloning.

    2. Update kode yang mendefinisikan jaringan syaraf tiruan dalam relay. Anda dapat menggunakan salah satu opsi berikut:

      • Opsi 1: Gunakanmxnet.gluon.model_zoo.vision.get_modeluntuk mendapatkan modul relay dan parameter:

        from mxnet.gluon.model_zoo.vision import get_model block = get_model('resnet18_v1', pretrained=True) mod, params = relay.frontend.from_mxnet(block, {"data": data_shape})
      • Opsi 2: Dari model yang tidak dikompilasi yang Anda unduh pada langkah 1, salin file berikut ke direktori yang sama denganrelay_quick_start.pyberkas. File-file ini berisi modul relay dan parameter.

        • resnet18v1-symbol.json

        • resnet18v1-0000.params

    3. Update kode yang menyimpan dan memuat modul yang dikompilasi untuk menggunakan kode berikut.

      from tvm.contrib import util path_lib = "deploy_lib.so" # Export the model library based on your device architecture lib.export_library("deploy_lib.so", cc="aarch64-linux-gnu-g++") with open("deploy_graph.json", "w") as fo: fo.write(graph) with open("deploy_param.params", "wb") as fo: fo.write(relay.save_param_dict(params))
    4. Bangun model:

      python3 tutorials/relay_quick_start.py --build-dir ./model

      Perintah ini menghasilkan file-file berikut.

      • deploy_graph.json

      • deploy_lib.so

      • deploy_param.params

  5. Salin berkas model yang dihasilkan ke dalam direktori bernama resnet18. Ini adalah direktori model terkompilasi Anda.

  6. Salin direktori model yang dikompilasi ke komputer host Anda. Kemudian salin synset.txt dari model yang tidak dikompilasi yang Anda unduh pada langkah 1 ke dalam direktori model yang dikompilasi.

    Direktori model terkompilasi Anda harus memiliki struktur direktori berikut.

    Direktori model terkompilasi resnet18 berisi empat file.

Selanjutnya, konfigurasi kredensial AWS Anda dan device.json file.