Triển khai và quản lý quy trình machine learning với Terraform bằng cách sử dụng Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Triển khai và quản lý các đường ống học máy với Terraform bằng Amazon SageMaker

Khách hàng của AWS đang dựa vào Cơ sở hạ tầng dưới dạng mã (IaC) để thiết kế, phát triển và quản lý cơ sở hạ tầng đám mây của họ. IaC đảm bảo rằng cơ sở hạ tầng và dịch vụ của khách hàng nhất quán, có thể mở rộng và có thể tái sản xuất, đồng thời có thể tuân theo các phương pháp hay nhất trong lĩnh vực hoạt động phát triển (DevOps).

Một cách tiếp cận khả thi để quản lý cơ sở hạ tầng và dịch vụ AWS với IaC là Terraform, cho phép các nhà phát triển tổ chức cơ sở hạ tầng của họ trong các mô-đun mã có thể tái sử dụng. Khía cạnh này ngày càng trở nên quan trọng trong lĩnh vực máy học (ML). Phát triển và quản lý đường ống ML, bao gồm đào tạo và suy luận với Terraform dưới dạng IaC, cho phép bạn dễ dàng mở rộng quy mô cho nhiều trường hợp sử dụng ML hoặc Khu vực mà không cần phải phát triển cơ sở hạ tầng từ đầu. Hơn nữa, nó cung cấp tính nhất quán cho cơ sở hạ tầng (ví dụ, kiểu và kích thước phiên bản) để đào tạo và suy luận trên các triển khai khác nhau của đường ống ML. Điều này cho phép bạn định tuyến các yêu cầu và lưu lượng truy cập đến các Amazon SageMaker điểm cuối.

Trong bài đăng này, chúng tôi hướng dẫn bạn cách triển khai và quản lý đường ống ML bằng Terraform và Amazon SageMaker.

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

Bài đăng này cung cấp mã và hướng dẫn bạn các bước cần thiết để triển khai cơ sở hạ tầng AWS cho đường ống ML với Terraform để đào tạo và suy luận mô hình bằng Amazon SageMaker. Đường ống ML được quản lý thông qua Chức năng bước AWS để sắp xếp các bước khác nhau được thực hiện trong đường ống ML, như được minh họa trong hình sau.

Bước Chức năng Bước

Bước Chức năng bắt đầu một AWS Lambda , tạo một ID công việc duy nhất, sau đó được sử dụng khi bắt đầu công việc đào tạo SageMaker. Step Functions cũng tạo ra một mô hình, cấu hình điểm cuối và điểm cuối được sử dụng để suy luận. Các nguồn bổ sung bao gồm:

Mã liên quan đến ML để đào tạo và suy luận với hình ảnh Docker chủ yếu dựa vào công việc hiện có trong phần sau Kho GitHub.

Sơ đồ sau minh họa kiến ​​trúc giải pháp:

Sơ đồ kiến ​​trúc

Chúng tôi hướng dẫn bạn qua các bước cấp cao sau:

  1. Triển khai cơ sở hạ tầng AWS của bạn với Terraform.
  2. Đẩy hình ảnh Docker của bạn lên Amazon ECR.
  3. Chạy đường ống ML.
  4. Gọi điểm cuối của bạn.

Cấu trúc kho lưu trữ

Bạn có thể tìm thấy kho chứa mã và dữ liệu được sử dụng cho bài đăng này trong phần sau Kho GitHub.

Kho lưu trữ bao gồm các thư mục sau:

  • /terraform - Bao gồm các thư mục con sau:
    • ./infrastructure - Chứa tệp main.tf gọi mô-đun đường ống ML, ngoài các khai báo biến mà chúng tôi sử dụng để triển khai cơ sở hạ tầng
    • ./ml-pipeline-module - Chứa mô-đun đường ống Terraform ML, chúng tôi có thể sử dụng lại
  • /src - Bao gồm các thư mục con sau:
    • ./container - Chứa mã ví dụ để đào tạo và suy luận với các định nghĩa cho hình ảnh Docker
    • ./lambda_function - Chứa mã Python cho các cấu hình tạo hàm Lambda, chẳng hạn như ID công việc duy nhất cho công việc đào tạo SageMaker
  • /data - Chứa tệp sau:
    • ./iris.csv - Chứa dữ liệu để đào tạo mô hình ML

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

