Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5 🚀 trên AWS Deep Learning Instance: Hướng dẫn đầy đủ#

Thiết lập môi trường deep learning hiệu năng cao có thể gây khó khăn, đặc biệt với người mới. Nhưng đừng lo! 🛠️ Hướng dẫn này trình bày từng bước cách thiết lập và chạy Ultralytics YOLOv5 trên AWS Deep Learning instance. Nhờ tận dụng sức mạnh của Dịch vụ web Amazon (AWS), ngay cả 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 trở thành lựa chọn lý tưởng cho cả thử nghiệm lẫn triển khai production.

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

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 máy chủ ảo (instance).

Trang đăng nhập AWS Management Console

Bước 2: Khởi chạy instance#

Trong dashboard EC2, nhấp vào nút Launch Instance. Thao tác này bắt đầu quá trình tạo máy chủ ảo mới phù hợp với nhu cầu của bạn.

Nút Launch Instance

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

Việc chọn đúng AMI rất quan trọng vì 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. Trong thanh tìm kiếm, 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ể về 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 driver GPU cần thiết, giúp đơn giản hóa đáng kể quá trình thiết lập.

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 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 huấn luyện model so với CPU. Khi chọn kích thước instance, hãy đảm bảo dung lượng bộ nhớ (RAM) đáp ứng đủ nhu cầu của model và dataset.

Lưu ý: Kích thước model và dataset là những yếu tố rất quan trọng. Nếu tác vụ ML cần nhiều bộ nhớ hơn mức instance được chọn cung cấp, bạn cần chọn loại instance lớn hơn để tránh vấn đề về hiệu năng hoặc lỗi.

Tìm hiểu các loại instance GPU hiện có trên trang EC2 Instance Types, đặc biệt là trong danh mục Accelerated Computing.

Chọn loại instance GPU AWS EC2

Để biết thông tin chi tiết về 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ề Giám sát và tối ưu hóa GPU. So sánh chi phí bằng giá On-Demand và tìm hiểu khả năng tiết kiệm với giá Spot Instance.

Cấu hình instance#

Hãy cân nhắc sử dụng Amazon EC2 Spot Instance để tiết kiệm chi phí hơn. Spot Instance cho phép bạn sử dụng dung lượng EC2 chưa được khai thác, thường với mức giá thấp hơn đáng kể so với giá On-Demand. Đối với quá trình huấn luyện cần có khả năng tiếp tục sau khi bị gián đoạn, hãy chọn persistent request và đặt hành vi khi bị gián đoạn thành stop thay vì terminate, để giữ lại volume EBS và kết quả huấn luyện; instance sẽ khởi động lại khi có đủ dung lượng.

Cấu hình Spot Request

Tiếp tục qua các cài đặt khởi chạy còn lại để 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ài đặt trước khi nhấp 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#

Khi trạng thái instance hiển thị là 'running', hãy chọn instance đó trong dashboard EC2. Nhấp vào nút Connect để xem các tùy chọn kết nối. Dùng lệnh SSH mẫu được cung cấp trong terminal cục bộ (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 khi khởi chạy.

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

Bước 4: Chạy Ultralytics YOLOv5#

Giờ đây, khi đã kết nối qua SSH, bạn có thể thiết lập và chạy YOLOv5. Trước tiên, 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. 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 từ bản phát hành YOLOv5 mới nhất 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

Sau 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640

Xem hướng dẫn Huấn luyện dữ liệu tùy chỉnh và Xuất model để biết hướng dẫn chi tiết.

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

Nếu bạn làm việc với dataset rất lớn hoặc gặp giới hạn bộ nhớ trong quá trình huấn luyện, đôi khi việc tăng bộ nhớ swap trên instance 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 -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ụ phát hiện đối tượng. Dù bạn đang thử nghiệm các model pretrained hay huấn luyện trên dữ liệu của riêng mình, cấu hình mạnh mẽ này cung cấp nền tảng có khả năng mở rộng cho các dự án thị giác máy tính. Nếu gặp sự cố, hãy tham khảo tài liệu AWS phong phú và các tài nguyên hữu ích từ cộng đồng Ultralytics như Câu hỏi thường gặp. Chúc bạn phát hiện đối tượng thành công!

Câu hỏi thường gặp#

  • Chọn AWS Deep Learning AMI dựa trên Ubuntu mới nhất. AMI này được cài sẵn driver NVIDIA, CUDA và PyTorch, vì vậy việc thiết lập còn lại chỉ là clone repository và cài đặt requirements.txt.

  • Bất kỳ instance GPU nào thuộc dòng Accelerated Computing đều phù hợp, chẳng hạn như instance g4dn, g5 hoặc p3. Chọn dung lượng bộ nhớ GPU đủ cho batch size và kích thước hình ảnh, đồng thời dùng --batch-size -1 để YOLOv5 tự chọn batch lớn nhất có thể chạy.

  • Dùng scp với key .pem cho các lần truyền dữ liệu nhỏ, hoặc lưu dữ liệu tạm trên Amazon S3 rồi sao chép bằng aws s3 sync. Kết quả huấn luyện được lưu trong runs/train/, còn weights nằm trong runs/train/exp/weights/.

  • Dùng persistent Spot request với hành vi khi bị gián đoạn được đặt thành stop để giữ lại volume EBS, sau đó tiếp tục lần chạy từ checkpoint gần nhất bằng python train.py --resume khi instance khởi động lại. Định kỳ sao chép last.pt và best.pt sang S3 nếu bạn không thể chấp nhận mất tiến độ.

Bình luận