Calculadora de VRAM para Treinamento de LLM
Entradas
| Parâmetros | 7 |
|---|---|
| Memória por parâmetro | Adam em precisão mista (16 bytes/param) |
| Memória de ativações | 0 |
Calculadora de VRAM para Treinamento de LLM
Estime a VRAM de GPU necessária para fazer fine-tuning completo de um modelo de linguagem grande a partir do número de parâmetros, da escolha do otimizador e da memória de ativações, usando a regra do Adam em precisão mista de 16 bytes por parâmetro.
Entradas
Modelo
Ativações
Resultados
Insira um valor para ver os resultados.
Detalhes
VRAM para treinamento de LLM
Fazer fine-tuning completo de um modelo de linguagem grande precisa de muito mais memória de GPU do que executá-lo, e a razão é o otimizador. A inferência mantém apenas os pesos, mas o treinamento também precisa guardar um gradiente para cada parâmetro e o estado corrente do otimizador, e ainda somar as ativações armazenadas durante a passagem direta. Esta calculadora estima a VRAM total para o fine-tuning completo a partir do número de parâmetros, do custo de memória do otimizador por parâmetro e de um valor de ativações informado separadamente.
Os estados do modelo dominam
O maior custo fixo no treinamento são os estados do modelo — os pesos, seus gradientes e o estado do otimizador. Com parâmetros em bilhões e bytes por parâmetro, os estados do modelo ocupam
M=N⋅B GBO valor padrão para o treinamento em precisão mista com Adam é 16 bytes por parâmetro, que se decompõe assim: dois bytes para o peso de 16 bits usado na passagem direta, dois para seu gradiente de 16 bits, quatro para uma cópia mestra de 32 bits do peso mantida para estabilidade numérica e quatro para cada uma das duas estimativas de momento do Adam — o momento e a variância. Isso dá para cada parâmetro. Otimizadores mais econômicos reduzem os termos de estado do otimizador: o Adam de 8 bits armazena seus momentos em precisão menor, com cerca de 12 bytes por parâmetro, e o SGD simples com momento precisa de cerca de 8.
As ativações são informadas separadamente
Os estados do modelo são fixos uma vez escolhidos o modelo e o otimizador, mas as ativações não. Elas são os valores intermediários armazenados durante a passagem direta para que a passagem inversa possa calcular os gradientes, e seu tamanho escala com o tamanho do lote e o comprimento da sequência, não com o número de parâmetros. Por causa dessa independência, esta calculadora recebe a memória de ativações como sua própria entrada e simplesmente a soma:
V=M+Aonde é a memória de ativações em GB. A memória de ativações pode ser medida executando um único passo de treinamento e lendo o pico de uso, ou cortada drasticamente com checkpointing de ativações, que recomputa as ativações na passagem inversa em vez de mantê-las.
Exemplo resolvido
Considere um modelo de 7 bilhões de parâmetros ajustado com Adam em precisão mista e, para começar, sem estimativa de ativações:
MV=7×16=112 GB=112+0=112 GBOs estados do modelo sozinhos são 112 GB — já além de um único acelerador de 80 GB. Adicionar 20 GB realistas de ativações leva o total a 132 GB, o que deixa o ponto claro: mesmo um modelo 7B, trivial de servir em inferência de 16 bits, não pode passar por fine-tuning completo em uma única GPU comum. A memória bem menor necessária apenas para executar o modelo é tratada em Calculadora de VRAM para Inferência de LLM.
Por que o LoRA muda o quadro
A maior parte dos 16 bytes por parâmetro é o gradiente e o estado do otimizador, e estes existem apenas para os parâmetros que estão sendo treinados. O LoRA congela os pesos base e treina pequenas adaptadoras de baixo posto, então gradientes e estado do otimizador cobrem bem menos de um por cento dos parâmetros. Os pesos congelados ainda ocupam memória, mas eliminar o maior termo é o que permite que um modelo que precisa de 132 GB para fine-tuning completo caiba em uma única placa de 24 GB. O tamanho dessas adaptadoras, e como o posto as controla, é explorado em Calculadora de Parâmetros LoRA. Trate o número aqui como uma estimativa de planejamento e confirme-o contra um passo real de treinamento, já que buffers temporários e alocações de framework alteram o número verdadeiro.
Perguntas frequentes (FAQ)
De onde vêm os 16 bytes por parâmetro?
O treinamento em precisão mista com o otimizador Adam mantém várias cópias de cada parâmetro. Dois bytes guardam o peso de 16 bits usado na passagem direta e mais dois guardam seu gradiente de 16 bits. O otimizador Adam mantém então uma cópia mestra de 32 bits do peso (quatro bytes) mais duas estimativas de momento de 32 bits — o momento e a variância — com quatro bytes cada.
Somando tudo, temos 2 + 2 + 4 + 4 + 4 = 16 bytes por parâmetro, que é a estimativa padrão para os estados do modelo no fine-tuning completo.
Por que o LoRA precisa de muito menos memória?
O fine-tuning completo carrega gradientes e estado do otimizador para cada parâmetro, que é o grosso dos 16 bytes por parâmetro. O LoRA congela os pesos originais e treina apenas pequenas matrizes adaptadoras de baixo posto, então gradientes e estado do otimizador existem apenas para uma fração ínfima dos parâmetros — frequentemente bem abaixo de um por cento.
Os pesos base congelados ainda ocupam memória, mas não precisam de gradiente nem de estado do otimizador, o que remove o maior termo e permite fazer fine-tuning de modelos grandes em uma única GPU. O tamanho dessas adaptadoras é explorado na calculadora de parâmetros do LoRA.
Como estimo a memória de ativações?
A memória de ativações é o armazenamento dos valores intermediários mantidos durante a passagem direta para que os gradientes possam ser calculados na passagem inversa. Ao contrário dos estados do modelo, ela escala com o tamanho do lote e o comprimento da sequência, não com o número de parâmetros, por isso é informada separadamente aqui.
Ela pode ser medida diretamente executando um único passo de treinamento e lendo o pico de memória, ou reduzida drasticamente com checkpointing de ativações, que recomputa as ativações na passagem inversa em vez de armazená-las. Para um planejamento aproximado, comece com zero para ver o piso dos estados do modelo e depois some um valor medido.
Aviso legal
Esta é uma estimativa de primeira ordem da memória de fine-tuning completo. Ela omite buffers temporários, sobrecarga de comunicação e alocações específicas do framework, e trata as ativações como um único valor informado. Confirme contra um passo real de treinamento antes de dimensionar o hardware.