Logo Zephyrnet

Quản lý quy trình làm việc AutoML với Chức năng từng bước AWS và AutoGluon trên Amazon SageMaker

Ngày:

Chạy thử nghiệm máy học (ML) trên đám mây có thể trải dài trên nhiều dịch vụ và thành phần. Khả năng cấu trúc, tự động hóa và theo dõi các thử nghiệm ML là điều cần thiết để cho phép phát triển nhanh các mô hình ML. Với những tiến bộ mới nhất trong lĩnh vực máy học tự động (AutoML), cụ thể là lĩnh vực ML dành riêng cho việc tự động hóa các quy trình ML, bạn có thể xây dựng các mô hình ra quyết định chính xác mà không cần kiến ​​thức sâu về ML. Trong bài đăng này, chúng tôi tham gia AutoGluon, một khuôn khổ AutoML mã nguồn mở cho phép bạn xây dựng các mô hình ML chính xác chỉ với một vài dòng Python.

AWS cung cấp một loạt các dịch vụ để quản lý và chạy quy trình làm việc ML, cho phép bạn chọn giải pháp dựa trên kỹ năng và ứng dụng của mình. Ví dụ: nếu bạn đã sử dụng Chức năng bước AWS để sắp xếp các thành phần của ứng dụng phân tán, bạn có thể sử dụng cùng một dịch vụ để xây dựng và tự động hóa quy trình làm việc ML của mình. Các công cụ MLOps khác do AWS cung cấp bao gồm Đường ống Amazon SageMaker, cho phép bạn xây dựng các mô hình ML trong Xưởng sản xuất Amazon SageMaker với các khả năng MLOps (chẳng hạn như khả năng tương thích CI / CD, giám sát mô hình và phê duyệt mô hình). Các công cụ mã nguồn mở, chẳng hạn như Luồng khí Apache—Có sẵn trên AWS thông qua Quy trình công việc được quản lý của Amazon cho Luồng khí ApacheGiáo sư KubeFlow, cũng như các giải pháp kết hợp, cũng được hỗ trợ. Ví dụ: bạn có thể quản lý quá trình nhập và xử lý dữ liệu bằng Step Functions trong khi đào tạo và triển khai các mô hình ML của mình với SageMaker Pipelines.

Trong bài đăng này, chúng tôi chỉ ra cách ngay cả những nhà phát triển không có chuyên môn về ML cũng có thể dễ dàng xây dựng và duy trì các mô hình ML hiện đại bằng cách sử dụng AutoGluon trên Amazon SageMaker và Chức năng Bước để sắp xếp các thành phần quy trình làm việc.

Sau khi tổng quan về thuật toán AutoGluon, chúng tôi trình bày các định nghĩa quy trình làm việc cùng với các ví dụ và hướng dẫn mã mà bạn có thể áp dụng cho dữ liệu của mình.

AutoGluon

AutoGluon là một khuôn khổ AutoML mã nguồn mở giúp tăng tốc việc áp dụng ML bằng cách đào tạo các mô hình ML chính xác chỉ với một vài dòng mã Python. Mặc dù bài đăng này tập trung vào dữ liệu dạng bảng, AutoGluon cũng cho phép bạn đào tạo các mô hình hiện đại để phân loại hình ảnh, phát hiện đối tượng và phân loại văn bản. AutoGluon dạng bảng tạo và kết hợp các mô hình khác nhau để tìm ra giải pháp tối ưu.

Nhóm AutoGluon tại AWS đã phát hành một giấy trình bày các nguyên tắc cấu trúc thư viện:

  • Đơn giản - Bạn có thể tạo mô hình phân loại và hồi quy trực tiếp từ dữ liệu thô mà không cần phải phân tích dữ liệu hoặc thực hiện kỹ thuật tính năng
  • Độ bền - Quá trình đào tạo tổng thể sẽ thành công ngay cả khi một số mô hình riêng lẻ không thành công
  • Thời gian có thể đoán trước - Bạn có thể đạt được kết quả tối ưu trong thời gian mà bạn muốn đầu tư cho việc đào tạo
  • Khả năng chịu lỗi - Bạn có thể dừng quá trình đào tạo và tiếp tục lại bất cứ lúc nào, điều này giúp tối ưu hóa chi phí nếu quá trình chạy trên hình ảnh tại chỗ trên đám mây

