Hướng dẫn triển khai YOLO11 trên Amazon SageMaker Endpoints
Việc triển khai các mô hình thị giác máy tính tiên tiến như YOLO11 của Ultralytics trên Amazon SageMaker Endpoints mở ra một loạt các khả năng cho các ứng dụng máy học khác nhau. Để sử dụng hiệu quả các mô hình này, điều quan trọng là phải hiểu rõ quy trình thiết lập, cấu hình và triển khai của chúng. YOLO11 trở nên mạnh mẽ hơn nữa khi được tích hợp liền mạch với Amazon SageMaker, một dịch vụ máy học mạnh mẽ và có khả năng mở rộng của AWS.
Hướng dẫn này sẽ hướng dẫn bạn từng bước quy trình triển khai các mô hình PyTorch YOLO11 trên Amazon SageMaker Endpoints. Bạn sẽ tìm hiểu những điều cần thiết để chuẩn bị môi trường AWS, định cấu hình mô hình một cách thích hợp và sử dụng các công cụ như AWS CloudFormation và AWS Cloud Development Kit (CDK) để triển khai.
Amazon SageMaker
Amazon SageMaker là một dịch vụ máy học từ Amazon Web Services (AWS), giúp đơn giản hóa quy trình xây dựng, huấn luyện và triển khai các mô hình máy học. 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 máy học. Điều này bao gồm các tính năng tự động để điều chỉnh mô hình, các tùy chọn để huấn luyện mô hình ở quy mô lớn và các phương pháp đơn giản để triển khai mô hình vào sản xuất. SageMaker hỗ trợ các framework máy học phổ biến, mang lại 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.
Triển khai YOLO11 trên Amazon SageMaker Endpoints
Việc triển khai YOLO11 trên Amazon SageMaker cho phép bạn sử dụng môi trường được quản lý của nó để suy luận theo thời gian thực và tận dụng các tính năng như tự động mở rộng quy mô. Hãy xem kiến trúc AWS bên dưới.
Bước 1: Thiết lập môi trường AWS của bạn
Đầu tiên, hãy đảm bảo bạn đã chuẩn bị sẵn 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.
-
Các vai trò IAM đã định cấu hình: Bạn sẽ cần một vai trò IAM với 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 AWS Command Line Interface (CLI) và định cấu hình nó với thông tin chi tiết về tài khoản của bạn. Làm theo hướng dẫn về AWS CLI để cài đặt.
-
AWS CDK: Nếu chưa cài đặt, hãy cài đặt AWS Cloud Development Kit (CDK), công cụ này sẽ được sử dụng để viết script triển khai. Làm theo hướng dẫn về AWS CDK để cài đặt.
-
Đảm bảo Hạn mức Dịch vụ Đầy đủ: Xác nhận rằng bạn có đủ hạn mức cho hai tài nguyên riêng biệt trong Amazon SageMaker: một cho
ml.m5.4xlarge
cho việc sử dụng endpoint và một choml.m5.4xlarge
cho việc sử dụng phiên bản notebook. Mỗi yêu cầu này đòi hỏi 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 từng 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ề hạn mức dịch vụ AWS.
Bước 2: Sao chép (Clone) kho lưu trữ YOLO11 SageMaker
Bước tiếp theo là sao chép (clone) kho lưu trữ AWS cụ thể chứa các tài nguyên để triển khai YOLO11 trên SageMaker. Kho lưu trữ này, được lưu trữ trên GitHub, bao gồm các tập lệnh CDK và tệp cấu hình cần thiết.
-
Sao chép kho lưu trữ GitHub: Thực thi lệnh sau trong terminal của bạn để sao chép kho lưu trữ host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
-
Điều hướng đến thư mục đã sao chép: Thay đổi thư mục của bạn sang kho lưu trữ đã sao chép:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
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ôi trường Ảo Python: Điều này cô lập môi trường và các phần phụ thuộc Python của bạn. Chạy:
python3 -m venv .venv
-
Kích hoạt Môi trường Ảo:
source .venv/bin/activate
-
Cài đặt Dependencies: Cài đặt các Python dependencies cần thiết cho dự án:
pip3 install -r requirements.txt
-
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:
pip install --upgrade aws-cdk-lib
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:
cdk synth
-
Khởi động Ứng dụng CDK: Chuẩn bị môi trường AWS của bạn để triển khai CDK:
cdk bootstrap
-
Triển khai ngăn xếp: Thao tác này sẽ tạo các tài nguyên AWS cần thiết và triển khai mô hình của bạn:
cdk deploy
Bước 5: Triển khai mô hình YOLO
Trước khi đi sâu vào hướng dẫn triển khai, hãy nhớ xem qua loạt các mô hình YOLO11 do Ultralytics cung cấp. Điều này sẽ giúp bạn chọn mô hình phù hợp nhất cho các yêu cầu của dự án.
Sau khi tạo AWS CloudFormation Stack, bước tiếp theo là triển khai YOLO11.
-
Mở Notebook Instance: Truy cập AWS Console và điều hướng đến dịch vụ Amazon SageMaker. Chọn "Notebook Instances" từ bảng điều khiển, sau đó định vị notebook instance đã được tạo bởi script triển khai CDK của bạn. Mở notebook instance để truy cập môi trường Jupyter.
-
Truy cập và sửa đổi inference.py: Sau khi mở phiên bản notebook 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 vào script, đảm bảo 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)
-
Triển khai Điểm cuối bằng 1_DeployEndpoint.ipynb: Trong môi trường Jupyter, hãy mở sổ tay 1_DeployEndpoint.ipynb nằm trong thư mục sm-notebook. Làm theo hướng dẫn trong sổ tay và chạy các ô để tải xuống mô hình YOLO11, đóng gói nó với mã suy luận đã cập nhật và tải nó lên một vùng chứa Amazon S3. Sổ tay sẽ hướng dẫn bạn tạo và triển khai một điểm cuối SageMaker cho mô hình YOLO11.
Bước 6: Kiểm tra việc triển khai của bạn
Bây giờ mô hình YOLO11 của bạn đã được triển khai, điều quan trọng là phải kiểm tra hiệu suất và chức năng của nó.
-
Mở Test Notebook: Trong cùng môi trường Jupyter, định vị và mở notebook 2_TestEndpoint.ipynb, cũng nằm trong thư mục sm-notebook.
-
Chạy Notebook kiểm thử: Làm theo hướng dẫn trong notebook để kiểm tra điểm cuối SageMaker đã triển khai. Việc này bao gồm gửi ảnh đến điểm cuối và chạy suy luận. Sau đó, bạn sẽ vẽ đồ thị đầu ra để trực quan hóa hiệu suất và độ chính xác của mô hình, như hình bên dưới.
- Dọn dẹp tài nguyên: Notebook thử nghiệm cũng sẽ hướng dẫn bạn quy trình dọn dẹp endpoint và mô hình được host. Đây là một bước quan trọng để quản lý chi phí và tài nguyên 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 đã triển khai ngay lập tức.
Bước 7: Giám sát và quản lý
Sau khi kiểm tra, 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ý Endpoint: Sử dụng bảng điều khiển SageMaker để quản lý endpoint liên tục. Điều này bao gồm việc điều chỉnh quy mô, cập nhật hoặc triển khai lại mô hình khi cần thiết.
Bằng cách hoàn thành các bước này, bạn sẽ triển khai và kiểm tra thành công mô hình YOLO11 trên Amazon SageMaker Endpoints. Quy trình này không chỉ trang bị cho bạn kinh nghiệm thực tế trong việc sử dụng các dịch vụ AWS để triển khai machine learning mà còn đặt nền tảng cho việc triển khai các mô hình nâng cao khác trong tương lai.
Tóm tắt
Hướng dẫn này đã hướng dẫn bạn từng bước triển khai YOLO11 trên Amazon SageMaker Endpoints bằng AWS CloudFormation và AWS Cloud Development Kit (CDK). Quá trình này bao gồm việc sao chép kho lưu trữ GitHub cần thiết, thiết lập môi trường CDK, triển khai mô hình bằng các dịch vụ AWS và kiểm tra hiệu suất của nó trên 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 AWS Machine Learning. Bạn cũng có thể xem Tài liệu Amazon SageMaker chính thức để 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.
Bạn có muốn tìm hiểu thêm về các tích hợp YOLO11 khác nhau không? Truy cập trang hướng dẫn tích hợp Ultralytics để khám phá các công cụ và khả năng bổ sung có thể nâng cao các dự án máy học của bạn.
Câu hỏi thường gặp
Làm cách nào để triển khai mô hình Ultralytics YOLO11 trên Amazon SageMaker Endpoints?
Để triển khai mô hình Ultralytics YOLO11 trên Amazon SageMaker Endpoints, hãy làm theo các bước sau:
- 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 định cấu hình. Cài đặt AWS CDK nếu chưa thực hiện (tham khảo hướng dẫn về AWS CDK).
- Sao chép Kho lưu trữ YOLO11 SageMaker:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
- Thiết lập môi trường CDK: Tạo một môi trường ảo python, kích hoạt nó, cài đặt các dependency (phụ thuộc) và nâng cấp thư viện AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib
- Triển khai bằng AWS CDK: Tổng hợp và triển khai CloudFormation stack, bootstrap môi trường.
cdk synth cdk bootstrap cdk deploy
Để biết thêm chi tiết, hãy xem lại phần tài liệu.
Những điều kiện tiên quyết để triển khai YOLO11 trên Amazon SageMaker là gì?
Để triển khai YOLO11 trên Amazon SageMaker, hãy đảm bảo bạn có các điều kiện tiên quyết sau:
- Tài khoản AWS: Tài khoản AWS đang hoạt động (đăng ký tại đây).
- IAM Roles: Các IAM role được định cấu hình với các quyền cho SageMaker, CloudFormation và Amazon S3.
- AWS CLI: Đã cài đặt và định cấu hình AWS Command Line Interface (hướng dẫn cài đặt AWS CLI).
- AWS CDK: Đã cài đặt AWS Cloud Development Kit (hướng dẫn thiết lập CDK).
- Hạn mức dịch vụ: Đủ hạn ngạch cho
ml.m5.4xlarge
instance cho cả việc sử dụng endpoint và notebook (yêu cầu tăng hạn mức).
Để biết thiết lập chi tiết, hãy tham khảo phần này.
Tại sao tôi nên sử dụng Ultralytics YOLO11 trên Amazon SageMaker?
Sử dụng Ultralytics YOLO11 trên Amazon SageMaker mang lại một số lợi thế:
- 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 điều chỉnh tỷ lệ, giúp đáp ứng nhu cầu suy luận theo thời gian thực.
- Tích hợp với các 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ễ dàng triển khai: Thiết lập đơn giản bằng cách sử dụng các script AWS CDK và quy trình triển khai được sắp xếp hợp lý.
- 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ả.
Tìm hiểu thêm về những lợi thế của việc sử dụng SageMaker trong phần giới thiệu.
Tôi có thể tùy chỉnh logic suy luận cho YOLO11 trên Amazon SageMaker không?
Có, bạn có thể tùy chỉnh logic suy luận cho YOLO11 trên Amazon SageMaker:
-
Sửa đổi
inference.py
: Xác định vị trí và tùy chỉnhoutput_fn
function tronginference.py
tập tin để điều chỉnh đị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 Jupyter notebook đượ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.
Làm thế nào để kiểm tra mô hình YOLO11 đã triển khai trên Amazon SageMaker?
Để kiểm tra mô hình YOLO11 đã triển khai trên Amazon SageMaker:
- Mở Test Notebook: Xác định vị trí
2_TestEndpoint.ipynb
notebook trong môi trường SageMaker Jupyter. - Chạy Notebook: Làm theo hướng dẫn của notebook để gửi hình ảnh đến endpoint, 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 để trực quan hóa các số liệu hiệu suất, chẳng hạn như các hộp giới hạn xung quanh các đối tượng được phát hiện.
Để có hướng dẫn kiểm tra toàn diện, hãy truy cập phần kiểm tra.