MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass

Internet of Things (IoT) telah memungkinkan pelanggan di berbagai industri, seperti manufaktur, otomotif, dan energi, untuk memantau dan mengontrol lingkungan dunia nyata. Dengan menerapkan berbagai perangkat IoT edge seperti kamera, termostat, dan sensor, Anda dapat mengumpulkan data, mengirimkannya ke cloud, dan membangun model machine learning (ML) untuk memprediksi anomali, kegagalan, dan banyak lagi. Namun, jika kasus penggunaan memerlukan prediksi waktu nyata, Anda perlu memperkaya solusi IoT Anda dengan kemampuan ML di tepi (ML@Edge). ML@Tepi adalah konsep yang memisahkan siklus hidup model ML dari siklus hidup aplikasi dan memungkinkan Anda menjalankan pipeline ML ujung ke ujung yang mencakup persiapan data, pembuatan model, kompilasi dan pengoptimalan model, penerapan model (ke armada perangkat edge), eksekusi model, dan pemantauan dan pengaturan model. Anda men-deploy aplikasi sekali dan menjalankan pipeline ML sebanyak yang Anda butuhkan.

Seperti yang dapat Anda bayangkan, untuk mengimplementasikan semua langkah yang diusulkan oleh konsep ML@Edge bukanlah hal yang sepele. Ada banyak pertanyaan yang perlu dijawab oleh pengembang untuk mengimplementasikan solusi ML@Edge yang lengkap, misalnya:

  • Bagaimana cara mengoperasikan model ML pada armada (ratusan, ribuan, atau jutaan) perangkat di edge?
  • Bagaimana cara mengamankan model saya saat menerapkan dan menjalankannya di edge?
  • Bagaimana cara memantau kinerja model saya dan melatihnya kembali, jika diperlukan?

Dalam postingan ini, Anda mempelajari cara menjawab semua pertanyaan ini dan membangun solusi menyeluruh untuk mengotomatiskan pipeline ML@Edge Anda. Anda akan melihat cara menggunakan Manajer Tepi Amazon SageMaker, Studio Amazon SageMaker, dan AWS IoT Greengrass v2 untuk membuat lingkungan MLOps (ML Operations) yang mengotomatiskan proses pembuatan dan penerapan model ML ke armada besar perangkat edge.

Di bagian berikutnya, kami menyajikan arsitektur referensi yang merinci semua komponen dan alur kerja yang diperlukan untuk membangun solusi lengkap untuk MLO yang berfokus pada beban kerja edge. Kemudian kita mendalami langkah-langkah yang dijalankan solusi ini secara otomatis untuk membangun dan menyiapkan model baru. Kami juga menunjukkan cara mempersiapkan perangkat edge untuk mulai menerapkan, menjalankan, dan memantau model ML, serta menunjukkan cara memantau dan memelihara model ML yang diterapkan ke armada perangkat Anda.

Ikhtisar solusi

Produksi model ML yang kuat memerlukan kolaborasi beberapa persona, seperti ilmuwan data, insinyur ML, insinyur data, dan pemangku kepentingan bisnis, di bawah infrastruktur semi-otomatis mengikuti operasi tertentu (MLOps). Juga, modularisasi lingkungan penting untuk memberikan semua kepribadian yang berbeda ini sebagai fleksibilitas dan kelincahan untuk mengembangkan atau meningkatkan (terlepas dari alur kerja) komponen yang menjadi tanggung jawab mereka. Contoh infrastruktur semacam itu terdiri dari beberapa akun AWS yang memungkinkan kolaborasi dan produksi model ML ini baik di cloud maupun di perangkat edge. Dalam arsitektur referensi berikut, kami menunjukkan bagaimana kami mengatur beberapa akun dan layanan yang menyusun platform MLOps menyeluruh ini untuk membangun model ML dan menerapkannya di edge.

