A seguirPróximo guia
Paralelismo de dados
Técnico
GUIA Técnico
Fully Sharded Data Parallel (FSDP) é uma técnica de treinamento distribuída que divide os parâmetros, gradientes e estados do otimizador de um modelo em muitas GPUs para que cada dispositivo retenha apenas uma fatia.
Isso possibilita treinar modelos enormes em hardware que nunca caberia o modelo inteiro na memória de uma única GPU.
O paralelismo de dados tradicional mantém uma cópia completa do modelo em cada GPU, o que desperdiça memória e limita o tamanho do modelo. O FSDP, popularizado pelo PyTorch de Meta e inspirado no ZeRO de Microsoft, em vez disso, fragmenta três coisas entre dispositivos: parâmetros, gradientes e estados do otimizador. Durante o avanço, cada GPU reúne temporariamente todos os pesos da camada que está computando por meio de uma coleta total, executa a computação e libera imediatamente a cópia coletada. A passagem para trás funciona de forma semelhante, seguida por uma redução de dispersão que distribui fatias de gradiente de volta para suas GPUs proprietárias. Como cada dispositivo armazena permanentemente apenas uma fração do modelo, o uso da memória cai aproximadamente linearmente com o número de GPUs, permitindo que as equipes treinem modelos com dezenas ou centenas de bilhões de parâmetros.
As decisões de arquitetura impulsionam o desempenho e os custos operacionais durante anos.
A educação técnica ajuda as equipes a escolher a pilha certa, não apenas a mais nova.
Melhores escolhas de engenharia reduzem incidentes de confiabilidade na produção.
O FSDP está se tornando o padrão para treinamento aberto de modelos grandes, com o FSDP2 no PyTorch melhorando a usabilidade e a fragmentação por parâmetro. Espere uma integração mais estreita com paralelismo de tensor e pipeline para modelos de trilhões de parâmetros, melhor suporte para precisão mista e fp8, e empacotamento automático mais inteligente que escolhe os limites de fragmentação para você. À medida que as interconexões entre GPUs, como NVLink e InfiniBand, ficam mais rápidas, o custo de comunicação do sharding continua diminuindo, tornando-o prático em escalas cada vez maiores.
Ajustando um modelo Llama de 70 bilhões de parâmetros em 8 GPUs que individualmente não conseguem suportar todos os pesos.
Pré-treinar grandes modelos de linguagem em laboratórios de IA, fragmentando estados do otimizador (que dominam a memória com Adam) em centenas de aceleradores.
Pesquisadores usando o wrapper FSDP do PyTorch para treinar transformadores de visão em um cluster universitário sem comprar GPUs de 80 GB.
Combinando FSDP com bfloat16 de precisão mista para reduzir aproximadamente pela metade a memória e acelerar o rendimento de treinamento em modelos multimodais.
A otimização de um benchmark pode ocultar fraquezas mais amplas do sistema.
Os custos de infraestrutura e manutenção são frequentemente subestimados.
As lacunas de segurança e observabilidade podem aumentar à medida que os sistemas se tornam mais complexos.
Defina metas de latência, qualidade e custo antes da implementação.
Benchmark sob condições realistas de carga e dados.
Monitoramento de instrumentos para erros, desvios e impacto no usuário.
Prepare caminhos de reversão e resposta a incidentes antes de escalar.
Free newsletter
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Fully Sharded Data Parallel (FSDP) é uma técnica de treinamento distribuída que divide os parâmetros, gradientes e estados do otimizador de um modelo em muitas GPUs para que cada dispositivo retenha apenas uma fatia. Isso torna possível o treinamento de modelos enormes em hardware que nunca caberia o modelo inteiro na memória de uma GPU.
O FSDP fragmenta os parâmetros, gradientes e estados do otimizador do modelo entre dispositivos, enquanto o paralelismo de dados padrão replica o modelo completo em cada GPU.
Antes de uma camada ser executada, o FSDP realiza uma coleta total para montar temporariamente os parâmetros completos de todos os fragmentos e, em seguida, os libera.
Manter apenas um fragmento permanentemente e coletar pesos completos transitoriamente é o que mantém o uso de memória baixo e aproximadamente proporcional a uma fração do modelo.
A fragmentação de parâmetros, gradientes e estados do otimizador do FSDP segue de perto as ideias introduzidas no ZeRO de Microsoft da biblioteca DeepSpeed.
O FSDP pré-busca os parâmetros da próxima camada enquanto a camada atual ainda está computando, sobrepondo a comunicação geral com trabalho útil.
Continue aprendendo
Mais guias escolhidos para este tópico
A seguirPróximo guia
Paralelismo de dados
Técnico