Vào tháng 2021 năm XNUMX, với sự phối hợp của RStudio PBC, Chúng tôi công bố sự sẵn có chung của RStudio trên Amazon SageMaker, RStudio Workbench IDE được quản lý hoàn toàn đầu tiên trong ngành trên đám mây. Giờ đây, bạn có thể mang theo giấy phép RStudio hiện tại của mình để dễ dàng di chuyển môi trường RStudio tự quản lý của mình sang Amazon SageMaker chỉ trong một vài bước đơn giản.
RStudio là một trong những IDE phổ biến nhất trong số các nhà phát triển R cho các dự án máy học (ML) và khoa học dữ liệu. RStudio cung cấp các công cụ mã nguồn mở cho R và phần mềm chuyên nghiệp sẵn sàng cho doanh nghiệp để các nhóm khoa học dữ liệu phát triển và chia sẻ công việc của họ trong tổ chức. Mang RStudio trên SageMaker không chỉ cho phép bạn truy cập vào cơ sở hạ tầng AWS theo cách được quản lý hoàn toàn mà còn cung cấp cho bạn quyền truy cập gốc vào SageMaker.
Trong bài đăng này, chúng tôi khám phá cách bạn có thể sử dụng các tính năng của SageMaker thông qua RStudio trên SageMaker để xây dựng đường ống SageMaker xây dựng, xử lý, đào tạo và đăng ký các mô hình R của bạn. Chúng tôi cũng khám phá việc sử dụng SageMaker để triển khai mô hình của chúng tôi, tất cả đều sử dụng R.
Tổng quan về giải pháp
Sơ đồ sau đây cho thấy kiến trúc được sử dụng trong giải pháp của chúng tôi. Tất cả mã được sử dụng trong ví dụ này có thể được tìm thấy trong Kho GitHub.
Điều kiện tiên quyết
Để theo dõi bài đăng này, cần có quyền truy cập RStudio trên SageMaker. Nếu bạn mới sử dụng RStudio trên SageMaker, hãy xem lại Bắt đầu với RStudio trên Amazon SageMaker.
Chúng tôi cũng cần xây dựng các vùng chứa Docker tùy chỉnh. Chúng tôi sử dụng Xây dựng mã AWS để xây dựng các vùng chứa này, vì vậy bạn cần thêm một số Quản lý truy cập và nhận dạng AWS (IAM) các quyền mà bạn có thể không có theo mặc định. Trước khi tiếp tục, hãy đảm bảo rằng vai trò IAM mà bạn đang sử dụng có chính sách tin cậy với CodeBuild:
Các quyền sau đây cũng được yêu cầu trong vai trò IAM để chạy một bản dựng trong CodeBuild và đẩy hình ảnh lên Đăng ký container đàn hồi Amazon (ECR của Amazon):
Tạo vùng chứa R đường cơ sở
Để sử dụng tập lệnh R của chúng tôi để xử lý và đào tạo về các công việc xử lý và đào tạo của SageMaker, chúng tôi cần tạo Container đậu chứa các gói và thời gian chạy cần thiết. Khả năng sử dụng vùng chứa của riêng bạn, là một phần của dịch vụ SageMaker, mang lại sự linh hoạt tuyệt vời cho các nhà phát triển và nhà khoa học dữ liệu để sử dụng các công cụ và khuôn khổ mà họ lựa chọn, hầu như không có giới hạn.
Chúng tôi tạo hai vùng chứa Docker hỗ trợ R: một để xử lý công việc và một để đào tạo và triển khai các mô hình của chúng tôi. Việc xử lý dữ liệu thường yêu cầu các gói và thư viện khác với mô hình hóa, vì vậy, ở đây có ý nghĩa khi tách hai giai đoạn và sử dụng các vùng chứa khác nhau.
Để biết thêm chi tiết về cách sử dụng vùng chứa với SageMaker, hãy tham khảo Sử dụng vùng chứa Docker với SageMaker.
Vùng chứa được sử dụng để xử lý được định nghĩa như sau:
Đối với bài đăng này, chúng tôi sử dụng một vùng chứa đơn giản và tương đối nhẹ. Tùy thuộc vào nhu cầu của bạn hoặc tổ chức của bạn, bạn có thể muốn cài đặt trước một số gói R khác.
Vùng chứa được sử dụng để đào tạo và triển khai được định nghĩa như sau:
Nhân RStudio chạy trên vùng chứa Docker, vì vậy bạn sẽ không thể xây dựng và triển khai các vùng chứa bằng cách sử dụng lệnh Docker trực tiếp trên phiên Studio của mình. Thay vào đó, bạn có thể sử dụng thư viện rất hữu ích sagemaker-studio-hình ảnh-xây dựng, về cơ bản, giao nhiệm vụ xây dựng các vùng chứa cho CodeBuild.
Với các lệnh sau, chúng tôi tạo hai sổ đăng ký Amazon ECR: sagemaker-r-processing
và sagemaker-r-train-n-deploy
và xây dựng các vùng chứa tương ứng mà chúng tôi sử dụng sau này:
Tạo đường dẫn
Bây giờ các thùng chứa đã được xây dựng và sẵn sàng, chúng ta có thể tạo đường dẫn SageMaker để điều phối quy trình xây dựng mô hình. Mã đầy đủ của điều này nằm trong tệp pipeline.R
trong kho lưu trữ. Cách dễ nhất để tạo một đường dẫn SageMaker là sử dụng SageMaker SDK, là một thư viện Python mà chúng ta có thể truy cập bằng cách sử dụng thư viện thử lại. Điều này cho phép chúng tôi truy cập vào tất cả các chức năng của SageMaker mà không cần rời khỏi môi trường ngôn ngữ R.
Đường ống mà chúng tôi xây dựng có các thành phần sau:
- Bước tiền xử lý - Đây là một công việc xử lý của SageMaker (sử dụng
sagemaker-r-processing
container) chịu trách nhiệm xử lý trước dữ liệu và tách dữ liệu thành các tập dữ liệu huấn luyện và kiểm tra. - Bước đào tạo - Đây là một công việc đào tạo SageMaker (sử dụng
sagemaker-r-train-n-deploy
container) chịu trách nhiệm đào tạo mô hình. Trong ví dụ này, chúng tôi đào tạo một mô hình tuyến tính đơn giản. - Bước đánh giá - Đây là một công việc xử lý của SageMaker (sử dụng
sagemaker-r-processing
container) chịu trách nhiệm thực hiện đánh giá mô hình. Cụ thể trong ví dụ này, chúng tôi quan tâm đến RMSE (lỗi bình phương căn bậc hai) trên tập dữ liệu thử nghiệm, mà chúng tôi muốn sử dụng trong bước tiếp theo cũng như liên kết với chính mô hình. - Bước có điều kiện - Đây là bước có điều kiện, có nguồn gốc từ các đường ống SageMaker, cho phép chúng ta phân nhánh logic của đường ống dựa trên một số tham số. Trong trường hợp này, các nhánh đường ống dựa trên giá trị của RMSE đã được tính toán ở bước trước.
- Đăng ký bước mô hình - Nếu bước điều kiện trước là
True
và hiệu suất của mô hình có thể chấp nhận được, thì mô hình đó được đăng ký trong sổ đăng ký mô hình. Để biết thêm thông tin, hãy tham khảo Đăng ký và triển khai mô hình với Sổ đăng ký mô hình.
Đầu tiên hãy gọi hàm upert để tạo (hoặc cập nhật) đường ống và sau đó gọi hàm bắt đầu để thực sự bắt đầu chạy đường ống:
Kiểm tra đường dẫn và đăng ký mô hình
Một trong những điều tuyệt vời khi sử dụng RStudio trên SageMaker là bằng cách sử dụng nền tảng SageMaker, bạn có thể sử dụng công cụ phù hợp cho đúng công việc và nhanh chóng chuyển đổi giữa chúng dựa trên những gì bạn cần làm.
Ngay sau khi chúng tôi bắt đầu chạy đường ống, chúng tôi có thể chuyển sang Xưởng sản xuất Amazon SageMaker, cho phép chúng tôi trực quan hóa đường ống và theo dõi các lần chạy hiện tại và trước đó của nó.
Để xem chi tiết về đường ống mà chúng tôi vừa tạo và chạy, hãy điều hướng đến giao diện Studio IDE, chọn Tài nguyên của SageMaker, chọn Đường ống trên menu thả xuống và chọn đường dẫn (trong trường hợp này, AbalonePipelineUsingR
).
Điều này tiết lộ chi tiết của đường ống, bao gồm tất cả các lần chạy hiện tại và trước đó. Chọn cái mới nhất để hiển thị trực quan đường ống, theo ảnh chụp màn hình sau.
DAG của đường ống được tạo tự động bởi dịch vụ dựa trên các phụ thuộc dữ liệu giữa các bước, cũng như dựa trên các phụ thuộc được thêm tùy chỉnh (không được thêm bất kỳ trong ví dụ này).
Khi quá trình chạy hoàn tất, nếu thành công, bạn sẽ thấy tất cả các bước chuyển sang màu xanh lục.
Chọn bất kỳ bước nào trong số các bước riêng lẻ sẽ hiển thị chi tiết về bước cụ thể, bao gồm đầu vào, đầu ra, nhật ký và cài đặt cấu hình ban đầu. Điều này cho phép bạn đi sâu vào đường dẫn và điều tra bất kỳ bước nào không thành công.
Tương tự, khi đường ống chạy xong, một mô hình được lưu trong sổ đăng ký mô hình. Để truy cập nó, trong Tài nguyên của SageMaker ngăn, chọn Đăng ký mô hình trên menu thả xuống và chọn mô hình của bạn. Điều này cho thấy danh sách các mô hình đã đăng ký, như được hiển thị trong ảnh chụp màn hình sau. Chọn một để mở trang chi tiết cho phiên bản mô hình cụ thể đó.
Sau khi bạn mở một phiên bản của mô hình, hãy chọn Cập nhật trạng và Phê duyệt để phê duyệt mô hình.
Tại thời điểm này, dựa trên trường hợp sử dụng của bạn, bạn có thể thiết lập phê duyệt này để kích hoạt các hành động tiếp theo, bao gồm cả việc triển khai mô hình theo nhu cầu của bạn.
Triển khai mô hình không máy chủ
Sau khi bạn đã đào tạo và đăng ký một mô hình trên SageMaker, việc triển khai mô hình trên SageMaker rất đơn giản.
Có một số tùy chọn về cách bạn có thể triển khai mô hình, chẳng hạn như suy luận hàng loạt, điểm cuối thời gian thực hoặc điểm cuối không đồng bộ. Mỗi phương pháp đi kèm với một số cấu hình bắt buộc, bao gồm cả việc chọn kiểu phiên bản bạn muốn cũng như cơ chế chia tỷ lệ.
Đối với ví dụ này, chúng tôi sử dụng tính năng được công bố gần đây của SageMaker, Suy luận không máy chủ (ở chế độ xem trước tại thời điểm viết bài), để triển khai mô hình R của chúng tôi trên một điểm cuối không có máy chủ. Đối với loại điểm cuối này, chúng tôi chỉ xác định dung lượng RAM mà chúng tôi muốn cấp cho mô hình để suy luận, cũng như số lượng lệnh gọi đồng thời tối đa được phép của mô hình. SageMaker đảm nhận việc lưu trữ mô hình và tự động mở rộng quy mô khi cần thiết. Bạn chỉ bị tính phí cho số giây và dữ liệu chính xác mà mô hình sử dụng, không tính phí cho thời gian nhàn rỗi.
Bạn có thể triển khai mô hình tới một điểm cuối không có máy chủ bằng mã sau:
Nếu bạn thấy lỗi ClientError: An error occurred (ValidationException) when calling the CreateModel operation: Invalid approval status "PendingManualApproval"
mô hình bạn muốn triển khai chưa được phê duyệt. Làm theo các bước từ phần trước để phê duyệt mô hình của bạn.
Gọi điểm cuối bằng cách gửi yêu cầu đến điểm cuối HTTP mà chúng tôi đã triển khai hoặc thay vào đó sử dụng SageMaker SDK. Trong đoạn mã sau, chúng tôi gọi điểm cuối trên một số dữ liệu thử nghiệm:
Điểm cuối mà chúng tôi gọi là điểm cuối không có máy chủ và như vậy, chúng tôi sẽ bị tính phí cho thời lượng và dữ liệu chính xác được sử dụng. Bạn có thể nhận thấy rằng lần đầu tiên bạn gọi điểm cuối, sẽ mất khoảng một giây để phản hồi. Điều này là do thời gian khởi động lạnh của điểm cuối không có máy chủ. Nếu bạn thực hiện một lệnh gọi khác ngay sau đó, mô hình sẽ trả về dự đoán trong thời gian thực vì nó đã ấm.
Khi bạn hoàn thành thử nghiệm với điểm cuối, bạn có thể xóa nó bằng lệnh sau:
Kết luận
Trong bài đăng này, chúng tôi đã giới thiệu cho các bạn quá trình tạo một đường ống SageMaker sử dụng R trong môi trường RStudio của chúng tôi và giới thiệu cách triển khai mô hình R của chúng tôi trên một điểm cuối không có máy chủ trên SageMaker bằng cách sử dụng sổ đăng ký mô hình SageMaker.
Với sự kết hợp của RStudio và SageMaker, giờ đây bạn có thể tạo và sắp xếp các quy trình làm việc ML từ đầu đến cuối hoàn chỉnh trên AWS bằng cách sử dụng ngôn ngữ ưa thích của chúng tôi, R.
Để đi sâu hơn vào giải pháp này, tôi khuyến khích bạn xem lại mã nguồn của giải pháp này, cũng như các ví dụ khác, trên GitHub.
Lưu ý
Georgios Schinas là Kiến trúc sư Giải pháp Chuyên gia về AI / ML trong khu vực EMEA. Anh ấy có trụ sở tại London và làm việc chặt chẽ với các khách hàng ở Vương quốc Anh và Ireland. Georgios giúp khách hàng thiết kế và triển khai các ứng dụng học máy trong sản xuất trên AWS đặc biệt quan tâm đến các hoạt động MLOps và cho phép khách hàng thực hiện học máy trên quy mô lớn. Khi rảnh rỗi, anh ấy thích đi du lịch, nấu nướng và dành thời gian cho bạn bè và gia đình.
- AI
- nghệ thuật ai
- máy phát điện nghệ thuật ai
- ai rô bốt
- Amazon SageMaker
- trí tuệ nhân tạo
- chứng nhận trí tuệ nhân tạo
- trí tuệ nhân tạo trong ngân hàng
- robot trí tuệ nhân tạo
- robot trí tuệ nhân tạo
- phần mềm trí tuệ nhân tạo
- Học máy AWS
- blockchain
- hội nghị blockchain ai
- thiên tài
- trí tuệ nhân tạo đàm thoại
- hội nghị tiền điện tử ai
- dall's
- học kĩ càng
- google ai
- học máy
- plato
- Plato ai
- Thông tin dữ liệu Plato
- Trò chơi Plato
- PlatoDữ liệu
- Platogaming
- quy mô ai
- cú pháp
- zephyrnet