Meet YOLO26: next-gen vision AI.

Link to this sectionHướng dẫn triển khai YOLO26 trên Amazon SageMaker Endpoints#

Việc triển khai các model computer vision tiên tiến như Ultralytics' YOLO26 trên Amazon SageMaker Endpoints mở ra vô vàn khả năng cho nhiều ứng dụng machine learning khác nhau. Chìa khóa để sử dụng hiệu quả các model này nằm ở việc nắm vững các quy trình thiết lập, cấu hình và triển khai. YOLO26 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ó khả năng mở rộng từ AWS.

Hướng dẫn này sẽ dẫn dắt bạn qua quy trình triển khai các model PyTorch YOLO26 trên Amazon SageMaker Endpoints từng bước một. Bạn sẽ học được những điều cốt yếu về việc 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à AWS Cloud Development Kit (CDK) để triển khai.

Link to this sectionAmazon SageMaker#

Amazon SageMaker ML platform architecture

Amazon SageMaker là dịch vụ machine learning từ Amazon Web Services (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ụ này cung cấp một loạt các công cụ để xử lý nhiều khía cạnh khác nhau trong các luồng công việc machine learning. Điều này bao gồm các tính năng tự động hóa để điều chỉnh model, các tùy chọn huấn luyện model ở quy mô lớn và các phương pháp đơ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 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 dán nhãn dữ liệu, quản lý luồng công việc và phân tích hiệu năng.

Link to this sectionTriển khai YOLO26 trên Amazon SageMaker Endpoints#

Triển khai YOLO26 trên Amazon SageMaker cho phép bạn tận dụng môi trường được quản lý của nó cho việc suy luận (inference) thời gian thực và hưởng lợi từ các tính năng như tự động mở rộng (autoscaling). Hãy xem kiến trúc AWS dưới đây.

AWS SageMaker YOLO training architecture

Link to this sectionBướ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 đã đáp ứng các yêu cầu tiên quyết sau:

  • Tài khoản AWS: Nếu bạn chưa có, hãy đăng ký một tài khoản AWS.

  • Vai trò IAM đã được cấu hình: Bạn sẽ cần một vai trò IAM với các quyền cần thiết cho Amazon SageMaker, AWS CloudFormation và Amazon S3. Vai trò này cần có các chính sách cho phép truy cập vào những dịch vụ này.

  • AWS CLI: Nếu chưa cài đặt, hãy tải xuống và cài đặt AWS Command Line Interface (CLI) và cấu hình nó với thông tin tài khoản của bạn. Thực hiện theo hướng dẫn cài đặt AWS CLI.

  • AWS CDK: Nếu chưa cài đặt, hãy cài đặt AWS Cloud Development Kit (CDK), công cụ sẽ được sử dụng để viết kịch bản cho quá trình triển khai. Thực hiện theo hướng dẫn cài đặt AWS CDK.

  • Hạn mức dịch vụ đầy đủ: Xác nhận rằng bạn có đủ hạn mức (quota) cho hai tài nguyên riêng biệt trong Amazon SageMaker: một cho ml.m5.4xlarge để sử dụng endpoint và một cho ml.m5.4xlarge để sử dụng notebook instance. Mỗi loại cần tối thiểu một giá trị hạn mức. Nếu hạn mức 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 thêm cho mỗi loại. Bạn có thể yêu cầu tăng hạn mức bằng cách làm theo các hướng dẫn chi tiết trong tài liệu AWS Service Quotas.

Link to this sectionBước 2: Sao chép (clone) kho lưu trữ YOLO26 SageMaker#

Bước tiếp theo là sao chép kho lưu trữ AWS cụ thể chứa các tài nguyên để triển khai YOLO26 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 cần thiết và các tệp cấu hình.

  • Sao chép kho lưu trữ GitHub: Thực thi lệnh sau trong terminal của bạn để sao chép kho lưu trữ 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 đã sao chép: Chuyển thư mục làm việc của bạn vào kho lưu trữ vừa sao chép:

    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Link to this sectionBướ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 bằng AWS CDK.

  • Tạo môi trường ảo Python: Điều này giúp cách ly môi trường và các thư viện phụ thuộc Python của bạn. Chạy:

    python3 -m venv .venv
  • Kích hoạt môi trường ảo:

    source .venv/bin/activate
  • Cài đặt các thư viện phụ thuộc: Cài đặt các thư viện phụ thuộc Python bắt buộ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

Link to this sectionBước 4: Tạo AWS CloudFormation Stack#

  • Tổng hợp (synthesize) ứng dụng CDK: Tạo mẫu AWS CloudFormation từ mã 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: Điều này sẽ tạo ra các tài nguyên AWS cần thiết và triển khai model của bạn:

    cdk deploy

Link to this sectionBước 5: Triển khai YOLO Model#

Trước khi đi sâu vào hướng dẫn triển khai, hãy đảm bảo 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 cho các 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 YOLO26.

  • Mở Notebook Instance: Truy cập 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 đó tìm 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ở 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ư hình dưới đây và lưu các thay đổi 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 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 các hướng dẫn trong notebook và chạy các cell để tải xuống model YOLO26, đóng gói nó với mã suy luận (inference code) đã cập nhật và tải nó lên một bucket Amazon S3. Notebook sẽ hướng dẫn bạn tạo và triển khai một SageMaker endpoint cho model YOLO26.

Link to this sectionBước 6: Kiểm thử việc triển khai của bạn#

Bây giờ model YOLO26 của bạn đã được triển khai, điều quan trọng là phải kiểm tra hiệu năng và chức năng của nó.

  • Mở Notebook Kiểm thử: 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 Notebook Kiểm thử: Làm theo các hướng dẫn trong notebook để kiểm tra SageMaker endpoint đã triển khai. Điều này bao gồm việc gửi một hình ảnh đến endpoint và chạy các suy luận (inferences). 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ư hình dưới đây.

Testing Results YOLO26

  • Dọn dẹp tài nguyên: Notebook kiểm thử cũng sẽ hướng dẫn bạn quy trình dọn dẹp endpoint và model đã lưu trữ. Đây là một 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 không có kế hoạch sử dụng model đã triển khai ngay lập tức.

Link to this sectionBước 7: Giám sát và quản lý#

Sau khi kiểm tra, việc giám sát và quản lý liên tục model đã triển khai của bạn là rất cần thiết.

  • Giám sát với Amazon CloudWatch: Thường xuyên kiểm tra hiệu năng và tình trạng của SageMaker endpoint bằng Amazon CloudWatch.

  • Quản lý Endpoint: Sử dụng SageMaker console để quản lý endpoint liên tục. Điều này bao gồm mở rộng (scaling), cập nhật hoặc triển khai lại model khi cần.

Bằng cách 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ỉ trang bị cho bạn kinh nghiệm thực tế trong việc sử dụng các dịch vụ AWS cho việc triển khai machine learning mà còn đặt nền tảng cho việc triển khai các model tiên tiến khác trong tương lai.

Link to this sectionTóm tắt#

Hướng dẫn này đã đưa bạn qua từng bước để triển khai YOLO26 trên Amazon SageMaker Endpoints bằng cách sử dụng AWS CloudFormation và AWS Cloud Development Kit (CDK). Quy trình bao gồm việc sao chép kho lưu trữ GitHub 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 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 AWS Machine Learning. Bạn cũng có thể xem Tài liệu chính thức về Amazon SageMaker để có 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 tích hợp YOLO26 khác nhau không? Hãy truy cập trang hướng dẫn tích hợp Ultralytics để khám phá thêm các công cụ và khả năng có thể nâng cao các dự án machine learning của bạn.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm thế nào để triển khai model Ultralytics YOLO26 trên Amazon SageMaker Endpoints?#

Để triển khai model Ultralytics YOLO26 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, các vai trò IAM với quyền cần thiết và đã cấu hình AWS CLI. 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 kho lưu trữ YOLO26 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ôi trường ảo Python, kích hoạt nó, cài đặt các thư việ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 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.

Link to this sectionCác yêu cầu tiên quyết để triển khai YOLO26 trên Amazon SageMaker là gì?#

Để triển khai YOLO26 trên Amazon SageMaker, hãy đảm bảo bạn đáp ứng các yêu cầu 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ác vai trò IAM đã cấu hình với quyền cho SageMaker, CloudFormation và Amazon S3.
  3. AWS CLI: Đã cài đặt và cấu hình AWS Command Line Interface (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 mức dịch vụ: Đủ hạn mức cho các instance ml.m5.4xlarge cho cả việc sử dụng endpoint và notebook (yêu cầu tăng hạn mức).

Để thiết lập chi tiết, hãy tham khảo phần này.

Link to this sectionTại sao tôi nên sử dụng Ultralytics YOLO26 trên Amazon SageMaker?#

Sử dụng Ultralytics YOLO26 trên Amazon SageMaker mang lại một số ưu điểm:

  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 ích cho các nhu cầu suy luận thời gian thực.
  2. 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 cơ sở hạ tầng dưới dạng mã (IaC) và CloudWatch để giám sát.
  3. Dễ dàng triển khai: Thiết lập đơn giản bằng cách sử dụng các tập lệnh AWS CDK và quy trình triển khai được tối ưu 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ề các ưu điểm của việc sử dụng SageMaker trong phần giới thiệu.

Link to this sectionTôi có thể tùy chỉnh logic suy luận cho YOLO26 trên Amazon SageMaker không?#

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

  1. Sửa đổi inference.py: Tìm và tùy chỉnh hàm output_fn trong tệp inference.py để điều 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 model đã cập nhật: Đảm bảo bạn triển khai lại model bằng các Jupyter notebook đã cung cấp (1_DeployEndpoint.ipynb) để bao gồm các thay đổi này.

Tham khảo các bước chi tiết để triển khai model đã sửa đổi.

Link to this sectionLàm thế nào tôi có thể kiểm tra model YOLO26 đã triển khai trên Amazon SageMaker?#

Để kiểm tra model YOLO26 đã triển khai trên Amazon SageMaker:

  1. Mở Notebook Kiểm thử: Tìm notebook 2_TestEndpoint.ipynb trong môi trường SageMaker Jupyter.
  2. Chạy Notebook: Thực hiện theo hướng dẫn trong notebook để gửi một hình ảnh đến endpoint, 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 tính năng vẽ biểu đồ tích hợp để trực quan hóa các chỉ số hiệu năng, chẳng hạn như hộp bao quanh (bounding boxes) 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.

Bình luận