Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Di chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines

Amazon SageMaker Tự động lái tự động xây dựng, đào tạo và điều chỉnh các mô hình học máy (ML) tùy chỉnh tốt nhất dựa trên dữ liệu của bạn. Đó là giải pháp máy học tự động (AutoML) giúp loại bỏ gánh nặng của các mô hình ML viết tay đòi hỏi chuyên môn về ML. Các nhà khoa học dữ liệu chỉ cần cung cấp tập dữ liệu dạng bảng và chọn cột mục tiêu để dự đoán, sau đó Autopilot sẽ tự động suy ra loại sự cố, thực hiện xử lý trước dữ liệu và kỹ thuật tính năng, chọn thuật toán và chế độ đào tạo cũng như khám phá các cấu hình khác nhau để tìm ra mô hình ML tốt nhất. Sau đó, bạn có thể triển khai trực tiếp mô hình tới một Amazon SageMaker điểm cuối hoặc lặp lại các giải pháp được đề xuất để cải thiện hơn nữa chất lượng mô hình.

Mặc dù Autopilot loại bỏ gánh nặng xây dựng mô hình ML nhưng các kỹ sư MLOps vẫn phải tạo, tự động hóa và quản lý quy trình công việc ML từ đầu đến cuối. Đường ống Amazon SageMaker giúp bạn tự động hóa các bước khác nhau của vòng đời ML, bao gồm tiền xử lý dữ liệu, đào tạo, điều chỉnh và đánh giá các mô hình ML cũng như triển khai chúng.

Trong bài đăng này, chúng tôi trình bày cách tạo quy trình làm việc ML từ đầu đến cuối để đào tạo và đánh giá mô hình ML được tạo bằng Autopilot bằng Pipelines và đăng ký nó trong Đăng ký mô hình SageMaker. Mô hình ML có hiệu suất tốt nhất có thể được triển khai tới điểm cuối SageMaker.

Tổng quan về tập dữ liệu

Chúng tôi sử dụng tập dữ liệu tái nhập viện công khai dành cho bệnh nhân tiểu đường để dự đoán tỷ lệ tái nhập viện của bệnh nhân tiểu đường trong vòng 30 ngày sau khi xuất viện. Đây là phiên bản mẫu của “Bệnh tiểu đường 130-bệnh viện Hoa Kỳ trong các năm 1999-2008 Tập dữ liệu”. Đây là một vấn đề phân loại nhiều lớp vì các tùy chọn tái nhập học là < 30 nếu bệnh nhân tái nhập viện trong vòng 30 ngày, > 30 nếu bệnh nhân tái nhập viện sau 30 ngày, hoặc không có hồ sơ tái nhập viện.

Tập dữ liệu chứa 50,000 hàng và 15 cột. Điều này bao gồm thông tin nhân khẩu học về bệnh nhân cùng với hồ sơ thăm bệnh viện của họ và readmitted làm cột mục tiêu. Bảng sau đây tóm tắt các chi tiết cột.

Tên cột dọc Mô tả
Chủng tộc_Người da trắng Giá trị: 0 là không, 1 là có
Chủng tộc_Phi_Mỹ Giá trị: 0 là không, 1 là có
Chủng tộc_Tây Ban Nha Giá trị: 0 là không, 1 là có
Chủng tộc_Châu Á Giá trị: 0 là không, 1 là có
Chủng tộc_Khác Giá trị: 0 là không, 1 là có
Độ tuổi độ tuổi 0–100
Thời gian ở bệnh viện Số ngày từ khi nhập viện đến khi xuất viện
Số quy trình thí nghiệm Số lượng xét nghiệm trong phòng thí nghiệm được thực hiện trong cuộc gặp
Số lượng thuốc Số lượng tên chung riêng biệt được quản lý trong cuộc gặp gỡ
Số lần thăm khám khẩn cấp Số lần khám cấp cứu của bệnh nhân trong năm trước lần gặp đó
Số lượt khám nội trú Số lần khám nội trú của bệnh nhân trong năm trước lần gặp
Số lượng chẩn đoán Số lượng chẩn đoán được nhập vào hệ thống
Thay đổi thuốc Cho biết liệu có sự thay đổi về thuốc trị tiểu đường hay không (liều lượng hoặc tên gốc); giá trị: 0 và 1
Thuốc trị tiểu đường Cho biết liệu có bất kỳ loại thuốc trị tiểu đường nào được kê đơn hay không; giá trị: 0 nếu không thay đổi đơn thuốc và 1 nếu thay đổi đơn thuốc
Đã được chấp nhận lại Số ngày tái nhập viện nội trú; giá trị: 30 nếu bệnh nhân tái nhập viện sau hơn 30 ngày và không có hồ sơ tái nhập viện

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

