Logo Zephyrnet

MLOps vượt trội với Amazon SageMaker Edge Manager và AWS IoT Greengrass

Ngày:

Internet of Things (IoT) đã cho phép khách hàng trong nhiều ngành, chẳng hạn như sản xuất, ô tô và năng lượng, giám sát và kiểm soát môi trường trong thế giới thực. Bằng cách triển khai nhiều thiết bị IoT tiên tiến như máy ảnh, bộ điều nhiệt và cảm biến, bạn có thể thu thập dữ liệu, gửi dữ liệu lên đám mây và xây dựng các mô hình học máy (ML) để dự đoán sự bất thường, lỗi và hơn thế nữa. Tuy nhiên, nếu trường hợp sử dụng yêu cầu dự đoán theo thời gian thực, bạn cần phải làm phong phú thêm giải pháp IoT của mình với các khả năng ML at the edge (ML @ Edge). ML @ Edge là một khái niệm tách vòng đời của mô hình ML khỏi vòng đời ứng dụng và cho phép bạn chạy một đường ống ML từ đầu đến cuối bao gồm chuẩn bị dữ liệu, xây dựng mô hình, biên dịch và tối ưu hóa mô hình, triển khai mô hình (cho một nhóm thiết bị cạnh), thực hiện mô hình, giám sát và quản lý mô hình. Bạn triển khai ứng dụng một lần và chạy đường ống ML nhiều lần nếu bạn cần.

Như bạn có thể tưởng tượng, để thực hiện tất cả các bước được đề xuất bởi khái niệm ML @ Edge là không hề nhỏ. Có nhiều câu hỏi mà các nhà phát triển cần giải quyết để triển khai một giải pháp ML @ Edge hoàn chỉnh, ví dụ:

  • Làm cách nào để vận hành các mô hình ML trên một nhóm (hàng trăm, hàng nghìn hoặc hàng triệu) thiết bị ở biên?
  • Làm cách nào để bảo mật mô hình của tôi trong khi triển khai và chạy nó ở biên?
  • Làm cách nào để theo dõi hiệu suất của mô hình và đào tạo lại, nếu cần?

Trong bài đăng này, bạn học cách trả lời tất cả những câu hỏi này và xây dựng giải pháp end-to-end để tự động hóa đường ống ML @ Edge của bạn. Bạn sẽ thấy cách sử dụng Trình quản lý Edge của Amazon SageMaker, Xưởng sản xuất Amazon SageMakerAWS IoT Greengrass v2 để tạo môi trường MLOps (Hoạt động ML) tự động hóa quá trình xây dựng và triển khai các mô hình ML cho các nhóm thiết bị biên lớn.

Trong các phần tiếp theo, chúng tôi trình bày một kiến ​​trúc tham chiếu trình bày chi tiết tất cả các thành phần và quy trình công việc cần thiết để xây dựng một giải pháp hoàn chỉnh cho MLOps tập trung vào khối lượng công việc biên. Sau đó, chúng tôi đi sâu vào các bước giải pháp này chạy tự động để xây dựng và chuẩn bị một mô hình mới. Chúng tôi cũng chỉ cho bạn cách chuẩn bị các thiết bị cạnh để bắt đầu triển khai, chạy và giám sát các mô hình ML, đồng thời trình bày cách giám sát và duy trì các mô hình ML được triển khai cho nhóm thiết bị của bạn.

Tổng quan về giải pháp

Việc sản xuất các mô hình ML mạnh mẽ đòi hỏi sự hợp tác của nhiều cá nhân, chẳng hạn như nhà khoa học dữ liệu, kỹ sư ML, kỹ sư dữ liệu và các bên liên quan kinh doanh, dưới cơ sở hạ tầng bán tự động hóa theo các hoạt động cụ thể (MLOps). Ngoài ra, việc mô-đun hóa môi trường cũng rất quan trọng để cung cấp cho tất cả những cá tính khác nhau này sự linh hoạt và nhanh nhẹn để phát triển hoặc cải thiện (độc lập với quy trình làm việc) thành phần mà họ chịu trách nhiệm. Một ví dụ về cơ sở hạ tầng như vậy bao gồm nhiều tài khoản AWS cho phép hợp tác và sản xuất mô hình ML cả trong đám mây và cho các thiết bị biên. Trong kiến ​​trúc tham chiếu sau đây, chúng tôi chỉ ra cách chúng tôi tổ chức nhiều tài khoản và dịch vụ tạo ra nền tảng MLOps end-to-end này để xây dựng các mô hình ML và triển khai chúng ở rìa.

