Tensor Parallelism
Tìm hiểu cách tính song song tensor phân mảnh các ma trận trọng số trên các GPU để huấn luyện các mô hình khổng lồ. Khám phá sự khác biệt giữa nó và tính song song dữ liệu với Ultralytics.
Song song hóa Tensor là một kỹ thuật đào tạo phân tán nâng cao được sử dụng trong học máy để chia nhỏ các cấu trúc toán học lớn, hay còn gọi là tensor, trên nhiều bộ tăng tốc phần cứng như GPUs hoặc TPUs. Khi đào tạo các mô hình học sâu khổng lồ, số lượng tham số có thể dễ dàng vượt quá dung lượng bộ nhớ của một thiết bị duy nhất. Thay vì đặt toàn bộ lớp mạng thần kinh trên một GPU, song song hóa tensor sẽ phân mảnh các ma trận trọng số và chia nhỏ các thao tác toán học (như nhân ma trận) trên nhiều thiết bị trong một cụm. Điều này cho phép mô hình tận dụng bộ nhớ và sức mạnh tính toán kết hợp của toàn bộ thiết lập phần cứng, thực thi các phép tính song song theo mô hình Single-Program Multiple-Data (SPMD) đồng thời đồng bộ hóa kết quả thông qua các kết nối tốc độ cao như NVIDIA NVLink.
Link to this sectionCách hoạt động của song song hóa Tensor#
Cốt lõi của mạng thần kinh là các phép nhân ma trận. Song song hóa tensor phân phối các thao tác này bằng cách chia ma trận theo hàng hoặc theo cột. Ví dụ, trong một lớp kết nối đầy đủ hoặc cơ chế chú ý của transformer, một GPU có thể tính toán nửa bên trái của ma trận trong khi GPU khác tính toán nửa bên phải. Sau khi các phép tính song song hoàn tất, các thiết bị sẽ giao tiếp—thường sử dụng các thao tác tập thể All-Reduce nhanh—để tổng hợp các kết quả một phần trước khi chuyển tensor hoàn chỉnh sang lớp tiếp theo. Các tiến bộ học thuật gần đây vào năm 2025 đang tối ưu hóa hơn nữa quy trình này bằng cách giới thiệu các kích hoạt được đồng bộ hóa một phần để giảm bớt chi phí liên lạc, vốn thường gây ra tình trạng tắc nghẽn trong các cụm tính toán lớn.
Link to this sectionPhân biệt các kỹ thuật song song liên quan#
Để hiểu cách song song hóa tensor phù hợp với bối cảnh rộng lớn hơn của điện toán phân tán, cần phải phân biệt nó với các chiến lược phổ biến khác:
- Song song hóa Tensor so với Song song hóa mô hình: Song song hóa tensor là một tiểu loại rất cụ thể của song song hóa mô hình. Trong khi song song hóa mô hình nói chung đề cập đến việc chia tách một mô hình trên các thiết bị theo bất kỳ cách nào, song song hóa tensor đề cập nghiêm ngặt đến việc phân mảnh các tensor riêng lẻ bên trong một lớp duy nhất.
- Song song hóa Tensor so với Song song hóa đường ống (Pipeline): Song song hóa đường ống là một dạng khác của song song hóa mô hình, phân vùng mạng theo chiều sâu—đặt các lớp đầu tiên trên GPU 0, các lớp tiếp theo trên GPU 1, v.v. Điều này tạo ra các phụ thuộc tuần tự được gọi là các nút thắt đường ống (pipeline bubbles). Song song hóa tensor chia tách chính các lớp, thực thi chúng đồng thời mà không bị trễ tuần tự, nhưng đòi hỏi băng thông mạng cao hơn nhiều.
- Song song hóa Tensor so với Song song hóa dữ liệu: Trong song song hóa dữ liệu, toàn bộ mô hình được sao chép đầy đủ trên mọi GPU và chỉ tập dữ liệu đào tạo được chia nhỏ trên các thiết bị. Đối với các kiến trúc được tối ưu hóa cao như Ultralytics YOLO26, vốn dễ dàng nằm gọn trên các GPU hiện đại, song song hóa dữ liệu thông qua
DistributedDataParallelcủa PyTorch là phương pháp mặc định. Song song hóa tensor thường chỉ cần thiết khi các tham số của một lớp duy nhất vượt quá VRAM của phần cứng, gây ra lỗi hết bộ nhớ (OOM).
Link to this sectionCác ứng dụng thực tế#
Song song hóa tensor là không thể thiếu trong cơ sở hạ tầng AI hiện đại, đặc biệt đối với các kiến trúc tiên tiến đòi hỏi quy mô tính toán lớn:
- Đào tạo các mô hình ngôn ngữ lớn (LLMs): Các mô hình nền tảng khổng lồ như Llama 3 của Meta và DeepSeek V3 sử dụng các khung như NVIDIA Megatron-LM để triển khai song song hóa tensor. Vì các chiều ẩn và đầu chú ý của các mô hình này quá lớn, việc chia tách chúng trên một nút 8-GPU là bắt buộc để đào tạo hiệu quả và duy trì độ trễ thấp trong quá trình suy luận thời gian thực.
- Các mô hình thị giác lớn (LVMs) và tạo 3D: Khi thị giác máy tính mở rộng sang các hệ thống suy luận đa phương thức quy mô lớn, các nhà nghiên cứu sử dụng song song hóa tensor kết hợp với song song hóa đường ống trên các dịch vụ như AWS SageMaker để đào tạo các transformer thị giác (ViT) khổng lồ. Kỹ thuật này cho phép xử lý hình ảnh độ phân giải cao và tạo video yêu cầu các khối bộ nhớ liên tục khổng lồ.
Link to this sectionTriển khai song song hóa Tensor trong PyTorch#
Trước đây, các kỹ sư phải viết logic phân tán tùy chỉnh phức tạp để phân mảnh tensor. Gần đây, PyTorch đã giới thiệu DTensor (Distributed Tensor), giúp đơn giản hóa quy trình này một cách tự nhiên. Dưới đây là ví dụ về việc tạo một tensor phân mảnh theo hàng bằng cách sử dụng API PyTorch Distributed Tensor chính thức:
import torch
from torch.distributed.device_mesh import init_device_mesh
from torch.distributed.tensor import Shard, distribute_tensor
# Initialize a 1D device mesh across 2 GPUs
mesh = init_device_mesh("cuda", (2,))
# Create a standard PyTorch tensor (e.g., representing a layer's weights)
local_tensor = torch.randn(1024, 1024)
# Distribute the tensor across the GPUs by sharding along the first dimension (row-wise)
# Each GPU now holds a (512, 1024) chunk of the original tensor
distributed_tensor = distribute_tensor(local_tensor, mesh, [Shard(0)])
print(f"Global shape: {distributed_tensor.shape}, Local shape: {distributed_tensor.to_local().shape}")For edge-optimized vision tasks and rapid model deployment, developers typically rely on the Ultralytics Platform to automatically handle optimal hardware utilization. While multi-billion parameter foundation models require manual tensor parallelism configurations, you can efficiently scale training for models like YOLO26 using simple CLI commands out-of-the-box. This ensures maximum throughput by seamlessly utilizing native data parallelism techniques alongside robust model training tips.