Solusi ini terdiri dari akun berikut:

  • akun danau data โ€“ Insinyur data menyerap, menyimpan, dan menyiapkan data dari berbagai sumber data, termasuk database lokal dan perangkat IoT.
  • Akun perkakas โ€“ Operator TI mengelola dan memeriksa pipeline CI/CD untuk pengiriman berkelanjutan otomatis dan penerapan paket model ML di seluruh akun pra-produksi dan produksi untuk perangkat edge jarak jauh. Proses pipeline CI/CD diotomatiskan melalui penggunaan Jembatan Acara Amazon, yang memantau peristiwa perubahan status model dan target ML Pipa Kode AWS.
  • Akun eksperimen dan pengembangan โ€“ Ilmuwan data dapat melakukan penelitian dan eksperimen dengan berbagai teknik pemodelan dan algoritme untuk memecahkan masalah bisnis berdasarkan ML, menciptakan solusi konsep bukti. Insinyur ML dan ilmuwan data berkolaborasi untuk menskalakan bukti konsep, membuat alur kerja otomatis menggunakan Pipa Amazon SageMaker untuk menyiapkan data dan membangun, melatih, dan mengemas model ML. Penyebaran pipa didorong melalui pipa CI/CD, sedangkan kontrol versi model dicapai dengan menggunakan Registri model Amazon SageMaker. Ilmuwan data mengevaluasi metrik beberapa versi model dan meminta promosi model terbaik ke produksi dengan memicu saluran CI/CD.
  • Akun pra-produksi โ€“ Sebelum mempromosikan model ke lingkungan produksi, model perlu diuji untuk memastikan ketahanan dalam lingkungan simulasi. Oleh karena itu, lingkungan pra-produksi adalah simulator lingkungan produksi, di mana titik akhir model SageMaker disebarkan dan diuji secara otomatis. Metode pengujian dapat mencakup pengujian integrasi, pengujian stres, atau pengujian khusus ML pada hasil inferensi. Dalam hal ini, lingkungan produksi bukanlah titik akhir model SageMaker tetapi perangkat tepi. Untuk mensimulasikan perangkat edge dalam pra-produksi, dua pendekatan dimungkinkan: gunakan an Cloud komputasi elastis Amazon (Amazon EC2) dengan karakteristik perangkat keras yang sama, atau gunakan testbed dalam lab yang terdiri dari perangkat sebenarnya. Dengan infrastruktur ini, pipeline CI/CD menyebarkan model ke simulator yang sesuai dan melakukan beberapa pengujian secara otomatis. Setelah pengujian berjalan dengan sukses, pipeline CI/CD memerlukan persetujuan manual (misalnya, dari pemangku kepentingan IoT untuk mempromosikan model ke produksi).
  • akun produksi โ€“ Dalam hal menghosting model di AWS Cloud, pipeline CI/CD menyebarkan titik akhir model SageMaker pada akun produksi. Dalam hal ini, lingkungan produksi terdiri dari beberapa armada perangkat edge. Oleh karena itu, pipeline CI/CD menggunakan Edge Manager untuk menyebarkan model ke armada perangkat yang sesuai.
  • Perangkat tepi โ€“ Perangkat tepi jarak jauh adalah perangkat keras yang dapat menjalankan model ML menggunakan Edge Manager. Ini memungkinkan aplikasi pada perangkat tersebut untuk mengelola model, menjalankan inferensi terhadap model, dan menangkap data dengan aman ke dalam Layanan Penyimpanan Sederhana Amazon (Amazon S3).

Proyek SageMaker membantu Anda mengotomatiskan proses penyediaan sumber daya di dalam setiap akun ini. Kami tidak mendalami fitur ini, tetapi untuk mempelajari lebih lanjut tentang cara membuat template proyek SageMaker yang menerapkan model ML di seluruh akun, lihat Penerapan model multi-akun dengan Amazon SageMaker Pipelines.

Akun pra-produksi: Kembar digital

Setelah proses pelatihan, model yang dihasilkan perlu dievaluasi. Di akun pra-produksi, Anda memiliki perangkat Edge yang disimulasikan. Ini mewakili kembar digital perangkat edge tempat model ML berjalan dalam produksi. Lingkungan ini memiliki tujuan ganda untuk melakukan tes klasik (seperti unit, integrasi, dan asap) dan menjadi taman bermain bagi tim pengembangan. Perangkat ini disimulasikan menggunakan instans EC2 di mana semua komponen yang diperlukan untuk mengelola model ML di-deploy.

