Repolode
microsoft

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. 1

    Instale o pacote slicegpt com as dependências extras de experimentos

    pip install -e .[experiment]
  2. 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