Mastodon

Cálculo de memória GPU para servir LLMs

Quantas GPUs são necessárias para servir o modelo Llama 70B? Para responder a isso, é necessário saber a quantidade de memória GPU exigida pelo modelo de linguagem.

Cálculo de memória GPU para servir LLMs

Artigo original por Sam Stoelinga

Quantas GPUs são necessárias para servir o modelo Llama 70B? Para responder a isso, é necessário saber a quantidade de memória GPU exigida pelo modelo de linguagem.

A fórmula básica é:

\[ M = \frac {(P \times 4B​)} {(32/Q)} \times 1.2 \]

Símbolos e Descrições:

  • M: Memória de GPU em Gigabytes.
  • P: Número de parâmetros no modelo (por exemplo, um modelo 7B tem 7 bilhões de parâmetros).
  • 4B: 4 bytes, representando os bytes usados por cada parâmetro.
  • 32: Existem 32 bits em 4 bytes.
  • Q: Número de bits usados para carregar o modelo (por exemplo, 16 bits, 8 bits ou 4 bits).
  • 1.2: Representa uma sobrecarga de 20% para carregar elementos adicionais na memória da GPU.

Exemplo de Cálculo de Memória para o Llama 70B

Vamos aplicar a fórmula ao modelo Llama 70B, carregado com 16 bits e 70 bilhões de parâmetros:

\[ \frac {70 \times 4 bytes} {(32 / 16)} \times 1.2 = 168 GB \]

Isso exige bastante memória. Uma única GPU A100 de 80 GB não seria suficiente, mas duas A100 de 80 GB devem ser capazes de servir o modelo Llama 2 70B no modo de 16 bits.

Como Reduzir a Memória de GPU Necessária para o Llama 2 70B?

A quantização é uma técnica para reduzir a memória utilizada. Ela faz isso reduzindo a precisão dos parâmetros do modelo de ponto flutuante para representações de bits mais baixos, como inteiros de 8 bits. Isso reduz significativamente a necessidade de memória e computação, permitindo uma implantação mais eficiente do modelo, especialmente em dispositivos com recursos limitados. No entanto, a quantização requer gerenciamento cuidadoso para manter o desempenho do modelo, pois reduzir a precisão pode impactar a acurácia dos resultados.

Geralmente, a quantização para 8 bits oferece desempenho semelhante ao uso de 16 bits. No entanto, a quantização para 4 bits pode ter um impacto notável no desempenho do modelo.

Vamos a outro exemplo usando a quantização de 4 bits para o Llama 2 70B:

\[ \frac {70 \times 4 bytes} {(32 / 4)} \times 1.2 = 42 GB \]

Isso pode ser executado em 2 GPUs L4 de 24 GB.

Ferramentas e Recursos Relevantes

Link para o artigo original: Substratus