Ultralytics YOLOv5 🚀 trên AWS Deep Learning Instance: Hướng dẫn toàn diện#
Việc thiết lập một môi trường deep learning hiệu suất cao có vẻ đáng sợ, đặc biệt là đối với người mới bắt đầu. Nhưng đừng lo lắng! 🛠️ 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 giúp nó trở nên lý tưởng cho cả việc thử nghiệm và deployment trong môi trường production.
Các tùy chọn quickstart khác cho YOLOv5 bao gồm Google Colab Notebook của chúng tôi , Kaggle environments
, GCP Deep Learning VM, và Docker image được xây dựng sẵn của chúng tôi có sẵn 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, 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.

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 quy trình tạo một máy chủ ảo mới tùy chỉnh theo nhu cầu của bạn.

Chọn Amazon Machine Image (AMI) phù hợp#
Việc lựa chọn AMI chính xác là rất quan trọng. Điều 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, hãy gõ 'Deep Learning' và chọn Deep Learning AMI dựa trên Ubuntu mới nhất (trừ khi bạn có cá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 được cấu hình sẵn các deep learning frameworks phổ biến (như PyTorch, được sử dụng bởi YOLOv5) và các GPU drivers 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 cao như huấn luyện các mô hình deep learning, việc chọn loại instance được tăng tốc bằng GPU là khuyến nghị hàng đầu. 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) của nó đủ 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ố then chốt. Nếu tác vụ ML của bạn yêu cầu bộ nhớ lớn 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 suất hoặc lỗi.
Khám phá các loại GPU instance có sẵn 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ề cách giám sát và tối ưu hóa việc sử dụng GPU, hãy tham khảo hướng dẫn của AWS về GPU Monitoring and Optimization. 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 chi phí 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 tiếp cận tiết kiệm 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ì.

Tiếp tục thực hiện các Bước 4-7 trong trình hướng dẫn khởi chạy instance để cấu hình 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 xét lại các cài đặt trước khi nhấp Launch. Bạn cũng sẽ cần tạo mới hoặc chọn một cặp khóa (key pair) hiện có để truy cập SSH an toàn.
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 riêng tư (.pem) mà bạn đã 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, bạn có thể thiết lập và chạy YOLOv5. Đầu tiên, hãy clone repository YOLOv5 chính thức từ GitHub và truy cập vào thư mục. Sau đó, cài đặt các dependencies cần thiết bằng cách sử dụng pip. Bạn nên sử dụng môi trường Python 3.8 trở lên. Các models và datasets cần thiết sẽ được tải xuống tự động từ release 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.txtVới môi trường đã sẵn sàng, bạn có thể bắt đầu sử dụng YOLOv5 cho các 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 của Ultralytics để biết các hướng dẫn chi tiết về Training, Validation, Prediction (Inference), và Exporting.
Phần mở rộng tùy chọn: 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 hạn chế về bộ nhớ trong khi 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 như 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 -hXin chú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. Cho dù bạn đang thử nghiệm với pretrained models 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 một nền tảng có thể 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 detect vui vẻ!