# Train YOLO trên GPU cloud: dự án thị giác máy tính tại châu Á

URL: https://cloudj.net/vi/blog/yolo-computer-vision-gpu
Published: 2026-11-12 · Updated: 2026-11-12

> Hướng dẫn train YOLO trên GPU cloud cho bài toán nhà máy và bán lẻ: để dung lượng dataset quyết định khu vực, chọn card RTX tầm trung, train và xuất model.

Phát hiện lỗi trên dây chuyền may, đếm kệ trống ở chuỗi cửa hàng tiện lợi, kiểm tra mũ bảo hộ ở công trường, đọc biển số ở bãi giữ xe: các dự án thị giác máy tính ở Việt Nam và Đông Nam Á thường bắt đầu bằng một model YOLO và một kho ảnh đã gán nhãn. Train trên laptop thì chậm, còn mua hẳn một GPU cho dự án ba tuần hiếm khi hợp lý. Bài hướng dẫn train YOLO trên GPU cloud này đi theo một dự án thực tế từ dataset tới model đã xuất, trên GPU thuê của Cloudj, và cho thấy vì sao dung lượng dataset, chứ không phải vị trí người dùng, quyết định bạn nên thuê ở đâu.

## Dự án ví dụ

Một công ty tích hợp hệ thống ở TP.HCM đang làm tính năng phát hiện kệ trống cho một chuỗi bán lẻ. Họ có:

- Khoảng 60.000 ảnh đã gán nhãn từ camera cửa hàng, tầm 40 GB dạng JPEG.
- Thiết bị đích ở mỗi cửa hàng: một hộp edge nhỏ sẽ chạy model.
- Hạn chót ba tuần, với nhiều vòng train khi nhãn được cải thiện.

Không ai chờ GPU theo thời gian thực; train là tác vụ batch. Vậy câu hỏi vị trí duy nhất là: 40 GB tới GPU nhanh cỡ nào, và trọng số train xong về lại nhanh cỡ nào?

## Bước 1: để dung lượng dataset chọn khu vực

| Tình trạng dataset | Ô Country gợi ý | Lý do |
|---|---|---|
| Dataset lớn trên server hoặc NAS ở Việt Nam | `SG, HK` | Đường upload từ Việt Nam ngắn hơn; có thể thử `VN`, nhưng không có gì bảo đảm có máy ở Việt Nam được liệt kê |
| Dataset lớn ở Nhật hoặc Hàn | `JP` hoặc `KR` | Upload trong khu vực |
| Dataset đã nằm trên cloud storage ở nơi khác | Tìm rộng hoặc gần nơi lưu trữ | Kéo dữ liệu từ phía máy GPU |
| Dataset nhỏ (vài GB) | Để trống | Chọn theo giá và độ tin cậy |