Chúng tôi sử dụng Pipelines trong Xưởng sản xuất Amazon SageMaker để dàn xếp khác nhau các bước đường ống cần thiết để đào tạo một mô hình Autopilot. MỘT Thử nghiệm lái tự động được tạo và chạy bằng SDK AWS như được mô tả trong bài đăng này. Công việc đào tạo lái tự động bắt đầu các quy trình phụ trợ SageMaker chuyên dụng của riêng họ và các quy trình chuyên dụng Lệnh gọi API SageMaker được yêu cầu để bắt đầu các công việc đào tạo mới, theo dõi trạng thái công việc đào tạo và gọi các mô hình Autopilot đã được đào tạo.

Sau đây là các bước cần thiết cho quy trình đào tạo Autopilot toàn diện này:

  1. Tạo một công việc đào tạo Autopilot.
  2. Theo dõi tình trạng công việc đào tạo.
  3. Đánh giá hiệu suất của mô hình được đào tạo trên tập dữ liệu thử nghiệm.
  4. Đăng ký mô hình trong sổ đăng ký mô hình.

Các bước quy trình của SageMaker

Khi mô hình đã đăng ký đáp ứng các yêu cầu về hiệu suất dự kiến ​​sau khi xem xét thủ công, bạn có thể triển khai mô hình đó Điểm cuối SageMaker sử dụng tập lệnh triển khai độc lập.

Sơ đồ kiến ​​trúc sau đây minh họa các bước quy trình khác nhau cần thiết để đóng gói tất cả các bước trong quy trình đào tạo Autopilot có thể lặp lại, tự động và có thể mở rộng. Mỗi bước chịu trách nhiệm cho một nhiệm vụ cụ thể trong quy trình làm việc:

  1. An AWS Lambda bắt đầu công việc đào tạo Autopilot.
  2. Bước Gọi lại liên tục theo dõi trạng thái công việc đó.
  3. Khi trạng thái công việc đào tạo hoàn tất, chúng tôi sử dụng công việc xử lý SageMaker để đánh giá hiệu suất của mô hình.
  4. Cuối cùng, chúng tôi sử dụng một hàm Lambda khác để đăng ký mô hình ML và số liệu hiệu suất vào sổ đăng ký mô hình SageMaker.

Các tập tin dữ liệu được đọc từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và các bước quy trình được gọi tuần tự.

Sơ đồ kiến ​​trúc của quy trình SageMaker

Sơ đồ kiến ​​trúc của quy trình SageMaker

Trong các phần sau, chúng ta xem lại mã và thảo luận về các thành phần của từng bước. Để triển khai giải pháp, hãy tham khảo Repo GitHub, cung cấp hướng dẫn từng bước để triển khai quy trình tự động lái MLOps sử dụng Pipelines.

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

