Triển khai giải pháp MLOps lưu trữ điểm cuối mô hình của bạn trong AWS Lambda PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Triển khai giải pháp MLOps lưu trữ điểm cuối mô hình của bạn trong AWS Lambda

Năm 2019, Amazon đồng sáng lập cam kết khí hậu. Mục tiêu của cam kết là đạt được lượng carbon bằng không vào năm 2040. Điều này sớm hơn 10 năm so với thỏa thuận Paris đề ra. Các công ty đăng ký cam kết báo cáo thường xuyên, loại bỏ carbon và đền bù đáng tin cậy. Tại thời điểm viết bài này, 377 công ty đã ký cam kết về khí hậu và con số này vẫn đang tăng lên.

Vì AWS cam kết giúp bạn đạt được mục tiêu không có lượng khí thải thông qua các giải pháp đám mây và học máy (ML), nên nhiều dự án đã được phát triển và triển khai nhằm giảm lượng khí thải carbon. Sản xuất là một trong những ngành có thể hưởng lợi rất nhiều từ những dự án như vậy. Thông qua việc quản lý năng lượng được tối ưu hóa của máy móc trong các nhà máy sản xuất, chẳng hạn như máy nén hoặc máy làm lạnh, các công ty có thể giảm lượng khí thải carbon bằng ML.

Việc chuyển đổi hiệu quả từ giai đoạn thử nghiệm ML sang giai đoạn sản xuất là một thách thức. Tự động hóa việc đào tạo và đào tạo lại mô hình, đăng ký mô hình cũng như theo dõi các thử nghiệm và triển khai là một số thách thức chính. Đối với các công ty sản xuất, còn có một mức độ phức tạp khác, đó là làm thế nào các mô hình được triển khai này có thể chạy ở biên.

Trong bài đăng này, chúng tôi giải quyết những thách thức này bằng cách cung cấp mẫu hoạt động học máy (MLOps) chứa giải pháp quản lý năng lượng bền vững. Giải pháp này không phụ thuộc vào các trường hợp sử dụng, nghĩa là bạn có thể điều chỉnh nó cho phù hợp với các trường hợp sử dụng của mình bằng cách thay đổi mô hình và dữ liệu. Chúng tôi chỉ cho bạn cách tích hợp các mô hình trong Đường ống Amazon SageMaker, một công cụ điều phối quy trình làm việc gốc để xây dựng quy trình ML, chạy công việc đào tạo và tùy chọn là công việc xử lý với Mô phỏng Monte Carlo. Thí nghiệm được theo dõi trong Thử nghiệm Amazon SageMaker. Các mô hình được theo dõi và đăng ký trong Sổ đăng ký mô hình Amazon SageMaker. Cuối cùng, chúng tôi cung cấp mã để triển khai mô hình cuối cùng của bạn theo cách AWS Lambda chức năng.

Lambda là dịch vụ điện toán cho phép bạn chạy mã mà không cần quản lý hay cung cấp máy chủ. Khả năng tự động thay đổi quy mô, tính phí trả theo yêu cầu và tính dễ sử dụng của Lambda khiến nó trở thành lựa chọn triển khai phổ biến cho các nhóm khoa học dữ liệu. Với bài đăng này, các nhà khoa học dữ liệu có thể biến mô hình của họ thành một hàm Lambda có khả năng mở rộng và tiết kiệm chi phí. Hơn nữa, Lambda cho phép tích hợp với Cỏ xanh AWS IoT, giúp bạn xây dựng phần mềm cho phép thiết bị của bạn hoạt động tốt nhất dựa trên dữ liệu mà chúng tạo ra, giống như trường hợp của giải pháp quản lý năng lượng bền vững.

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

Kiến trúc mà chúng tôi triển khai (xem hình sau) là một phương pháp tiếp cận hoàn toàn dựa trên CI/CD cho máy học. Các phần tử được tách riêng để tránh có một giải pháp nguyên khối.

Hãy bắt đầu với phía trên bên trái của sơ đồ. Các Xử lý – Xây dựng hình ảnh thành phần được điều khiển bởi CI/CD Cam kết mã AWS kho lưu trữ giúp xây dựng và thúc đẩy một phu bến tàu chứa đến Đăng ký container đàn hồi Amazon (Amazon ECR). Vùng chứa xử lý này đóng vai trò là bước đầu tiên trong quy trình ML của chúng tôi, nhưng nó cũng được sử dụng lại cho các bước xử lý hậu kỳ. Trong trường hợp của chúng tôi, chúng tôi áp dụng Mô phỏng Monte Carlo dưới dạng xử lý hậu kỳ. Các Đào tạo – Xây dựng hình ảnh kho lưu trữ được nêu ở phía dưới bên trái có cơ chế tương tự như Chế biến chặn phía trên nó. Sự khác biệt chính là nó xây dựng vùng chứa để đào tạo mô hình.