Giải pháp này bao gồm các tài khoản sau:

  • Tài khoản hồ dữ liệu - Kỹ sư dữ liệu nhập, lưu trữ và chuẩn bị dữ liệu từ nhiều nguồn dữ liệu, bao gồm cơ sở dữ liệu tại chỗ và thiết bị IoT.
  • Tài khoản dụng cụ - Các nhà khai thác CNTT quản lý và kiểm tra các đường ống CI / CD để phân phối liên tục tự động và triển khai các gói mô hình ML trên tài khoản tiền sản xuất và sản xuất cho các thiết bị biên từ xa. Chạy đường ống CI / CD được tự động hóa thông qua việc sử dụng Sự kiện Amazon, theo dõi các sự kiện trạng thái thay đổi của các mô hình ML và mục tiêu Đường ống dẫn mã AWS.
  • Tài khoản thử nghiệm và phát triển - Các nhà khoa học dữ liệu có thể tiến hành nghiên cứu và thử nghiệm với nhiều kỹ thuật và thuật toán mô hình hóa để giải quyết các vấn đề kinh doanh dựa trên ML, tạo ra bằng chứng về các giải pháp khái niệm. Các kỹ sư ML và nhà khoa học dữ liệu hợp tác để mở rộng quy mô bằng chứng về khái niệm, tạo quy trình làm việc tự động bằng cách sử dụng Đường ống Amazon SageMaker để chuẩn bị dữ liệu và xây dựng, đào tạo và đóng gói các mô hình ML. Việc triển khai các đường ống được điều khiển thông qua các đường ống CI / CD, trong khi việc kiểm soát phiên bản của các mô hình được thực hiện bằng cách sử dụng Sổ đăng ký mô hình Amazon SageMaker. Các nhà khoa học dữ liệu đánh giá chỉ số của nhiều phiên bản mô hình và yêu cầu quảng bá mô hình tốt nhất để sản xuất bằng cách kích hoạt đường ống CI / CD.
  • Tài khoản tiền sản xuất - Trước khi quảng bá mô hình vào môi trường sản xuất, mô hình cần được thử nghiệm để đảm bảo tính mạnh mẽ trong môi trường mô phỏng. Do đó, môi trường tiền sản xuất là một mô phỏng của môi trường sản xuất, trong đó các điểm cuối của mô hình SageMaker được triển khai và thử nghiệm tự động. Các phương pháp kiểm tra có thể bao gồm kiểm tra tích hợp, kiểm tra căng thẳng hoặc kiểm tra ML cụ thể về kết quả suy luận. Trong trường hợp này, môi trường sản xuất không phải là điểm cuối của mô hình SageMaker mà là một thiết bị cạnh. Để mô phỏng một thiết bị cạnh trong giai đoạn tiền sản xuất, có thể có hai cách tiếp cận: sử dụng Đám mây điện toán đàn hồi Amazon Ví dụ (Amazon EC2) có cùng đặc điểm phần cứng hoặc sử dụng máy thử nghiệm trong phòng thí nghiệm bao gồm các thiết bị thực tế. Với cơ sở hạ tầng này, đường ống CI / CD triển khai mô hình tới trình mô phỏng tương ứng và tự động tiến hành nhiều thử nghiệm. Sau khi các thử nghiệm chạy thành công, đường ống CI / CD yêu cầu phê duyệt thủ công (ví dụ: từ bên liên quan IoT để thúc đẩy mô hình vào sản xuất).
  • Tài khoản sản xuất - Trong trường hợp lưu trữ mô hình trên Đám mây AWS, đường ống CI / CD triển khai điểm cuối mô hình SageMaker trên tài khoản sản xuất. Trong trường hợp này, môi trường sản xuất bao gồm nhiều nhóm thiết bị cạnh. Do đó, đường ống CI / CD sử dụng Edge Manager để triển khai các mô hình cho nhóm thiết bị tương ứng.
  • Thiết bị cạnh - Thiết bị cạnh từ xa là thiết bị phần cứng có thể chạy các mô hình ML bằng Trình quản lý cạnh. Nó cho phép ứng dụng trên các thiết bị đó quản lý các mô hình, chạy suy luận dựa trên các mô hình và thu thập dữ liệu một cách an toàn vào Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3).

Các dự án của SageMaker giúp bạn tự động hóa quá trình cung cấp tài nguyên bên trong mỗi tài khoản này. Chúng tôi không đi sâu vào tính năng này, nhưng để tìm hiểu thêm về cách tạo mẫu dự án SageMaker triển khai các mô hình ML trên nhiều tài khoản, hãy xem Triển khai mô hình nhiều tài khoản với Amazon SageMaker Pipelines.

Tài khoản tiền sản xuất: Digital twin

Sau quá trình đào tạo, mô hình kết quả cần được đánh giá. Trong tài khoản tiền sản xuất, bạn có một thiết bị Edge mô phỏng. Nó đại diện cho sinh đôi kỹ thuật số của thiết bị cạnh mà trên đó mô hình ML đang được sản xuất. Môi trường này có mục đích kép là thực hiện các bài kiểm tra cổ điển (chẳng hạn như đơn vị, tích hợp và khói) và là sân chơi cho nhóm phát triển. Thiết bị này được mô phỏng bằng cách sử dụng một phiên bản EC2 trong đó tất cả các thành phần cần thiết để quản lý mô hình ML đã được triển khai.

