Repolode
microsoft

microsoft/TransformerCompression

SliceGPT es un método de compresión posterior al entrenamiento que reduce modelos transformer, como los LLM, eliminando filas y columnas de las matrices de pesos.

Estrellas
466
Forks
59
Issues abiertos
27
Último commit
hace 2 meses

¿Qué es?

SliceGPT reduce el tamaño de las redes transformer, incluidos los modelos de lenguaje grandes, después del entrenamiento. Primero aplica transformaciones ortogonales a cada capa, que mantienen intactas las salidas del modelo, y luego elimina las filas y columnas menos significativas de las matrices de pesos, seleccionadas según la disminución de los valores propios. La estructura del modelo se mantiene, pero se reduce la dimensión de embedding, lo que acelera la ejecución sin necesidad de optimizaciones de código adicionales y reduce el uso de memoria.

El repositorio incluye el paquete de Python `slicegpt` y scripts para reproducir los experimentos del artículo de ICLR'24. Los flujos de trabajo incluyen recortar un modelo, ejecutar un ajuste fino de recuperación (basado en LoRA) y evaluar con LM Eval Harness. Entre los modelos compatibles se encuentran Phi-2, Phi-3-mini, varias variantes de Llama-2 y Llama-3, y modelos OPT de entre 125M y 66B de parámetros.

Se pueden añadir nuevas familias de modelos implementando un adaptador de modelo y un adaptador de capa, y actualizando después la utilidad de carga de Hugging Face.

Funciones clave

  • 01Compresión posterior al entrenamiento que reduce la dimensión de embedding mediante el recorte de matrices de pesos.
  • 02Las transformaciones ortogonales aplicadas a cada capa mantienen intacta la función del modelo antes del recorte.
  • 03Genera matrices de pesos densas y más pequeñas, por lo que no se necesitan kernels personalizados para acelerar la ejecución.
  • 04Ajuste fino de recuperación opcional con LoRA y búsqueda bayesiana de hiperparámetros.
  • 05Integración para evaluar con LM Eval Harness.
  • 06Interfaz de adaptadores para añadir nuevas arquitecturas transformer de Hugging Face.

Casos de uso

  • Reducir el uso de memoria de modelos Phi-2 o Llama para desplegarlos en GPU con recursos limitados.
  • Investigar la compresión de LLM posterior al entrenamiento y reproducir los resultados del artículo de SliceGPT.
  • Añadir compatibilidad con SliceGPT para una nueva arquitectura transformer mediante adaptadores.

Inicio rápido

  1. 1

    Instala el paquete slicegpt con las dependencias adicionales de experimentos

    pip install -e .[experiment]
  2. 2

    Desde la carpeta experiments, comprime microsoft/phi-2 con 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 usarlo

  • Solo se admiten los modelos de Hugging Face indicados en el README; para otros modelos se necesita un nuevo adaptador.
  • Algunos modelos requieren autenticación de Hugging Face mediante --hf-token o HF_TOKEN.

Temas

Preguntas frecuentes

¿Qué es TransformerCompression?
SliceGPT es un método de compresión posterior al entrenamiento que reduce modelos transformer, como los LLM, eliminando filas y columnas de las matrices de pesos. SliceGPT reduce el tamaño de las redes transformer, incluidos los modelos de lenguaje grandes, después del entrenamiento. Primero aplica transformaciones ortogonales a cada capa, que mantienen intactas las salidas del modelo, y luego elimina las filas y columnas menos significativas de las matrices de pesos, seleccionadas según la disminución de los valores propios. La estructura del modelo se mantiene, pero se reduce la dimensión de embedding, lo que acelera la ejecución sin necesidad de optimizaciones de código adicionales y reduce el uso de memoria.
¿TransformerCompression es gratuito? ¿Qué licencia tiene?
TransformerCompression es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿TransformerCompression sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de TransformerCompression fue el 10 sept 2026.
¿Para qué puedo usar TransformerCompression?
Reducir el uso de memoria de modelos Phi-2 o Llama para desplegarlos en GPU con recursos limitados. Investigar la compresión de LLM posterior al entrenamiento y reproducir los resultados del artículo de SliceGPT. Añadir compatibilidad con SliceGPT para una nueva arquitectura transformer mediante adaptadores.
¿Cómo se instala TransformerCompression?
Instala el paquete slicegpt con las dependencias adicionales de experimentos: pip install -e .[experiment] Desde la carpeta experiments, comprime microsoft/phi-2 con 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
¿Dónde consigo TransformerCompression?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/microsoft/TransformerCompression

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados