Amazon SageMaker 엔드포인트에 YOLO26을 배포하는 방법 가이드

Deploying advanced computer vision models like Ultralytics' YOLO26 on Amazon SageMaker Endpoints opens up a wide range of possibilities for various machine learning applications. The key to effectively using these models lies in understanding their setup, configuration, and deployment processes. YOLO26 becomes even more powerful when integrated seamlessly with Amazon SageMaker, a robust and scalable machine learning service by AWS.

이 가이드에서는 YOLO26 PyTorch 모델을 Amazon SageMaker 엔드포인트에 단계별로 배포하는 과정을 안내합니다. AWS 환경 준비, 모델 적절한 구성, 배포를 위한 AWS CloudFormation 및 AWS Cloud Development Kit (CDK)와 같은 도구 사용의 핵심 사항을 배우게 됩니다.

Amazon SageMaker

Amazon SageMaker ML platform architecture

Amazon SageMaker는 머신 러닝 모델을 구축, 학습 및 배포하는 프로세스를 단순화하는 Amazon Web Services (AWS)의 머신 러닝 서비스입니다. 머신 러닝 워크플로의 다양한 측면을 처리하기 위한 광범위한 도구를 제공합니다. 여기에는 모델 튜닝을 위한 자동화된 기능, 대규모 모델 학습을 위한 옵션, 모델을 프로덕션 환경에 배포하기 위한 간편한 방법이 포함됩니다. SageMaker는 널리 사용되는 머신 러닝 프레임워크를 지원하여 다양한 프로젝트에 필요한 유연성을 제공합니다. 또한 데이터 라벨링, 워크플로 관리 및 성능 분석 기능도 포함되어 있습니다.

Amazon SageMaker 엔드포인트에 YOLO26 배포하기

Amazon SageMaker에 YOLO26을 배포하면 관리형 환경을 사용하여 실시간 추론을 수행하고 오토스케일링(autoscaling)과 같은 기능을 활용할 수 있습니다. 아래의 AWS 아키텍처를 확인하십시오.

AWS SageMaker YOLO training architecture

1단계: AWS 환경 설정

먼저, 다음의 사전 요구 사항이 준비되어 있는지 확인하십시오:

  • AWS 계정: 계정이 없다면 AWS 계정을 생성하십시오.

  • 구성된 IAM 역할: Amazon SageMaker, AWS CloudFormation 및 Amazon S3에 대한 필수 권한을 갖춘 IAM 역할이 필요합니다. 이 역할은 해당 서비스에 액세스할 수 있는 정책을 포함해야 합니다.

  • AWS CLI: 설치되어 있지 않은 경우, AWS Command Line Interface (CLI)를 다운로드하여 설치하고 계정 정보로 구성하십시오. 설치하려면 AWS CLI 지침을 따르십시오.

  • AWS CDK: 설치되어 있지 않은 경우, 배포 스크립팅에 사용할 AWS Cloud Development Kit (CDK)를 설치하십시오. 설치하려면 AWS CDK 지침을 따르십시오.

  • 적절한 서비스 할당량: Amazon SageMaker에서 엔드포인트 사용을 위한 ml.m5.4xlarge와 노트북 인스턴스 사용을 위한 ml.m5.4xlarge라는 두 가지 별도 리소스에 대해 충분한 할당량이 있는지 확인하십시오. 각각 최소 1개의 할당량 값이 필요합니다. 현재 할당량이 이 요구 사항 미만인 경우, 각각에 대해 증가를 요청하는 것이 중요합니다. 할당량 증가는 AWS Service Quotas 문서의 자세한 지침에 따라 요청할 수 있습니다.

2단계: YOLO26 SageMaker 리포지토리 클론

다음 단계는 SageMaker에 YOLO26을 배포하기 위한 리소스가 포함된 특정 AWS 리포지토리를 클론하는 것입니다. GitHub에 호스팅된 이 리포지토리에는 필요한 CDK 스크립트와 구성 파일이 포함되어 있습니다.

  • GitHub 리포지토리 클론: 터미널에서 다음 명령을 실행하여 host-yolov8-on-sagemaker-endpoint 리포지토리를 클론합니다:

    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • 클론된 디렉토리로 이동: 클론된 리포지토리로 디렉토리를 변경합니다:

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

3단계: CDK 환경 설정

이제 필요한 코드가 준비되었으므로 AWS CDK를 사용하여 배포할 수 있도록 환경을 설정하십시오.

  • Python 가상 환경 생성: 이는 Python 환경과 종속성을 격리합니다. 다음을 실행하십시오:

    python3 -m venv .venv
  • 가상 환경 활성화:

    source .venv/bin/activate
  • 종속성 설치: 프로젝트에 필요한 Python 종속성을 설치하십시오:

    pip3 install -r requirements.txt
  • AWS CDK 라이브러리 업그레이드: 최신 버전의 AWS CDK 라이브러리를 보유하고 있는지 확인하십시오:

    pip install --upgrade aws-cdk-lib

