Intelが提供するオープンソースのPythonライブラリ。PyTorch、JAX、ONNXに対応し、量子化・スパース化・蒸留で深層学習モデルを圧縮します。
microsoft/TransformerCompression
SliceGPTは、重み行列の行と列をスライスしてLLMなどのTransformerモデルを縮小する、学習後圧縮手法です。
- スター
- 466
- フォーク
- 59
- 未解決の Issue
- 27
- 最終コミット
- 2 か月前
これは何?
SliceGPTは、大規模言語モデルを含むTransformerネットワークを、学習後に小型化します。まず各層に直交変換を適用します。この変換ではモデルの出力は変わりません。次に、固有値の減衰に基づいて選んだ重要度の低い重み行列の行と列を削除します。モデルの構造は維持したまま埋め込み次元を削減できるため、追加のコード最適化なしで高速化し、メモリ使用量も抑えられます。
このリポジトリには、`slicegpt` Pythonパッケージと、ICLR'24論文の実験を再現するためのスクリプトが含まれています。モデルのスライス、復元のためのファインチューニング(LoRAベース)、LM Eval Harnessによる評価などのワークフローを利用できます。対応モデルには、Phi-2、Phi-3-mini、複数のLlama-2およびLlama-3のバリアント、125Mから66BパラメータまでのOPTモデルがあります。
新しいモデルファミリーを追加するには、モデルアダプターとレイヤーアダプターを実装し、Hugging Faceの読み込みユーティリティを更新します。
主な機能
- 01重み行列をスライスして埋め込み次元を削減する学習後圧縮。
- 02各層に直交変換を適用することで、スライス前のモデルの機能を維持。
- 03密な小型重み行列を生成するため、カスタムカーネルなしで高速化が可能。
- 04LoRAによる復元のためのファインチューニングと、ベイズ最適化によるハイパーパラメータ探索に対応。
- 05LM Eval Harnessとの評価連携。
- 06新しいHugging Face Transformerアーキテクチャを追加するためのアダプターインターフェース。
ユースケース
- 限られたGPU環境へのデプロイに向けて、Phi-2やLlamaモデルのメモリ使用量を削減する。
- LLMの学習後圧縮を研究し、SliceGPT論文の結果を再現する。
- アダプターを使って、新しいTransformerアーキテクチャにSliceGPTの対応を追加する。
クイックスタート
- 1
experiment extras付きでslicegptパッケージをインストールします
pip install -e .[experiment] - 2
experimentsフォルダーから、SliceGPTでmicrosoft/phi-2を圧縮します
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
使う前に知っておきたいこと
- READMEに記載されているHugging Faceモデルのみサポートされています。その他のモデルには新しいアダプターが必要です。
- 一部のモデルでは、--hf-tokenまたはHF_TOKENを使ったHugging Face認証が必要です。
トピック
よくある質問
- TransformerCompression とは?
- SliceGPTは、重み行列の行と列をスライスしてLLMなどのTransformerモデルを縮小する、学習後圧縮手法です。 SliceGPTは、大規模言語モデルを含むTransformerネットワークを、学習後に小型化します。まず各層に直交変換を適用します。この変換ではモデルの出力は変わりません。次に、固有値の減衰に基づいて選んだ重要度の低い重み行列の行と列を削除します。モデルの構造は維持したまま埋め込み次元を削減できるため、追加のコード最適化なしで高速化し、メモリ使用量も抑えられます。
- TransformerCompression は無料で使えますか?ライセンスは?
- TransformerCompression は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- TransformerCompression は今もメンテナンスされていますか?
- 半年以内に更新あり。TransformerCompression の最終コミットは 2026年9月10日 です。
- TransformerCompression は何に使えますか?
- 限られたGPU環境へのデプロイに向けて、Phi-2やLlamaモデルのメモリ使用量を削減する。 LLMの学習後圧縮を研究し、SliceGPT論文の結果を再現する。 アダプターを使って、新しいTransformerアーキテクチャにSliceGPTの対応を追加する。
- TransformerCompression のインストール方法は?
- experiment extras付きでslicegptパッケージをインストールします: pip install -e .[experiment] experimentsフォルダーから、SliceGPTでmicrosoft/phi-2を圧縮します: 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 をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Hugging Face Optimum向けのPyTorch量子化バックエンド。モデルの重みと活性化をint2からfloat8まで量子化できます。
CPUまたはGPUで動作し、多彩なマージ手法を使って重みを組み合わせ、事前学習済み大規模言語モデルを統合するツールキット。
Hugging Faceのチェックポイントから直接、LLM、VLM、拡散モデルをファインチューニング・事前学習できる、PyTorch DTensorネイティブのトレーニングライブラリ。
量子化、枝刈り、蒸留、スパース化、投機的デコードによって深層学習モデルを圧縮し、推論を高速化するNVIDIAのオープンソースライブラリ。
小規模なLLaMA2風モデルをゼロから構築し、Transformer、事前学習、ファインチューニング、RAG、エージェントを通じてLLMの原理を学ぶ、中国語のオープンチュートリアル。