Đường ống chính, Xây dựng mô hình (Đường ống), là một kho lưu trữ CodeCommit khác tự động chạy quy trình SageMaker của bạn. Quy trình này tự động hóa và kết nối quá trình xử lý trước dữ liệu, đào tạo mô hình, theo dõi số liệu mô hình trong Thử nghiệm SageMaker, xử lý hậu kỳ dữ liệu và lập danh mục mô hình trong sổ đăng ký mô hình SageMaker.

Thành phần cuối cùng nằm ở phía dưới bên phải: Triển khai mô hình. Nếu bạn làm theo các ví dụ trong Dự án Amazon SageMaker, bạn sẽ nhận được mẫu lưu trữ mô hình của mình bằng điểm cuối SageMaker. Thay vào đó, kho triển khai của chúng tôi lưu trữ mô hình trong hàm Lambda. Chúng tôi trình bày một cách tiếp cận để triển khai hàm Lambda có thể chạy các dự đoán theo thời gian thực.

Điều kiện tiên quyết

Để triển khai thành công giải pháp của chúng tôi, bạn cần những điều sau:

Tải xuống kho lưu trữ GitHub

Bước đầu tiên, hãy sao chép Kho GitHub tới máy cục bộ của bạn. Nó chứa cấu trúc thư mục sau:

  • triển khai – Chứa mã phù hợp để triển khai
  • mllib - Chứa mã ML để tiền xử lý, đào tạo, phục vụ và mô phỏng
  • kiểm tra - Chứa các bài kiểm tra đơn vị và tích hợp

Tệp chính để triển khai là tập lệnh shell deployment/deploy.sh. Bạn sử dụng tệp này để triển khai các tài nguyên trong tài khoản của mình. Trước khi chúng ta có thể chạy tập lệnh shell, hãy hoàn thành các bước sau:

  1. Mở deployment/app.py và thay đổi Buck_name bên dưới SageMakerPipelineSourceCodeStack. Các bucket_name cần phải là duy nhất trên toàn cầu (ví dụ: thêm tên đầy đủ của bạn).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, thay đổi default_bucket Dưới get_pipeline có cùng tên như được chỉ định ở bước 1.

Triển khai giải pháp với AWS CDK

Đầu tiên, định cấu hình AWS CLI của bạn bằng tài khoản và Khu vực mà bạn muốn triển khai. Sau đó, chạy các lệnh sau để thay đổi thư mục triển khai, tạo môi trường ảo, kích hoạt nó, cài đặt các gói pip cần thiết được chỉ định trong setup.pyvà chạy deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh thực hiện các hành động sau:

  1. Tạo một môi trường ảo trong Python.
  2. Nguồn tập lệnh kích hoạt môi trường ảo.
  3. Cài đặt AWS CDK và các yêu cầu được nêu trong setup.py.
  4. Bootstrap môi trường.
  5. Nén và sao chép các tệp cần thiết mà bạn đã phát triển, chẳng hạn như mllib các tệp, vào các thư mục tương ứng nơi cần đến những nội dung này.
  6. Chạy cdk deploy —require-approval never.
  7. Tạo ra một Hình thành đám mây AWS xếp chồng thông qua AWS CDK.

Giai đoạn đầu triển khai sẽ mất ít hơn 5 phút. Bây giờ, bạn sẽ có bốn kho lưu trữ trong CodeCommit ở Khu vực mà bạn đã chỉ định thông qua AWS CLI, như được nêu trong sơ đồ kiến ​​trúc. Các Đường ống dẫn mã AWS đường ống được chạy đồng thời. Các modelbuildmodeldeploy các đường dẫn phụ thuộc vào việc chạy thành công quá trình xây dựng hình ảnh đào tạo và xử lý. Các modeldeploy đường ống phụ thuộc vào việc xây dựng mô hình thành công. Việc triển khai mô hình sẽ hoàn tất trong vòng chưa đầy 1.5 giờ.

Sao chép kho mô hình trong Studio

Để tùy chỉnh quy trình SageMaker được tạo thông qua triển khai AWS CDK trong Giao diện người dùng Studio, trước tiên bạn cần sao chép kho lưu trữ vào Studio. Khởi chạy thiết bị đầu cuối hệ thống trong Studio và chạy các lệnh sau sau khi cung cấp tên và ID dự án:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

Sau khi nhân bản các kho lưu trữ, bạn có thể đẩy một cam kết vào các kho lưu trữ. Những cam kết này kích hoạt quá trình chạy CodePipeline cho các quy trình liên quan.

Bạn cũng có thể điều chỉnh giải pháp trên máy cục bộ của mình và làm việc trên IDE ưa thích của mình.

