bitsandbytesは、bitsandbytes財団がメンテナンスするオープンソースのPythonライブラリで、kビット量子化技術を通じて大規模言語モデルへのアクセスとデプロイを容易にすることを専門としています。このプロジェクトは、CUDAカスタム関数を中心とした軽量なPythonラッパーであり、特に8ビットオプティマイザ、行列乗算(LLM.int8())、および8ビットと4ビットの量子化機能に焦点を当てています。
プロジェクトアドレス: https://github.com/bitsandbytes-foundation/bitsandbytes
公式ドキュメント: https://huggingface.co/docs/bitsandbytes/main
bitsandbytes.optim
モジュールを通じて、さまざまな8ビットオプティマイザを提供します。bitsandbytesは、量子化技術を通じてモデルのメモリ占有量を大幅に削減します。たとえば、10億パラメータのモデルの場合、従来のAdamオプティマイザはオプティマイザの状態を保存するために8GBのメモリが必要ですが、8ビット量子化を使用すると、この要件を大幅に削減できます。
プロジェクトは、より多くのハードウェアバックエンドをサポートするために取り組んでいます。
bitsandbytesの4ビット量子化技術は、QLoRA(Quantized Low-Rank Adaptation)と組み合わせて使用されることが多く、以下を実現します。
bitsandbytesは、ブロックレベルの動的量子化技術を採用し、重み行列を小さなブロックに分割し、各ブロックを個別に量子化します。この方法は、精度を維持しながら効率的な圧縮を実現します。
これはbitsandbytesの中核となるアルゴリズムの1つであり、大規模言語モデル向けに特別に設計された8ビット行列乗算の実装であり、モデルのパフォーマンスを維持しながらメモリ使用量を大幅に削減できます。
一部の重要な層(特に機密性の高い注意層など)では、ライブラリは混合精度処理をサポートし、量子化と全精度の間で最適なバランスを見つけます。
pip install bitsandbytes
import bitsandbytes as bnb
from transformers import AutoModelForCausalLM
# 4ビット量子化モデルをロードします
model = AutoModelForCausalLM.from_pretrained(
"model_name",
load_in_4bit=True,
device_map="auto"
)
プロジェクトはbitsandbytes財団によってメンテナンスされており、複数のスポンサーのサポートを受けて、プロジェクトの継続的な開発と改善を保証しています。
bitsandbytesはAI分野の重要なツールであり、高度な量子化技術を通じて大規模言語モデルのデプロイと使用をより簡単かつ経済的にします。研究者、開発者、企業ユーザーのいずれであっても、このライブラリを通じてリソースが制限された環境で最先端のAIモデルを効率的に使用できます。そのオープンソースの性質と活発なコミュニティサポートにより、量子化技術分野で最も推奨されるソリューションの1つになっています。