bitsandbytes-foundation/bitsandbytes
Accessible large language models via k-bit quantization for PyTorch.
解決する課題
大規模言語モデル(LLM)の実行および学習におけるメモリ要件を削減し、VRAM/RAMが限られたハードウェア上での動作を可能にすることで、アクセシビリティを向上させます。
仕組み
このライブラリは、主に以下の3つの手法を用いて、PyTorch向けのkビット量子化プリミティブを提供します。
- 8-bit Optimizers: ブロック単位の量子化を使用して、パフォーマンスを維持しながらオプティマイザのメモリコストを大幅に削減します。
- LLM.int8(): 推論用の8ビット量子化を有効にします。ほとんどの機能にはベクトル単位の量子化を使用し、外れ値には16ビット行列演算を使用することで、パフォーマンスの低下を防ぎます。
- QLoRA: 学習用の4ビット量子化を実装します。量子化と低ランク適応(LoRA)ウェイトを組み合わせることで、効率的なファインチューニングを可能にします。
対象者
コンシューマー向けハードウェアやリソースの限られたハードウェア上で、大規模モデルのデプロイやファインチューニングを行う必要があるPyTorchユーザーのデベロッパーや研究者。
ハイライト
- 4ビットおよび8ビット量子化プリミティブのサポート。
- NVIDIA、AMD、IntelのGPU、およびLinux、Windows、macOS上のCPUを含む、幅広いハードウェアアクセラレータのサポート。
- Hugging Faceエコシステム(Transformers, Diffusers, PEFT)との統合。
- モデルのパフォーマンスを維持するメモリ節約技術。