Hướng dẫn triển khai YOLO26 trên Amazon SageMaker Endpoints#
Triển khai các model computer vision 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, cần hiểu rõ quy trình thiết lập, cấu hình và triển khai. YOLO26 còn mạnh mẽ hơn khi 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ẽ từng bước chỉ cho bạn cách triển khai model YOLO26 PyTorch trên Amazon SageMaker Endpoints. Bạn sẽ tìm hiểu những kiến thức cơ bản về 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à dịch vụ machine learning của Amazon Web Services (AWS), giúp đơn giản hóa quy trình xây dựng, training và triển khai model machine learning. Dịch vụ này 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, tùy chọn training model ở quy mô lớn và phương thức đơn giản để triển khai model vào production. SageMaker hỗ trợ các framework machine learning phổ biến, mang lại sự 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òn bao gồm gán nhãn dữ liệu, quản lý quy trình làm việc 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ý để suy luận 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#
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 role đã cấu hình: Bạn sẽ 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 dùng để viết script triển khai. Làm theo hướng dẫn AWS CDK để cài đặt.
-
Hạn mức dịch vụ phù hợp: 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 hạn mức cho
ml.m5.4xlargeđể sử dụng endpoint và một hạn mức choml.m5.4xlargeđể sử dụng notebook instance. Mỗi tài nguyên cần tối thiểu một giá trị hạn mức. Nếu hạn mức hiện tại thấp hơn yêu cầu này, bạn cần yêu cầu tăng hạn mức cho từng tài nguyên. Bạn có thể yêu cầu tăng hạn mức 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: Sao chép repository YOLO26 SageMaker#
Bước tiếp theo là sao chép repository AWS cụ thể chứa các tài nguyên để 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 tệp cấu hình cần thiết.
-
Sao chép repository GitHub: Chạy lệnh sau trong terminal để sao chép repository host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Chuyển đến thư mục đã sao chép: Đổi thư mục hiện tại sang repository vừa sao chép:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Bước 3: Thiết lập môi trường CDK#
Sau khi có mã cần thiết, hãy thiết lập môi trường để triển khai bằng AWS CDK.
-
Tạo môi trường ảo Python: Việc này giúp tách biệt môi trường Python và các dependency. Chạy lệnh:
python3 -m venv .venv -
Kích hoạt môi trường ảo:
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 stack AWS CloudFormation#
-
Tổng hợp ứng dụng CDK: Tạo template AWS CloudFormation từ mã CDK của bạn:
cdk synth -
Bootstrap ứng dụng CDK: Chuẩn bị môi trường AWS để triển khai bằng CDK:
cdk bootstrap -
Triển khai stack: Thao tác này sẽ tạo các tài nguyên AWS cần thiết và triển khai model của bạn:
cdk deploy
Bước 5: Triển khai model YOLO#
Trước khi bắt đầu làm theo hướng dẫn triển khai, hãy xem danh sách model YOLO26 do Ultralytics cung cấp. Việc này sẽ giúp bạn chọn model phù hợp nhất với yêu cầu dự án.
Sau khi tạo stack AWS CloudFormation, bước tiếp theo là triển khai YOLO26.
-
Mở Notebook Instance: Truy cập AWS Console và mở 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. Mở notebook instance để truy cập môi trường Jupyter.
-
Truy cập và chỉnh sửa inference.py: Sau khi mở notebook instance SageMaker trong Jupyter, hãy tìm tệp inference.py. Chỉnh sửa hàm output_fn trong inference.py như minh họa bên dưới rồi lưu các thay đổi vào script, đồng thời đảm bảo không có lỗi cú pháp.
import json def output_fn(prediction_output, content_type): """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 mã inference đã cập nhật, rồi tải lên Amazon S3 bucket. 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 triển khai model YOLO26, việc kiểm thử hiệu năng và chức năng của model là rất quan trọng.
-
Mở notebook kiểm thử: Trong cùng môi trường Jupyter, hãy tìm 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 thử endpoint SageMaker đã triển khai. Quy trình này bao gồm gửi ảnh đến endpoint và chạy suy luận. Sau đó, bạn sẽ vẽ biểu đồ đầu ra để 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 tài nguyên: Notebook kiểm thử 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à tài nguyên hiệu quả, đặc biệt nếu bạn chưa có kế hoạch sử dụng model đã triển khai ngay.
Bước 7: Giám sát và quản lý#
Sau khi kiểm thử, việc giám sát và quản lý liên tục 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 console SageMaker để tiếp tục quản lý endpoint. Công việc này bao gồm mở rộng quy mô, cập nhật hoặc triển khai lại model khi cần.
Sau 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 model YOLO26 trên Amazon SageMaker Endpoints. Quy trình này không chỉ giúp bạn tích lũy kinh nghiệm thực tiễn khi sử dụng các dịch vụ AWS để triển khai machine learning mà còn tạo nền tảng để 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 đã chỉ dẫn 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 sao chép 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 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ề nhiều 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 nhau? 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à tính năng có thể nâng cao các dự án machine learning của bạn.
Câu hỏi thường gặp#
Để triển khai model Ultralytics YOLO26 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ó Tài khoản AWS, các IAM role với quyền cần thiết và AWS CLI đã được cấu hình. Cài đặt AWS CDK nếu bạn chưa thực hiện (tham khảo hướng dẫn AWS CDK).
- Sao chép SageMaker repository 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 môi trường ảo Python, kích hoạt môi trường, cài đặt các 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: Tổng hợp và triển khai CloudFormation stack, đồng thời bootstrap môi trường.
cdk synth cdk bootstrap cdk deploy
Để biết thêm chi tiết, hãy xem phần tài liệu.
Để triển khai YOLO26 trên Amazon SageMaker, hãy đảm bảo bạn đáp ứng 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 role: Các IAM role đã cấu hình với quyền truy cập SageMaker, CloudFormation và Amazon S3.
- AWS CLI: AWS Command Line Interface đã được cài đặt và cấu hình (hướng dẫn cài đặt AWS CLI).
- AWS CDK: AWS Cloud Development Kit đã được cài đặt (hướng dẫn thiết lập CDK).
- Hạn mức dịch vụ: Có đủ hạn mức cho các instance
ml.m5.4xlargeđể sử dụng cho cả endpoint và notebook (yêu cầu tăng hạn mức).
Để biết hướng dẫn thiết lập chi tiết, 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ư tự động mở rộng, hữu ích cho nhu cầu suy luận 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 để quản lý hạ tầng dưới dạng code và CloudWatch để giám sát.
- Triển khai dễ dàng: Đơn giản hóa quá trình thiết lập bằng các script AWS CDK và quy trình triển khai được tinh gọn.
- Hiệu năng: Tận dụng hạ tầng hiệu năng cao của Amazon SageMaker để chạy hiệu quả các tác vụ suy luận 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 suy luận của YOLO26 trên Amazon SageMaker:
-
Sửa đổi
inference.py: Tìm và tùy chỉnh hàmoutput_fntrong fileinference.pyđể điều chỉnh định dạng đầu ra.import json def output_fn(prediction_output, content_type): """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() # Thêm logic xử lý nếu cần 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ở notebook kiểm thử: 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 ả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ẽ tích hợp để trực quan hóa các chỉ số hiệu năng, chẳng hạn như bounding box quanh các đối tượng được phát hiện.
Để xem hướng dẫn kiểm thử đầy đủ, hãy truy cập phần kiểm thử.
- Mở notebook kiểm thử: Tìm notebook