Layanan yang terlibat adalah sebagai berikut:

  • Inti AWS IoT - Kita gunakan Inti AWS IoT untuk membuat objek benda AWS IoT, membuat armada perangkat, mendaftarkan armada perangkat agar dapat berinteraksi dengan cloud, membuat sertifikat X.509 untuk mengautentikasi perangkat edge ke AWS IoT Core, mengaitkan alias peran dengan AWS IoT Core yang dihasilkan saat armada telah dibuat, dapatkan titik akhir khusus akun AWS untuk penyedia kredensial, dapatkan file CA Root Amazon resmi, dan unggah file CA Amazon ke Amazon S3.
  • Amazon Sagemaker Neo โ€“ Pembuat Sagem Neo secara otomatis mengoptimalkan model pembelajaran mesin agar inferensi berjalan lebih cepat tanpa kehilangan akurasi. Ini mendukung model pembelajaran mesin yang sudah dibuat dengan DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX, atau XGBoost dan dilatih di Amazon SageMaker atau di mana pun. Kemudian Anda memilih platform perangkat keras target, yang dapat berupa instans hosting SageMaker atau perangkat edge berdasarkan prosesor dari Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments, atau Xilinx.
  • Manajer Tepi โ€“ Kami menggunakan Edge Manager untuk mendaftarkan dan mengelola perangkat edge dalam armada Sagemaker. Armada adalah kumpulan perangkat yang dikelompokkan secara logis yang dapat Anda gunakan untuk mengumpulkan dan menganalisis data. Selain itu, Edge Manager packager, mengemas model yang dioptimalkan dan membuat komponen AWS IoT Greengrass V2 yang dapat langsung diterapkan. Anda dapat menggunakan Edge Manager untuk mengoperasikan model ML pada armada kamera pintar, speaker pintar, robot, dan armada perangkat SageMaker lainnya.
  • AWS IoT Greengrass V2 - Rumput Hijau AWS IoT memungkinkan Anda untuk menerapkan komponen ke dalam perangkat yang disimulasikan menggunakan instans EC2. Dengan menggunakan agen AWS IoT Greengrass V2 dalam instans EC2, kami dapat menyederhanakan akses, pengelolaan, dan penerapan agen dan model Edge Manager ke perangkat. Tanpa AWS IoT Greengrass V2, menyiapkan perangkat dan armada untuk menggunakan Edge Manager mengharuskan Anda menyalin agen secara manual dari bucket rilis S3. Dengan integrasi AWS IoT Greengrass V2 dan Edge Manager, komponen AWS IoT Greengrass V2 dapat digunakan. Komponen adalah modul perangkat lunak yang dibuat sebelumnya yang dapat menghubungkan perangkat edge ke layanan AWS atau layanan pihak ketiga melalui AWS IoT Greengrass.
  • Agen Edge Manager โ€“ Agen Edge Manager disebarkan melalui AWS IoT Greengrass V2 dalam instans EC2. Agen dapat memuat beberapa model sekaligus dan membuat inferensi dengan model yang dimuat pada perangkat edge. Jumlah model yang dapat dimuat agen ditentukan oleh memori yang tersedia pada perangkat.
  • Amazon S3 โ€“ Kami menggunakan bucket S3 untuk menyimpan data yang diambil dari inferensi dari agen Edge Manager.

Kami dapat mendefinisikan akun pra-produksi sebagai kembaran digital untuk menguji model ML sebelum memindahkannya ke perangkat edge nyata. Ini menawarkan manfaat berikut:

  • Kelincahan dan fleksibilitas โ€“ Ilmuwan data dan insinyur ML perlu dengan cepat memvalidasi apakah model ML dan skrip terkait (skrip prapemrosesan dan inferensi) akan berfungsi di tepi perangkat. Namun, IoT dan departemen ilmu data di perusahaan besar mungkin merupakan entitas yang berbeda. Dengan mereplikasi tumpukan teknologi secara identik di cloud, ilmuwan data dan insinyur ML dapat mengulangi dan mengkonsolidasikan artefak sebelum penerapan.
  • Penilaian risiko dan waktu produksi yang dipercepat โ€“ Deployment pada perangkat edge adalah tahap akhir dari proses. Setelah Anda memvalidasi semuanya dalam lingkungan yang terisolasi dan mandiri, amankan agar sesuai dengan spesifikasi yang diperlukan oleh edge dalam hal kualitas, kinerja, dan integrasi. Ini membantu menghindari keterlibatan lebih lanjut dari orang lain di departemen IoT untuk memperbaiki dan mengulangi versi artefak.
  • Peningkatan kolaborasi tim dan peningkatan kualitas dan kinerja โ€“ Tim pengembangan dapat segera menilai dampak model ML dengan menganalisis metrik perangkat keras edge dan mengukur tingkat interaksi dengan alat pihak ketiga (mis. I/O rate). Kemudian, tim IoT hanya bertanggung jawab untuk penyebaran ke lingkungan produksi, dan dapat yakin bahwa artefak tersebut akurat untuk lingkungan produksi.
  • Taman bermain terintegrasi untuk pengujian โ€“ Mengingat target model ML, lingkungan pra-produksi dalam alur kerja tradisional harus diwakili oleh perangkat edge di luar lingkungan cloud. Ini memperkenalkan tingkat kerumitan lain. Integrasi diperlukan untuk mengumpulkan metrik dan umpan balik. Sebaliknya, dengan menggunakan lingkungan simulasi kembar digital, interaksi berkurang dan waktu ke pasar dipersingkat.

