Transformers documentation

VPTQ

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

VPTQ

Vector Post-Training Quantization (VPTQ) é um método de Post-Training Quantization (PTQ) que utiliza quantização vetorial para quantizar LLMs em uma largura de bits extremamente baixa (<2-bit). O VPTQ pode comprimir um modelo de 70B, ou até mesmo de 405B, para 1-2 bits sem re-treinamento, mantendo um alto grau de precisão. Trata-se de um algoritmo de quantização leve que leva cerca de 17 horas para quantizar um modelo de 405B. O VPTQ oferece inferência de quantização ágil, com baixo overhead de decodificação e alto throughput e Time To First Token (TTFT).

Execute o comando abaixo para instalar o VPTQ, que fornece kernels eficientes para inferência em GPUs NVIDIA e AMD.

pip install vptq

A VPTQ-community oferece uma coleção de modelos quantizados com VPTQ. O nome do modelo contém informações sobre sua largura de bits (excluindo o overhead de cookbook, parâmetros e padding). Considere o modelo [Meta-Llama-3.1-70B-Instruct-v8-k65536-256-woft] como um exemplo.

  • O nome do modelo é Meta-Llama-3.1-70B-Instruct.
  • O número de centróides é dado por 65536 (2^16).
  • O número de centróides residuais é dado por 256 (2^8).

O cálculo da largura de bits equivalente é dado a seguir.

  • índice: log2(65536) = 16 / 8 = 2 bits
  • índice residual: log2(256) = 8 / 8 = 1-bit
  • largura total em bits: 2 + 1 = 3 bits

A partir daqui, estime o tamanho do modelo multiplicando 70B * 3-bits / 8-bits/byte, resultando em um total de 26,25GB.

Carregue um modelo quantizado com VPTQ usando from_pretrained().

from transformers import AutoTokenizer, AutoModelForCausalLM

quantized_model = AutoModelForCausalLM.from_pretrained(
    "VPTQ-community/Meta-Llama-3.1-70B-Instruct-v16-k65536-65536-woft",
    dtype="auto", 
    device_map="auto"
)

Para quantizar seu próprio modelo, consulte o tutorial VPTQ Quantization Algorithm Tutorial.

Benchmarks

O VPTQ atinge melhor precisão e maior throughput com menor sobrecarga de quantização em modelos de diferentes tamanhos. Os resultados experimentais a seguir são apenas para referência; o VPTQ pode alcançar melhores resultados com parâmetros razoáveis, especialmente em termos de precisão do modelo e velocidade de inferência.

ModelbitwidthW2↓C4↓AvgQA↑tok/s↑mem(GB)custo/h↓
LLaMA-2 7B2.026.138.0758.239.92.282
2.265.957.8759.435.72.483.1
LLaMA-2 13B2.025.327.1562.426.94.033.2
2.185.287.0463.118.54.313.6
LLaMA-2 70B2.073.935.7268.69.719.5419
2.113.925.7168.79.720.0119

Recursos

Veja um exemplo de demonstração do VPTQ no Space de demonstração online do VPTQ ou tente executar o notebook de inferência do VPTQ.

Para mais informações, leia o paper do VPTQ.

Update on GitHub