Biblioteca Python open source da Intel para comprimir modelos de deep learning com quantização, esparsidade e destilação em PyTorch, JAX e ONNX.
microsoft/TransformerCompression
SliceGPT é um método de compressão pós-treinamento que reduz modelos transformer, como LLMs, removendo linhas e colunas das matrizes de pesos.
- Estrelas
- 466
- Forks
- 59
- Issues abertas
- 27
- Último commit
- há 2 meses
O que é?
O SliceGPT reduz o tamanho de redes transformer, incluindo grandes modelos de linguagem, após o treinamento. Primeiro, aplica transformações ortogonais a cada camada, que não alteram as saídas do modelo, e depois remove as linhas e colunas menos significativas das matrizes de pesos, selecionadas com base na queda dos autovalores. A estrutura do modelo permanece a mesma, mas a dimensão do embedding é reduzida, o que traz ganhos de velocidade sem otimizações adicionais no código e diminui o uso de memória.
O repositório contém o pacote Python `slicegpt` e scripts para reproduzir os experimentos do artigo da ICLR'24. Os fluxos de trabalho incluem fatiar um modelo, executar fine-tuning de recuperação (baseado em LoRA) e avaliar com o LM Eval Harness. Os modelos compatíveis incluem Phi-2, Phi-3-mini, várias variantes de Llama-2 e Llama-3, além de modelos OPT de 125M a 66B parâmetros.
Novas famílias de modelos podem ser adicionadas implementando um adaptador de modelo e um adaptador de camada e, em seguida, atualizando o utilitário de carregamento do Hugging Face.
Recursos principais
- 01Compressão pós-treinamento que reduz a dimensão do embedding ao fatiar matrizes de pesos.
- 02Transformações ortogonais em cada camada mantêm a função do modelo inalterada antes do fatiamento.
- 03Gera matrizes de pesos densas e menores, permitindo ganhos de velocidade sem kernels personalizados.
- 04Fine-tuning de recuperação opcional com LoRA e busca Bayesiana de hiperparâmetros.
- 05Integração para avaliação com o LM Eval Harness.
- 06Interface de adaptadores para adicionar novas arquiteturas transformer do Hugging Face.
Casos de uso
- Reduzir o uso de memória de modelos Phi-2 ou Llama para implantação em GPUs com recursos limitados.
- Pesquisar métodos de compressão pós-treinamento de LLMs e reproduzir os resultados do artigo SliceGPT.
- Adicionar suporte ao SliceGPT para uma nova arquitetura transformer por meio de adaptadores.
Início rápido
- 1
Instale o pacote slicegpt com as dependências extras de experimentos
pip install -e .[experiment] - 2
Na pasta experiments, comprima microsoft/phi-2 com SliceGPT
python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
Antes de usar
- São compatíveis apenas os modelos do Hugging Face listados no README; outros modelos precisam de um novo adaptador.
- Alguns modelos exigem autenticação do Hugging Face via --hf-token ou HF_TOKEN.
Tópicos
Perguntas frequentes
- O que é TransformerCompression?
- SliceGPT é um método de compressão pós-treinamento que reduz modelos transformer, como LLMs, removendo linhas e colunas das matrizes de pesos. O SliceGPT reduz o tamanho de redes transformer, incluindo grandes modelos de linguagem, após o treinamento. Primeiro, aplica transformações ortogonais a cada camada, que não alteram as saídas do modelo, e depois remove as linhas e colunas menos significativas das matrizes de pesos, selecionadas com base na queda dos autovalores. A estrutura do modelo permanece a mesma, mas a dimensão do embedding é reduzida, o que traz ganhos de velocidade sem otimizações adicionais no código e diminui o uso de memória.
- TransformerCompression é gratuito? Qual é a licença?
- TransformerCompression é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- TransformerCompression ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de TransformerCompression foi em 10 de set. de 2026.
- Para que posso usar TransformerCompression?
- Reduzir o uso de memória de modelos Phi-2 ou Llama para implantação em GPUs com recursos limitados. Pesquisar métodos de compressão pós-treinamento de LLMs e reproduzir os resultados do artigo SliceGPT. Adicionar suporte ao SliceGPT para uma nova arquitetura transformer por meio de adaptadores.
- Como instalar TransformerCompression?
- Instale o pacote slicegpt com as dependências extras de experimentos: pip install -e .[experiment] Na pasta experiments, comprima microsoft/phi-2 com SliceGPT: python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
- Onde consigo TransformerCompression?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/microsoft/TransformerCompression
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Backend de quantização para PyTorch do Hugging Face Optimum, que quantiza pesos e ativações de int2 a float8.
Um toolkit para combinar pesos de modelos de linguagem grandes pré-treinados com diversos algoritmos de merge, usando CPU ou GPU.
Biblioteca de treinamento nativa de PyTorch DTensor para fine-tuning e pré-treinamento de LLMs, VLMs e modelos de difusão diretamente de checkpoints do Hugging Face.
Biblioteca open source da NVIDIA para compactar modelos de deep learning com quantização, pruning, destilação, esparsidade e speculative decoding, acelerando a inferência.
Tutorial aberto em chinês que ensina os princípios dos LLMs construindo do zero um modelo pequeno no estilo LLaMA2, com Transformer, pré-treinamento, fine-tuning, RAG e agentes.