Để biết thêm chi tiết về thuật toán, hãy tham khảo giấy được phát hành bởi nhóm AutoGluon tại AWS.

Sau khi bạn cài đặt Gói AutoGluon và các phụ thuộc của nó, việc huấn luyện một mô hình dễ dàng như viết ba dòng mã:

from autogluon.tabular import TabularDataset, TabularPredictor

train_data = TabularDataset('s3://my-bucket/datasets/my-csv.csv')
predictor = TabularPredictor(label="my-label", path="my-output-folder").fit(train_data)

Nhóm AutoGluon đã chứng minh sức mạnh của khung bằng cách lọt vào top 10 bảng xếp hạng trong nhiều cuộc thi Kaggle.

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

Chúng tôi sử dụng các Hàm bước để triển khai quy trình làm việc ML bao gồm đào tạo, đánh giá và triển khai. Thiết kế đường ống cho phép các thử nghiệm nhanh chóng và có thể định cấu hình bằng cách sửa đổi các thông số đầu vào mà bạn cung cấp vào đường ống trong thời gian chạy.

Bạn có thể định cấu hình đường ống để triển khai các quy trình công việc khác nhau, chẳng hạn như sau:

  • Đào tạo một mô hình ML mới và lưu trữ nó trong sổ đăng ký mô hình SageMaker, nếu không cần triển khai tại thời điểm này
  • Triển khai mô hình ML được đào tạo trước, hoặc cho trực tuyến (Điểm cuối SageMaker) hoặc ngoại tuyến (Chuyển đổi hàng loạt SageMaker) sự suy luận
  • Chạy một đường dẫn hoàn chỉnh để đào tạo, đánh giá và triển khai mô hình ML từ đầu

Các giải pháp bao gồm một máy nhà nước (xem sơ đồ sau) sắp xếp tập hợp các hành động sẽ được chạy dựa trên một tập hợp các tham số đầu vào.

Các bước của máy trạng thái như sau:

  1. Bước đầu tiên IsTraining quyết định xem chúng tôi đang sử dụng một mô hình được đào tạo trước hay đào tạo một mô hình từ đầu. Nếu sử dụng mô hình được đào tạo trước, máy trạng thái sẽ chuyển sang Bước 7.
  2. Khi cần có một mô hình ML mới, TrainSteps kích hoạt máy trạng thái thứ hai thực hiện tất cả các hành động cần thiết và trả kết quả về máy trạng thái hiện tại. Chúng ta đi vào chi tiết hơn về máy trạng thái huấn luyện trong phần tiếp theo.
  3. Khi quá trình đào tạo kết thúc, PassModelName lưu trữ tên công việc đào tạo ở một vị trí xác định của ngữ cảnh máy trạng thái để được sử dụng lại trong các trạng thái sau.
  4. Nếu một giai đoạn đánh giá được chọn, IsEvaluation chuyển hướng máy trạng thái tới nhánh đánh giá. Nếu không, nó sẽ chuyển sang Bước 7.
  5. Giai đoạn đánh giá sau đó được thực hiện bằng cách sử dụng AWS Lambda hàm được gọi bởi ModelValidation bươc. Hàm Lambda truy xuất các biểu diễn mô hình trên một tập hợp thử nghiệm và so sánh nó với ngưỡng người dùng có thể định cấu hình được chỉ định trong các tham số đầu vào. Đoạn mã sau là một ví dụ về kết quả đánh giá:
    "Payload":{
       "IsValid":true,
       "Scores":{
          "accuracy":0.9187,
          "balanced_accuracy":0.7272,
          "mcc":0.5403,
          "roc_auc":0.9489,
          "f1":0.5714,
          "precision":0.706,
          "recall":0.4799
       }
    }

  6. Nếu đánh giá mô hình tại EvaluationResults thành công, máy trạng thái tiếp tục với các bước triển khai cuối cùng. Nếu mô hình đang hoạt động dưới tiêu chí do người dùng xác định, máy trạng thái sẽ dừng và việc triển khai bị bỏ qua.
  7. Nếu triển khai được chọn, IsDeploy khởi động máy trạng thái thứ ba thông qua DeploySteps, mà chúng tôi mô tả sau trong bài đăng này. Nếu không cần triển khai, máy trạng thái dừng ở đây.

