Distributed Training
Khám phá cách huấn luyện phân tán (distributed training) mở rộng quy mô khối lượng công việc AI trên nhiều GPU. Tìm hiểu cách tăng tốc huấn luyện Ultralytics YOLO26 với DDP để có kết quả chính xác, nhanh chóng hơn.
Đào tạo phân tán là một phương pháp trong machine learning, nơi khối lượng công việc đào tạo một model được chia nhỏ trên nhiều bộ xử lý hoặc máy chủ. Phương pháp này rất cần thiết để xử lý các tập dữ liệu quy mô lớn và các cấu trúc neural network phức tạp mà nếu chạy trên một thiết bị đơn lẻ sẽ mất một khoảng thời gian không khả thi. Bằng cách tận dụng sức mạnh tính toán kết hợp của nhiều Graphics Processing Units (GPUs) hoặc Tensor Processing Units (TPUs), đào tạo phân tán giúp tăng tốc đáng kể chu kỳ phát triển, cho phép các nhà nghiên cứu và kỹ sư lặp lại nhanh hơn và đạt được độ chính xác cao hơn trong các model của họ.
Link to this sectionCách hoạt động của đào tạo phân tán#
Ý tưởng cốt lõi đằng sau đào tạo phân tán là song song hóa. Thay vì xử lý dữ liệu tuần tự trên một chip, tác vụ được chia thành các phần nhỏ hơn và được xử lý đồng thời. Có hai chiến lược chính để đạt được điều này:
- Data Parallelism: Đây là phương pháp phổ biến nhất cho các tác vụ như object detection. Trong thiết lập này, một bản sao của toàn bộ model được đặt trên mỗi thiết bị. Dữ liệu đào tạo toàn cục được chia thành các batch nhỏ hơn và mỗi thiết bị xử lý một batch khác nhau cùng lúc. Sau mỗi bước, các gradient (cập nhật cho model) được đồng bộ hóa trên tất cả các thiết bị để đảm bảo trọng số model duy trì tính nhất quán.
- Model Parallelism: Khi một neural network (NN) quá lớn để vừa với bộ nhớ của một GPU đơn lẻ, bản thân model đó sẽ được chia nhỏ trên nhiều thiết bị. Các layer hoặc thành phần khác nhau của model nằm trên các chip khác nhau và dữ liệu luân chuyển giữa chúng. Điều này thường cần thiết để đào tạo các foundation model và Large Language Models (LLMs) khổng lồ.
Link to this sectionCác ứng dụng trong thực tế#
Đào tạo phân tán đã thay đổi các ngành công nghiệp bằng cách giúp giải quyết các vấn đề vốn trước đây không thể thực hiện được về mặt tính toán.
- Xe tự hành: Việc phát triển các phương tiện tự hành an toàn đòi hỏi phải phân tích hàng petabyte dữ liệu video và cảm biến. Các kỹ sư ô tô sử dụng các cụm phân tán lớn để đào tạo các model thị giác cho việc semantic segmentation thời gian thực và phát hiện làn đường. Quy mô khổng lồ này đảm bảo rằng các hệ thống AI trong ô tô có thể phản ứng một cách đáng tin cậy với các điều kiện đường xá đa dạng.
- Hình ảnh y tế: Trong lĩnh vực chăm sóc sức khỏe, việc phân tích các bản quét 3D độ phân giải cao như MRI đòi hỏi bộ nhớ và sức mạnh xử lý đáng kể. Đào tạo phân tán cho phép các nhà nghiên cứu xây dựng các công cụ chẩn đoán hiệu suất cao để phát hiện khối u và các tác vụ quan trọng khác. Bằng cách sử dụng các framework như NVIDIA MONAI, các bệnh viện có thể đào tạo model trên các tập dữ liệu đa dạng mà không gặp phải tình trạng nghẽn bộ nhớ, từ đó cải thiện kết quả AI trong chăm sóc sức khỏe.
Link to this sectionSử dụng đào tạo phân tán với Ultralytics#
Thư viện ultralytics giúp việc triển khai đào tạo Distributed Data Parallel (DDP) trở nên đơn giản. Bạn có thể mở rộng quy mô đào tạo các model YOLO26 hiện đại trên nhiều GPU bằng cách chỉ cần xác định chỉ số thiết bị trong các đối số đào tạo của mình.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])Link to this sectionCác khái niệm liên quan và so sánh#
Việc phân biệt đào tạo phân tán với các thuật ngữ tương tự trong hệ sinh thái machine learning là rất hữu ích để hiểu vai trò cụ thể của chúng:
- So với Federated Learning: Mặc dù cả hai đều liên quan đến nhiều thiết bị, mục tiêu của chúng lại khác nhau. Đào tạo phân tán thường tập trung dữ liệu vào một cụm hiệu năng cao để tối đa hóa tốc độ. Ngược lại, federated learning giữ dữ liệu phi tập trung trên các thiết bị người dùng (như điện thoại thông minh) để ưu tiên quyền riêng tư dữ liệu, cập nhật model toàn cục mà không cần dữ liệu thô rời khỏi nguồn.
- So với High-Performance Computing (HPC): HPC là một lĩnh vực rộng bao gồm siêu máy tính cho các mô phỏng khoa học như dự báo thời tiết. Đào tạo phân tán là một ứng dụng cụ thể của HPC áp dụng cho các thuật toán tối ưu hóa trong deep learning. Nó thường dựa vào các thư viện giao tiếp chuyên dụng như NVIDIA NCCL để giảm thiểu độ trễ giữa các GPU.
Link to this sectionMở rộng quy mô với nền tảng đám mây#
Việc quản lý cơ sở hạ tầng cho đào tạo phân tán có thể rất phức tạp. Các nền tảng hiện đại đơn giản hóa vấn đề này bằng cách cung cấp các môi trường được quản lý. Ví dụ, Ultralytics Platform cho phép người dùng quản lý tập dữ liệu và khởi tạo các đợt đào tạo có thể triển khai trên môi trường đám mây hoặc cụm nội bộ. Sự tích hợp này hợp lý hóa quy trình từ gán nhãn dữ liệu đến triển khai model cuối cùng, đảm bảo rằng việc mở rộng quy mô lên nhiều GPU diễn ra liền mạch nhất có thể. Tương tự, các nhà cung cấp đám mây như Google Cloud Vertex AI và Amazon SageMaker cung cấp cơ sở hạ tầng mạnh mẽ để chạy các tác vụ đào tạo phân tán ở quy mô doanh nghiệp.