Các dịch vụ liên quan như sau:

  • Lõi AWS IoT - Chúng tôi sử dụng Lõi AWS IoT để tạo các đối tượng thứ AWS IoT, tạo nhóm thiết bị, đăng ký nhóm thiết bị để nó có thể tương tác với đám mây, tạo chứng chỉ X.509 để xác thực các thiết bị cạnh với AWS IoT Core, liên kết bí danh vai trò với AWS IoT Core được tạo khi nhóm đã tạo, nhận điểm cuối dành riêng cho tài khoản AWS cho nhà cung cấp thông tin xác thực, tải tệp Amazon Root CA chính thức và tải tệp Amazon CA lên Amazon S3.
  • Amazon Sagemaker Neo - người làm hiền triết Neo tự động tối ưu hóa các mô hình học máy để suy luận chạy nhanh hơn mà không bị giảm độ chính xác. Nó hỗ trợ mô hình học máy đã được xây dựng với DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX hoặc XGBoost và được đào tạo trong Amazon SageMaker hoặc bất kỳ nơi nào khác. Sau đó, bạn chọn nền tảng phần cứng mục tiêu của mình, có thể là phiên bản lưu trữ SageMaker hoặc thiết bị cạnh dựa trên bộ xử lý của Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments hoặc Xilinx.
  • Trình quản lý Edge - Chúng tôi sử dụng Edge Manager để đăng ký và quản lý thiết bị cạnh trong nhóm Sagemaker. Hạm đội là tập hợp các thiết bị được nhóm hợp lý mà bạn có thể sử dụng để thu thập và phân tích dữ liệu. Bên cạnh đó, trình đóng gói Edge Manager, đóng gói mô hình được tối ưu hóa và tạo thành phần AWS IoT Greengrass V2 có thể được triển khai trực tiếp. Bạn có thể sử dụng Edge Manager để vận hành các mô hình ML trên một nhóm máy ảnh thông minh, loa thông minh, rô bốt và nhóm thiết bị SageMaker khác.
  • AWS IoT Greengrass V2Cỏ xanh AWS IoT cho phép bạn triển khai các thành phần vào các thiết bị được mô phỏng bằng cách sử dụng phiên bản EC2. Bằng cách sử dụng tác nhân AWS IoT Greengrass V2 trong các phiên bản EC2, chúng tôi có thể đơn giản hóa việc truy cập, quản lý và triển khai tác nhân và mô hình Edge Manager cho các thiết bị. Nếu không có AWS IoT Greengrass V2, việc thiết lập thiết bị và nhóm để sử dụng Edge Manager yêu cầu bạn sao chép thủ công tác nhân từ nhóm phát hành S3. Với tích hợp AWS IoT Greengrass V2 và Edge Manager, bạn có thể sử dụng các thành phần AWS IoT Greengrass V2. Các thành phần là các mô-đun phần mềm được xây dựng sẵn có thể kết nối các thiết bị biên với dịch vụ AWS hoặc dịch vụ của bên thứ ba thông qua AWS IoT Greengrass.
  • Đại lý Edge Manager - Tác nhân Edge Manager được triển khai qua AWS IoT Greengrass V2 trong phiên bản EC2. Tác nhân có thể tải nhiều mô hình cùng một lúc và đưa ra suy luận với các mô hình đã tải trên các thiết bị cạnh. Số lượng kiểu máy mà tác nhân có thể tải được xác định bởi bộ nhớ khả dụng trên thiết bị.
  • Amazon S3 - Chúng tôi sử dụng một thùng S3 để lưu trữ dữ liệu suy luận được thu thập từ tác nhân Edge Manager.

