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):
    """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, 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.

FAQ

Làm cách nào để triển khai Ultralytics YOLOv8 mô hình trên Điểm cuối Amazon SageMaker?

Để triển khai Ultralytics YOLOv8 mô hình trên Điểm cuối Amazon SageMaker, hãy làm theo các bước sau:

  1. 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).
  2. Sao chép YOLOv8 Kho lưu trữ SageMaker:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. 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.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Triển khai bằng AWS CDK: Tổng hợp và deploy 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.

Điều kiện tiên quyết để triển khai là gì YOLOv8 trên Amazon SageMaker?

Triển khai YOLOv8 trên Amazon SageMaker, hãy đảm bảo bạn có các điều kiện tiên quyết sau:

  1. Tài khoản AWS: Tài khoản AWS đang hoạt động (đăng ký tại đây).
  2. Vai trò IAM: Vai trò IAM được định cấu hình với các quyền cho SageMaker, CloudFormation và Amazon S3.
  3. 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).
  4. 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).
  5. Đị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.

Tại sao tôi nên sử dụng Ultralytics YOLOv8 trên Amazon SageMaker?

Sử dụng Ultralytics YOLOv8 trên Amazon SageMaker cung cấp một số lợi thế:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Tôi có thể tùy chỉnh logic suy luận cho không YOLOv8 trên Amazon SageMaker?

Có, bạn có thể tùy chỉnh logic suy luận cho YOLOv8 trên Amazon SageMaker:

  1. Thay đổi inference.py: Định vị và tùy chỉnh output_fn hàm trong inference.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)
    
  2. 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.

Làm thế nào tôi có thể kiểm tra triển khai YOLOv8 mô hình trên Amazon SageMaker?

Để kiểm tra triển khai YOLOv8 mô hình trên Amazon SageMaker:

  1. 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.
  2. 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ả.
  3. 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.



Đã tạo 2024-01-04, Cập nhật 2024-07-05
Tác giả: Glenn-Jocher (7), bạch tuộc tham vọng (1), sergiuwaxmann (1), abirami-vina (1)

Ý kiến