Ultralytics YOLO27:
Get Started

AWS 딥러닝 인스턴스에서 Ultralytics YOLOv5 🚀 사용하기: 완벽 가이드#

고성능 딥러닝 환경을 설정하는 일은 특히 초보자에게 어려워 보일 수 있습니다. 하지만 걱정하지 마세요! 🛠️ 이 가이드에서는 AWS 딥러닝 인스턴스에서 Ultralytics YOLOv5를 설정하고 실행하는 과정을 단계별로 안내합니다. 아마존 웹 서비스 (AWS)의 강력한 기능을 활용하면 머신러닝 (ML)을 처음 접하는 사람도 빠르고 경제적으로 시작할 수 있습니다. AWS 플랫폼의 확장성은 실험과 프로덕션 배포 모두에 적합합니다.

YOLOv5를 빠르게 시작하는 다른 방법으로는 Google Colab 노트북 Open In Colab, Kaggle 환경 Open In Kaggle, GCP 딥러닝 VM, Docker Hub에서 제공하는 사전 빌드 Docker 이미지 Docker Pulls가 있습니다.

1단계: AWS 콘솔 로그인#

먼저 AWS Management Console에서 계정을 만들거나 로그인하세요. 로그인한 후 가상 서버(인스턴스)를 관리할 수 있는 EC2 서비스 대시보드로 이동합니다.

AWS Management Console 로그인 페이지

2단계: 인스턴스 시작#

EC2 대시보드에서 Launch Instance 버튼을 클릭합니다. 그러면 요구 사항에 맞는 새 가상 서버를 만드는 절차가 시작됩니다.

Launch Instance 버튼

적합한 Amazon Machine Image (AMI) 선택#

올바른 AMI를 선택하는 것이 중요합니다. 선택한 AMI에 따라 인스턴스의 운영 체제와 사전 설치 소프트웨어가 결정됩니다. 검색창에 '딥러닝'을 입력하고 최신 Ubuntu 기반 딥러닝 AMI를 선택하세요(다른 OS에 대한 특별한 요구 사항이 없다면 이 옵션을 선택하면 됩니다). Amazon의 딥러닝 AMI에는 YOLOv5에서 사용하는 PyTorch와 같은 인기 딥러닝 프레임워크 및 필수 GPU 드라이버가 사전 구성되어 있어 설정 과정이 크게 간소화됩니다.

AWS EC2 딥러닝 AMI 선택

인스턴스 유형 선택#

딥러닝 모델 학습과 같이 많은 연산이 필요한 작업에는 GPU 가속 인스턴스 유형을 선택하는 것이 좋습니다. GPU를 사용하면 CPU만 사용할 때보다 모델 학습 시간을 크게 단축할 수 있습니다. 인스턴스 크기를 선택할 때 메모리 용량(RAM)이 모델과 데이터셋을 처리하기에 충분한지 확인하세요.

참고: 모델과 데이터셋의 크기는 중요한 요소입니다. ML 작업에 필요한 메모리가 선택한 인스턴스에서 제공하는 용량보다 많으면 성능 문제나 오류를 방지하기 위해 더 큰 인스턴스 유형을 선택해야 합니다.

EC2 인스턴스 유형 페이지에서 사용 가능한 GPU 인스턴스 유형을 확인하세요. 특히 가속 컴퓨팅 카테고리를 살펴보세요.

AWS EC2 GPU 인스턴스 유형 선택

GPU 사용량 모니터링 및 최적화에 관한 자세한 내용은 AWS의 GPU 모니터링 및 최적화 가이드를 참조하세요. 온디맨드 요금을 비교하고 스팟 인스턴스 요금을 통해 비용을 절감할 수 있는 방법도 살펴보세요.

인스턴스 구성#

비용을 절감하려면 Amazon EC2 스팟 인스턴스를 사용하는 방법을 고려하세요. 스팟 인스턴스를 사용하면 사용되지 않는 EC2 용량을 활용할 수 있으며, 온디맨드 요금보다 훨씬 저렴한 경우가 많습니다. 중단이 발생해도 학습을 유지해야 한다면 영구 요청을 선택하고 중단 동작을 종료가 아닌 중지로 설정하세요. 이렇게 하면 EBS 볼륨과 학습 결과가 보존되며, 용량이 다시 확보될 때 인스턴스가 재시작됩니다.

스팟 요청 구성