Một tập hợp các mẫu tham số đầu vào có sẵn trên Repo GitHub.

Đào tạo máy trạng thái

Máy trạng thái để huấn luyện một mô hình ML mới bằng AutoGluon bao gồm hai bước, như được minh họa trong sơ đồ sau. Bước đầu tiên là công việc đào tạo SageMaker tạo ra mô hình. Mục thứ hai lưu các mục trong sổ đăng ký mô hình SageMaker.

Bạn có thể chạy các bước này tự động như một phần của máy trạng thái chính hoặc như một quy trình độc lập.

Máy trạng thái triển khai

Bây giờ chúng ta hãy nhìn vào máy trạng thái dành riêng cho giai đoạn triển khai (xem sơ đồ sau). Như đã đề cập trước đó, kiến ​​trúc hỗ trợ triển khai cả trực tuyến và ngoại tuyến. Cái trước bao gồm triển khai một điểm cuối SageMaker, trong khi cái sau chạy một Công việc chuyển đổi hàng loạt SageMaker.

Các bước thực hiện như sau:

  1. ChoiceDeploymentMode xem xét các tham số đầu vào để xác định chế độ triển khai nào là cần thiết và hướng máy trạng thái tới nhánh tương ứng.
  2. Nếu một điểm cuối được chọn, EndpointConfig bước xác định cấu hình của nó, trong khi CreateEndpoint bắt đầu quá trình cấp phát các tài nguyên máy tính cần thiết. Việc phân bổ này có thể mất vài phút, vì vậy máy trạng thái tạm dừng tại WaitForEndpoint và sử dụng một hàm Lambda để thăm dò trạng thái điểm cuối.
  3. Trong khi điểm cuối đang được định cấu hình, ChoiceEndpointStatus trở về WaitForEndpoint trạng thái, nếu không nó tiếp tục DeploymentFailed or DeploymentSucceeded.
  4. Nếu triển khai ngoại tuyến được chọn, máy trạng thái sẽ chạy công việc chuyển đổi hàng loạt SageMaker, sau đó máy trạng thái sẽ dừng.

Kết luận

Bài đăng này trình bày một đường dẫn dễ sử dụng để sắp xếp quy trình làm việc AutoML và cho phép các thử nghiệm nhanh trên đám mây, cho phép đưa ra các giải pháp ML chính xác mà không yêu cầu kiến ​​thức ML nâng cao.

Chúng tôi cung cấp một đường dẫn chung cũng như hai đường ống mô-đun cho phép bạn thực hiện đào tạo và triển khai riêng biệt nếu cần. Hơn nữa, giải pháp được tích hợp hoàn toàn với SageMaker, được hưởng lợi từ các tính năng và tài nguyên tính toán của nó.

Bắt đầu ngay bây giờ với cái này hướng dẫn mã để triển khai các tài nguyên được trình bày trong bài đăng này vào tài khoản AWS của bạn và chạy các thử nghiệm AutoML đầu tiên của bạn.


Về các tác giả

Federico Piccinini là một Kiến trúc sư Học sâu cho Phòng thí nghiệm Giải pháp Học máy của Amazon. Anh ấy đam mê học máy, AI có thể giải thích và MLOps. Anh ấy tập trung vào việc thiết kế đường ống ML cho khách hàng AWS. Ngoài giờ làm việc, anh ấy thích thể thao và ăn pizza.

Paolo Irrera là Nhà khoa học dữ liệu tại Phòng thí nghiệm Giải pháp Máy học của Amazon, nơi anh ấy giúp khách hàng giải quyết các vấn đề kinh doanh với ML và khả năng đám mây. Ông có bằng Tiến sĩ về Thị giác Máy tính tại Telecom ParisTech, Paris.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?