Đối với hướng dẫn này, bạn nên có các điều kiện tiên quyết sau:

Triển khai cơ sở hạ tầng AWS của bạn với Terraform

Để triển khai đường ống ML, bạn cần điều chỉnh một số biến và tên theo nhu cầu của mình. Mã cho bước này nằm trong /terraform thư mục.

Khi khởi tạo lần đầu tiên, hãy mở tệp terraform/infrastructure/terraform.tfvars và điều chỉnh biến Tên dự án vào tên dự án của bạn, ngoài biến khu nếu bạn muốn triển khai ở Vùng khác. Bạn cũng có thể thay đổi các biến bổ sung, chẳng hạn như kiểu phiên bản để huấn luyện và suy luận.

Sau đó, sử dụng các lệnh sau để triển khai cơ sở hạ tầng với Terraform:

export AWS_PROFILE=<your_aws_cli_profile_name>
cd terraform/infrastructure
terraform init
terraform plan
terraform apply

Kiểm tra kết quả đầu ra và đảm bảo rằng các tài nguyên được lập kế hoạch xuất hiện chính xác và xác nhận có trong giai đoạn áp dụng nếu mọi thứ đều chính xác. Sau đó, truy cập bảng điều khiển Amazon ECR (hoặc kiểm tra đầu ra của Terraform trong thiết bị đầu cuối) và lấy URL cho kho lưu trữ ECR của bạn mà bạn đã tạo qua Terraform.

Đầu ra phải giống với đầu ra được hiển thị sau đây, bao gồm URL kho lưu trữ ECR:

Apply complete! Resources: 19 added, 0 changed, 0 destroyed. Outputs: ecr_repository_url = <account_number>.dkr.ecr.eu-west-1.amazonaws.com/ml-pipeline-terraform-demo

Đẩy hình ảnh Docker của bạn lên Amazon ECR

Để đường ống ML và SageMaker đào tạo và cung cấp điểm cuối SageMaker để suy luận, bạn cần cung cấp hình ảnh Docker và lưu trữ nó trong Amazon ECR. Bạn có thể tìm thấy một ví dụ trong thư mục src/container. Nếu bạn đã áp dụng cơ sở hạ tầng AWS từ bước trước đó, bạn có thể đẩy hình ảnh Docker như được mô tả. Sau khi hình ảnh Docker của bạn được phát triển, bạn có thể thực hiện các hành động sau và đẩy nó lên Amazon ECR (điều chỉnh URL Amazon ECR theo nhu cầu của bạn):

cd src/container
export AWS_PROFILE=<your_aws_cli_profile_name>
aws ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin <account_number>.dkr.ecr.eu-west-1.amazonaws.com
docker build -t ml-training .
docker tag ml-training:latest <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>:latest
docker push <account_number>.dkr.ecr.eu-west-1.amazonaws.com/<ecr_repository_name>

Nếu bạn đã áp dụng cơ sở hạ tầng AWS với Terraform, bạn có thể đẩy các thay đổi của mã và hình ảnh Docker trực tiếp lên Amazon ECR mà không cần triển khai lại qua Terraform.

Chạy đường ống ML

Để đào tạo và chạy đường ống ML, hãy chuyển đến bảng điều khiển Chức năng Bước và bắt đầu triển khai. Bạn có thể kiểm tra tiến trình của từng bước trong trực quan của máy trạng thái. Bạn cũng có thể kiểm tra tiến độ công việc đào tạo SageMaker và trạng thái của điểm cuối SageMaker của bạn.

Bắt đầu bước chức năng

Sau khi bạn chạy thành công máy trạng thái trong Step Functions, bạn có thể thấy rằng điểm cuối SageMaker đã được tạo. Trên bảng điều khiển SageMaker, chọn Sự suy luận trong ngăn điều hướng, sau đó Điểm cuối. Đảm bảo đợi trạng thái chuyển sang InService.

Trạng thái điểm cuối của SageMaker

Gọi điểm cuối của bạn