Chúng tôi có thể xác định tài khoản tiền sản xuất như một tài khoản song sinh kỹ thuật số để thử nghiệm các mô hình ML trước khi chuyển chúng vào các thiết bị cạnh thực. Điều này mang lại những lợi ích sau:

  • Nhanh nhẹn và linh hoạt - Các nhà khoa học dữ liệu và kỹ sư ML cần nhanh chóng xác nhận xem mô hình ML và các tập lệnh liên quan (tập lệnh tiền xử lý và suy luận) có hoạt động trên biên thiết bị hay không. Tuy nhiên, các bộ phận IoT và khoa học dữ liệu trong các doanh nghiệp lớn có thể là các thực thể khác nhau. Bằng cách sao chép giống hệt ngăn xếp công nghệ trong đám mây, các nhà khoa học dữ liệu và kỹ sư ML có thể lặp lại và hợp nhất các tạo tác trước khi triển khai.
  • Đánh giá rủi ro nhanh chóng và thời gian sản xuất - Triển khai trên thiết bị biên là giai đoạn cuối cùng của quy trình. Sau khi bạn xác thực mọi thứ trong một môi trường cô lập và khép kín, hãy đảm bảo nó tuân thủ các thông số kỹ thuật theo yêu cầu của lợi thế về chất lượng, hiệu suất và tích hợp. Điều này giúp tránh sự tham gia thêm của những người khác trong bộ phận IoT để sửa chữa và lặp lại trên các phiên bản tạo tác.
  • Hợp tác nhóm được cải thiện và chất lượng cũng như hiệu suất được nâng cao - Nhóm phát triển có thể đánh giá ngay tác động của mô hình ML bằng cách phân tích các chỉ số phần cứng cạnh và đo lường mức độ tương tác với các công cụ của bên thứ ba (ví dụ: tỷ lệ I / O). Sau đó, nhóm IoT chỉ chịu trách nhiệm triển khai đến môi trường sản xuất và có thể tự tin rằng các hiện vật là chính xác đối với môi trường sản xuất.
  • Sân chơi tích hợp để thử nghiệm - Với mục tiêu của các mô hình ML, môi trường tiền sản xuất trong quy trình làm việc truyền thống nên được thể hiện bằng một thiết bị biên bên ngoài môi trường đám mây. Điều này dẫn đến một mức độ phức tạp khác. Tích hợp là cần thiết để thu thập số liệu và phản hồi. Thay vào đó, bằng cách sử dụng môi trường mô phỏng đôi kỹ thuật số, các tương tác được giảm bớt và thời gian đưa ra thị trường được rút ngắn.

Tài khoản sản xuất và môi trường cạnh

Sau khi các thử nghiệm hoàn tất và đạt được độ ổn định hiện vật, bạn có thể tiến hành triển khai sản xuất thông qua các đường ống. Việc triển khai phần mềm xảy ra theo chương trình sau khi người điều hành đã phê duyệt phần mềm. Tuy nhiên, quyền truy cập vào Bảng điều khiển quản lý AWS được cấp cho các nhà khai thác ở chế độ chỉ đọc để có thể giám sát siêu dữ liệu được liên kết với các nhóm và do đó có thông tin chi tiết về phiên bản của mô hình ML đã triển khai và các số liệu khác liên quan đến vòng đời.

Nhóm thiết bị Edge thuộc về tài khoản sản xuất AWS. Tài khoản này có các cấu hình mạng và bảo mật cụ thể để cho phép giao tiếp giữa đám mây và các thiết bị cạnh. Các dịch vụ AWS chính được triển khai trong tài khoản sản xuất là Edge Manager, chịu trách nhiệm quản lý tất cả các nhóm thiết bị, thu thập dữ liệu và vận hành các mô hình ML và AWS IoT Core, quản lý các đối tượng IoT, chứng chỉ, bí danh vai trò và điểm cuối.

Đồng thời, chúng ta cần cấu hình một thiết bị cạnh với các dịch vụ và thành phần để quản lý các mô hình ML. Các thành phần chính như sau:

  • AWS IoT Greengrass V2
  • Một đại lý Edge Manager
  • Chứng chỉ AWS IoT
  • Application.py, chịu trách nhiệm sắp xếp quá trình suy luận (truy xuất thông tin từ nguồn dữ liệu biên và thực hiện suy luận bằng cách sử dụng tác nhân Edge Manager và mô hình ML đã tải)
  • Kết nối với Amazon S3 hoặc tài khoản data lake để lưu trữ dữ liệu được truyền vào

Đường ống ML tự động

Bây giờ bạn đã biết thêm về tổ chức và các thành phần của kiến ​​trúc tham chiếu, chúng tôi có thể đi sâu hơn vào đường ống ML mà chúng tôi sử dụng để xây dựng, đào tạo và đánh giá mô hình ML bên trong tài khoản phát triển.

Một đường ống (được xây dựng bằng cách sử dụng Đường ống xây dựng mô hình Amazon SageMaker) là một loạt các bước được kết nối với nhau được xác định bằng định nghĩa đường ống JSON. Định nghĩa đường ống này mã hóa đường ống bằng cách sử dụng Đồ thị vòng quay có hướng (DAG). DAG này cung cấp thông tin về các yêu cầu và mối quan hệ giữa từng bước trong quy trình của bạn. Cấu trúc của DAG của đường ống được xác định bởi sự phụ thuộc dữ liệu giữa các bước. Các phần phụ thuộc dữ liệu này được tạo ra khi các thuộc tính của đầu ra của một bước được chuyển làm đầu vào cho bước khác.

Để cho phép các nhóm khoa học dữ liệu dễ dàng tự động hóa việc tạo các phiên bản mới của mô hình ML, điều quan trọng là phải giới thiệu các bước xác thực và dữ liệu tự động để liên tục cung cấp và cải thiện mô hình ML, cũng như các chiến lược giám sát mô hình để cho phép kích hoạt đường ống. Sơ đồ sau đây cho thấy một đường ống dẫn ví dụ.