4단계: AWS CloudFormation 스택 생성

  • CDK 애플리케이션 합성: CDK 코드에서 AWS CloudFormation 템플릿을 생성합니다:

    cdk synth
  • CDK 애플리케이션 부트스트랩: CDK 배포를 위해 AWS 환경을 준비합니다:

    cdk bootstrap
  • 스택 배포: 필요한 AWS 리소스를 생성하고 모델을 배포합니다:

    cdk deploy

5단계: YOLO 모델 배포

배포 지침을 시작하기 전에 Ultralytics에서 제공하는 다양한 YOLO26 모델을 확인하십시오. 이는 프로젝트 요구 사항에 가장 적합한 모델을 선택하는 데 도움이 됩니다.

AWS CloudFormation 스택을 생성한 후, 다음 단계는 YOLO26을 배포하는 것입니다.

  • 노트북 인스턴스 열기: AWS 콘솔로 이동하여 Amazon SageMaker 서비스로 이동하십시오. 대시보드에서 "Notebook Instances"를 선택한 다음, CDK 배포 스크립트에 의해 생성된 노트북 인스턴스를 찾으십시오. 노트북 인스턴스를 열어 Jupyter 환경에 액세스하십시오.

  • inference.py 액세스 및 수정: Jupyter에서 SageMaker 노트북 인스턴스를 연 후, inference.py 파일을 찾으십시오. 아래와 같이 inference.py의 output_fn 함수를 편집하고 스크립트에 구문 오류가 없는지 확인하면서 변경 사항을 저장하십시오.

    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)
  • 1_DeployEndpoint.ipynb를 사용하여 엔드포인트 배포: Jupyter 환경에서 sm-notebook 디렉토리에 있는 1_DeployEndpoint.ipynb 노트북을 여십시오. 노트북의 지침에 따라 셀을 실행하여 YOLO26 모델을 다운로드하고, 업데이트된 추론 코드로 패키징한 후 Amazon S3 버킷에 업로드하십시오. 노트북은 YOLO26 모델을 위한 SageMaker 엔드포인트를 생성하고 배포하는 과정을 안내합니다.

6단계: 배포 테스트

YOLO26 모델이 배포되었으므로 성능과 기능을 테스트하는 것이 중요합니다.

  • 테스트 노트북 열기: 동일한 Jupyter 환경에서 sm-notebook 디렉토리에 있는 2_TestEndpoint.ipynb 노트북을 찾아 여십시오.

  • 테스트 노트북 실행: 노트북 내의 지침에 따라 배포된 SageMaker 엔드포인트를 테스트하십시오. 여기에는 엔드포인트로 이미지를 전송하고 추론을 실행하는 과정이 포함됩니다. 그런 다음 아래와 같이 결과를 플롯하여 모델의 성능과 정확도를 시각화합니다.

Testing Results YOLO26

  • 리소스 정리: 테스트 노트북은 엔드포인트와 호스팅된 모델을 정리하는 과정도 안내합니다. 이는 특히 배포된 모델을 즉시 사용할 계획이 없는 경우 비용과 리소스를 효과적으로 관리하기 위한 중요한 단계입니다.

7단계: 모니터링 및 관리

테스트 후, 배포된 모델에 대한 지속적인 모니터링과 관리가 필수적입니다.

  • Amazon CloudWatch로 모니터링: Amazon CloudWatch를 사용하여 SageMaker 엔드포인트의 성능과 상태를 정기적으로 확인하십시오.

  • 엔드포인트 관리: 엔드포인트의 지속적인 관리를 위해 SageMaker 콘솔을 사용하십시오. 여기에는 필요에 따른 모델 스케일링, 업데이트 또는 재배포가 포함됩니다.

이 단계를 완료하면 Amazon SageMaker 엔드포인트에 YOLO26 모델을 성공적으로 배포하고 테스트하게 됩니다. 이 과정은 머신 러닝 배포를 위해 AWS 서비스를 사용하는 실무 경험을 쌓게 해 줄 뿐만 아니라 향후 다른 고급 모델을 배포하기 위한 기반을 마련해 줍니다.

요약

이 가이드에서는 AWS CloudFormation 및 AWS Cloud Development Kit (CDK)를 사용하여 Amazon SageMaker 엔드포인트에 YOLO26을 배포하는 과정을 단계별로 설명했습니다. 이 과정에는 필요한 GitHub 리포지토리 클론, CDK 환경 설정, AWS 서비스를 사용한 모델 배포 및 SageMaker에서의 성능 테스트가 포함됩니다.

