本人github

BitsAndBytesConfig 是 Hugging Face Transformers 库中的一个配置类,用于设置模型量化的参数。量化是一种优化技术,可以减少模型的内存占用和加速模型的推理速度,通过减少模型权重的位数来实现。在 Hugging Face Transformers 库中,BitsAndBytesConfig 允许用户以 4 位精度加载和运行模型,同时提供了多种量化策略和参数来优化模型的性能和内存效率。

例如,可以通过设置 load_in_4bit=True 来指定以 4 位精度加载模型,使用 bnb_4bit_use_double_quant=True 来启用嵌套量化以提高内存效率,以及通过 bnb_4bit_quant_type="nf4" 来选择使用 NF4(Normal Float 4)数据类型,这是一种适用于已使用正态分布初始化的权重的新的 4 位数据类型。此外,还可以通过 bnb_4bit_compute_dtype=torch.bfloat16 来更改计算期间将使用的数据类型,以实现加速.

使用 BitsAndBytesConfig 的一个示例代码如下:

from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

model_id = "bigscience/bloom-1b7"
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_use_double_quant=True,
    bnb_4bit_compute_dtype=torch.bfloat16
)

model = AutoModelForCausalLM.from_pretrained(model_id, quantization_config=quantization_config)
tokenizer = AutoTokenizer.from_pretrained(model_id)

在这个例子中,模型 bigscience/bloom-1b7 将以 4 位精度加载,并使用 NF4 数据类型和嵌套量化技术,同时计算数据类型设置为 torch.bfloat16 以提高速度.

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