Ultralytics YOLOv5 🚀 trên AWS Deep Learning Instance: Hướng dẫn toàn diện

Thiết lập môi trường deep learning hiệu năng cao có vẻ là một nhiệm vụ khó khăn, đặc biệt đối với người mới bắt đầu. Nhưng đừng lo! 🛠️ Hướng dẫn này cung cấp quy trình từng bước để cài đặt và chạy Ultralytics YOLOv5 trên một AWS Deep Learning instance. Bằng cách tận dụng sức mạnh của Amazon Web Services (AWS), ngay cả những người mới làm quen với machine learning (ML) cũng có thể bắt đầu một cách nhanh chóng và tiết kiệm chi phí. Khả năng scalability của nền tảng AWS khiến nó trở nên lý tưởng cho cả quá trình thử nghiệm và deployment trong môi trường thực tế.

Các tùy chọn khởi động nhanh khác cho YOLOv5 bao gồm Google Colab Notebook Open In Colab của chúng tôi, Kaggle environments Open In Kaggle, GCP Deep Learning VM, và image Docker được xây dựng sẵn của chúng tôi trên Docker Hub Docker Pulls.

Bước 1: Đăng nhập vào AWS Console

Bắt đầu bằng cách tạo tài khoản hoặc đăng nhập vào AWS Management Console. Sau khi đăng nhập, hãy điều hướng đến bảng điều khiển dịch vụ EC2, nơi bạn có thể quản lý các máy chủ ảo (instance) của mình.

Trang đăng nhập AWS Management Console

Bước 2: Khởi chạy Instance của bạn

Từ bảng điều khiển EC2, nhấp vào nút Launch Instance. Thao tác này sẽ bắt đầu quá trình tạo một máy chủ ảo mới được thiết kế riêng cho nhu cầu của bạn.

Nút Khởi chạy Instance

Chọn Amazon Machine Image (AMI) phù hợp

Việc chọn đúng AMI là rất quan trọng. Nó quyết định hệ điều hành và phần mềm được cài đặt sẵn cho instance của bạn. Trong thanh tìm kiếm, hãy nhập 'Deep Learning' và chọn Deep Learning AMI dựa trên Ubuntu mới nhất (trừ khi bạn có yêu cầu cụ thể cho một hệ điều hành khác). Các Deep Learning AMI của Amazon đi kèm với các deep learning frameworks phổ biến được cấu hình sẵn (như PyTorch, được YOLOv5 sử dụng) và các GPU drivers cần thiết, giúp hợp lý hóa đáng kể quy trình thiết lập.

Lựa chọn AWS EC2 Deep Learning AMI

Chọn loại Instance

Đối với các tác vụ đòi hỏi cao như huấn luyện các mô hình deep learning, bạn nên chọn loại instance có hỗ trợ GPU. GPU có thể giảm đáng kể thời gian huấn luyện mô hình so với CPU. Khi chọn kích thước instance, hãy đảm bảo dung lượng bộ nhớ (RAM) đủ cho mô hình và tập dữ liệu của bạn.

Lưu ý: Kích thước mô hình và tập dữ liệu của bạn là những yếu tố quan trọng. Nếu tác vụ ML của bạn yêu cầu nhiều bộ nhớ hơn mức instance đã chọn cung cấp, bạn sẽ cần chọn loại instance lớn hơn để tránh các vấn đề về hiệu năng hoặc lỗi.

Khám phá các loại instance GPU khả dụng trên trang EC2 Instance Types, đặc biệt là trong danh mục Accelerated Computing.

Lựa chọn loại instance AWS EC2 GPU

Để biết thông tin chi tiết về việc giám sát và tối ưu hóa mức sử dụng GPU, hãy tham khảo hướng dẫn của AWS về GPU Monitoring and Optimization. Hãy so sánh chi phí bằng cách sử dụng On-Demand Pricing và khám phá khả năng tiết kiệm tiềm năng với Spot Instance Pricing.