Để gọi điểm cuối của bạn (trong ví dụ này là tập dữ liệu mống mắt), bạn có thể sử dụng tập lệnh Python sau với AWS SDK cho Python (Boto3). Bạn có thể thực hiện việc này từ sổ ghi chép SageMaker hoặc nhúng đoạn mã sau vào một hàm Lambda:

import boto3
from io import StringIO
import pandas as pd client = boto3.client('sagemaker-runtime') endpoint_name = 'Your endpoint name' # Your endpoint name.
content_type = "text/csv"   # The MIME type of the input data in the request body. payload = pd.DataFrame([[1.5,0.2,4.4,2.6]])
csv_file = StringIO()
payload.to_csv(csv_file, sep=",", header=False, index=False)
payload_as_csv = csv_file.getvalue() response = client.invoke_endpoint(
EndpointName=endpoint_name,
ContentType=content_type,
Body=payload_as_csv
) label = response['Body'].read().decode('utf-8')
print(label)

Làm sạch

Bạn có thể phá hủy cơ sở hạ tầng được tạo bởi Terraform bằng lệnh hủy terraform, nhưng trước tiên bạn cần xóa dữ liệu và tệp trong nhóm S3. Hơn nữa, điểm cuối SageMaker (hoặc nhiều điểm cuối SageMaker nếu chạy nhiều lần) được tạo qua Step Functions và không được quản lý qua Terraform. Điều này có nghĩa là việc triển khai xảy ra khi chạy đường ống ML với các Hàm bước. Do đó, hãy đảm bảo rằng bạn xóa điểm cuối SageMaker hoặc các điểm cuối được tạo thông qua đường dẫn Step Functions ML để tránh các chi phí không cần thiết. Hoàn thành các bước sau:

  1. Trên bảng điều khiển Amazon S3, xóa tập dữ liệu trong nhóm đào tạo S3.
  2. Xóa tất cả các mô hình bạn đã đào tạo qua đường dẫn ML trong nhóm mô hình S3, thông qua bảng điều khiển Amazon S3 hoặc AWS CLI.
  3. Phá hủy cơ sở hạ tầng được tạo qua Terraform:
    cd terraform/infrastructure
    terraform destroy

  4. Xóa các điểm cuối SageMaker, cấu hình điểm cuối và các mô hình được tạo thông qua Step Functions, trên bảng điều khiển SageMaker hoặc qua AWS CLI.

Kết luận

Xin chúc mừng! Bạn đã triển khai một đường ống ML bằng SageMaker với Terraform. Giải pháp ví dụ này cho thấy cách bạn có thể dễ dàng triển khai cơ sở hạ tầng và dịch vụ AWS cho các đường ống ML theo cách có thể tái sử dụng. Điều này cho phép bạn mở rộng quy mô cho nhiều trường hợp sử dụng hoặc Khu vực, đồng thời cho phép đào tạo và triển khai các mô hình ML bằng một cú nhấp chuột theo cách nhất quán. Hơn nữa, bạn có thể chạy đường ống ML nhiều lần, chẳng hạn như khi có dữ liệu mới hoặc bạn muốn thay đổi mã thuật toán. Bạn cũng có thể chọn định tuyến các yêu cầu hoặc lưu lượng truy cập đến các điểm cuối SageMaker khác nhau.

Tôi khuyến khích bạn khám phá thêm các tính năng bảo mật và áp dụng các phương pháp bảo mật tốt nhất theo nhu cầu của bạn và các tiêu chuẩn tiềm năng của công ty. Ngoài ra, việc nhúng giải pháp này vào đường ống CI / CD của bạn sẽ giúp bạn có thêm khả năng trong việc áp dụng và thiết lập các tiêu chuẩn và thực tiễn tốt nhất của DevOps theo yêu cầu của bạn.


Lưu ý

Triển khai và quản lý quy trình machine learning với Terraform bằng cách sử dụng Amazon SageMaker PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Oliver Zollikofer là Nhà khoa học dữ liệu tại Amazon Web Services. Ông cho phép khách hàng doanh nghiệp toàn cầu xây dựng, đào tạo và triển khai các mô hình học máy, cũng như quản lý vòng đời của mô hình ML với MLOps. Hơn nữa, anh ấy xây dựng và kiến ​​trúc các giải pháp đám mây liên quan.

Dấu thời gian:

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