Tensor Parallelism
Узнай, как тензорный параллелизм сегментирует весовые матрицы между GPU для обучения массивных моделей. Исследуй, чем он отличается от параллелизма данных в Ultralytics.
Тензорный параллелизм — это продвинутый метод распределенного обучения, используемый в машинном обучении для разделения крупных отдельных математических структур (тензоров) между несколькими аппаратными ускорителями, такими как GPUs или TPU. При обучении массивных моделей глубинного обучения количество параметров может легко превысить объем памяти одного устройства. Вместо размещения целого слоя нейронной сети на одном GPU тензорный параллелизм сегментирует весовые матрицы и распределяет математические операции (например, умножение матриц) между несколькими устройствами в кластере. Это позволяет модели использовать суммарную память и вычислительную мощность всей аппаратной конфигурации, выполняя параллельные вычисления в парадигме Single-Program Multiple-Data (SPMD) и синхронизируя результаты через высокоскоростные соединения, такие как NVIDIA NVLink.
Link to this sectionКак работает тензорный параллелизм#
В основе нейронной сети лежат матричные умножения. Тензорный параллелизм распределяет эти операции путем разделения матриц по строкам или столбцам. Например, в полносвязном слое или механизме внимания Transformer один GPU может вычислять левую половину матрицы, а другой — правую. После завершения параллельных вычислений устройства обмениваются данными — часто с использованием быстрых коллективных операций All-Reduce — для агрегации частичных результатов перед передачей полного тензора на следующий слой. Недавние академические достижения 2025 года еще больше оптимизируют этот процесс, внедряя частично синхронизированные активации для снижения накладных расходов на коммуникацию, которые обычно ограничивают производительность крупных вычислительных кластеров.
Link to this sectionРазграничение смежных методов параллелизма#
Понимание того, как тензорный параллелизм вписывается в более широкий ландшафт распределенных вычислений, требует отличить его от других распространенных стратегий:
- Тензорный параллелизм против параллелизма модели: Тензорный параллелизм — это узкоспециализированная подкатегория параллелизма модели. В то время как общий параллелизм модели подразумевает разделение модели между устройствами любым способом, тензорный параллелизм относится строго к сегментированию отдельных тензоров внутри одного слоя.
- Тензорный параллелизм против конвейерного параллелизма: Конвейерный параллелизм — это еще одна форма параллелизма модели, которая разделяет сеть по глубине, размещая первые несколько слоев на GPU 0, следующие на GPU 1 и так далее. Это создает последовательные зависимости, известные как «пузыри конвейера». Тензорный параллелизм разделяет сами слои, выполняя их одновременно без последовательной задержки, но требует гораздо более высокой пропускной способности сети.
- Тензорный параллелизм против параллелизма данных: При параллелизме данных вся модель полностью реплицируется на каждом GPU, а между устройствами разделяется только обучающий набор данных. Для высокооптимизированных архитектур, таких как Ultralytics YOLO26, которые легко помещаются на современных GPU, параллелизм данных через PyTorch
DistributedDataParallelявляется методом по умолчанию. Тензорный параллелизм, как правило, необходим только тогда, когда параметры одного слоя превышают объем VRAM оборудования, что приводит к ошибкам нехватки памяти (OOM).
Link to this sectionРеальные применения#
Тензорный параллелизм незаменим в современной инфраструктуре ИИ, особенно для передовых архитектур, требующих масштабных вычислительных мощностей:
- Обучение больших языковых моделей (LLM): Массивные базовые модели, такие как Llama 3 от Meta и DeepSeek V3, используют фреймворки, такие как NVIDIA Megatron-LM, для реализации тензорного параллелизма. Поскольку размерности скрытых слоев и головы внимания в этих моделях настолько велики, их разделение между узлом из 8 GPU является обязательным для эффективного обучения и поддержания низкой задержки во время инференса в реальном времени.
- Большие модели компьютерного зрения (LVM) и 3D-генерация: По мере того как компьютерное зрение масштабируется в сторону массивных мультимодальных систем рассуждения, исследователи используют тензорный параллелизм в сочетании с конвейерным параллелизмом на сервисах, таких как AWS SageMaker, для обучения гигантских визуальных трансформеров (ViT). Этот метод позволяет обрабатывать изображения высокого разрешения и генерировать видео, что требует огромных непрерывных блоков памяти.
Link to this sectionРеализация тензорного параллелизма в PyTorch#
Исторически инженерам приходилось писать сложную кастомную распределенную логику для сегментирования тензоров. Недавно PyTorch представил DTensor (Distributed Tensor), что упростило этот рабочий процесс. Ниже приведен пример создания тензора с сегментированием по строкам с использованием официального API PyTorch Distributed Tensor:
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.