Để có hướng dẫn này, hãy hoàn thành các bước điều kiện tiên quyết sau:

  1. Thiết lập một Tài khoản AWS.
  2. Tạo môi trường Studio.
  3. Tạo hai Quản lý truy cập và nhận dạng AWS (IAM) vai trò: LambdaExecutionRoleSageMakerExecutionRole, với các quyền như được nêu trong sổ ghi chép SageMaker. Các chính sách được quản lý cần được thu hẹp phạm vi hơn nữa để cải thiện tính bảo mật. Để biết hướng dẫn, hãy tham khảo Tạo vai trò để ủy quyền cho người dùng IAM.
  4. Trên bảng điều khiển Studio, tải mã lên từ Repo GitHub.
  5. Mở sổ ghi chép SageMaker autopilot_pipelines_demo_notebook.ipynb và chạy các ô bên dưới Nhận tập dữ liệu để tải xuống dữ liệu và tải nó lên bộ chứa S3 của bạn.
    1. Tải dữ liệu về và giải nén vào thư mục có tên data:
      !unzip -o data/data.zip -d data
      !mkdir data
      !wget https://static.us-east-1.prod.workshops.aws/public/d56bf7ad-9738-4edf-9be0-f03cd22d8cf2/static/resources/hcls/diabetic.zip -nc -O data/data.zip
      

    2. Chia dữ liệu thành các tệp train-val và test rồi tải chúng lên bộ chứa S3 của bạn. Tệp train-val được Autopilot tự động chia thành các tập dữ liệu huấn luyện và xác thực. Tệp thử nghiệm được chia thành hai tệp riêng biệt: một tệp không có cột mục tiêu và tệp khác chỉ có cột mục tiêu.
      data = pd.read_csv(DATASET_PATH)
      train_val_data = data.sample(frac=0.8)
      test_data = data.drop(train_val_data.index)
      train_val_data.to_csv(train_val_dataset_s3_path.default_value, index=False, header=True)
      test_data.drop(target_attribute_name.default_value, axis=1).to_csv(
      x_test_s3_path.default_value, index=False, header=False
      )
      test_data[target_attribute_name.default_value].to_csv(
      y_test_s3_path.default_value, index=False, header=True)
      

Khi tập dữ liệu đã sẵn sàng để sử dụng, giờ đây chúng tôi có thể thiết lập Đường ống để thiết lập quy trình lặp lại nhằm xây dựng và huấn luyện các mô hình ML tùy chỉnh bằng Autopilot. Chúng tôi sử dụng boto3SDK SageMaker để khởi chạy, theo dõi và đánh giá các công việc AutoML theo cách tự động.

Xác định các bước đường ống

Trong phần này, chúng tôi sẽ hướng dẫn bạn cách thiết lập bốn bước trong quy trình.

Bắt đầu công việc Autopilot

Bước quy trình này sử dụng một Bước Lambda, chạy hàm Lambda không có máy chủ. Chúng tôi sử dụng bước Lambda vì lệnh gọi API tới Autopilot rất nhẹ. Các hàm Lambda không có máy chủ và rất phù hợp cho nhiệm vụ này. Để biết thêm thông tin về các bước Lambda, hãy tham khảo Sử dụng bước SageMaker Pipeline Lambda để triển khai mô hình nhẹ. Hàm Lambda trong start_autopilot_job.py kịch bản tạo một công việc Autopilot.

Chúng tôi sử dụng lệnh gọi API Boto3 Autopilot tạo_auto_ml_job để chỉ định cấu hình công việc Autopilot, với các tham số sau:

  • AutoMLTên công việc – Tên công việc Autopilot.
  • Cấu hình dữ liệu đầu vào – Dữ liệu đào tạo, vị trí dữ liệu trong Amazon S3 và Kiểu dữ liệu S3 với các giá trị hợp lệ như S3Prefix, ManifestFileAugmentedManifestFile.
  • Cấu hình dữ liệu đầu ra – Đường dẫn đầu ra S3 nơi lưu trữ các thành phần lạ từ tác vụ AutoML.
  • Loại vấn đề - loại vấn đề (MulticlassClassification cho trường hợp sử dụng của chúng tôi).
  • Mục tiêu AutoMLJobF1macro là của chúng tôi thước đo mục tiêu cho trường hợp sử dụng của chúng tôi.
  • AutoMLJobConfig - chế độ đào tạo được chỉ định ở đây. Chúng tôi sử dụng phiên bản mới được phát hành chế độ tập luyện tập thể được hỗ trợ bởi AutoGluon.

Xem mã sau đây:

def lambda_handler(event, context):
sagemaker_client.create_auto_ml_job(
AutoMLJobName=event["AutopilotJobName"],
InputDataConfig=[
{
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": event["TrainValDatasetS3Path"],
}
},
"TargetAttributeName": event["TargetAttributeName"],
}
],
OutputDataConfig={"S3OutputPath": event["TrainingOutputS3Path"]},
ProblemType=event["ProblemType"],
AutoMLJobObjective={"MetricName": event["AutopilotObjectiveMetricName"]},
AutoMLJobConfig={
"CompletionCriteria": {
"MaxCandidates": event["MaxCandidates"],
"MaxRuntimePerTrainingJobInSeconds": event[
"MaxRuntimePerTrainingJobInSeconds"
],
"MaxAutoMLJobRuntimeInSeconds": event["MaxAutoMLJobRuntimeInSeconds"],
},
"Mode": event["AutopilotMode"],
},
RoleArn=event["AutopilotExecutionRoleArn"],
)