Để kích hoạt tính năng tự động hóa và MLOps, điều quan trọng là phải tạo các thành phần mô-đun để tạo các tạo tác mã có thể sử dụng lại có thể được chia sẻ qua các bước khác nhau và các trường hợp sử dụng ML. Điều này cho phép bạn nhanh chóng chuyển việc triển khai từ giai đoạn thử nghiệm sang giai đoạn sản xuất bằng cách tự động hóa quá trình chuyển đổi.

Các bước để xác định một đường ống ML để cho phép đào tạo liên tục và tạo phiên bản cho các mô hình ML như sau:

  • Sơ chế - Quá trình làm sạch dữ liệu, kỹ thuật tính năng và tạo tập dữ liệu để đào tạo thuật toán ML
  • Hội thảo - Quá trình đào tạo thuật toán ML đã phát triển để tạo phiên bản mới của tạo tác mô hình ML
  • Đánh giá - Quá trình đánh giá mô hình ML đã tạo, để trích xuất các số liệu chính liên quan đến hành vi của mô hình trên dữ liệu mới không được nhìn thấy trong giai đoạn đào tạo
  • Đăng Ký - Quá trình lập phiên bản tạo phần mềm mô hình ML được đào tạo mới bằng cách liên kết các chỉ số được trích xuất với phần tạo tác được tạo

Bạn có thể xem thêm chi tiết về cách xây dựng đường ống SageMaker ở phần sau máy tính xách tay.

Kích hoạt đường ống CI / CD bằng EventBridge

Khi bạn hoàn thành việc xây dựng mô hình, bạn có thể bắt đầu quá trình triển khai. Bước cuối cùng của đường dẫn SageMaker được xác định trong phần trước đăng ký một phiên bản mới của mô hình trong nhóm đăng ký mô hình SageMaker cụ thể. Việc triển khai phiên bản mới của mô hình ML được quản lý bằng trạng thái đăng ký mô hình. Bằng cách phê duyệt hoặc từ chối phiên bản mô hình ML theo cách thủ công, bước này sẽ nêu ra một sự kiện được EventBridge nắm bắt. Sau đó, sự kiện này có thể bắt đầu một quy trình mới (lần này là CI / CD) để tạo phiên bản mới của thành phần AWS IoT Greengrass, sau đó được triển khai cho các tài khoản tiền sản xuất và sản xuất. Ảnh chụp màn hình sau đây cho thấy quy tắc EventBridge đã xác định của chúng tôi.

Quy tắc này giám sát nhóm gói mô hình SageMaker bằng cách tìm kiếm các bản cập nhật của gói mô hình trong trạng thái Approved or Rejected.

Quy tắc EventBridge sau đó được định cấu hình để nhắm mục tiêu CodePipeline, quy tắc này bắt đầu quy trình tạo thành phần AWS IoT Greengrass mới bằng cách sử dụng Amazon SageMaker Neo và Trình quản lý Edge.

Tối ưu hóa các mô hình ML cho kiến ​​trúc mục tiêu

Neo cho phép bạn tối ưu hóa các mô hình ML để thực hiện suy luận trên các thiết bị cạnh (và trong đám mây). Nó tự động tối ưu hóa các mô hình ML để có hiệu suất tốt hơn dựa trên kiến ​​trúc đích và tách mô hình khỏi khung ban đầu, cho phép bạn chạy nó trong thời gian chạy nhẹ.

Tham khảo phần sau máy tính xách tay để biết ví dụ về cách biên dịch mô hình PyTorch Resnet18 bằng Neo.

Xây dựng gói triển khai bằng cách bao gồm thành phần AWS IoT Greengrass

Edge Manager cho phép bạn quản lý, bảo mật, triển khai và giám sát các mô hình cho một nhóm các thiết bị cạnh. Trong những điều sau đây máy tính xách tay, bạn có thể xem thêm chi tiết về cách xây dựng nhóm thiết bị tối giản và chạy một số thử nghiệm với tính năng này.

Sau khi bạn định cấu hình nhóm và biên dịch mô hình, bạn cần chạy công việc đóng gói Trình quản lý Edge để chuẩn bị triển khai mô hình cho nhóm. Bạn có thể bắt đầu công việc đóng gói bằng cách sử dụng Boto3 SDK. Đối với các thông số của chúng tôi, chúng tôi sử dụng siêu dữ liệu mô hình và mô hình được tối ưu hóa. Bằng cách thêm các tham số sau vào OutputConfig, công việc cũng chuẩn bị một thành phần AWS IoT Greengrass V2 với mô hình:

  • PresetDeploymentType
  • PresetDeploymentConfig

Xem mã sau đây:

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}
        ),
    }
)

Triển khai mô hình ML ở quy mô lớn

