Código AbertoPesquisa 🇷🇺 08.08.2026 16:02

Superando OOM no PyTorch: Treinando Gráficos Gigantes em uma GPU Comum

Disk Sparse AdamDisk Sparse Adam
Um desenvolvedor criou o Disk Sparse Adam (DSA), um otimizador out-of-core para PyTorch que move os estados de momento do otimizador para o disco via mmap, reduzindo drasticamente o uso de memória para treinar grandes modelos esparsos. Isso permite treinar em GPUs de consumo e até no Google Colab gratuito, com benchmark mostrando zero overhead de VRAM em um milhão de entidades.
O artigo apresenta o Disk Sparse Adam (DSA), um novo otimizador out-of-core para PyTorch projetado para treinar modelos esparsos massivos, como embeddings de grafos de conhecimento com milhões de nós, em GPUs de nível consumidor. O torch.optim.SparseAdam padrão armazena os estados do primeiro e segundo momentos na memória, o que, para um modelo com 10 milhões de entidades e vetores de 128 dimensões, consome cerca de 10,24 GB extras, frequentemente levando a erros de falta de memória na CUDA. O DSA, em vez disso, armazena essas matrizes de momentos em disco como arquivos binários e as mapeia na memória usando o mecanismo mmap do sistema operacional, lendo e escrevendo apenas os estados do lote ativo em cada etapa de otimização. O otimizador é projetado como um substituto direto para pipelines padrão do PyTorch e suporta tanto espaços euclidianos quanto hiperbólicos (bola de Poincaré). O autor relata que o uso de memória para os estados do otimizador cai de gigabytes para megabytes, e um benchmark no Kaggle com 1 milhão de entidades mostrou 0,00 MB de overhead de VRAM e um throughput de 134.212 amostras por segundo. O DSA está disponível no GitHub sob a licença MIT, com limitações incluindo a necessidade de um SSD NVMe para melhor desempenho e compatibilidade apenas com gradientes esparsos, como aqueles de torch.nn.Embedding ou EmbeddingBag.
Fonte: Habr — хаб ИИ — original
Nossos posts anteriores sobre este tópico ↓
Notícias frescas