Kiểm tra trạng thái công việc Autopilot

A Bước gọi lại giúp chúng tôi theo dõi tình trạng công việc đào tạo Autopilot.

Bước này liên tục theo dõi trạng thái công việc đào tạo bằng cách sử dụng hàm Lambda riêng trong check_autopilot_job_status.py cho đến khi nó hoàn thành.

Bước Gọi lại đặt mã thông báo vào một Dịch vụ xếp hàng đơn giản trên Amazon Hàng đợi (Amazon SQS) kích hoạt hàm Lambda để kiểm tra trạng thái công việc đào tạo:

  • Nếu công việc vẫn đang chạy, hàm Lambda sẽ đưa ra một ngoại lệ và thông báo sẽ được đưa trở lại hàng đợi SQS
  • Nếu công việc hoàn tất, hàm Lambda sẽ gửi thông báo thành công trở lại Callback bước này và quy trình tiếp tục với bước tiếp theo

Chúng tôi sử dụng sự kết hợp của một Callback bước và hàm Lambda. Thay vào đó, có một tùy chọn thay thế là sử dụng công việc xử lý SageMaker.

Đánh giá mô hình Autopilot tốt nhất

Sản phẩm Bước xử lý SageMaker ra mắt một Công việc chuyển đổi hàng loạt SageMaker để đánh giá mô hình Autopilot đã được đào tạo dựa trên tập dữ liệu đánh giá (bộ thử nghiệm đã được lưu vào bộ chứa S3) và tạo báo cáo đánh giá chỉ số hiệu suất cũng như chỉ số về khả năng giải thích của mô hình. Tập lệnh đánh giá lấy tên công việc Autopilot làm đối số đầu vào và khởi chạy công việc chuyển đổi hàng loạt.

Khi công việc chuyển đổi hàng loạt hoàn tất, chúng tôi nhận được dự đoán đầu ra cho tập kiểm tra. Các dự đoán đầu ra được so sánh với nhãn thực tế (sự thật cơ bản) bằng cách sử dụng các hàm số liệu Scikit-learn. Chúng tôi đánh giá kết quả dựa trên Điểm F1, chính xácnhớ lại. Các chỉ số hiệu suất được lưu vào tệp JSON, tệp này được tham chiếu khi đăng ký mô hình ở bước tiếp theo.

Đăng ký mô hình Autopilot

Chúng tôi sử dụng một bước Lambda khác, trong đó hàm Lambda trong register_autopilot_job.py đăng ký mô hình Autopilot vào sổ đăng ký mô hình SageMaker bằng cách sử dụng báo cáo đánh giá thu được ở bước xử lý SageMaker trước đó. Bước Lambda được sử dụng ở đây để đạt được hiệu quả chi phí và độ trễ.

Tại thời điểm này, chúng tôi đã đăng ký thành công mô hình Autopilot mới của mình với cơ quan đăng ký mô hình SageMaker. Bạn có thể xem mẫu mới trên Studio bằng cách chọn Đăng ký mô hình trên Tài nguyên của SageMaker thực đơn và khai mạc autopilot-demo-package. Chọn bất kỳ phiên bản nào của công việc đào tạo để xem các số liệu khách quan bên dưới Chất lượng mô hình.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bạn có thể sử dụng báo cáo giải thích trên Giải thích để hiểu các dự đoán của mô hình của bạn.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Để xem các lần chạy thử nghiệm cho từng mô hình đã tạo, hãy điều hướng đến Thử nghiệm và thử nghiệm trang. Chọn (nhấp chuột phải) một trong các thử nghiệm được liệt kê và chọn Mô tả công việc AutoML để xem bảng xếp hạng mẫu.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Để xem các bước quy trình trên Thử nghiệm và thử nghiệm trang, chọn (nhấp chuột phải vào) thử nghiệm và chọn Mở chi tiết đường ống.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Tạo và chạy đường ống