나머지 시작 설정을 진행하면서 스토리지를 구성하고 태그를 추가하며 보안 그룹을 설정하세요(SSH 포트 22가 내 IP에서 열려 있는지 확인). Launch를 클릭하기 전에 설정을 검토하세요. 보안 SSH 액세스를 위해 새 키 페어를 만들거나 기존 키 페어를 선택해야 합니다.

3단계: 인스턴스에 연결#

인스턴스 상태가 'running'으로 표시되면 EC2 대시보드에서 인스턴스를 선택하세요. Connect 버튼을 클릭해 연결 옵션을 확인합니다. 로컬 터미널(macOS/Linux의 Terminal 또는 Windows의 PuTTY/WSL 등)에서 제공된 SSH 명령 예제를 사용해 보안 연결을 설정하세요. 인스턴스를 시작할 때 만들거나 선택한 개인 키 파일(.pem)이 필요합니다.

AWS EC2 인스턴스 SSH 연결 옵션

4단계: Ultralytics YOLOv5 실행#

SSH로 연결했으므로 이제 YOLOv5를 설정하고 실행할 수 있습니다. 먼저 GitHub에서 공식 YOLOv5 저장소를 복제하고 해당 디렉터리로 이동하세요. 그런 다음 pip을 사용해 필요한 종속성을 설치합니다. Python 3.8 이상 환경을 사용하는 것이 좋습니다. 학습 또는 감지와 같은 명령을 실행하면 최신 YOLOv5 릴리스에서 필요한 모델과 데이터셋이 자동으로 다운로드됩니다.

# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5

# Install required packages
pip install -r requirements.txt

환경 설정이 완료되면 YOLOv5를 사용해 다양한 작업을 시작할 수 있습니다.

# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640

# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640

# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640

# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

자세한 안내는 사용자 지정 데이터 학습 및 모델 내보내기 튜토리얼을 참조하세요.

선택 사항: 스왑 메모리 늘리기#

매우 큰 데이터셋을 사용하거나 학습 중 메모리 제한이 발생하면 인스턴스의 스왑 메모리를 늘리는 것이 도움이 될 수 있습니다. 스왑 공간을 사용하면 시스템에서 디스크 공간을 가상 RAM으로 활용할 수 있습니다.

# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile

# Set correct permissions
sudo chmod 600 /swapfile

# Set up the file as a Linux swap area
sudo mkswap /swapfile

# Enable the swap file
sudo swapon /swapfile

# Verify the swap memory is active
free -h

축하합니다! 🎉 AWS 딥러닝 인스턴스를 성공적으로 설정하고 Ultralytics YOLOv5를 설치했으므로 객체 감지 작업을 수행할 준비가 되었습니다. 사전 학습 모델을 실험하거나 자체 데이터로 학습할 때 이 강력한 설정은 컴퓨터 비전 프로젝트를 위한 확장 가능한 기반을 제공합니다. 문제가 발생하면 방대한 AWS 문서와 FAQ 같은 유용한 Ultralytics 커뮤니티 리소스를 참조하세요. 즐거운 감지를 바랍니다!

자주 묻는 질문#

  • 최신 Ubuntu 기반 AWS 딥러닝 AMI를 선택하세요. NVIDIA 드라이버, CUDA, PyTorch가 사전 설치되어 있으므로 저장소를 복제하고 requirements.txt을 설치하면 설정이 완료됩니다.

  • 예를 들어 g4dn, g5, p3 인스턴스처럼 가속 컴퓨팅 계열의 GPU 인스턴스라면 무엇이든 사용할 수 있습니다. 배치 크기와 이미지 크기에 맞게 GPU 메모리가 충분한 인스턴스를 선택하고, --batch-size -1을 사용해 YOLOv5가 실행 가능한 가장 큰 배치를 선택하도록 하세요.

  • 소량의 데이터를 전송할 때는 .pem 키와 함께 scp을 사용하세요. 또는 Amazon S3에 데이터를 저장한 다음 aws s3 sync로 복사할 수 있습니다. 학습 결과는 runs/train/에 저장되고 가중치는 runs/train/exp/weights/에 저장됩니다.

  • 영구 스팟 요청을 사용하고 중단 동작을 중지로 설정하면 EBS 볼륨이 보존됩니다. 인스턴스가 재시작되면 python train.py --resume을 사용해 마지막 체크포인트부터 학습을 재개하세요. 진행 상황을 잃을 수 없다면 last.pt 및 best.pt를 주기적으로 S3에 복사하세요.

댓글