더 자세한 기술 정보는 AWS 머신 러닝 블로그의 이 문서를 참조하십시오. 또한 공식 Amazon SageMaker 문서에서 다양한 기능과 사양에 대한 자세한 내용을 확인할 수 있습니다.

다양한 YOLO26 통합에 대해 더 알고 싶으십니까? Ultralytics 통합 가이드 페이지를 방문하여 머신 러닝 프로젝트를 향상시킬 수 있는 추가 도구와 기능을 확인하십시오.

FAQ

Amazon SageMaker 엔드포인트에 Ultralytics YOLO26 모델을 어떻게 배포하나요?

Amazon SageMaker 엔드포인트에 Ultralytics YOLO26 모델을 배포하려면 다음 단계를 따르십시오:

  1. AWS 환경 설정: AWS 계정, 필요한 권한을 가진 IAM 역할, 구성된 AWS CLI가 있는지 확인하십시오. AWS CDK가 설치되지 않은 경우 설치하십시오 (AWS CDK 지침 참조).
  2. 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. CDK 환경 설정: Python 가상 환경을 생성하고 활성화한 후, 종속성을 설치하고 AWS CDK 라이브러리를 업그레이드하십시오.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
  4. AWS CDK를 사용하여 배포: CloudFormation 스택을 합성 및 배포하고 환경을 부트스트랩하십시오.
    cdk synth
    cdk bootstrap
    cdk deploy

자세한 내용은 문서 섹션을 검토하십시오.

Amazon SageMaker에 YOLO26을 배포하기 위한 사전 요구 사항은 무엇인가요?

Amazon SageMaker에 YOLO26을 배포하려면 다음 사전 요구 사항이 준비되어 있어야 합니다:

  1. AWS 계정: 활성 AWS 계정 (여기에서 가입).
  2. IAM 역할: SageMaker, CloudFormation 및 Amazon S3에 대한 권한이 구성된 IAM 역할.
  3. AWS CLI: 설치 및 구성된 AWS Command Line Interface (AWS CLI 설치 가이드).
  4. AWS CDK: 설치된 AWS Cloud Development Kit (CDK 설정 가이드).
  5. 서비스 할당량: 엔드포인트 및 노트북 사용을 위한 ml.m5.4xlarge 인스턴스에 대한 충분한 할당량 (할당량 증가 요청).

자세한 설정은 이 섹션을 참조하십시오.

Amazon SageMaker에서 Ultralytics YOLO26을 사용해야 하는 이유는 무엇인가요?

Amazon SageMaker에서 Ultralytics YOLO26을 사용하면 다음과 같은 여러 이점이 있습니다:

  1. 확장성 및 관리: SageMaker는 실시간 추론 요구 사항에 도움이 되는 오토스케일링과 같은 기능을 갖춘 관리형 환경을 제공합니다.
  2. AWS 서비스와의 통합: 데이터 저장을 위한 S3, 인프라 코드화를 위한 CloudFormation, 모니터링을 위한 CloudWatch와 같은 다른 AWS 서비스와 원활하게 통합됩니다.
  3. 배포 용이성: AWS CDK 스크립트를 사용한 간편한 설정과 능률적인 배포 프로세스를 제공합니다.
  4. 성능: 대규모 추론 작업을 효율적으로 실행하기 위해 Amazon SageMaker의 고성능 인프라를 활용하십시오.

SageMaker 사용의 이점에 대한 자세한 내용은 소개 섹션을 확인하십시오.

Amazon SageMaker에서 YOLO26의 추론 로직을 사용자 지정할 수 있나요?

네, Amazon SageMaker에서 YOLO26의 추론 로직을 사용자 지정할 수 있습니다:

  1. Modify inference.py: Locate and customize the output_fn function in the inference.py file to tailor output formats.

    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. 업데이트된 모델 배포: 이러한 변경 사항을 포함하기 위해 제공된 Jupyter 노트북(1_DeployEndpoint.ipynb)을 사용하여 모델을 다시 배포해야 합니다.

수정된 모델 배포에 대한 상세 단계를 참조하십시오.

Amazon SageMaker에 배포된 YOLO26 모델을 어떻게 테스트할 수 있나요?

Amazon SageMaker에 배포된 YOLO26 모델을 테스트하려면 다음을 수행하십시오:

  1. 테스트 노트북 열기: SageMaker Jupyter 환경에서 2_TestEndpoint.ipynb 노트북을 찾아 여십시오.
  2. 노트북 실행: 노트북의 지침에 따라 엔드포인트로 이미지를 전송하고 추론을 수행한 후 결과를 표시하십시오.
  3. 결과 시각화: 내장된 플로팅 기능을 사용하여 감지된 객체 주변의 바운딩 박스와 같은 성능 지표를 시각화하십시오.

포괄적인 테스트 지침은 테스트 섹션을 방문하십시오.

댓글