Cấu hình Instance của bạn

Hãy cân nhắc sử dụng Amazon EC2 Spot Instances để có phương pháp hiệu quả về chi phí hơn. Spot Instances cho phép bạn đấu giá dung lượng EC2 không sử dụng, thường với mức chiết khấu đáng kể so với giá On-Demand. Đối với các tác vụ yêu cầu tính bền bỉ (lưu dữ liệu ngay cả khi Spot Instance bị gián đoạn), hãy chọn persistent request. Điều này đảm bảo ổ lưu trữ của bạn được duy trì.

Cấu hình Spot Request

Tiếp tục thực hiện các Bước 4-7 của trình hướng dẫn khởi chạy instance để cấu hình bộ lưu trữ, thêm thẻ, thiết lập nhóm bảo mật (đảm bảo cổng SSH 22 được mở từ IP của bạn) và xem lại các cài đặt trước khi nhấp vào Launch. Bạn cũng sẽ cần tạo hoặc chọn một cặp khóa (key pair) hiện có để truy cập SSH bảo mật.

Bước 3: Kết nối với Instance của bạn

Khi trạng thái instance của bạn hiển thị là 'running', hãy chọn nó từ bảng điều khiển EC2. Nhấp vào nút Connect để xem các tùy chọn kết nối. Sử dụng ví dụ lệnh SSH được cung cấp trong terminal cục bộ của bạn (như Terminal trên macOS/Linux hoặc PuTTY/WSL trên Windows) để thiết lập kết nối bảo mật. Bạn sẽ cần tệp khóa cá nhân (.pem) mà bạn đã tạo hoặc chọn trong quá trình khởi chạy.

Các tùy chọn kết nối SSH instance AWS EC2

Bước 4: Chạy Ultralytics YOLOv5

Bây giờ bạn đã kết nối qua SSH, bạn có thể thiết lập và chạy YOLOv5. Đầu tiên, hãy clone repository chính thức của YOLOv5 từ GitHub và điều hướng vào thư mục đó. Sau đó, cài đặt các phụ thuộc cần thiết bằng pip. Bạn nên sử dụng môi trường Python 3.8 trở lên. Các mô hình và tập dữ liệu cần thiết sẽ được tải xuống tự động từ release mới nhất của YOLOv5 khi bạn chạy các lệnh như huấn luyện hoặc phát hiện.

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

# Install required packages
pip install -r requirements.txt

Với môi trường đã sẵn sàng, bạn có thể bắt đầu sử dụng YOLOv5 cho nhiều tác vụ khác nhau:

# 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
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Tham khảo tài liệu của Ultralytics để biết hướng dẫn chi tiết về Training, Validation, Prediction (Inference)Exporting.

Tùy chọn bổ sung: Tăng bộ nhớ Swap

Nếu bạn đang làm việc với các tập dữ liệu rất lớn hoặc gặp phải giới hạn bộ nhớ trong quá trình huấn luyện, việc tăng bộ nhớ swap trên instance của bạn đôi khi có thể hữu ích. Không gian swap cho phép hệ thống sử dụng không gian đĩa làm RAM ảo.

# 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

Chúc mừng! 🎉 Bạn đã thiết lập thành công AWS Deep Learning instance, cài đặt Ultralytics YOLOv5 và đã sẵn sàng thực hiện các tác vụ object detection. Cho dù bạn đang thử nghiệm với các mô hình được huấn luyện trước hay đang training trên dữ liệu của riêng mình, cấu hình mạnh mẽ này cung cấp một nền tảng có khả năng mở rộng cho các dự án computer vision của bạn. Nếu bạn gặp bất kỳ vấn đề nào, hãy tham khảo tài liệu AWS phong phú và các tài nguyên cộng đồng hữu ích của Ultralytics như FAQ. Chúc bạn phát hiện thành công!

Bình luận