Bây giờ đã đến lúc triển khai mô hình cho nhóm thiết bị tiên tiến của bạn. Trước tiên, chúng tôi cần đảm bảo rằng chúng tôi có Quản lý truy cập và nhận dạng AWS (TÔI LÀ) quyền để cung cấp các thiết bị IoT của chúng tôi và có thể triển khai các thành phần cho nó. Chúng tôi yêu cầu hai yếu tố cơ bản để bắt đầu tích hợp thiết bị vào nền tảng IoT của mình:

  • Chính sách IAM - Chính sách này cho phép cung cấp tự động các thiết bị đó, gắn liền với người dùng hoặc vai trò thực hiện việc cấp phép. Nó phải có quyền ghi IoT để tạo thứ và nhóm IoT, cũng như đính kèm các chính sách cần thiết vào thiết bị. Để biết thêm thông tin, hãy tham khảo Chính sách IAM tối thiểu cho trình cài đặt để cung cấp tài nguyên.
  • Vai trò IAM - vai trò này được gắn với những thứ và nhóm IoT mà chúng tôi tạo ra. Bạn có thể tạo vai trò này tại thời điểm cấp phép với các quyền cơ bản, nhưng nó sẽ thiếu các tính năng như quyền truy cập vào Amazon S3 hoặc Dịch vụ quản lý khóa AWS (AWS KMS) có thể cần thiết sau này. Bạn có thể tạo vai trò này trước và sử dụng lại khi chúng tôi cung cấp thiết bị. Để biết thêm thông tin, hãy tham khảo Cho phép các thiết bị cốt lõi tương tác với AWS.

Cài đặt và cung cấp AWS IoT Greengrass

Sau khi có chính sách và vai trò của IAM, chúng tôi sẵn sàng cài đặt phần mềm AWS IoT Greengrass Core với cung cấp tài nguyên tự động. Mặc dù có thể cung cấp các tài nguyên IoT theo các bước thủ công, nhưng có một quy trình thuận tiện là tự động cung cấp các tài nguyên này trong quá trình cài đặt hạt nhân AWS IoT Greengrass v2. Đây là tùy chọn ưu tiên để nhanh chóng đưa các thiết bị mới vào nền tảng. ngoài ra default-jdk, các gói khác được yêu cầu cài đặt, chẳng hạn như curl, unzippython3.

Khi chúng tôi cung cấp thiết bị của mình, tên thứ IoT phải hoàn toàn giống với thiết bị cạnh được xác định trong Edge Manager, nếu không dữ liệu sẽ không được ghi lại vào nhóm S3 đích.

Trình cài đặt có thể tạo vai trò và bí danh AWS IoT Greengrass trong quá trình cài đặt nếu chúng không tồn tại. Tuy nhiên, chúng sẽ được tạo với các quyền tối thiểu và sẽ yêu cầu thêm các chính sách theo cách thủ công để tương tác với các dịch vụ khác như Amazon S3. Chúng tôi khuyên bạn nên tạo trước các tài nguyên IAM này như được hiển thị trước đó và sau đó sử dụng lại chúng khi bạn đưa thiết bị mới vào tài khoản.

Mô hình và bao bì thành phần suy luận

Sau khi mã của chúng tôi đã được phát triển, chúng tôi có thể triển khai cả mã (để suy luận) và các mô hình ML của chúng tôi dưới dạng các thành phần vào thiết bị của chúng tôi.

Sau khi mô hình ML được đào tạo trong SageMaker, bạn có thể tối ưu hóa mô hình với Neo bằng cách sử dụng công việc biên dịch Sagemaker. Các tạo tác mô hình đã biên dịch thu được, sau đó có thể được đóng gói thành một thành phần GreenGrass V2 bằng cách sử dụng trình đóng gói Edge Manager. Sau đó, nó có thể được đăng ký như một thành phần tùy chỉnh trong Các thành phần của tôi trên bảng điều khiển AWS IoT Greengrass. Thành phần này đã chứa các lệnh vòng đời cần thiết để tải xuống và giải nén cấu phần mô hình trong thiết bị của chúng tôi, để mã suy luận có thể tải nó lên để gửi các hình ảnh được chụp qua nó.

Về mã suy luận, chúng ta phải tạo một thành phần bằng bảng điều khiển hoặc Giao diện dòng lệnh AWS (AWS CLI). Đầu tiên, chúng tôi đóng gói mã suy luận nguồn và các phụ thuộc cần thiết vào Amazon S3. Sau khi chúng tôi tải lên mã, chúng tôi có thể tạo thành phần của mình bằng cách sử dụng công thức trong .yaml hoặc JSON như ví dụ sau:

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

Công thức ví dụ này hiển thị tên và mô tả thành phần của chúng tôi, cũng như các điều kiện tiên quyết cần thiết trước lệnh chạy script của chúng tôi. Công thức giải nén cấu phần trong môi trường thư mục công việc trong thiết bị và chúng tôi sử dụng đường dẫn đó để chạy mã suy luận của mình. Lệnh AWS CLI để tạo công thức như vậy là:

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

Bây giờ bạn có thể thấy thành phần này được tạo trên bảng điều khiển AWS IoT Greengrass.

Hãy cẩn thận với thực tế là phiên bản thành phần quan trọng và nó phải được chỉ định trong tệp công thức. Lặp lại cùng một số phiên bản sẽ trả về lỗi.