Điều hướng Quy trình SageMaker và Giao diện người dùng thử nghiệm SageMaker

Quy trình SageMaker là một chuỗi các bước được kết nối với nhau được xác định bằng cách sử dụng SDK Python SageMaker của Amazon. Định nghĩa đường dẫn này mã hóa một đường dẫn bằng cách sử dụng Đồ thị tuần hoàn có hướng (DAG) có thể được xuất dưới dạng định nghĩa JSON. Để tìm hiểu thêm về cấu trúc của các đường ống như vậy, hãy tham khảo Tổng quan về quy trình SageMaker.

Hướng đến Tài nguyên của SageMaker và chọn tài nguyên Đường ống để xem. Dưới Họ tên, bạn nên thấy PROJECT_NAME-PROJECT_ID. Trong giao diện người dùng đang chạy, sẽ có một lần chạy thành công, dự kiến ​​sẽ mất hơn 1 giờ một chút. Đường ống sẽ trông như trong ảnh chụp màn hình sau.

Đường dẫn Amazon SageMaker

Quá trình chạy được kích hoạt tự động sau khi ngăn xếp AWS CDK được triển khai. Bạn có thể gọi một lần chạy theo cách thủ công bằng cách chọn Tạo chấp hành. Từ đó, bạn có thể chọn các tham số quy trình của riêng mình, chẳng hạn như loại phiên bản và số lượng phiên bản cho các bước xử lý và đào tạo. Hơn nữa, bạn có thể đặt tên và mô tả cho hoạt động chạy. Đường dẫn có khả năng cấu hình cao thông qua các tham số đường ống mà bạn có thể tham khảo và xác định trong suốt định nghĩa đường ống của mình.

Vui lòng bắt đầu chạy quy trình khác với các tham số của bạn như mong muốn. Sau đó, điều hướng đến Tài nguyên của SageMaker ngăn lại và chọn Thử nghiệm và thử nghiệm. Ở đó bạn sẽ lại thấy một dòng có tên như PROJECT_NAME-PROJECT_ID. Điều hướng đến thử nghiệm và chọn lần chạy duy nhất có ID ngẫu nhiên. Từ đó, chọn công việc đào tạo SageMaker để khám phá các số liệu liên quan đến Công việc đào tạo.

Mục tiêu của SageMaker Experiments là làm cho việc tạo thử nghiệm, điền thử nghiệm vào chúng đơn giản nhất có thể và chạy phân tích trên nhiều thử nghiệm và thử nghiệm. Quy trình SageMaker được tích hợp chặt chẽ với Thử nghiệm SageMaker và theo mặc định, mỗi lần chạy sẽ tạo một thành phần thử nghiệm, thử nghiệm và thử nghiệm trong trường hợp chúng không tồn tại.

Phê duyệt triển khai Lambda trong sổ đăng ký mô hình

Bước tiếp theo, hãy điều hướng đến sổ đăng ký mô hình trong Tài nguyên của SageMaker. Ở đây bạn có thể tìm lại một dòng có tên như PROJECT_NAME-PROJECT_ID. Điều hướng đến mô hình duy nhất tồn tại và phê duyệt nó. Thao tác này sẽ tự động triển khai thành phần lạ của mô hình trong vùng chứa ở Lambda.

Sau khi bạn phê duyệt mô hình của mình trong sổ đăng ký mô hình, một Sự kiện Amazon quy tắc sự kiện được kích hoạt. Quy tắc này chạy quy trình CodePipeline với phần cuối *-modeldeploy. Trong phần này, chúng ta thảo luận về cách giải pháp này sử dụng mô hình đã được phê duyệt và lưu trữ mô hình đó trong hàm Lambda. CodePipeline lấy kho lưu trữ CodeCommit hiện có cũng kết thúc bằng *-modeldeploy và sử dụng mã đó để chạy trong CodeBuild. Mục nhập chính của CodeBuild là buildspec.yml tài liệu. Chúng ta hãy nhìn vào điều này đầu tiên:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

Trong giai đoạn cài đặt, chúng tôi đảm bảo rằng các thư viện Python được cập nhật, tạo môi trường ảo, cài đặt AWS CDK v2.26.0 và cài đặt aws-cdk Thư viện Python cùng với những thư viện khác sử dụng tệp yêu cầu. Chúng tôi cũng khởi động tài khoản AWS. Trong giai đoạn xây dựng, chúng tôi chạy build.py, mà chúng ta sẽ thảo luận tiếp theo. Tệp đó tải xuống tạo phẩm mô hình SageMaker được phê duyệt mới nhất từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) vào phiên bản CodeBuild cục bộ của bạn. Cái này .tar.gz tệp được giải nén và nội dung của tệp được sao chép vào thư mục chứa mã Lambda chính của chúng tôi. Hàm Lambda được triển khai bằng AWS CDK và mã hết vùng chứa Docker từ Amazon ECR. Việc này được AWS CDK thực hiện tự động.

