Bitsandbytes 文档

安装

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始

安装

CUDA

bitsandbytes 仅在 CUDA 版本为 11.0 - 12.5 的 CUDA GPU 上受支持。但是,正在进行一项多后端工作,目前处于 Alpha 版本,如果您有兴趣提供早期反馈,请查看 下面的相关部分

bitsandbytes 的最新版本基于

操作系统 CUDA 编译器
Linux 11.7 - 12.3 GCC 11.4
12.4+ GCC 13.2
Windows 11.7 - 12.4 MSVC 19.38+ (VS2022 17.8.0+)

MacOS 支持仍在开发中!订阅此 问题 以接收有关讨论的通知并跟踪集成进度。

对于 Linux 系统,请确保您的硬件满足以下要求才能使用 bitsandbytes 功能。

功能 硬件要求
LLM.int8() NVIDIA Turing(RTX 20 系列,T4)或 Ampere(RTX 30 系列,A4-A100)GPU
8 位优化器/量化 NVIDIA Kepler(GTX 780 或更新版本)

bitsandbytes >= 0.39.1 不再在 pip 安装中包含 Kepler 二进制文件。这需要手动编译,您应该按照一般步骤并使用 cuda11x_nomatmul_kepler 进行针对 Kepler 的编译。

要从 PyPI 安装。

pip install bitsandbytes

从源代码编译

对于 Linux 和 Windows 系统,您可以从源代码编译 bitsandbytes。从源代码安装允许使用不同的 CMake 配置获得更多构建选项。

Linux
Windows

要从源代码编译,您需要安装 CMake >= 3.22.1 和 Python >= 3.8。确保已安装编译器以编译 C++(gcc、make、头文件等)。例如,要在 Ubuntu 上安装编译器和 CMake

apt-get install -y build-essential cmake

您还应按照 NVIDIA CUDA 安装指南 for Linux 中的指南安装 CUDA 工具包。当前预期的 CUDA 工具包版本为 11.1+,建议安装 GCC >= 7.3,并且至少需要 GCC >= 6

如果您使用的是其他 CUDA 工具包版本,请参考下表。

CUDA 工具包 GCC
>= 11.4.1 >= 11
>= 12.0 >= 12
>= 12.4 >= 13

现在要从源代码安装 bitsandbytes 包,请运行以下命令

git clone https://github.com/TimDettmers/bitsandbytes.git && cd bitsandbytes/
pip install -r requirements-dev.txt
cmake -DCOMPUTE_BACKEND=cuda -S .
make
pip install -e .   # `-e` for "editable" install, when developing BNB (otherwise leave that out)

如果您安装了多个版本的 CUDA,或者安装了非标准位置的 CUDA,请参考 CMake CUDA 文档以了解如何配置 CUDA 编译器。

PyTorch CUDA 版本

一些 bitsandbytes 功能可能需要比 Conda 和 pip 中的 PyTorch 二进制文件当前支持的版本更新的 CUDA 版本。在这种情况下,您应该按照以下说明加载预编译的 bitsandbytes 二进制文件。

  1. 确定要使用的 CUDA 版本的路径。常见路径包括
  • /usr/local/cuda
  • /usr/local/cuda-XX.X 其中 XX.X 是 CUDA 版本号

然后使用 bitsandbytes 中的此脚本在本地安装所需的 CUDA 版本

wget https://raw.githubusercontent.com/TimDettmers/bitsandbytes/main/install_cuda.sh
# Syntax cuda_install CUDA_VERSION INSTALL_PREFIX EXPORT_TO_BASH
#   CUDA_VERSION in {110, 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125}
#   EXPORT_TO_BASH in {0, 1} with 0=False and 1=True

# For example, the following installs CUDA 11.7 to ~/local/cuda-11.7 and exports the path to your .bashrc

bash install_cuda.sh 117 ~/local 1
  1. 通过手动覆盖 PyTorch 安装的 CUDA 版本来设置环境变量 BNB_CUDA_VERSIONLD_LIBRARY_PATH

建议将以下行添加到 .bashrc 文件中,使其永久生效。

export BNB_CUDA_VERSION=<VERSION>
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<PATH>

例如,要使用本地安装路径

export BNB_CUDA_VERSION=117
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/YOUR_USERNAME/local/cuda-11.7
  1. 现在,当您使用这些环境变量启动 bitsandbytes 时,PyTorch CUDA 版本将被新的 CUDA 版本(在本例中为 11.7 版)覆盖,并加载不同的 bitsandbytes 库。

多后端

此功能目前处于预览阶段,因此尚未投入生产!请参考 此指南,获取有关不同后端及其当前状态的更深入信息。

请按照以下步骤安装具有除 CUDA 之外的设备特定后端支持的 bitsandbytes

使用预构建的轮子安装(大多数情况下的推荐方法)

正在进行中(将在未来几天内添加)

编译

AMD ROCm
英特尔 CPU + GPU
苹果硅 (MPS)

AMD GPU

bitsandbytes 从 ROCm 6.1 版本开始全面支持(目前处于 Alpha 版本)。

如果您想在裸机上安装 ROCm 和 PyTorch,请跳过 Docker 步骤,并参考我们在 ROCm 安装概述为 ROCm 安装 PyTorch(快速安装的轮子构建的步骤 3)中的官方指南。请确保为安装的 ROCm 版本获取 PyTorch 轮子。

# Create a docker container with latest ROCm image, which includes ROCm libraries
docker pull rocm/dev-ubuntu-22.04:6.1.2-complete
docker run -it --device=/dev/kfd --device=/dev/dri --group-add video rocm/dev-ubuntu-22.04:6.1.2-complete
apt-get update && apt-get install -y git && cd home

# Install pytorch compatible with above ROCm version
pip install torch --index-url https://download.pytorch.org/whl/rocm6.1/

# Install bitsandbytes from PyPI
# (This is supported on Ubuntu 22.04, Python 3.10, ROCm 6.1.0/6.1.1/6.1.2/6.2.0 and gpu arch - gfx90a, gfx942, gfx1100
# Please install from source if your configuration doesn't match with these)
pip install bitsandbytes

# Install bitsandbytes from source
# Clone bitsandbytes repo, ROCm backend is currently enabled on multi-backend-refactor branch
git clone --depth 1 -b multi-backend-refactor https://github.com/bitsandbytes-foundation/bitsandbytes.git && cd bitsandbytes/

# Install dependencies
pip install -r requirements-dev.txt

# Compile & install
apt-get install -y build-essential cmake  # install build tools dependencies, unless present
cmake -DCOMPUTE_BACKEND=hip -S .  # Use -DBNB_ROCM_ARCH="gfx90a;gfx942" to target specific gpu arch
make
pip install -e .   # `-e` for "editable" install, when developing BNB (otherwise leave that out)
< > 在 GitHub 上更新