Bỏ qua nội dung

Hướng dẫn triển khai YOLO11 trên Amazon SageMaker Endpoints

Triển khai các mô hình thị giác máy tính tiên tiến như Ultralytics ' YOLO11 trên Amazon SageMaker Endpoints mở ra nhiều khả năng cho nhiều ứng dụng học máy 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 các 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 qua quy trình triển khai YOLO11 Mô hình PyTorch trên Amazon SageMaker Endpoints từng bước. Bạn sẽ học những điều 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à một dịch vụ học máy từ Amazon Web Services (AWS) giúp đơn giản hóa quy trình xây dựng, đào tạo và triển khai các mô hình học máy. Nó cung cấp nhiều công cụ để xử lý nhiều khía cạnh khác nhau của quy trình làm việc học má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 để đào tạo 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 khuôn khổ học máy phổ biến, cung cấp 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 nó cũng 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 suất.

Triển khai YOLO11 trên Amazon SageMaker Endpoints

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.

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ó tài khoản, hãy đăng ký tài khoản AWS.

  • Cấu hình vai trò IAM: 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 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à cấu hình nó 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ài đặt, hãy cài đặt AWS Cloud Development Kit (CDK), sẽ được sử dụng để lập trình kịch bản triển khai. Làm theo hướng dẫn AWS CDK để cài đặt.

  • Hạn ngạch 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 cho việc sử dụng điểm cuối và một cái khác cho ml.m5.4xlarge để sử dụng cho trường hợp máy tính xách tay. Mỗi trường hợp 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 hạn ngạch cho từng trường hợp. 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 YOLO11 Kho lưu trữ SageMaker

Bước tiếp theo là sao chép kho lưu trữ AWS cụ thể có 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 hiện lệnh sau trong thiết bị đầu cuối của bạn để sao chép máy chủ yolov8 -kho lưu trữ trên 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 thành 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 để triển khai với AWS CDK.

  • Tạo một Python Môi trường ảo: Điều này cô lập bạn Python môi trường và các 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 các phụ thuộc cần thiết 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 ngăn xếp AWS CloudFormation

  • 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 Stack: 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 YOLO Người mẫu

Trước khi tìm hiểu hướng dẫn triển khai, hãy đảm bảo kiểm tra phạm vi 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 yêu cầu dự án của mình.

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

  • Mở Notebook Instance: Đi đến 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 tập lệnh 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 sổ tay SageMaker trong Jupyter, hãy định vị tệp inference.py. Chỉnh sửa hàm output_fn trong inference.py như hiển thị bên dưới và lưu các thay đổi của bạn vào tập lệnh, đả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, hãy 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 YOLO11 mô hình, đóng gói nó với mã suy luận đã cập nhật và tải nó lên thùng Amazon S3. Sổ tay sẽ hướng dẫn bạn tạo và triển khai điểm cuối SageMaker cho YOLO11 người mẫu.

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

Bây giờ của bạn YOLO11 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ở Sổ ghi chép thử nghiệm: Trong cùng môi trường Jupyter, hãy định vị và mở sổ ghi chép 2_TestEndpoint.ipynb, cũng nằm trong thư mục sm-notebook.

  • Chạy Sổ tay thử nghiệm: Thực hiện theo hướng dẫn trong sổ tay để thử nghiệm đ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ẽ biểu đồ đầu ra để trực quan hóa 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ả thử nghiệm YOLO11

  • Tài nguyên dọn dẹp: Sổ tay kiểm tra cũng sẽ hướng dẫn bạn quy trình dọn dẹp điểm cuối và mô hình được lưu trữ. Đây là bước quan trọng để quản lý chi phí và tài nguyên hiệu quả, đặc biệt là 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 thử nghiệm, việc theo dõi và quản lý liên tục mô hình đã triển khai là điều cần thiết.

  • Giám sát bằng Amazon CloudWatch: Kiểm tra thường xuyên 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ý liên tục điểm cuối. Bao gồm mở rộng 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à thử nghiệm thành công YOLO11 mô hình 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 dịch vụ AWS để triển khai máy học mà còn đặt nền tảng cho việc triển khai các mô hình tiên tiến khác trong tương lai.

Bản 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). Quy trình 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 mô hình 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 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ề các loại khác nhau không? YOLO11 tích hợp? 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 học máy của bạn.

CÂU HỎI THƯỜNG GẶP

Làm thế nào để tôi triển khai Ultralytics YOLO11 mô hình trên Amazon SageMaker Endpoints?

Để triển khai Ultralytics YOLO11 mô hình trên Amazon SageMaker Endpoints, 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 thực hiện (tham khảo hướng dẫn AWS CDK ).
  2. Sao chép YOLO11 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 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à triển khai ngăn xếp CloudFormation, khởi động 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 .

Những điều kiện tiên quyết để triển khai là gì? YOLO11 trên Amazon SageMaker?

Để 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:

  1. Tài khoản AWS : Tài khoản AWS đang hoạt động ( đăng ký tại đây ).
  2. Vai trò IAM : Cấu hình vai trò IAM với quyền cho SageMaker, CloudFormation và Amazon S3.
  3. AWS CLI : Giao diện dòng lệnh AWS đã cài đặt và cấu hình ( hướng dẫn cài đặt AWS CLI ).
  4. AWS CDK : Đã cài đặt AWS Cloud Development Kit ( hướng dẫn thiết lập CDK ).
  5. Hạn ngạch dịch vụ: Đủ hạn ngạch cho ml.m5.4xlarge các trường hợp sử dụng cho cả điểm cuối và máy tính xách tay (yêu cầu tăng hạn ngạch).

Để biết cách 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 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 mở rộng, 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 để xây dựng 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à quy trình triển khai hợp lý.
  4. Hiệu suất : Tận dụng cơ sở hạ tầng hiệu suất 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 ích khi 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?

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

  1. Biến đổi inference.py: Xác định vị trí và tùy chỉnh output_fn chức năng trong inference.py tập tin để tùy 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)
    
  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 cách sử dụ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 việc triển khai YOLO11 mô hình trên Amazon SageMaker?

Để kiểm tra việc triển khai YOLO11 mô hình trên Amazon SageMaker:

  1. Mở Sổ tay kiểm tra: Xác định vị trí 2_TestEndpoint.ipynb sổ ghi chép trong môi trường SageMaker Jupyter.
  2. Chạy Notebook : Làm theo hướng dẫn của notebook để 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 chức năng vẽ đồ thị tích hợp để trực quan hóa số liệu hiệu suất, chẳng hạn như hộp giới hạn 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 kiểm tra .

📅 Được tạo cách đây 11 tháng ✏️ Đã cập nhật cách đây 2 tháng

Bình luận