Sản phẩm build.py tệp là tệp Python chủ yếu sử dụng AWS SDK cho Python (Boto3) để liệt kê các gói mô hình có sẵn.

Các chức năng get_approved_package trả về URI Amazon S3 của tạo phẩm sau đó được tải xuống, như được mô tả trước đó.

Sau khi triển khai thành công mô hình của mình, bạn có thể thử nghiệm trực tiếp trên bảng điều khiển Lambda ở Khu vực bạn đã chọn triển khai. Tên của hàm phải chứa DigitalTwinStack-DigitalTwin*. Mở chức năng và điều hướng đến Thử nghiệm chuyển hướng. Bạn có thể sử dụng sự kiện sau để chạy cuộc gọi thử nghiệm:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

Sau khi chạy sự kiện thử nghiệm, bạn sẽ nhận được phản hồi tương tự như phản hồi trong ảnh chụp màn hình sau.

Kiểm tra chức năng AWS Lambda

Nếu muốn chạy nhiều mô phỏng hoặc thử nghiệm hơn, bạn có thể tăng giới hạn thời gian chờ Lambda và thử nghiệm mã! Hoặc bạn có thể muốn lấy dữ liệu được tạo và hiển thị tương tự trong Amazon QuickSight. Dưới đây là một ví dụ. Bây giờ là lượt của bạn!

Amazon QuickSight

Làm sạch

Để tránh bị tính phí thêm, hãy hoàn thành các bước sau:

  • Trên bảng điều khiển AWS CloudFormation, hãy xóa EnergyOptimization cây rơm.
    Điều này sẽ xóa toàn bộ giải pháp.
  • Xóa ngăn xếp DigitalTwinStack, đã triển khai hàm Lambda của bạn.

Kết luận

Trong bài đăng này, chúng tôi đã giới thiệu cho bạn quy trình MLOps dựa trên CI/CD của một giải pháp quản lý năng lượng trong đó chúng tôi tách riêng từng bước. Bạn có thể theo dõi quy trình ML và thử nghiệm của mình trong Giao diện người dùng Studio. Chúng tôi cũng đã trình diễn một cách tiếp cận triển khai khác: sau khi phê duyệt một mô hình trong sổ đăng ký mô hình, hàm Lambda lưu trữ mô hình đã phê duyệt sẽ được xây dựng tự động thông qua CodePipeline.

Nếu bạn muốn khám phá quy trình MLOps trên AWS hoặc giải pháp quản lý năng lượng bền vững, hãy xem Kho GitHub và triển khai ngăn xếp trong môi trường AWS của riêng bạn!


Về các tác giả

Triển khai giải pháp MLOps lưu trữ điểm cuối mô hình của bạn trong AWS Lambda PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Laurens van der Maas là Nhà khoa học dữ liệu tại AWS Professional Services. Anh hợp tác chặt chẽ với các khách hàng đang xây dựng giải pháp machine learning trên AWS và rất đam mê việc machine learning đang thay đổi thế giới như chúng ta biết như thế nào.

Triển khai giải pháp MLOps lưu trữ điểm cuối mô hình của bạn trong AWS Lambda PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Kang Kang Wang là nhà tư vấn AI/ML của AWS Professional Services. Cô có nhiều kinh nghiệm trong việc triển khai các giải pháp AI/ML trong lĩnh vực chăm sóc sức khỏe và khoa học đời sống. Cô cũng thích giúp đỡ khách hàng doanh nghiệp xây dựng nền tảng AI/ML có thể mở rộng để đẩy nhanh hành trình đám mây của các nhà khoa học dữ liệu của họ.

Triển khai giải pháp MLOps lưu trữ điểm cuối mô hình của bạn trong AWS Lambda PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Selena Tabbara là Nhà khoa học dữ liệu tại AWS Professional Services. Cô làm việc hàng ngày với khách hàng của mình để đạt được kết quả kinh doanh bằng cách đổi mới trên nền tảng AWS. Khi rảnh rỗi, Selena thích chơi piano, đi bộ đường dài và xem bóng rổ.

Micheal Wallner Micheal Wallner là Chuyên gia tư vấn cấp cao tập trung vào AI/ML với Dịch vụ chuyên nghiệp của AWS. Michael rất đam mê việc giúp khách hàng trên hành trình đám mây của họ trở thành AWSome. Anh ấy rất hào hứng với việc sản xuất và thích giúp chuyển đổi không gian sản xuất thông qua dữ liệu.

Dấu thời gian:

Thêm từ Học máy AWS