Hướng dẫn triển khai YOLO26 trên Amazon SageMaker Endpoints#
Việc triển khai các model thị giác máy tính tiên tiến như YOLO26 của Ultralytics trên Amazon SageMaker Endpoints mở ra nhiều khả năng cho các ứng dụng machine learning khác nhau. Để sử dụng hiệu quả các model này, điều cốt yếu là hiểu rõ quy trình thiết lập, cấu hình và triển khai. YOLO26 càng mạnh mẽ hơn khi được tích hợp liền mạch với Amazon SageMaker, một dịch vụ machine learning mạnh mẽ và có khả năng mở rộng của AWS.
Hướng dẫn này sẽ trình bày từng bước quy trình triển khai các model PyTorch YOLO26 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, cấu hình model phù hợp và sử dụng các công cụ như AWS CloudFormation và Bộ công cụ phát triển đám mây AWS (CDK) để triển khai.
Amazon SageMaker#
Amazon SageMaker là một dịch vụ machine learning của Dịch vụ web Amazon (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 model machine learning. Dịch vụ cung cấp nhiều công cụ để xử lý các khía cạnh khác nhau của quy trình machine learning. Các công cụ này bao gồm tính năng tự động tinh chỉnh model, các tùy chọn huấn luyện model ở quy mô lớn và các phương thức đơn giản để triển khai model vào môi trường production. SageMaker hỗ trợ các framework machine learning phổ biến, mang lại tính linh hoạt cần thiết cho nhiều dự án khác nhau. Các tính năng của dịch vụ cũng bao gồm gán nhãn dữ liệu, quản lý workflow và phân tích hiệu năng.
Triển khai YOLO26 trên Amazon SageMaker Endpoints#
Triển khai YOLO26 trên Amazon SageMaker cho phép bạn sử dụng môi trường được quản lý để thực hiện inference theo thời gian thực và tận dụng các tính năng như autoscaling. Hãy xem kiến trúc AWS bên dưới.
Bước 1: Thiết lập môi trường AWS#
Trước tiên, hãy đảm bảo bạn đã chuẩn bị các điều kiện tiên quyết sau:
-
Tài khoản AWS: Nếu chưa có, hãy đăng ký tài khoản AWS.
-
IAM Roles đã cấu hình: Bạn cần một IAM role có các quyền cần thiết cho Amazon SageMaker, AWS CloudFormation và Amazon S3. Role này cần có các policy cho phép truy cập những dịch vụ đó.
-
AWS CLI: Nếu chưa được cài đặt, hãy tải xuống và cài đặt Giao diện dòng lệnh AWS (CLI), sau đó cấu hình bằng thông tin tài khoản của bạn. Làm theo hướng dẫn AWS CLI để cài đặt.
-
AWS CDK: Nếu chưa được cài đặt, hãy cài đặt Bộ công cụ phát triển đám mây AWS (CDK), được sử dụng để viết script triển khai. Làm theo hướng dẫn AWS CDK để cài đặt.
-
Service Quota phù hợp: Xác nhận rằng bạn có đủ quota cho hai resource riêng biệt trong Amazon SageMaker: một resource cho
ml.m5.4xlargeđể sử dụng endpoint và một resource khác choml.m5.4xlargeđể sử dụng notebook instance. Mỗi resource này yêu cầu tối thiểu một giá trị quota. Nếu quota hiện tại thấp hơn yêu cầu này, bạn cần yêu cầu tăng quota cho từng resource. Bạn có thể yêu cầu tăng quota bằng cách làm theo hướng dẫn chi tiết trong tài liệu AWS Service Quotas.
Bước 2: Clone repository SageMaker của YOLO26#
Bước tiếp theo là clone repository AWS cụ thể chứa các resource để triển khai YOLO26 trên SageMaker. Repository này được lưu trữ trên GitHub và bao gồm các script CDK cùng các file cấu hình cần thiết.
-
Clone GitHub Repository: Thực thi lệnh sau trong terminal để clone repository host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Di chuyển đến thư mục đã clone: Chuyển thư mục hiện tại sang repository đã clone:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Bước 3: Thiết lập môi trường CDK#
Sau khi đã có code cần thiết, hãy thiết lập môi trường để triển khai bằng AWS CDK.
-
Tạo Python Virtual Environment: Việc này cô lập môi trường Python và các dependency của bạn. Chạy:
python3 -m venv .venv -
Kích hoạt Virtual Environment:
source .venv/bin/activate -
Cài đặt Dependency: Cài đặt các dependency Python 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#
-
Synthesize ứng dụng CDK: Tạo template AWS CloudFormation từ code CDK của bạn:
cdk synth -
Bootstrap ứng dụng CDK: Chuẩn bị môi trường AWS cho việc triển khai CDK:
cdk bootstrap -
Triển khai Stack: Thao tác này sẽ tạo các resource AWS cần thiết và triển khai model của bạn:
cdk deploy
Bước 5: Triển khai YOLO Model#
Trước khi bắt đầu hướng dẫn triển khai, hãy xem qua các model YOLO26 do Ultralytics cung cấp. Điều này sẽ giúp bạn chọn model phù hợp nhất với yêu cầu của dự án.
Sau khi tạo AWS CloudFormation Stack, bước tiếp theo là triển khai YOLO26.
-
Mở Notebook Instance: Truy cập AWS Console và đi đến dịch vụ Amazon SageMaker. Chọn "Notebook Instances" trên dashboard, sau đó tìm 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à chỉnh sửa inference.py: Sau khi mở SageMaker notebook instance trong Jupyter, tìm file inference.py. Chỉnh sửa function output_fn trong inference.py như minh họa bên dưới 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 Endpoint bằng 1_DeployEndpoint.ipynb: Trong môi trường Jupyter, mở notebook 1_DeployEndpoint.ipynb nằm trong thư mục sm-notebook. Làm theo hướng dẫn trong notebook và chạy các cell để tải model YOLO26, đóng gói model cùng code inference đã cập nhật rồi upload lên bucket Amazon S3. Notebook sẽ hướng dẫn bạn tạo và triển khai endpoint SageMaker cho model YOLO26.
Bước 6: Kiểm thử quá trình triển khai#
Sau khi model YOLO26 được triển khai, việc kiểm thử hiệu năng và chức năng của model là rất quan trọng.
-
Mở Test Notebook: Trong cùng môi trường Jupyter, tìm và mở notebook 2_TestEndpoint.ipynb, cũng nằm trong thư mục sm-notebook.
-
Chạy Test Notebook: Làm theo hướng dẫn trong notebook để kiểm thử endpoint SageMaker đã triển khai. Thao tác này bao gồm gửi một hình ảnh đến endpoint và chạy inference. Sau đó, bạn sẽ vẽ output để trực quan hóa hiệu năng và độ chính xác của model như minh họa bên dưới.
- Dọn dẹp Resource: Test notebook cũng sẽ hướng dẫn bạn dọn dẹp endpoint và model được host. Đây là bước quan trọng để quản lý chi phí và resource hiệu quả, đặc biệt nếu bạn chưa có kế hoạch sử dụng model đã triển khai ngay lập tức.
Bước 7: Giám sát và quản lý#
Sau khi kiểm thử, việc liên tục giám sát và quản lý model đã triển khai là điều cần thiết.
-
Giám sát bằng Amazon CloudWatch: Thường xuyên kiểm tra hiệu năng và tình trạng của endpoint SageMaker bằng Amazon CloudWatch.
-
Quản lý Endpoint: Sử dụng SageMaker console để quản lý endpoint liên tục. Việc này bao gồm scaling, cập nhật hoặc triển khai lại model khi cần.
Khi hoàn thành các bước này, bạn sẽ triển khai và kiểm thử thành công một model YOLO26 trên Amazon SageMaker Endpoints. Quy trình này không chỉ mang lại 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ạo nền tảng cho việc triển khai các model tiên tiến khác trong tương lai.
Tóm tắt#
Hướng dẫn này đã trình bày từng bước cách triển khai YOLO26 trên Amazon SageMaker Endpoints bằng AWS CloudFormation và Bộ công cụ phát triển đám mây AWS (CDK). Quy trình bao gồm clone GitHub repository cần thiết, thiết lập môi trường CDK, triển khai model bằng các dịch vụ AWS và kiểm thử hiệu năng của model 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 AWS Machine Learning Blog. Bạn cũng có thể xem Tài liệu Amazon SageMaker chính thức để tìm hiểu thêm về các tính năng và chức năng khác nhau.
Bạn muốn tìm hiểu thêm về các tích hợp YOLO26 khác? Hãy truy cập trang hướng dẫn tích hợp của Ultralytics để khám phá thêm các công cụ và khả năng có thể nâng cao dự án machine learning của bạn.
FAQ#
Để triển khai model YOLO26 của Ultralytics trên Amazon SageMaker Endpoints, hãy làm theo các bước sau:
- Thiết lập môi trường AWS: Đảm bảo bạn có AWS Account, IAM role với các quyền cần thiết và AWS CLI đã được cấu hình. Cài đặt AWS CDK nếu chưa thực hiện (tham khảo hướng dẫn AWS CDK).
- Clone repository SageMaker của YOLO26:
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 Python virtual environment, kích hoạt environment, cài đặt dependency 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: Synthesize và triển khai CloudFormation stack, đồng thời bootstrap environment.
cdk synth cdk bootstrap cdk deploy
Để biết thêm chi tiết, hãy xem lại phần tài liệu.
Để triển khai YOLO26 trên Amazon SageMaker, hãy đảm bảo bạn có các điều kiện tiên quyết sau:
- AWS Account: Tài khoản AWS đang hoạt động (đăng ký tại đây).
- IAM Roles: IAM role đã cấu hình với quyền cho SageMaker, CloudFormation và Amazon S3.
- AWS CLI: Giao diện dòng lệnh AWS đã được cài đặt và cấu hình (hướng dẫn cài đặt AWS CLI).
- AWS CDK: Bộ công cụ phát triển đám mây AWS đã được cài đặt (hướng dẫn thiết lập CDK).
- Service Quotas: Đủ quota cho các instance
ml.m5.4xlargecho cả mục đích sử dụng endpoint và notebook (yêu cầu tăng quota).
Để biết chi tiết về thiết lập, hãy tham khảo phần này.
Sử dụng Ultralytics YOLO26 trên Amazon SageMaker mang lại một số lợi ích:
- Khả năng mở rộng và quản lý: SageMaker cung cấp môi trường được quản lý với các tính năng như autoscaling, hỗ trợ nhu cầu inference 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 infrastructure as code và CloudWatch để giám sát.
- Dễ triển khai: Đơn giản hóa thiết lập bằng các script AWS CDK và quy trình triển khai tinh gọn.
- Hiệu năng: Tận dụng infrastructure hiệu năng cao của Amazon SageMaker để chạy hiệu quả các tác vụ inference quy mô lớn.
Tìm hiểu thêm về những lợi ích của SageMaker trong phần giới thiệu.
Có, bạn có thể tùy chỉnh logic inference cho YOLO26 trên Amazon SageMaker:
-
Chỉnh sửa
inference.py: Tìm và tùy chỉnh functionoutput_fntrong fileinference.pyđể điều chỉnh các format output.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 model đã cập nhật: Đảm bảo bạn triển khai lại model bằng các Jupyter notebook được cung cấp (
1_DeployEndpoint.ipynb) để áp dụng những thay đổi này.
Tham khảo các bước chi tiết để triển khai model đã sửa đổi.
-
Để kiểm thử model YOLO26 đã triển khai trên Amazon SageMaker:
- Mở Test Notebook: Tìm notebook
2_TestEndpoint.ipynbtrong môi trường SageMaker Jupyter. - Chạy Notebook: Làm theo hướng dẫn trong notebook để gửi một hình ảnh đến endpoint, thực hiện inference 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ẽ tích hợp để trực quan hóa các metric hiệu năng, chẳng hạn như bounding box xung quanh các object được phát hiện.
Để biết hướng dẫn kiểm thử đầy đủ, hãy truy cập phần kiểm thử.
- Mở Test Notebook: Tìm notebook