Akun produksi dan lingkungan tepi

Setelah pengujian selesai dan stabilitas artefak tercapai, Anda dapat melanjutkan ke penerapan produksi melalui pipeline. Penyebaran artefak terjadi secara terprogram setelah operator menyetujui artefak. Namun, akses ke Konsol Manajemen AWS diberikan kepada operator dalam mode hanya-baca untuk dapat memantau metadata yang terkait dengan armada dan oleh karena itu memiliki wawasan tentang versi model ML yang diterapkan dan metrik lain yang terkait dengan siklus hidup.

Armada perangkat Edge milik akun produksi AWS. Akun ini memiliki konfigurasi keamanan dan jaringan khusus untuk memungkinkan komunikasi antara perangkat cloud dan edge. Layanan AWS utama yang diterapkan di akun produksi adalah Edge Manager, yang bertanggung jawab untuk mengelola semua armada perangkat, mengumpulkan data, dan mengoperasikan model ML, dan AWS IoT Core, yang mengelola objek benda IoT, sertifikat, alias peran, dan titik akhir.

Pada saat yang sama, kita perlu mengonfigurasi perangkat edge dengan layanan dan komponen untuk mengelola model ML. Komponen utamanya adalah sebagai berikut:

  • AWS IoT Greengrass V2
  • Agen Edge Manager
  • Sertifikat AWS IoT
  • Application.py, yang bertanggung jawab untuk mengatur proses inferensi (mengambil informasi dari sumber data edge dan melakukan inferensi menggunakan agen Edge Manager dan model ML yang dimuat)
  • Koneksi ke Amazon S3 atau akun data lake untuk menyimpan data inferensi

Pipa ML otomatis

Sekarang setelah Anda mengetahui lebih banyak tentang organisasi dan komponen arsitektur referensi, kita dapat mempelajari lebih dalam pipeline ML yang kita gunakan untuk membangun, melatih, dan mengevaluasi model ML di dalam akun pengembangan.

Sebuah pipa (dibangun menggunakan Pipa Pembuatan Model Amazon SageMaker) adalah serangkaian langkah yang saling berhubungan yang didefinisikan oleh definisi pipeline JSON. Definisi pipa ini mengkodekan pipa menggunakan Directed Acyclic Graph (DAG). DAG ini memberikan informasi tentang persyaratan dan hubungan antara setiap langkah saluran Anda. Struktur DAG pipeline ditentukan oleh dependensi data antar langkah. Ketergantungan data ini dibuat ketika properti dari output langkah dilewatkan sebagai input ke langkah lain.

Agar tim ilmu data dapat dengan mudah mengotomatiskan pembuatan model ML versi baru, penting untuk memperkenalkan langkah-langkah validasi dan data otomatis untuk terus memberi makan dan menyempurnakan model ML, serta strategi pemantauan model untuk mengaktifkan pemicu pipeline. Diagram berikut menunjukkan contoh pipa.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Untuk mengaktifkan otomatisasi dan kemampuan MLOps, penting untuk membuat komponen modular untuk membuat artefak kode yang dapat digunakan kembali yang dapat dibagikan di berbagai langkah dan kasus penggunaan ML. Ini memungkinkan Anda untuk dengan cepat memindahkan implementasi dari fase eksperimen ke fase produksi dengan mengotomatiskan transisi.

