Tensor Parallelism
Tensor parallelism phân mảnh các ma trận trọng số của một layer trên nhiều GPU, để mỗi thiết bị tính toán một phần của từng phép toán. Nội dung đề cập đến các phương pháp liên quan, ứng dụng và PyTorch.
Song song hóa tensor là kỹ thuật huấn luyện phân tán tiên tiến trong học máy, dùng để chia các cấu trúc toán học lớn riêng lẻ, hay tensor, trên nhiều bộ tăng tốc phần cứng như GPU hoặc TPU. Khi huấn luyện các model 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ị. Thay vì đặt toàn bộ một lớp mạng nơ-ron lên một GPU, song song hóa tensor chia nhỏ các ma trận trọng số và phân tách phép toán (như phép nhân ma trận) trên nhiều thiết bị trong một cụm. Nhờ đó, model tận dụng được bộ nhớ và năng lực tính toán tổng hợp của toàn bộ phần cứng, thực hiện tính toán song song theo mô hình một chương trình, nhiều dữ liệu (SPMD) trong khi đồng bộ kết quả qua các kết nối tốc độ cao như NVIDIA NVLink.
Cách thức hoạt động của song song hóa tensor#
Phép nhân ma trận là cốt lõi của mạng nơ-ron. Tính song song tensor phân phối các phép toán này bằng cách chia ma trận theo hàng hoặc cột. Chẳng hạn, trong một layer kết nối đầy đủ hoặc cơ chế chú ý của Transformer, một GPU có thể tính nửa trái của ma trận trong khi GPU khác tính nửa phải. Sau khi hoàn tất các phép tính song song, các thiết bị giao tiếp—thường sử dụng các phép toán tập thể All-Reduce tốc độ cao—để tổng hợp kết quả từng phần trước khi chuyển tensor hoàn chỉnh sang layer tiếp theo. Những tiến bộ học thuật gần đây trong năm 2025 tiếp tục tối ưu quy trình này bằng cách đưa vào các activation đồng bộ một phần để giảm chi phí giao tiếp vốn thường gây nghẽn cho các cụm tính toán lớn.
Phân biệt các kỹ thuật song song liên quan#
Để hiểu song song hóa tensor nằm ở đâu trong bức tranh điện toán phân tán rộng hơn, cần phân biệt phương pháp này 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 model: Song song hóa tensor là một phân nhóm cụ thể của song song hóa model. Trong khi song song hóa model nói chung là việc chia model trên các thiết bị theo bất kỳ cách nào, song song hóa tensor chỉ việc phân mảnh các tensor riêng lẻ bên trong một lớp.
- Tính song song tensor so với tính song song pipeline: Tính song song pipeline là một dạng song song hóa model khác, phân vùng mạng theo chiều sâu—đặt vài layer đầu tiên trên GPU 0, các layer tiếp theo trên GPU 1, v.v. Cách này tạo ra các phụ thuộc tuần tự gọi là bong bóng pipeline. Tính song song tensor chia chính các layer và thực thi chúng đồng thời mà không có độ 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ộ model được sao chép đầy đủ trên mỗi GPU, còn dataset huấn luyện được chia giữa các thiết bị. Với các kiến trúc được tối ưu hóa cao như Ultralytics YOLO26, vốn dễ dàng chạy trên 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 tham số của một lớp đơn lẻ vượt quá VRAM phần cứng, gây ra lỗi hết bộ nhớ (OOM).
Ứng dụng thực tế#
Song song hóa tensor không thể thiếu trong 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 khổng lồ:
- Huấn luyện Mô hình ngôn ngữ lớn (LLM): Các model nền tảng khổng lồ như Llama 3 của Meta dựa vào tính song song tensor, thường được triển khai bằng framework như NVIDIA Megatron-LM, mặc dù DeepSeek V3 đáng chú ý là đã huấn luyện mà không dùng phương pháp này, thay vào đó dựa vào tính song song pipeline và tính song song chuyên gia. Vì kích thước ẩn và các head chú ý của những model này rất lớn, việc chia chúng trên một node 8 GPU là bắt buộc để huấn luyện hiệu quả và duy trì độ trễ thấp trong suy luận thời gian thực.
- Mô hình thị giác lớn (LVM) và tạo sinh 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 khổng lồ, nhà nghiên cứu kết hợp tính song song tensor với tính song song pipeline trên các dịch vụ như AWS SageMaker để huấn luyện 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, vốn đòi hỏi các khối bộ nhớ liền kề khổng lồ.
Triển khai song song hóa tensor trong PyTorch#
Trước đây, 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 ngay trong framework. Dưới đây là ví dụ tạo tensor được phân mảnh theo hàng bằng API Distributed Tensor chính thức của PyTorch:
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}")Đối với các tác vụ thị giác máy tính được tối ưu cho thiết bị biên và nhu cầu triển khai model nhanh chóng, nhà phát triển thường dựa vào Ultralytics Platform để tự động tối ưu hóa việc sử dụng phần cứng. Trong khi các model nền tảng có hàng tỷ tham số đòi hỏi cấu hình song song tensor thủ công, bạn có thể mở rộng quy mô huấn luyện các model như YOLO26 một cách hiệu quả bằng các lệnh CLI đơn giản có thể dùng ngay. Điều này đảm bảo thông lượng tối đa bằng cách tận dụng liền mạch các kỹ thuật song song dữ liệu tích hợp sẵn cùng với các mẹo huấn luyện model hữu ích.










