Bỏ để qua phần nội dung

Hướng dẫn triển khai YOLOv8 trên Điểm cuối Amazon SageMaker

Triển khai các mô hình thị giác máy tính tiên tiến như Ultralytics' YOLOv8 trên Amazon SageMaker, Điểm cuối mở ra nhiều khả năng cho các ứng dụng machine learning khác nhau. Chìa khóa để sử dụng hiệu quả các mô hình này nằm ở việc hiểu quy trình thiết lập, cấu hình và triển khai của chúng. YOLOv8 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ụ machine learning mạnh mẽ và có quy mô linh hoạt của AWS.

Hướng dẫn này sẽ đưa bạn qua quá trình triển khai YOLOv8 PyTorch từng bước mô hình trên Điểm cuối Amazon SageMaker. Bạn sẽ tìm hiểu các yếu tố cần thiết để chuẩn bị môi trường AWS, cấu hình mô hình phù 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

Tổng quan về 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.

Triển khai YOLOv8 trên Điểm cuối Amazon SageMaker

Triển khai YOLOv8 trên Amazon SageMaker cho phép bạn sử dụng môi trường được quản lý để suy luận theo thời gian thực và tận dụng các tính năng như tự động thay đổi quy mô. Hãy xem kiến trúc AWS bên dưới.

Kiến trúc AWS

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 cho ml.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.

Bước 2: Sao chép YOLOv8 Kho lưu trữ SageMaker

Bước tiếp theo là sao chép kho AWS cụ thể có chứa các tài nguyên để triển khai YOLOv8 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 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:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Đ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:
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ộ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:
python3 -m venv .venv
  • Kích hoạt môi trường ảo:
source .venv/bin/activate
  • Cài đặt phụ thuộc: Cài đặt yêu cầu Python Sự phụ thuộc 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: Đ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:
cdk deploy

Bước 5: Triển khai YOLOv8 Mẫu

Trước khi đi sâu vào các hướng dẫn triển khai, hãy chắc chắn kiểm tra phạm vi của YOLOv8 Mô hình được cung cấp bởi Ultralytics. Điều này sẽ giúp bạn chọn mô hình phù hợp nhất cho yêu cầu dự án của bạn.

Sau khi tạo AWS CloudFormation Stack, bước tiếp theo là triển khai YOLOv8.

  • 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, content_type):
    """Formats model outputs as JSON string according to content_type, 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, mở sổ ghi chép 1_DeployEndpoint.ipynb nằm trong thư mục sm-notebook. Làm theo hướng dẫn trong sổ ghi chép và chạy các ô để tải xuống YOLOv8 lập mô hình, đóng gói mã suy luận cập nhật và tải lên vùng lưu trữ Amazon S3. Sổ ghi chép sẽ hướng dẫn bạn cách tạo và triển khai điểm cuối SageMaker cho YOLOv8 mẫu.

Bước 6: Kiểm tra triển khai của bạn

Bây giờ của bạn YOLOv8 Mô hình đượ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ộ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.

  • Chạy Sổ ghi chép Kiểm tra: Làm theo hướng dẫn trong sổ ghi chép để kiểm tra điểm cuối SageMaker đã triển khai. Điều này bao gồm gửi hình ảnh đến điểm cuối và chạy suy luận. Sau đó, bạn sẽ vẽ đầu ra để hình dung hiệu suất và độ chính xác của mô hình, như được hiển thị bên dưới.

Kết quả kiểm tra YOLOv8

  • 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.

Bằng cách hoàn thành các bước này, bạn sẽ triển khai và thử nghiệm thành công YOLOv8 mô hình trên Điểm cuối Amazon SageMaker. Quá 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 YOLOv8 trên Điểm cuối Amazon SageMaker sử dụng AWS CloudFormation và Bộ công cụ phát triển đám mây AWS (CDK). Quá trình này bao gồm 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 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.

Bạn có muốn tìm hiểu thêm về sự khác biệt YOLOv8 Tích hợp? Ghé thăm Ultralytics Trang Hướng dẫn tích hợp để khám phá các công cụ và chức năng bổ sung có thể nâng cao các dự án máy học của bạn.



Đã tạo 2024-01-04, Cập nhật 2024-05-03
Tác giả: Glenn-Jocher (3), Abirami-Vina (1)

Ý kiến