Sau khi mô hình và mã suy luận của chúng tôi đã được thiết lập thành các thành phần, chúng tôi đã sẵn sàng triển khai chúng.

Triển khai ứng dụng và mô hình bằng AWS IoT Greengrass

Trong các phần trước, bạn đã học cách đóng gói mã suy luận và các mô hình ML. Bây giờ chúng ta có thể tạo một triển khai với nhiều thành phần bao gồm cả các thành phần và cấu hình cần thiết để mã suy luận của chúng ta tương tác với mô hình trong thiết bị biên.

Tác nhân Edge Manager là thành phần cần được cài đặt trên mỗi thiết bị cạnh để kích hoạt tất cả các khả năng của Edge Manager. Trên bảng điều khiển SageMaker, chúng tôi đã xác định nhóm thiết bị, có nhóm S3 được liên kết. Tất cả các thiết bị biên được liên kết với nhóm sẽ thu thập và báo cáo dữ liệu của chúng tới đường dẫn S3 này. Tác nhân có thể được triển khai như một thành phần trong AWS IoT Greengrass v2, giúp cài đặt và định cấu hình dễ dàng hơn so với khi tác nhân được triển khai ở chế độ độc lập. Khi triển khai tác nhân như một thành phần, chúng ta cần xác định các thông số cấu hình của nó, cụ thể là nhóm thiết bị và đường dẫn S3.

Chúng tôi tạo cấu hình triển khai với các thành phần tùy chỉnh cho mô hình và mã mà chúng tôi vừa tạo. Thiết lập này được xác định trong tệp JSON liệt kê tên và mục tiêu triển khai cũng như các thành phần trong triển khai. Chúng tôi có thể thêm và cập nhật các thông số cấu hình của từng thành phần, chẳng hạn như trong tác nhân Edge Manager, nơi chúng tôi chỉ định tên hạm đội và nhóm.

{
    "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"
        }
    }
}

Điều đáng chú ý là chúng tôi đã thêm không chỉ mô hình, thành phần suy luận và tác nhân mà còn cả AWS IoT Greengrass CLI và hạt nhân làm thành phần. Trước đây có thể giúp gỡ lỗi một số triển khai cục bộ trên thiết bị. Phần sau được thêm vào triển khai để định cấu hình quyền truy cập mạng cần thiết từ chính thiết bị nếu cần (ví dụ: cài đặt proxy) và cũng trong trường hợp bạn muốn thực hiện nâng cấp OTA của hạt nhân AWS IoT Greengrass v2. Hạt nhân không được triển khai vì nó được cài đặt trong thiết bị và chỉ có bản cập nhật cấu hình mới được áp dụng (trừ khi có bản nâng cấp). Để triển khai, chúng ta chỉ cần chạy lệnh sau trên cấu hình trước đó. Hãy nhớ thiết lập ARN mục tiêu mà việc triển khai sẽ được áp dụng (một thứ IoT hoặc nhóm IoT). Chúng tôi cũng có thể triển khai các thành phần này từ bảng điều khiển.

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

Giám sát và quản lý các mô hình ML được triển khai đến tận cùng

Bây giờ ứng dụng của bạn đang chạy trên các thiết bị tiên tiến, đã đến lúc hiểu cách giám sát nhóm để cải thiện quản trị, bảo trì và khả năng hiển thị. Trên bảng điều khiển SageMaker, chọn Trình quản lý Edge trong ngăn điều hướng, sau đó chọn Nhóm thiết bị cạnh. Từ đây, hãy chọn đội bay của bạn.

Trên trang chi tiết của đội xe, bạn có thể xem một số siêu dữ liệu về các kiểu máy đang chạy trên từng thiết bị của đội xe của bạn. Báo cáo của hạm đội được tạo sau mỗi 24 giờ.

Dữ liệu được thu thập bởi từng thiết bị thông qua Edge Agent được gửi đến một nhóm S3 ở định dạng dòng json (JSONL). Quá trình gửi dữ liệu đã chụp được quản lý từ quan điểm ứng dụng. Do đó, bạn có thể tự do quyết định có nên gửi dữ liệu này hay không, cách thức và tần suất.

Bạn có thể sử dụng dữ liệu này cho nhiều việc, chẳng hạn như theo dõi sự trôi dạt dữ liệu và chất lượng mô hình, xây dựng tập dữ liệu mới, làm phong phú hồ dữ liệu, v.v. Một ví dụ đơn giản về cách sử dụng dữ liệu này là khi bạn xác định một số luồng dữ liệu theo cách người dùng đang tương tác với ứng dụng của bạn và bạn cần đào tạo một mô hình mới. Sau đó, bạn xây dựng một tập dữ liệu mới với dữ liệu đã thu thập và sao chép nó trở lại tài khoản phát triển. Điều này có thể tự động bắt đầu một quá trình chạy mới của môi trường của bạn, xây dựng một mô hình mới và triển khai lại nó cho toàn bộ đội để duy trì hiệu suất của giải pháp đã triển khai.

