bitsandbytes: 一个用于 PyTorch 的 k-bit 量化库,可降低 LLM 推理和训练的内存消耗

bitsandbytes: 一个用于 PyTorch 的 k-bit 量化库,可降低 LLM 推理和训练的内存消耗

它解决了什么问题

它降低了运行和训练大语言模型 (LLMs) 的内存需求,通过允许它们在显存/内存有限的硬件上运行,使其更易于使用。

工作原理

该库为 PyTorch 提供了 k-bit 量化原语,使用三种主要方法:

  • 8-bit Optimizers: 使用分块量化来保持性能,同时显著降低优化器的内存成本。
  • LLM.int8(): 为推理启用 8-bit 量化,对大多数特征使用向量级量化,对离群值使用 16-bit 矩阵乘法以防止性能损失。
  • QLoRA: 为训练实现 4-bit 量化,将量化与低秩自适应 (LoRA) 权重相结合,以实现高效微调。

适用对象

使用 PyTorch 的开发人员和研究人员,他们需要在消费级或资源有限的硬件上部署或微调大型模型。

亮点

  • 支持 4-bit 和 8-bit 量化原语。
  • 广泛的硬件加速器支持,包括 Linux、Windows 和 macOS 上的 NVIDIA、AMD、Intel GPU 和 CPU。
  • 与 Hugging Face 生态系统(Transformers, Diffusers, PEFT)集成。
  • 在保持模型性能的同时节省内存的技术。

Sources