A Guide to Deploying YOLO11 on Amazon SageMaker Endpoints
Deploying advanced computer vision models like Ultralytics' YOLO11 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLO11 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.
This guide will take you through the process of deploying YOLO11 PyTorch models on Amazon SageMaker Endpoints step by step. You'll learn the essentials of preparing your AWS environment, configuring the model appropriately, and using tools like AWS CloudFormation and the AWS Cloud Development Kit (CDK) for deployment.
Amazon SageMaker
Amazon SageMaker là dịch vụ machine learning của Amazon Web Services (AWS) giúp đơn giản hóa quá trình xây dựng, đào tạo và triển khai các mô hình machine learning. Nó cung cấp một loạt các công cụ để xử lý các khía cạnh khác nhau của quy trình làm việc học máy. Điều này bao gồm các tính năng tự động để điều chỉnh mô hình, tùy chọn cho các mô hình đào tạo ở quy mô lớn và các phương pháp đơn giản để triển khai các mô hình vào sản xuất. SageMaker hỗ trợ các khung học máy phổ biến, cung cấp sự linh hoạt cần thiết cho các dự án đa dạng. Các tính năng của nó cũng bao gồm ghi nhãn dữ liệu, quản lý quy trình làm việc và phân tích hiệu suất.
Deploying YOLO11 on Amazon SageMaker Endpoints
Deploying YOLO11 on Amazon SageMaker lets you use its managed environment for real-time inference and take advantage of features like autoscaling. Take a look at the AWS architecture below.
Bước 1: Thiết lập môi trường AWS của bạn
Trước tiên, hãy đảm bảo bạn có các điều kiện tiên quyết sau:
-
Tài khoản AWS: Nếu bạn chưa có, hãy đăng ký tài khoản AWS.
-
Vai trò IAM đã định cấu hình: Bạn sẽ cần một vai trò IAM có các quyền cần thiết cho Amazon SageMaker, AWS CloudFormation và Amazon S3. Vai trò này phải có các chính sách cho phép nó truy cập các dịch vụ này.
-
AWS CLI: Nếu chưa cài đặt, hãy tải xuống và cài đặt Giao diện dòng lệnh AWS (CLI) và định cấu hình nó với chi tiết tài khoản của bạn. Theo AWS CLI Hướng dẫn cài đặt.
-
AWS CDK: Nếu chưa được cài đặt, hãy cài đặt AWS Cloud Development Kit (CDK), sẽ được sử dụng để tạo tập lệnh triển khai. Làm theo hướng dẫn cài đặt AWS CDK .
-
Định mức dịch vụ đầy đủ: Xác nhận rằng bạn có đủ hạn ngạch cho hai tài nguyên riêng biệt trong Amazon SageMaker: một cho
ml.m5.4xlarge
để sử dụng điểm cuối và một thiết bị khác choml.m5.4xlarge
để sử dụng phiên bản sổ ghi chép. Mỗi trong số này yêu cầu tối thiểu một giá trị hạn ngạch. Nếu hạn ngạch hiện tại của bạn thấp hơn yêu cầu này, điều quan trọng là phải yêu cầu tăng cho mỗi hạn ngạch. Bạn có thể yêu cầu tăng hạn ngạch bằng cách làm theo hướng dẫn chi tiết trong Tài liệu về AWS Service Quotas.
Step 2: Clone the YOLO11 SageMaker Repository
The next step is to clone the specific AWS repository that contains the resources for deploying YOLO11 on SageMaker. This repository, hosted on GitHub, includes the necessary CDK scripts and configuration files.
- Sao chép kho lưu trữ GitHub: Thực hiện lệnh sau trong thiết bị đầu cuối của bạn để sao chép máy chủ-yolov8-on-sagemaker-endpoint repository:
- Điều hướng đến Thư mục nhân bản: Thay đổi thư mục của bạn thành kho lưu trữ nhân bản:
Bước 3: Thiết lập môi trường CDK
Bây giờ bạn đã có mã cần thiết, hãy thiết lập môi trường của bạn để triển khai với AWS CDK.
- Tạo một Python Môi trường ảo: Điều này cô lập Python môi trường và sự phụ thuộc. Chạy:
- Kích hoạt môi trường ảo:
- Cài đặt phụ thuộc: Cài đặt yêu cầu Python Sự phụ thuộc cho dự án:
- Nâng cấp Thư viện AWS CDK: Đảm bảo bạn có phiên bản mới nhất của thư viện AWS CDK:
Bước 4: Tạo AWS CloudFormation Stack
- Tổng hợp ứng dụng CDK: Tạo mẫu AWS CloudFormation từ mã CDK của bạn:
- Khởi động ứng dụng CDK: Chuẩn bị môi trường AWS của bạn để triển khai CDK:
- Triển khai ngăn xếp: Điều này sẽ tạo ra các tài nguyên AWS cần thiết và triển khai mô hình của bạn:
Step 5: Deploy the YOLO Model
Before diving into the deployment instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.
After creating the AWS CloudFormation Stack, the next step is to deploy YOLO11.
-
Mở Phiên bản sổ ghi chép: Truy cập Bảng điều khiển AWS và điều hướng đến dịch vụ Amazon SageMaker. Chọn "Phiên bản sổ ghi chép" từ bảng thông tin, sau đó định vị phiên bản sổ ghi chép được tạo bởi tập lệnh triển khai CDK của bạn. Mở phiên bản sổ ghi chép để truy cập môi trường Jupyter.
-
Truy cập và sửa đổi inference.py: Sau khi mở phiên bản sổ ghi chép SageMaker trong Jupyter, hãy định vị tệp inference.py. Chỉnh sửa hàm output_fn trong inference.py như hình dưới đây và lưu các thay đổi của bạn vào tập lệnh, đảm bảo rằng không có lỗi cú pháp.
import json
def output_fn(prediction_output):
"""Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints."""
print("Executing output_fn from inference.py ...")
infer = {}
for result in prediction_output:
if result.boxes is not None:
infer["boxes"] = result.boxes.numpy().data.tolist()
if result.masks is not None:
infer["masks"] = result.masks.numpy().data.tolist()
if result.keypoints is not None:
infer["keypoints"] = result.keypoints.numpy().data.tolist()
if result.obb is not None:
infer["obb"] = result.obb.numpy().data.tolist()
if result.probs is not None:
infer["probs"] = result.probs.numpy().data.tolist()
return json.dumps(infer)
- Deploy the Endpoint Using 1_DeployEndpoint.ipynb: In the Jupyter environment, open the 1_DeployEndpoint.ipynb notebook located in the sm-notebook directory. Follow the instructions in the notebook and run the cells to download the YOLO11 model, package it with the updated inference code, and upload it to an Amazon S3 bucket. The notebook will guide you through creating and deploying a SageMaker endpoint for the YOLO11 model.
Bước 6: Kiểm tra triển khai của bạn
Now that your YOLO11 model is deployed, it's important to test its performance and functionality.
-
Mở Test Notebook: Trong cùng một môi trường Jupyter, định vị và mở sổ ghi chép 2_TestEndpoint.ipynb, cũng trong thư mục sm-notebook.
-
Run the Test Notebook: Follow the instructions within the notebook to test the deployed SageMaker endpoint. This includes sending an image to the endpoint and running inferences. Then, you'll plot the output to visualize the model's performance and accuracy, as shown below.
- Tài nguyên dọn dẹp: Sổ ghi chép kiểm tra cũng sẽ hướng dẫn bạn qua quy trình dọn dẹp điểm cuối và mô hình được lưu trữ. Đây là một bước quan trọng để quản lý chi phí và nguồn lực một cách hiệu quả, đặc biệt nếu bạn không có kế hoạch sử dụng mô hình được triển khai ngay lập tức.
Bước 7: Giám sát và quản lý
Sau khi thử nghiệm, việc giám sát và quản lý liên tục mô hình đã triển khai của bạn là rất cần thiết.
-
Giám sát bằng Amazon CloudWatch: Thường xuyên kiểm tra hiệu suất và tình trạng của điểm cuối SageMaker bằng Amazon CloudWatch.
-
Quản lý điểm cuối: Sử dụng bảng điều khiển SageMaker để quản lý điểm cuối liên tục. Điều này bao gồm mở rộng quy mô, cập nhật hoặc triển khai lại mô hình theo yêu cầu.
By completing these steps, you will have successfully deployed and tested a YOLO11 model on Amazon SageMaker Endpoints. This process not only equips you with practical experience in using AWS services for machine learning deployment but also lays the foundation for deploying other advanced models in the future.
Tóm tắt
This guide took you step by step through deploying YOLO11 on Amazon SageMaker Endpoints using AWS CloudFormation and the AWS Cloud Development Kit (CDK). The process includes cloning the necessary GitHub repository, setting up the CDK environment, deploying the model using AWS services, and testing its performance on SageMaker.
Để biết thêm chi tiết kỹ thuật, hãy tham khảo bài viết này trên Blog về Machine Learning của AWS. Bạn cũng có thể xem Tài liệu chính thức của Amazon SageMaker để biết thêm thông tin chi tiết về các tính năng và chức năng khác nhau.
Are you interested in learning more about different YOLO11 integrations? Visit the Ultralytics integrations guide page to discover additional tools and capabilities that can enhance your machine-learning projects.
FAQ
How do I deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints?
To deploy the Ultralytics YOLO11 model on Amazon SageMaker Endpoints, follow these steps:
- Thiết lập môi trường AWS của bạn: Đảm bảo bạn có Tài khoản AWS, vai trò IAM với các quyền cần thiết và AWS CLI Cấu hình. Cài đặt AWS CDK nếu chưa hoàn tất (tham khảo hướng dẫn AWS CDK).
- Clone the YOLO11 SageMaker Repository:
- Thiết lập môi trường CDK: Tạo một Python môi trường ảo, kích hoạt nó, cài đặt các thành phần phụ thuộc và nâng cấp thư viện AWS CDK.
- Triển khai bằng AWS CDK: Tổng hợp và deploy CloudFormation stack, bootstrap môi trường.
Để biết thêm chi tiết, hãy xem lại phần tài liệu.
What are the prerequisites for deploying YOLO11 on Amazon SageMaker?
To deploy YOLO11 on Amazon SageMaker, ensure you have the following prerequisites:
- Tài khoản AWS: Tài khoản AWS đang hoạt động (đăng ký tại đây).
- Vai trò IAM: Vai trò IAM được định cấu hình với các quyền cho SageMaker, CloudFormation và Amazon S3.
- AWS CLI: Đã cài đặt và cấu hình Giao diện dòng lệnh AWS (AWS CLI hướng dẫn cài đặt).
- AWS CDK: Bộ công cụ phát triển đám mây AWS đã cài đặt (hướng dẫn thiết lập CDK).
- Định mức dịch vụ: Đủ hạn ngạch cho
ml.m5.4xlarge
Phiên bản cho cả mức sử dụng điểm cuối và sổ ghi chép (Yêu cầu tăng hạn ngạch).
Để biết thiết lập chi tiết, hãy tham khảo phần này.
Why should I use Ultralytics YOLO11 on Amazon SageMaker?
Using Ultralytics YOLO11 on Amazon SageMaker offers several advantages:
- Khả năng mở rộng và quản lý: SageMaker cung cấp một môi trường được quản lý với các tính năng như tự động thay đổi quy mô, giúp đáp ứng nhu cầu suy luận theo thời gian thực.
- Tích hợp với Dịch vụ AWS: Tích hợp liền mạch với các dịch vụ AWS khác, chẳng hạn như S3 để lưu trữ dữ liệu, CloudFormation cho cơ sở hạ tầng dưới dạng mã và CloudWatch để giám sát.
- Dễ triển khai: Thiết lập đơn giản bằng cách sử dụng tập lệnh AWS CDK và các quy trình triển khai được hợp lý hóa.
- Hiệu năng: Tận dụng cơ sở hạ tầng hiệu năng cao của Amazon SageMaker để chạy các tác vụ suy luận quy mô lớn một cách hiệu quả.
Khám phá thêm về những lợi thế của việc sử dụng SageMaker trong phần giới thiệu.
Can I customize the inference logic for YOLO11 on Amazon SageMaker?
Yes, you can customize the inference logic for YOLO11 on Amazon SageMaker:
-
Thay đổi
inference.py
: Định vị và tùy chỉnhoutput_fn
hàm tronginference.py
để điều chỉnh các định dạng đầu ra.import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer)
-
Triển khai mô hình cập nhật: Đảm bảo bạn triển khai lại mô hình bằng sổ ghi chép Jupyter được cung cấp (
1_DeployEndpoint.ipynb
) để bao gồm những thay đổi này.
Tham khảo các bước chi tiết để triển khai mô hình sửa đổi.
How can I test the deployed YOLO11 model on Amazon SageMaker?
To test the deployed YOLO11 model on Amazon SageMaker:
- Mở Sổ ghi chép Kiểm tra: Xác định vị trí
2_TestEndpoint.ipynb
máy tính xách tay trong môi trường SageMaker Jupyter. - Chạy Sổ ghi chép: Làm theo hướng dẫn của sổ ghi chép để gửi hình ảnh đến điểm cuối, thực hiện suy luận và hiển thị kết quả.
- Trực quan hóa kết quả: Sử dụng các chức năng vẽ đồ thị tích hợp sẵn để trực quan hóa các chỉ số hiệu suất, chẳng hạn như giới hạn các hộp xung quanh các đối tượng được phát hiện.
Để biết hướng dẫn kiểm tra toàn diện, hãy truy cập phần thử nghiệm.