Langkah-langkah untuk menentukan pipeline ML untuk mengaktifkan pelatihan berkelanjutan dan pembuatan versi model ML adalah sebagai berikut:

  • Pemrosesan awal โ€“ Proses pembersihan data, rekayasa fitur, dan pembuatan kumpulan data untuk melatih algoritme ML
  • Pelatihan โ€“ Proses pelatihan algoritma ML yang dikembangkan untuk menghasilkan versi baru artefak model ML
  • Evaluasi โ€“ Proses evaluasi model ML yang dihasilkan, untuk mengekstrak metrik kunci yang terkait dengan perilaku model pada data baru yang tidak terlihat selama fase pelatihan
  • Pendaftaran โ€“ Proses pembuatan versi artefak model ML terlatih baru dengan menautkan metrik yang diekstraksi dengan artefak yang dihasilkan

Anda dapat melihat detail lebih lanjut tentang cara membangun pipa SageMaker berikut ini buku catatan.

Memicu pipeline CI/CD menggunakan EventBridge

Setelah selesai membuat model, Anda dapat memulai proses penerapan. Langkah terakhir dari pipeline SageMaker yang ditentukan di bagian sebelumnya mendaftarkan versi baru model dalam grup registri model SageMaker tertentu. Penerapan model ML versi baru dikelola menggunakan status registri model. Dengan menyetujui atau menolak versi model ML secara manual, langkah ini memunculkan peristiwa yang ditangkap oleh EventBridge. Peristiwa ini kemudian dapat memulai alur baru (kali ini CI/CD) untuk membuat versi baru komponen AWS IoT Greengrass yang kemudian diterapkan ke akun pra-produksi dan produksi. Tangkapan layar berikut menunjukkan aturan EventBridge yang kami tentukan.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Aturan ini memantau grup paket model SageMaker dengan mencari pembaruan paket model dalam status Approved or Rejected.

Aturan EventBridge kemudian dikonfigurasi untuk menargetkan CodePipeline, yang memulai alur kerja pembuatan komponen AWS IoT Greengrass baru dengan menggunakan Amazon SageMaker Neo dan Manajer Tepi.

Optimalkan model ML untuk arsitektur target

Neo memungkinkan Anda untuk mengoptimalkan model ML untuk melakukan inferensi pada perangkat edge (dan di cloud). Ini secara otomatis mengoptimalkan model ML untuk kinerja yang lebih baik berdasarkan arsitektur target, dan memisahkan model dari kerangka kerja asli, memungkinkan Anda untuk menjalankannya pada runtime yang ringan.

Lihat berikut ini buku catatan untuk contoh cara mengkompilasi model PyTorch Resnet18 menggunakan Neo.

Bangun paket penerapan dengan menyertakan komponen AWS IoT Greengrass

Edge Manager memungkinkan Anda mengelola, mengamankan, menerapkan, dan memantau model ke armada perangkat edge. Berikut ini buku catatan, Anda dapat melihat detail selengkapnya tentang cara membuat armada perangkat edge minimalis dan menjalankan beberapa eksperimen dengan fitur ini.

Setelah Anda mengonfigurasi armada dan mengompilasi model, Anda perlu menjalankan tugas pengemasan Edge Manager, yang mempersiapkan model untuk diterapkan ke armada. Anda dapat memulai pekerjaan pengemasan dengan menggunakan Boto3 SDK. Untuk parameter kami, kami menggunakan model yang dioptimalkan dan metadata model. Dengan menambahkan parameter berikut ke OutputConfig, pekerjaan ini juga menyiapkan komponen AWS IoT Greengrass V2 dengan model:

  • PresetDeploymentType
  • PresetDeploymentConfig

Lihat kode berikut:

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

Terapkan model ML dalam skala besar

