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 的核心算法之一,專門針對大型語言模型設計的 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 模型。其開源性質和活躍的社區支持使其成為量化技術領域的首選解決方案之一。