FujitsuResearch/OneCompression

Python package for LLM compression

Fujitsu One Compression (OneComp) – 概要

OneCompは、大規模言語モデル (LLMs) を圧縮し、精度を大きく損なうことなくGPU(またはCPU/MPSデバイス)のメモリに収めるためのPythonライブラリです。以下の単一コマンドで実行できます:

onecomp meta-llama/Llama-2-7b-hf

またはPythonから Runner.auto_run() を使用します。このツールは自動的に以下を行います:

  1. VRAM容量を検出します。
  2. 適合するレイヤーごとのビット幅(例:4-bit、3-bit、sub-1-bit)を選択します。
  3. 高度な学習後量子化技術を使用してモデルを量子化します。
  4. 量子化されたモデルを評価し、結果をディスクに書き込みます。

主な機能 (READMEより)

機能 説明
Quantization Error Propagation (QEP) 標準的な学習後量子化の後、QEPは量子化誤差をネットワーク全体に伝播させ、後続のレイヤーで補償することで精度を向上させます。
Layer-Projected Coordinate Descent (LPCD) 緩和された最適化問題を解き、解を各レイヤーの量子化器に投影することで、任意のサブモジュールを量子化できる柔軟なPTQフレームワークです。
AutoBit ビット幅の割り当てを整数線形計画法として定式化し、VRAM予算に合わせて最適なレイヤーごとのビットを自動選択する混合精度量子化です。
JointQ 重み量子化とスケーリング係数を同時に最適化し、グループ化量子化(例:groupsize = 128の4-bit)をサポートします。
MDBF (Multi-Envelope Double Binary Factorization) 各重み行列を符号付き二値行列とFP16の「エンベロープ」の和として表現する強力な二値因子量子化器で、ADMM/勾配微調整によるsub-1-bit圧縮を可能にします。
Block-wise PTQ FP16の教師モデルに対してブロックごとに蒸留を行い、中間表現の誤差を低減します。
LoRA SFT Post-Process LoRAアダプターを使用して量子化モデルを微調整し、精度を回復したりドメイン知識を追加したりします。
Rotation Preprocessing 量子化前に回転行列 (SpinQuant/OstQuant) を学習して誤差を低減します。回転はロード時に重みに組み込まれます。
vLLM Plugin Integration 内蔵プラグインにより、高性能なvLLM推論エンジンで量子化モデルを提供でき、Open WebUIと組み合わせてローカルのChatGPT風UIを実現できます。
GGUF Export & Hugging Face Hub モデルをGGUF v3形式 (llama.cpp/Ollama用) に変換し、量子化レシピを記述したモデルカードと共にHugging Face Hubへプッシュできます。
Web Dashboard (HPC) HPCクラスターでの量子化ジョブの起動、進捗監視、チャット推論テストを行うためのブラウザベースのUIです。

サポートされているモデルファミリー

このライブラリは、Llama (1-3)、Qwen3 (最大32B)、Gemma (2-4)、GPT-OSS (20B & 120B)、Qwen3.6 (最大35B) でテストされています。その他のHugging Face互換モデルも動作する可能性がありますが、公式には検証されていません。

インストールと使用方法

  • エンドユーザー – PyTorch (CPU、CUDA、またはmacOS MPS) をインストールし、pip install onecomp を実行します。マルチGPU DeepSpeedサポートには distributed エクストラを追加してください。
  • 開発者 – リポジトリでは、再現可能な環境を作成するためにRustベースの uv ツールを推奨しており、CUDAバージョン、vLLM、可視化、ドキュメントなどのエクストラも用意されています。
  • 実行 – CLI (onecomp <model-id>) または Python API (Runner.auto_run) が、キャリブレーションデータの読み込みから量子化チェックポイントの保存まで全てを処理します。

ドキュメントとリソース

  • 完全なドキュメント: https://FujitsuResearch.github.io/OneCompression/
  • チュートリアルノートブック (Jupyter/Colab) では、RTNの可視化、Runner.auto_run、vLLMチャット推論について解説しています。
  • サンプルスクリプトは全機能 (GPTQ, QEP, LPCD, AutoBit, LoRA SFT, vLLM servingなど) を網羅しています。
  • 学術的参照: QEPに関するNeurIPS 2025論文およびLPCDに関するarXiv 2025論文。

想定されるユーザー

  • LLMの低ビット量子化手法を評価する必要がある研究者。
  • 単一のGPUやCPU/MPSマシンで大規模モデルを実行したいエンジニア。
  • vLLMとWeb UIを使用して量子化モデルをローカルにデプロイしたい方。

結論: OneCompは、大規模言語モデルの学習後量子化のための本格的なプロダクショングレードのツールキットであり、高度なアルゴリズムと主要な推論スタックとのシームレスな統合を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト