A seguirPróximo guia
Otimizadores Lookahead e Lion
Técnico
GUIA Técnico
ZeRO (Zero Redundancy Optimizer) elimina o desperdício de duplicação de memória do paralelismo de dados, fragmentando o estado, gradientes e pesos do otimizador entre GPUs.
Ele permite treinar modelos enormes com a simplicidade do paralelismo de dados, mas com uma fração da memória por GPU.
No paralelismo de dados comum, cada GPU armazena uma cópia completa redundante do estado, gradientes e parâmetros do otimizador, o que é um enorme desperdício, especialmente para Adam, onde o estado do otimizador pode ser várias vezes maior que o tamanho do próprio modelo. ZeRO, introduzido por Microsoft no DeepSpeed, remove essa redundância particionando esses tensores entre GPUs para que cada dispositivo possua apenas uma fatia. ZeRO vem em três estágios progressivos: Estado do otimizador de fragmentos do Estágio 1, Estágio 2 adiciona fragmentação de gradiente e Estágio 3 fragmenta os próprios parâmetros. Conforme necessário, as GPUs reúnem as fatias ausentes por meio de comunicação, calculam e depois as liberam. O resultado é uma memória drasticamente menor por GPU, permitindo treinamento de bilhões a trilhões de parâmetros, ao mesmo tempo em que mantém o modelo de programação fácil de paralelismo de dados.
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.
A fragmentação está se tornando o padrão para treinamento em larga escala, em vez de uma opção exótica. Espere uma integração mais profunda com o descarregamento (enviando fatias para CPU ou NVMe via ZeRO-Infinity), melhor sobreposição de coleta total e dispersão reduzida com computação para ocultar seu custo e combinações com paralelismo de tensor e pipeline. À medida que os modelos continuam crescendo, os otimizadores fragmentados com uso eficiente de memória são fundamentais para ajustá-los a orçamentos de hardware realistas.
Usando o DeepSpeed ZeRO Stage 2 para ajustar um modelo de linguagem com vários bilhões de parâmetros que, de outra forma, sobrecarregaria a memória da GPU.
Treinamento com PyTorch FSDP, que fragmenta parâmetros, gradientes e estado do otimizador em GPUs e os reúne por camada sob demanda.
Aplicando ZeRO-Offload para enviar o estado do otimizador para a memória da CPU, permitindo que uma única GPU treine um modelo muitas vezes maior que seu VRAM.
Dimensionando um modelo de trilhões de parâmetros com ZeRO-Infinity, transmitindo fragmentos de parâmetros do armazenamento NVMe quando a memória da GPU e da CPU acabar.
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
ZeRO (Zero Redundancy Optimizer) elimina o desperdício de duplicação de memória do paralelismo de dados, fragmentando o estado, gradientes e pesos do otimizador entre GPUs. Ele permite treinar modelos enormes com a simplicidade do paralelismo de dados, mas com uma fração da memória por GPU.
O paralelismo de dados padrão armazena uma cópia completa do estado, gradientes e pesos do otimizador em cada GPU; ZeRO os fragmenta para que cada GPU contenha apenas uma fatia.
Adam mantém estimativas em execução, como primeiro e segundo momentos por parâmetro, que combinados com pesos mestres fp32 podem diminuir o tamanho do próprio modelo.
O Estágio 1 fragmenta o estado do otimizador, o Estágio 2 adiciona gradientes e o Estágio 3 vai além, fragmentando os parâmetros do modelo entre GPUs também.
Antes de calcular uma camada, um all-gather reúne todos os seus parâmetros em cada GPU; uma vez feito isso, as fatias não pertencentes são liberadas para recuperar memória.
O Fully Sharded Data Parallel (FSDP) do PyTorch fragmenta parâmetros, gradientes e estado do otimizador, reunindo-os e refragmentando-os dinamicamente, espelhando o ZeRO.
Continue aprendendo
Mais guias escolhidos para este tópico
A seguirPróximo guia
Otimizadores Lookahead e Lion
Técnico