Ultralytics YOLOv5 🚀 trên AWS Deep Learning Instance: Hướng dẫn đầy đủ#
Việc thiết lập một môi trường deep learning hiệu năng cao có thể khiến người mới bắt đầu cảm thấy khó khăn. Nhưng đừng lo! 🛠️ Hướng dẫn này cung cấp các bước chi tiết để thiết lập 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 nhanh chóng và tiết kiệm chi phí. Khả năng mở rộng của nền tảng AWS khiến nền tảng này phù hợp cho cả việc thử nghiệm và triển khai trong môi trường production.
Các tùy chọn bắt đầu nhanh khác cho YOLOv5 bao gồm Notebook Google Colab , môi trường Kaggle
, GCP Deep Learning VM và Docker image dựng sẵn của chúng tôi trên Docker Hub
.
Bước 1: Đăng nhập 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, chuyển đến dashboard của dịch vụ EC2, nơi bạn có thể quản lý các server ảo (instance).

Bước 2: Khởi chạy Instance#
Từ dashboard EC2, nhấp vào nút Launch Instance. Thao tác này bắt đầu quá trình tạo một server ảo mới phù hợp với nhu cầu của bạn.

Chọn Amazon Machine Image (AMI) phù hợp#
Việc chọn AMI chính xác là rất quan trọng. Lựa chọn này xác đị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, nhập 'Deep Learning' và chọn Deep Learning AMI mới nhất dựa trên Ubuntu (trừ khi bạn có yêu cầu cụ thể về một hệ điều hành khác). Deep Learning AMI của Amazon được cấu hình sẵn với các framework deep learning phổ biến (như PyTorch, được YOLOv5 sử dụng) và các GPU driver cần thiết, giúp đơn giản hóa đáng kể quá trình thiết lập.

Chọn loại Instance#
Đối với các tác vụ đòi hỏi nhiều tài nguyên như training model deep learning, bạn nên chọn loại instance được tăng tốc bằng GPU. GPU có thể giảm đáng kể thời gian cần thiết để training model so với CPU. Khi chọn kích thước instance, hãy đảm bảo dung lượng bộ nhớ (RAM) đủ cho model và dataset của bạn.
Lưu ý: Kích thước model và dataset là những yếu tố quan trọng. Nếu tác vụ ML của bạn cần 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 GPU instance hiện có trên trang EC2 Instance Types, đặc biệt là trong danh mục Accelerated Computing.

Để 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 AWS về GPU Monitoring and Optimization. So sánh chi phí bằng On-Demand Pricing và khám phá khả năng tiết kiệm với Spot Instance Pricing.
Cấu hình Instance#
Hãy cân nhắc sử dụng Amazon EC2 Spot Instances để tiết kiệm chi phí hơn. Spot Instances cho phép bạn đặt giá thầu cho dung lượng EC2 chưa được sử dụng, thường với mức giảm đáng kể so với giá On-Demand. Đối với các tác vụ yêu cầu tính bền vững (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 volume lưu trữ của bạn được duy trì.

Tiếp tục qua Steps 4-7 của trình hướng dẫn khởi chạy instance để cấu hình bộ nhớ, thêm tag, thiết lập security group (đả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 cần tạo hoặc chọn một key pair hiện có để truy cập SSH an toàn.
Bước 3: Kết nối với Instance#
Sau khi trạng thái instance hiển thị là 'running', hãy chọn instance đó từ dashboard 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 (chẳng hạn Terminal trên macOS/Linux hoặc PuTTY/WSL trên Windows) để thiết lập kết nối an toàn. Bạn sẽ cần file private key (.pem) đã tạo hoặc chọn trong quá trình khởi chạy.

Bước 4: Chạy Ultralytics YOLOv5#
Bây giờ bạn đã kết nối qua SSH và có thể thiết lập cũng như chạy YOLOv5. Trước tiên, hãy clone repository YOLOv5 chính thức từ GitHub và chuyển vào thư mục đó. Sau đó, cài đặt các dependency 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 model và dataset cần thiết sẽ được tự động tải xuống từ bản phát hành YOLOv5 mới nhất khi bạn chạy các lệnh như training hoặc detection.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtSau khi 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 640Tham khảo tài liệu Ultralytics để xem hướng dẫn chi tiết về Training, Validation, Prediction (Inference) và Exporting.
Tùy chọn bổ sung: Tăng bộ nhớ Swap#
Nếu bạn làm việc với các dataset rất lớn hoặc gặp giới hạn bộ nhớ trong quá trình training, việc tăng bộ nhớ swap trên instance đôi khi có thể hữu ích. Swap space cho phép hệ thống sử dụng dung lượng ổ đĩ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 -hChúc mừng! 🎉 Bạn đã thiết lập thành công một 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. Dù bạn đang thử nghiệm với các model pretrained hay training trên dữ liệu của riêng mình, thiết lập mạnh mẽ này cung cấp nền tảng có khả năng mở rộng cho các dự án computer vision của bạn. Nếu 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 detection hiệu quả!