Sekarang saatnya untuk menerapkan model ke armada perangkat edge Anda. Pertama, kita perlu memastikan bahwa kita memiliki yang diperlukan Identitas AWS dan Manajemen Akses (IAM) Izin untuk menyediakan perangkat IoT kami dan dapat menerapkan komponen ke dalamnya. Kami memerlukan dua elemen dasar untuk memulai perangkat orientasi ke platform IoT kami:

  • kebijakan IAM โ€“ Kebijakan ini memungkinkan penyediaan otomatis perangkat tersebut, yang dilampirkan ke pengguna atau peran yang melakukan penyediaan. Itu harus memiliki izin menulis IoT untuk membuat hal dan grup IoT, serta melampirkan kebijakan yang diperlukan ke perangkat. Untuk informasi lebih lanjut, lihat Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya.
  • Peran IAM โ€“ peran ini melekat pada hal-hal dan grup IoT yang kami buat. Anda dapat membuat peran ini pada waktu penyediaan dengan izin dasar, tetapi akan kekurangan fitur seperti akses ke Amazon S3 atau Layanan Manajemen Kunci AWS (AWS KMS) yang mungkin dibutuhkan nanti. Anda dapat membuat peran ini sebelumnya dan menggunakannya kembali saat kami menyediakan perangkat. Untuk informasi lebih lanjut, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS.

Instalasi dan penyediaan AWS IoT Greengrass

Setelah kami memiliki kebijakan dan peran IAM, kami siap untuk instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya otomatis. Meskipun dimungkinkan untuk menyediakan sumber daya IoT dengan mengikuti langkah-langkah manual, ada prosedur mudah untuk menyediakan sumber daya ini secara otomatis selama pemasangan inti AWS IoT Greengrass v2. Ini adalah opsi yang lebih disukai untuk dengan cepat memasukkan perangkat baru ke dalam platform. Di samping itu default-jdk, paket lain harus diinstal, seperti curl, unzip, dan python3.

Saat kami menyediakan perangkat kami, nama benda IoT harus sama persis dengan perangkat tepi yang ditentukan di Edge Manager, jika tidak, data tidak akan diambil ke bucket S3 tujuan.

Pemasang dapat membuat peran dan alias AWS IoT Greengrass selama penginstalan jika tidak ada. Namun, mereka akan dibuat dengan izin minimal dan akan memerlukan penambahan lebih banyak kebijakan secara manual untuk berinteraksi dengan layanan lain seperti Amazon S3. Sebaiknya buat sumber daya IAM ini sebelumnya seperti yang ditunjukkan sebelumnya, lalu gunakan kembali saat Anda memasukkan perangkat baru ke dalam akun.

Model dan kemasan komponen inferensi

Setelah kode kami dikembangkan, kami dapat menerapkan kode (untuk inferensi) dan model ML kami sebagai komponen ke dalam perangkat kami.

Setelah model ML dilatih di SageMaker, Anda dapat mengoptimalkan model dengan Neo menggunakan tugas kompilasi Sagemaker. Artefak model terkompilasi yang dihasilkan, kemudian dapat dikemas ke dalam komponen GreenGrass V2 menggunakan paket Edge Manager. Kemudian, itu dapat didaftarkan sebagai komponen khusus di Komponen Saya di konsol AWS IoT Greengrass. Komponen ini sudah berisi perintah siklus hidup yang diperlukan untuk mengunduh dan mendekompresi artefak model di perangkat kami, sehingga kode inferensi dapat memuatnya untuk mengirim gambar yang diambil melaluinya.

Mengenai kode inferensi, kita harus membuat komponen menggunakan konsol atau Antarmuka Baris Perintah AWS (AWS CLI). Pertama, kami mengemas kode inferensi sumber kami dan dependensi yang diperlukan ke Amazon S3. Setelah kita mengupload kodenya, kita bisa membuat komponen kita menggunakan resep di .yaml atau JSON seperti contoh berikut:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

Contoh resep ini menunjukkan nama dan deskripsi komponen kami, serta prasyarat yang diperlukan sebelum menjalankan perintah skrip kami. Resep membongkar artefak di lingkungan folder kerja di perangkat, dan kami menggunakan jalur itu untuk menjalankan kode inferensi kami. Perintah AWS CLI untuk membuat resep tersebut adalah:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

Anda sekarang dapat melihat komponen ini dibuat di konsol AWS IoT Greengrass.

Waspadalah terhadap fakta bahwa versi komponen itu penting, dan itu harus ditentukan dalam file resep. Mengulangi nomor versi yang sama akan mengembalikan kesalahan.

Setelah model dan kode inferensi kami disiapkan sebagai komponen, kami siap untuk menerapkannya.

