bitsandbytes:一個用於 PyTorch 的 k-bit 量化函式庫,可降低 LLM 推論與訓練的記憶體消耗
bitsandbytes:一個用於 PyTorch 的 k-bit 量化函式庫,可降低 LLM 推論與訓練的記憶體消耗
解決的問題
它降低了執行與訓練大型語言模型 (LLMs) 的記憶體需求,透過讓模型能在 VRAM/RAM 有限的硬體上運行,使其更易於使用。
運作原理
該函式庫為 PyTorch 提供 k-bit 量化原語 (primitives),使用三種主要方法:
- 8-bit Optimizers:使用分塊量化 (block-wise quantization) 在大幅降低優化器記憶體成本的同時,維持效能。
- LLM.int8():實現推論用的 8-bit 量化,對大多數特徵使用向量量化 (vector-wise quantization),並對離群值 (outliers) 使用 16-bit 矩陣乘法以防止效能損失。
- QLoRA:實現訓練用的 4-bit 量化,將量化與低階適應 (LoRA) 權重結合,以實現高效的微調。
適用對象
使用 PyTorch 的開發者與研究人員,需要在消費級或資源有限的硬體上部署或微調大型模型。
重點特性
- 支援 4-bit 與 8-bit 量化原語。
- 廣泛的硬體加速器支援,包括 Linux、Windows 與 macOS 上的 NVIDIA、AMD、Intel GPU 及 CPU。
- 與 Hugging Face 生態系統 (Transformers, Diffusers, PEFT) 整合。
- 在維持模型效能的同時,提供節省記憶體的技術。