AI・機械学習
潜在因子分解によるサブ1ビットLLM圧縮
Sub-1-Bit LLM Compression via Latent Factorization (github.com)
要約
LittleBitプロジェクトは、大規模言語モデル(LLM)をサブ1ビットの領域に圧縮する手法を提案しています。これは、重み行列を低ランクの潜在因子に分解し、それらを二値化し、学習済みのスケールで元の情報量を復元することで実現されます。LittleBit-2では、初期化段階での潜在幾何学的ずれを改善するため、Joint-ITQという手法を導入し、推論時のオーバーヘッドなしに圧縮率を高めています。
全文翻訳
LittleBitプロジェクト
潜在因子分解によるサブ1ビットLLM圧縮
LittleBit(NeurIPS 2025)およびLittleBit-2(ICML 2026)の公式実装です。
論文
LittleBit-2: Maximizing the Spectral Energy Gain in Sub-1-Bit LLMs via Latent Geometry Alignment (ICML 2026)
Banseok Lee, Youngmin Kim
LittleBit: Ultra Low-Bit Quantization via Latent Factorization (NeurIPS 2025)
Banseok Lee*, Dongkyu Kim*, Youngcheon You, Youngmin Kim
概要
LittleBitは、各密な重み行列を低ランクの潜在因子に分解し、それらの因子を二値化し、軽量な学習済みスケールを通してマグニチュード情報を復元することにより、大規模言語モデルをサブ1ビット領域に圧縮します。これにより、推論時には元のモデルアーキテクチャを維持したまま、重みあたり0.1ビットの設定を含む極端な圧縮が可能になります。
LittleBit-2は、QAT(Quantization-Aware Training)の前にSVDから派生した潜在因子をバイナリ超立方体に整列させる、Joint Iterative Quantization(Joint-ITQ)を用いたInternal Latent Rotationを適用することで、初期化段階での潜在幾何学的ずれに対処し、この手法を改善しています。LittleBit-2の初期化は、オプトイン(--use_itq)として利用可能であり、追加の推論オーバーヘッドは発生しません。
ハイライト
サブ1ビット圧縮: 重みあたり1.0ビットから0.1ビットまで対応するように設計されています。
LittleBit-2オプトイン: --use_itq を使用してJoint-ITQ初期化を有効にし、潜在幾何学的整列を改善します。
推論時の変更なし: LittleBit-2は初期化のみを変更します。デプロイされた因子化レイヤーは同じままです。
QATフレンドリー: SmoothSignおよびオプションの残差因子化によるQuantization-Aware Trainingをサポートします。
サポートされているモデル
現在、コードベースは以下のモデルをサポートしています:
OPT
Llama および Llama 2/3
Phi-4
Qwen2.5 および QwQ
Gemma 2 および Gemma 3
Qwen3
インストール
Python 3.12 を推奨します。
```
conda create -n littlebit python=3.12
conda activate littlebit
# CUDAツールキットをインストールします。必要に応じてCUDAバージョンを調整してください。
conda install nvidia/label/cuda-12.4.1::cuda-toolkit -c nvidia/label/cuda-12.4.1
# PyTorchをインストールします。
pip install torch==2.8.0+cu124 torchvision==0.23.0+cu124 torchaudio==2.8.0+cu124 --index-url https://download.pytorch.org/whl/cu124
# 依存関係をインストールします。
pip install -r requirements.txt
```
論文結果の再現には、transformers 4.51.x を使用することを推奨します。新しいtransformersリリースでは、モデルの内部構造や評価動作が変更される可能性があります。
```
pip install "transformers==4.51.*"
```
使用方法
トレーニング
Quantization-Aware Trainingでモデルをトレーニングします。デフォルトでは、LittleBitLinearは元のSVDのみの初期化を使用します。LittleBit-2(Joint-ITQ)を有効にするには、--use_itq True を渡します。
シングルGPU
```
CUDA_VISIBLE_DEVICES=0 python -m main \
--model_id meta-llama/Llama-2-7b-hf \
--dataset c4_wiki \
--save_dir ./outputs/Llama-2-7b-LittleBit-2 \
--num_train_epochs 5.0 \
--per_device_train_batch_size 4 \
--lr 4e-05 \
--warmup_ratio 0.02 \
--report wandb \
--quant_func SmoothSign \
--quant_mod LittleBitLinear \
--residual True \
--eff_bit 1.0 \
--kv_factor 1.0 \
--min_split_dim 8 \
--l2l_loss_scale 10.0 \
# LittleBit-2初期化をオプトイン
# --use_itq True
```
DeepSpeedを使用したマルチGPU
```
deepspeed --num_gpus=4 main.py \
--model_id meta-llama/Llama-2-7b-hf \
--dataset c4_wiki \
--save_dir ./outputs/Llama-2-7b-LittleBit-2 \
--ds_config_path configs/zero3.json \
--num_train_epochs 5.0 \
--per_device_train_batch_size 4 \
--lr 4e-05 \
--report wandb \
--quant_func SmoothSign \
--quant_mod LittleBitLinear \
--residual True \
--eff_bit 1.0 \
--kv_factor 1.0 \
--min_split_dim 8
```
評価
ローカルチェックポイントまたはHugging Face Hubでホストされているモデルを評価します。
ローカルディレクトリから
```
CUDA_VISIBLE_DEVICES=0 python eval.py \
--model_id ./outputs/Llama-2-7b-LittleBit-2 \
--seqlen 2048 \
--ppl_task wikitext2,c4 \
--zeroshot_task boolq,piqa,hellaswag,winogrande,arc_easy,arc_challenge,openbookqa
```
Hugging Face Hubから
```
CUDA_VISIBLE_DEVICES=0 python eval.py \
--model_id username/littlebit-llama-7b-0.1bpw \
--seqlen 2048 \
--ppl_task wikitext2
```
レガシーチェックポイント
古いチェックポイントにはlittlebit_config.jsonが含まれていない場合があります。その場合は、量子化引数を明示的に渡してください。
```
CUDA_VISIBLE_DEVICES=0 python eval.py \
--model_id ./outputs/Legacy-Llama-2-7b \
--quant_func SmoothSign \
--quant_mod LittleBitLinear \
--split_dim 1024
```
パラメータ読み込み優先度:
1. 明示的なCLI引数
2. モデルディレクトリ内のlittlebit_config.json
3. 古いチェックポイント用のconfig.jsonフォールバック
引用
この研究が役立つ場合は、以下を引用してください:
```
@inproceedings{lee2026littlebit2,
title={LittleBit-2: Maximizing the Spectral Energy Gain in Sub-1-Bit LLMs via Latent Geometry Alignment},
author={Lee, Banseok and Kim, Youngmin},
booktitle={Proceedings of the 43rd International Conference on Machine Learning},
year={2026}
}
@inproceedings{lee2025littlebit,
title={LittleBit: Ultra Low-Bit Quantization via Latent Factorization},
author={Lee, Banseok and Kim, Dongkyu and You, Youngcheon and Kim, Youngmin},
booktitle={Advances in Neural Information Processing Systems},
year={2025}
}
```
ライセンス
このプロジェクトはCC BY-NC 4.0ライセンスの下でライセンスされています。