Terapkan aplikasi dan model menggunakan AWS IoT Greengrass

Di bagian sebelumnya, Anda telah mempelajari cara mengemas kode inferensi dan model ML. Sekarang kita dapat membuat penerapan dengan beberapa komponen yang mencakup komponen dan konfigurasi yang diperlukan agar kode inferensi kita dapat berinteraksi dengan model di perangkat edge.

Agen Edge Manager adalah komponen yang harus diinstal pada setiap perangkat edge untuk mengaktifkan semua kemampuan Edge Manager. Di konsol SageMaker, kami memiliki armada perangkat yang ditentukan, yang memiliki bucket S3 terkait. Semua perangkat edge yang terkait dengan armada akan menangkap dan melaporkan data mereka ke jalur S3 ini. Agen dapat diterapkan sebagai komponen di AWS IoT Greengrass v2, yang membuatnya lebih mudah untuk menginstal dan mengonfigurasi daripada jika agen diterapkan dalam mode mandiri. Saat menerapkan agen sebagai komponen, kita perlu menentukan parameter konfigurasinya, yaitu armada perangkat dan jalur S3.

Kami membuat konfigurasi penerapan dengan komponen khusus untuk model dan kode yang baru saja kami buat. Penyiapan ini ditentukan dalam file JSON yang mencantumkan nama dan target penerapan, serta komponen dalam penerapan. Kami dapat menambahkan dan memperbarui parameter konfigurasi setiap komponen, seperti di agen Edge Manager, di mana kami menentukan nama armada dan bucket.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

Perlu dicatat bahwa kami telah menambahkan tidak hanya model, komponen inferensi, dan agen, tetapi juga AWS IoT Greengrass CLI dan nukleus sebagai komponen. Yang pertama dapat membantu men-debug penerapan tertentu secara lokal di perangkat. Yang terakhir ditambahkan ke dalam penerapan untuk mengonfigurasi akses jaringan yang diperlukan dari perangkat itu sendiri jika diperlukan (misalnya, pengaturan proxy), dan juga jika Anda ingin melakukan pemutakhiran OTA dari inti AWS IoT Greengrass v2. Nukleus tidak digunakan karena diinstal di perangkat, dan hanya pembaruan konfigurasi yang akan diterapkan (kecuali jika ada pemutakhiran). Untuk menyebarkan, kita hanya perlu menjalankan perintah berikut di atas konfigurasi sebelumnya. Ingatlah untuk menyiapkan ARN target tempat penerapan akan diterapkan (hal IoT atau grup IoT). Kami juga dapat menerapkan komponen ini dari konsol.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

Pantau dan kelola model ML yang diterapkan ke edge

Setelah aplikasi Anda berjalan di perangkat edge, inilah saatnya untuk memahami cara memantau armada untuk meningkatkan tata kelola, pemeliharaan, dan visibilitas. Di konsol SageMaker, pilih Manajer Tepi di panel navigasi, lalu pilih Armada perangkat tepi. Dari sini, pilih armada Anda.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Pada halaman detail armada, Anda dapat melihat beberapa metadata model yang berjalan di setiap perangkat armada Anda. Laporan armada dibuat setiap 24 jam.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Data yang diambil oleh setiap perangkat melalui Edge Agent dikirim ke bucket S3 dalam format json lines (JSONL). Proses pengiriman data yang diambil dikelola dari sudut pandang aplikasi. Oleh karena itu Anda bebas memutuskan apakah akan mengirim data ini, bagaimana dan seberapa sering.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Anda dapat menggunakan data ini untuk banyak hal, seperti memantau penyimpangan data dan kualitas model, membuat kumpulan data baru, memperkaya data lake, dan banyak lagi. Contoh sederhana tentang cara memanfaatkan data ini adalah ketika Anda mengidentifikasi beberapa penyimpangan data dalam cara pengguna berinteraksi dengan aplikasi Anda dan Anda perlu melatih model baru. Anda kemudian membangun kumpulan data baru dengan data yang diambil dan menyalinnya kembali ke akun pengembangan. Ini dapat secara otomatis memulai proses baru lingkungan Anda yang membangun model baru dan menerapkannya kembali ke seluruh armada untuk menjaga kinerja solusi yang diterapkan.

Kesimpulan

