Repolode
microsoft

microsoft/TransformerCompression

SliceGPT сжимает трансформерные модели, включая LLM, после обучения, удаляя строки и столбцы матриц весов.

Звёзды
466
Форки
59
Открытые issues
27
Последний коммит
2 месяца назад

Что это?

SliceGPT уменьшает размер трансформерных сетей, в том числе больших языковых моделей, уже после обучения. Сначала к каждому слою применяются ортогональные преобразования, не меняющие выходы модели, а затем удаляются наименее значимые строки и столбцы матриц весов, выбранные по убыванию собственных значений. Структура модели остается прежней, но размерность эмбеддингов сокращается. Это ускоряет работу без дополнительной оптимизации кода и уменьшает объем памяти.

В репозитории есть Python-пакет `slicegpt` и скрипты для воспроизведения экспериментов из статьи на ICLR'24. Рабочие процессы включают сжатие модели, дообучение для восстановления качества на основе LoRA и оценку с помощью LM Eval Harness. Поддерживаются Phi-2, Phi-3-mini, несколько вариантов Llama-2 и Llama-3, а также модели OPT размером от 125M до 66B параметров.

Чтобы добавить новое семейство моделей, нужно реализовать адаптер модели и адаптер слоя, а затем обновить утилиту загрузки Hugging Face.

Ключевые возможности

  • 01Сжатие после обучения за счет уменьшения размерности эмбеддингов путем срезания матриц весов.
  • 02Ортогональные преобразования каждого слоя не меняют функцию модели перед срезанием.
  • 03На выходе получаются плотные матрицы весов меньшего размера, поэтому для ускорения не нужны пользовательские ядра.
  • 04Опциональное дообучение для восстановления качества с LoRA и байесовским поиском гиперпараметров.
  • 05Интеграция для оценки с помощью LM Eval Harness.
  • 06Интерфейс адаптеров для добавления новых архитектур трансформеров из Hugging Face.

Сценарии использования

  • Уменьшение объема памяти, необходимого моделям Phi-2 или Llama для запуска на GPU с ограниченными ресурсами.
  • Исследование сжатия LLM после обучения и воспроизведение результатов статьи SliceGPT.
  • Добавление поддержки SliceGPT для новой архитектуры трансформера с помощью адаптеров.

Быстрый старт

  1. 1

    Установите пакет slicegpt с дополнительными зависимостями для экспериментов

    pip install -e .[experiment]
  2. 2

    Сожмите microsoft/phi-2 с помощью SliceGPT из папки experiments

    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

Что важно знать

  • Поддерживаются только модели Hugging Face, перечисленные в README; для других моделей потребуется новый адаптер.
  • Для некоторых моделей требуется аутентификация Hugging Face с помощью --hf-token или HF_TOKEN.

Темы

Частые вопросы

Что такое TransformerCompression?
SliceGPT сжимает трансформерные модели, включая LLM, после обучения, удаляя строки и столбцы матриц весов. SliceGPT уменьшает размер трансформерных сетей, в том числе больших языковых моделей, уже после обучения. Сначала к каждому слою применяются ортогональные преобразования, не меняющие выходы модели, а затем удаляются наименее значимые строки и столбцы матриц весов, выбранные по убыванию собственных значений. Структура модели остается прежней, но размерность эмбеддингов сокращается. Это ускоряет работу без дополнительной оптимизации кода и уменьшает объем памяти.
TransformerCompression можно использовать бесплатно? Какая у него лицензия?
TransformerCompression распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
TransformerCompression всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в TransformerCompression — 10 сент. 2026 г..
Для чего можно использовать TransformerCompression?
Уменьшение объема памяти, необходимого моделям Phi-2 или Llama для запуска на GPU с ограниченными ресурсами. Исследование сжатия LLM после обучения и воспроизведение результатов статьи SliceGPT. Добавление поддержки SliceGPT для новой архитектуры трансформера с помощью адаптеров.
Как установить TransformerCompression?
Установите пакет slicegpt с дополнительными зависимостями для экспериментов: pip install -e .[experiment] Сожмите microsoft/phi-2 с помощью SliceGPT из папки experiments: 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
Где скачать TransformerCompression?
Исходный код и инструкции по установке — на GitHub: https://github.com/microsoft/TransformerCompression

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека NVIDIA с открытым исходным кодом для сжатия моделей глубокого обучения с помощью квантования, pruning, дистилляции, разреженности и спекулятивного декодирования, ускоряющих инференс.

5,6 тыс.+76 за неделю803PythonApache-2.0Обновлён 4 часа назад

Учебник на китайском языке, который объясняет принципы работы LLM на примере создания небольшой модели в стиле LLaMA2 с нуля: от Transformer и предобучения до дообучения, RAG и агентов.

34,8 тыс.+132 за неделю3,3 тыс.Jupyter NotebookOtherОбновлён 3 месяца назад