Kết luận

Trong bài đăng này, bạn đã học cách xây dựng một giải pháp hoàn chỉnh kết hợp MLOps và ML @ Edge bằng cách sử dụng các dịch vụ AWS. Xây dựng một giải pháp như vậy là không hề nhỏ, nhưng chúng tôi hy vọng kiến ​​trúc tham khảo được trình bày trong bài đăng này có thể truyền cảm hứng và giúp bạn xây dựng một kiến ​​trúc vững chắc cho những thách thức kinh doanh của riêng bạn. Bạn cũng có thể chỉ sử dụng các phần hoặc mô-đun của kiến ​​trúc này tích hợp với môi trường MLOps hiện có của bạn. Bằng cách tạo mẫu một mô-đun duy nhất tại một thời điểm và sử dụng các dịch vụ AWS thích hợp để giải quyết từng phần của thách thức này, bạn có thể học cách xây dựng một môi trường MLOps mạnh mẽ và cũng đơn giản hóa hơn nữa kiến ​​trúc cuối cùng.

Bước tiếp theo, chúng tôi khuyến khích bạn dùng thử Sagemaker Edge Manager để quản lý ML của bạn ở vòng đời cạnh. Để biết thêm thông tin về cách hoạt động của Trình quản lý Edge, hãy xem Triển khai các mô hình vượt trội với SageMaker Edge Manager .


Giới thiệu về tác giả

Bruno Pistone là Kiến trúc sư Giải pháp Chuyên gia về AI / ML cho AWS có trụ sở tại Milan. Anh ấy làm việc với khách hàng ở mọi quy mô để giúp họ hiểu sâu sắc nhu cầu kỹ thuật của họ và thiết kế các giải pháp AI và Học máy để tận dụng tốt nhất Đám mây AWS và ngăn xếp Học máy của Amazon. Lĩnh vực chuyên môn của ông là Học máy từ đầu đến cuối, Công nghiệp hóa Học máy và MLOps. Anh ấy thích dành thời gian với bạn bè và khám phá những địa điểm mới, cũng như đi du lịch đến những điểm đến mới.

Matteo Calabrese là một Kiến trúc sư Phân phối Khách hàng AI / ML trong nhóm Dịch vụ Chuyên nghiệp của AWS. Ông làm việc với các doanh nghiệp lớn của EMEA về các dự án AI / ML, giúp họ đề xuất, thiết kế, phân phối, mở rộng quy mô và tối ưu hóa khối lượng công việc sản xuất ML. Chuyên môn chính của anh ấy là Vận hành ML (MLOps) và Học máy tại Edge. Mục tiêu của anh ấy là rút ngắn thời gian đánh giá và tăng tốc kết quả kinh doanh của họ bằng cách cung cấp các phương pháp hay nhất của AWS. Trong thời gian rảnh rỗi, anh ấy thích đi bộ đường dài và đi du lịch.

Raúl Díaz García là Chuyên gia Khoa học Dữ liệu Sr trong nhóm Dịch vụ Chuyên nghiệp của AWS. Anh ấy làm việc với các khách hàng doanh nghiệp lớn trên khắp EMEA, nơi anh ấy giúp họ kích hoạt các giải pháp liên quan đến Thị giác máy tính và Học máy trong không gian IoT.

Sokratis Kartakis là Kiến trúc sư Giải pháp Chuyên gia về Máy học Cấp cao cho Dịch vụ Web của Amazon. Sokratis tập trung vào việc cho phép khách hàng doanh nghiệp công nghiệp hóa các giải pháp Học máy (ML) của họ bằng cách khai thác các dịch vụ AWS và định hình mô hình hoạt động của họ, tức là nền tảng MLOps và lộ trình chuyển đổi tận dụng các phương pháp phát triển tốt nhất. Ông đã dành hơn 15 năm để phát minh, thiết kế, lãnh đạo và triển khai các giải pháp ML và Internet of Things (IoT) cấp độ sản xuất đầu cuối sáng tạo trong các lĩnh vực năng lượng, bán lẻ, y tế, tài chính / ngân hàng, đua xe thể thao, v.v. Sokratis thích dành thời gian rảnh rỗi cho gia đình và bạn bè, hoặc đi xe máy.

Samir Araújo là Kiến trúc sư Giải pháp AI / ML tại AWS. Anh ấy giúp khách hàng tạo ra các giải pháp AI / ML giải quyết các thách thức kinh doanh của họ bằng AWS. Anh ấy đã và đang thực hiện một số dự án AI / ML liên quan đến thị giác máy tính, xử lý ngôn ngữ tự nhiên, dự báo, ML ở rìa và hơn thế nữa. Anh ấy thích chơi với các dự án phần cứng và tự động hóa trong thời gian rảnh, và anh ấy có niềm yêu thích đặc biệt với người máy.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img