Sau khi xác định các bước quy trình, chúng tôi kết hợp chúng thành một Đường dẫn SageMaker. Các bước được thực hiện tuần tự. Quy trình chạy tất cả các bước cho một công việc AutoML, sử dụng Autopilot để đào tạo, đánh giá mô hình và đăng ký mô hình. Xem đoạn mã sau:

pipeline = Pipeline(
name="autopilot-demo-pipeline",
parameters=[
autopilot_job_name,
target_attribute_name,
train_val_dataset_s3_path,
x_test_s3_path,
y_test_s3_path,
max_autopilot_candidates,
max_autopilot_job_runtime,
max_autopilot_training_job_runtime,
instance_count,
instance_type,
model_approval_status,
],
steps=[
step_start_autopilot_job,
step_check_autopilot_job_status_callback,
step_autopilot_model_evaluation,
step_register_autopilot_model,
],
sagemaker_session=sagemaker_session,
)

Triển khai mô hình

Sau khi xem xét thủ công hiệu suất của mô hình ML, chúng tôi có thể triển khai mô hình mới tạo của mình tới điểm cuối SageMaker. Để làm điều này, chúng ta có thể chạy ô trong sổ ghi chép tạo điểm cuối mô hình bằng cách sử dụng cấu hình mô hình được lưu trong sổ đăng ký mô hình SageMaker.

Lưu ý rằng tập lệnh này được chia sẻ nhằm mục đích trình diễn nhưng bạn nên tuân theo quy trình CI/CD mạnh mẽ hơn để triển khai sản xuất. Để biết thêm thông tin, hãy tham khảo Xây dựng, tự động hóa, quản lý và mở rộng quy trình làm việc ML bằng Amazon SageMaker Pipelines.

Kết luận

Bài đăng này mô tả cách tiếp cận quy trình ML dễ sử dụng để tự động đào tạo các mô hình ML dạng bảng (AutoML) bằng Autopilot, Pipelines và Studio. AutoML cải thiện hiệu quả của những người thực hành ML, đẩy nhanh quá trình từ thử nghiệm ML đến sản xuất mà không cần kiến ​​thức chuyên môn sâu rộng về ML. Chúng tôi đã phác thảo các bước quy trình tương ứng cần thiết để tạo, đánh giá và đăng ký mô hình ML.

Bắt đầu bằng cách truy cập mã trên Repo GitHub để đào tạo và triển khai các mô hình AutoML tùy chỉnh của riêng bạn.

Để biết thêm thông tin về Pipelines và Autopilot, hãy tham khảo Đường ống Amazon SageMakerTự động hóa phát triển mô hình với Amazon SageMaker Autopilot, Tương ứng.


Về các tác giả

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Pierre de Malliard là Nhà khoa học dữ liệu Full-Stack của AWS và có niềm đam mê giúp khách hàng cải thiện kết quả kinh doanh của họ bằng học máy. Anh ấy đã và đang xây dựng các giải pháp AI/ML trong lĩnh vực chăm sóc sức khỏe. Anh ấy có nhiều chứng chỉ AWS. Khi rảnh rỗi, Pierre thích trượt tuyết ở vùng quê và câu cá bằng giáo.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Paavani Dua là Nhà khoa học ứng dụng trong tổ chức AWS AI. Tại Phòng thí nghiệm Giải pháp ML của Amazon, cô làm việc với khách hàng để giải quyết các vấn đề kinh doanh của họ bằng giải pháp ML. Ngoài công việc, cô thích đi bộ đường dài, đọc sách và làm bánh.

Chuyển các mô hình ML Autopilot của Amazon SageMaker từ thử nghiệm sang sản xuất bằng cách sử dụng Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Marcelo Aberle là Kỹ sư ML trong tổ chức AWS AI. Ông đang dẫn đầu các nỗ lực MLOps tại Phòng thí nghiệm Giải pháp ML của Amazon, giúp khách hàng thiết kế và triển khai các hệ thống ML có thể mở rộng. Nhiệm vụ của anh là hướng dẫn khách hàng trên hành trình ML doanh nghiệp của họ và đẩy nhanh con đường ML đến sản xuất của họ. Anh ấy là người ngưỡng mộ thiên nhiên California và thích đi bộ đường dài và đạp xe quanh San Francisco.

Dấu thời gian:

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