BitsAndBytesConfig 是什么
量化是一种优化技术,可以减少模型的内存占用和加速模型的推理速度,通过减少模型权重的位数来实现。在 Hugging Face Transformers 库中,BitsAndBytesConfig 允许用户以 4 位精度加载和运行模型,同时提供了多种量化策略和参数来优化模型的性能和内存效率。来选择使用 NF4(Normal Float 4)数据类型,这是一种适用于已使用正态分布初始化的权重的新的 4
本人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
以提高速度.
更多推荐
所有评论(0)