[Hướng dẫn thuê GPU châu Á](https://cloudj.net/vi/blog/gpu-cloud-asia-guide) giải thích các mã châu Á, còn bài [chuyển model và dữ liệu giữa các khu vực GPU](https://cloudj.net/vi/blog/move-models-data-between-gpu-regions) nói về chiến lược chuyển dataset lớn. Nếu dataset nhỏ, logic trong bài [train LoRA trên GPU ở Mỹ](https://cloudj.net/vi/blog/lora-training-gpu-usa) vẫn đúng: train batch thì vị trí gần như không quan trọng.

Hàng thay đổi trong ngày. Nếu `SG, HK` chưa có máy phù hợp, thêm `JP`, thử lại sau hoặc nới bộ lọc.

## Bước 2: chọn card tầm trung

Model phát hiện vật thể YOLO nhỏ hơn nhiều so với model ngôn ngữ. Card consumer tầm trung thường là đủ:

- [RTX 4070 Ti Super](https://cloudj.net/vi/gpu-cloud/rtx-4070s-ti), 16 GB: ổn cho model nano tới medium ở kích thước ảnh tiêu chuẩn.
- [RTX 3090](https://cloudj.net/vi/gpu-cloud/rtx-3090), 24 GB: dư chỗ cho model lớn hơn, batch lớn hơn hoặc độ phân giải cao hơn.
- [RTX 4090](https://cloudj.net/vi/gpu-cloud/rtx-4090), 24 GB: mỗi vòng train nhanh hơn khi bạn lặp lại nhiều lần.

Cả ba đều thuê được ở cấp tài khoản khởi đầu. Bài [thuê RTX 3090 ở châu Á](https://cloudj.net/vi/blog/rtx-3090-cloud-asia) tập trung vào card này. Giá "từ" theo thời gian thực có trên [GPU cloud](https://cloudj.net/vi/gpu-cloud).

Đừng bỏ qua CPU và ổ đĩa trong danh sách kết quả: việc nạp dữ liệu và augmentation chạy trên CPU, nên máy có quá ít vCPU có thể khiến GPU ngồi chờ. Chọn ổ đĩa đủ cho dataset, cache và vài lượt train; dung lượng không đổi được sau khi triển khai.

## Bước 3: triển khai và upload một lần

Mở [trang triển khai RTX 3090](https://app.cloudj.net/deploy/gpu?model=rtx-3090), nhập `SG, HK`, xem reliability, max duration và tốc độ tải, chọn template PyTorch + JupyterLab hoặc Ubuntu + CUDA, chọn SSH key rồi triển khai.

Upload dataset bằng `rsync`, công cụ này tiếp tục được khi kết nối bị ngắt:

```bash
rsync -avP -e "ssh -p PORT" ./dataset/ root@HOST:/workspace/dataset/
```

Với hàng chục nghìn file nhỏ, đóng gói trước thường nhanh hơn:

```bash
tar -cf dataset.tar dataset/
rsync -avP -e "ssh -p PORT" dataset.tar root@HOST:/workspace/
```

Nếu văn phòng dùng đường truyền cáp quang doanh nghiệp của Viettel hay FPT, hãy upload từ đó thay vì từ laptop qua wifi, sẽ đỡ mất thời gian hơn nhiều.

## Bước 4: train

Kết nối và cài thư viện train:

```bash
ssh -p PORT root@HOST
nvidia-smi
pip install ultralytics
tmux new -s yolo
cd /workspace
yolo detect train data=/workspace/dataset/data.yaml model=yolo11s.pt epochs=100 imgsz=640 batch=-1
```

Nếu đã upload file tar, hãy giải nén trước bằng `tar -xf /workspace/dataset.tar -C /workspace`. `batch=-1` để công cụ tự chọn batch size vừa với bộ nhớ GPU. Chạy trong `tmux` giúp quá trình train không dừng khi rớt SSH. [Tài liệu Ultralytics](https://docs.ultralytics.com) mô tả mọi tham số train, từ augmentation tới dừng sớm.

Theo dõi tiến độ từ một phiên khác:

```bash
watch -n 5 nvidia-smi
tail -f runs/detect/train/results.csv
```

## Bước 5: xuất model và mang về

Khi train xong, trọng số tốt nhất nằm ở `runs/detect/train/weights/best.pt`. Xuất sang định dạng dùng được trên thiết bị edge:

```bash
yolo export model=runs/detect/train/weights/best.pt format=onnx
```

Rồi kéo kết quả về:

```bash
rsync -avP -e "ssh -p PORT" root@HOST:/workspace/runs/ ./runs/
```

Nếu thiết bị edge dùng TensorRT, hãy build engine TensorRT ngay trên thiết bị hoặc trên phần cứng tương đương, vì engine gắn với GPU và phiên bản phần mềm lúc build.

## Giữa các vòng train

Nhãn được sửa, và bạn sẽ train lại. Có hai cách:

- **Destroy rồi triển khai lại** cho mỗi vòng. Giữa các vòng không tốn đồng nào, nhưng phải upload dataset lại. Hợp khi các vòng cách nhau vài ngày.
- **Stop** instance. Ổ đĩa và dataset được giữ, tính phí lưu trữ, nhưng GPU bị nhả và khi bật lại phải chờ GPU rảnh. Hợp khi vòng tiếp theo sắp tới và dataset lớn.

Dù cách nào, hãy giữ trọng số tốt nhất và file cấu hình train ở ngoài máy. Instance và ổ đĩa bị xóa vào ngày "available until", và host không có SLA phần cứng. Tiền thuê trừ theo phút từ số dư tài khoản, nạp bằng chuyển khoản VND.

## Giấy phép và dữ liệu

Kiểm tra giấy phép của thư viện train và trọng số pretrained trước khi đưa vào sản phẩm thương mại; một số bản YOLO phổ biến dùng giấy phép copyleft và có điều khoản thương mại riêng. Bảo quản cẩn thận dữ liệu camera vì có thể chứa hình ảnh con người, và tự kiểm tra nghĩa vụ pháp lý của mình.

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

### GPU tầm trung có đủ để train YOLO không?

Thường là đủ. Card RTX 16 GB hoặc 24 GB xử lý được phần lớn dự án phát hiện vật thể ở kích thước ảnh tiêu chuẩn.

### Có nên thuê GPU gần camera cửa hàng không?

Chỉ để rút ngắn thời gian upload dataset. Việc train không cần gần người dùng.

### Có chạy YOLO trực tiếp cho camera trên GPU cloud được không?

Được, nhưng đa số dự án bán lẻ và nhà máy chạy inference trên thiết bị edge, chỉ dùng cloud để train.

### Cloudj có cài sẵn Ultralytics không?

Không. Bạn cài bằng pip qua SSH, hoặc dùng Docker image công khai của mình.

## Bước tiếp theo

Mở [trang triển khai RTX 3090](https://app.cloudj.net/deploy/gpu?model=rtx-3090), tìm `SG, HK`, và chạy thử một vòng train ngắn trên một phần dataset trước khi upload toàn bộ.