Dalam posting ini, Anda mempelajari cara membangun solusi lengkap yang menggabungkan MLOps dan ML@Edge menggunakan layanan AWS. Membangun solusi seperti itu bukanlah hal yang sepele, tetapi kami berharap arsitektur referensi yang disajikan dalam posting ini dapat menginspirasi dan membantu Anda membangun arsitektur yang kokoh untuk tantangan bisnis Anda sendiri. Anda juga dapat menggunakan hanya bagian atau modul dari arsitektur ini yang terintegrasi dengan lingkungan MLOps yang ada. Dengan membuat prototipe satu modul pada satu waktu dan menggunakan layanan AWS yang sesuai untuk mengatasi setiap bagian dari tantangan ini, Anda dapat mempelajari cara membangun lingkungan MLOps yang kuat dan juga menyederhanakan arsitektur akhir lebih lanjut.

Sebagai langkah berikutnya, kami mendorong Anda untuk mencoba Sagemaker Edge Manager untuk mengelola ML Anda di siklus hidup edge. Untuk informasi lebih lanjut tentang cara kerja Edge Manager, lihat Terapkan model di tepi dengan SageMaker Edge Manager .


Tentang penulis

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Bruno Piston adalah Arsitek Solusi Spesialis AI/ML untuk AWS yang berbasis di Milan. Dia bekerja dengan pelanggan dari berbagai ukuran untuk membantu mereka memahami secara mendalam kebutuhan teknis mereka dan merancang solusi AI dan Pembelajaran Mesin yang memanfaatkan AWS Cloud dan tumpukan Amazon Machine Learning dengan sebaik-baiknya. Bidang keahliannya adalah Machine Learning end to end, Machine Learning Industrialization dan MLOps. Dia menikmati menghabiskan waktu bersama teman-temannya dan menjelajahi tempat-tempat baru, serta bepergian ke tujuan baru.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Matteo Calabrese adalah Arsitek Pengiriman Pelanggan AI/ML di tim Layanan Profesional AWS. Dia bekerja dengan perusahaan besar EMEA pada proyek AI/ML, membantu mereka dalam proposisi, mendesain, memberikan, menskalakan, dan mengoptimalkan beban kerja produksi ML. Keahlian utamanya adalah ML Operation (MLOps) dan Machine Learning at Edge. Tujuannya adalah mempersingkat waktu mereka untuk menilai dan mempercepat hasil bisnis dengan memberikan praktik terbaik AWS. Di waktu luangnya, ia menikmati hiking dan bepergian.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Raรบl Dรญaz Garcia adalah Sr Data Scientist di tim AWS Professional Services. Dia bekerja dengan pelanggan perusahaan besar di seluruh EMEA, di mana dia membantu mereka mengaktifkan solusi yang terkait dengan Computer Vision dan Machine Learning di ruang IoT.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Sokratis Kartakis adalah Arsitek Solusi Spesialis Pembelajaran Mesin Senior untuk Amazon Web Services. Sokratis berfokus pada memungkinkan pelanggan perusahaan untuk mengindustrialisasikan solusi Machine Learning (ML) mereka dengan memanfaatkan layanan AWS dan membentuk model operasi mereka, yaitu fondasi MLOps, dan peta jalan transformasi yang memanfaatkan praktik pengembangan terbaik. Dia telah menghabiskan lebih dari 15 tahun untuk menciptakan, merancang, memimpin, dan menerapkan solusi ML dan Internet of Things (IoT) tingkat produksi ujung-ke-ujung yang inovatif dalam domain energi, ritel, kesehatan, keuangan/perbankan, olahraga motor, dll. Sokratis suka menghabiskan waktu luangnya bersama keluarga dan teman, atau mengendarai sepeda motor.

MLOps di tepi dengan Amazon SageMaker Edge Manager dan AWS IoT Greengrass PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Samir Araรบjo adalah Arsitek Solusi AI / ML di AWS. Dia membantu pelanggan menciptakan solusi AI / ML yang memecahkan tantangan bisnis mereka menggunakan AWS. Dia telah mengerjakan beberapa proyek AI / ML yang terkait dengan computer vision, natural language processing, forecasting, ML at the edge, dan banyak lagi. Dia suka bermain dengan proyek perangkat keras dan otomasi di waktu luangnya, dan dia memiliki minat khusus untuk robotika.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS