O paralelismo de tensores divide a inferência local de IA, repartindo grandes tensores de pesos dentro de cada camada do transformador por várias GPUs e combinando os resultados parciais.
Isto é diferente de atribuir um pedido separado a cada GPU ou de atribuir camadas diferentes a dispositivos diferentes. Todas as GPUs com paralelismo de tensores participam na mesma camada, frequentemente em cada token gerado. Esta abordagem pode permitir que um modelo seja distribuído por várias GPUs domésticas, mas transforma a comunicação entre GPUs numa parte do caminho crítico da inferência.
O paralelismo de tensores divide uma camada em vez de copiar o modelo inteiro
O paralelismo de dados fornece uma cópia do modelo a cada GPU e divide os pedidos ou lotes. O paralelismo de tensores faz o oposto para um único modelo: divide grandes tensores de parâmetros dentro de camadas individuais entre vários dispositivos.
A NVIDIA NeMo define o TP como a distribuição do tensor de parâmetros de uma camada individual por várias GPUs. Cada GPU contém apenas um fragmento da matriz em causa.
Isto é útil quando um modelo, ou até uma única camada grande, não cabe confortavelmente numa só GPU doméstica.
Os fragmentos por coluna e por linha dividem o trabalho da multiplicação de matrizes
As camadas dos transformadores contêm grandes projeções lineares. Uma divisão paralela por colunas atribui diferentes colunas de saída a GPUs diferentes, enquanto uma divisão paralela por linhas atribui diferentes linhas de entrada ou intervalos de características.
O tutorial de paralelismo de tensores do PyTorch aplica estilos de paralelismo por linhas e por colunas às camadas dos transformadores. Cada rank calcula um produto matricial parcial a partir do seu fragmento de pesos local.
O modelo continua a representar uma única camada lógica. A divisão altera o local onde partes dos cálculos são executadas e a forma como os resultados parciais são combinados.
A comunicação coletiva reconstrói a saída lógica da camada
Como cada GPU vê apenas uma parte do tensor, algumas operações precisam de all-reduce, all-gather, reduce-scatter ou operações coletivas equivalentes antes de o cálculo seguinte obter a representação necessária.
O Open MPI define o AllReduce como a combinação de valores entre processos e a distribuição do resultado de volta por todos os participantes. Os ambientes de execução com paralelismo de tensores usam este tipo de operação coletiva, juntamente com all-gather e reduce-scatter, para reconstruir ou redistribuir os resultados fragmentados das camadas.
Numa estação de trabalho doméstica, a qualidade da ligação entre GPUs pode determinar se a divisão poupa tempo ou apenas aumenta a capacidade.
As interligações rápidas são importantes porque a comunicação ocorre à frequência das camadas
O paralelismo de tensores pode exigir várias operações coletivas em cada bloco do transformador e em cada token gerado. Os sistemas que utilizam apenas PCIe têm uma largura de banda entre dispositivos muito inferior à das interligações de aceleradores topo de gama concebidas para grandes trabalhos distribuídos.
A RCCL da AMD documenta o transporte peer-to-peer para GPUs ligadas por PCIe. A biblioteca coletiva exata varia consoante a plataforma, mas a mesma limitação de topologia aplica-se.
Duas GPUs com VRAM combinada suficiente podem executar um modelo maior com sucesso e, ainda assim, proporcionar uma taxa de tokens inferior ao esperado, porque cada camada fica à espera da sincronização.
GPUs diferentes podem fazer com que o fragmento mais lento defina o ritmo
Uma camada com paralelismo de tensores só avança depois de chegarem os resultados parciais necessários. Se uma GPU tiver menor capacidade de processamento, menor largura de banda de memória ou uma ligação mais lenta, o rank mais rápido pode passar tempo à espera.
A funcionalidade de inferência com paralelismo automático de tensores do DeepSpeed foi concebida em torno do fragmentação do modelo num grupo de processos de inferência. A eficiência prática pressupõe que os dispositivos participantes conseguem realizar uma quantidade de trabalho equilibrada.
Um conjunto doméstico de GPUs variadas pode continuar a ser útil para fazer o modelo caber, mas tamanhos de fragmento iguais não são automaticamente ideais quando o hardware difere substancialmente.
Escolha o paralelismo de tensores para camadas largas e memória limitada numa única GPU
O caso mais forte é o de um modelo cujas grandes dimensões ocultas e tensores das camadas precisam de ser divididos entre GPUs, especialmente quando os dispositivos dispõem de uma interligação local rápida. Não é automaticamente a melhor forma de servir vários pedidos pequenos e independentes.
O artigo da ZimaSpace sobre planeamento da memória para aceleradores locais de IA fornece a referência de capacidade; o paralelismo de tensores altera essa referência ao distribuir as camadas de um único modelo por vários dispositivos.
Faça uma medição com uma GPU, quando possível, e depois com duas ou mais utilizando o mesmo modelo, prompt, contexto e lote. Registe a memória por GPU, os tokens por segundo, a latência, o tempo das operações coletivas e a utilização da ligação.
O artigo da ZimaSpace sobre pressão da IA local para vários utilizadores apresenta a comparação do lado do serviço: o TP faz com que um modelo abranja vários dispositivos, enquanto a concorrência de pedidos determina quantos contextos independentes competem por esse modelo distribuído.
Centro de Tecnologia e IA
Mais para Ler

Why Plex May Re-Analyze Media After a Server Upgrade
Plex may re-analyze media after an upgrade. Separate finite maintenance work from repeated scans, path issues, or database faults.

What Actually Sets the Plex Performance Ceiling?
A dependency model for Plex performance that helps you identify the first saturated stage instead of upgrading every component at once.

Plex Networking Explained: Discovery, DNS, Routing, and Remote Reachability
A layer-by-layer model of Plex reachability that separates local discovery from IP routing and remote NAT or port-forwarding problems.

