用途:QLoRA(Quantized Low-Rank Adaptation)用于在显存有限时微调大语言模型,通过 4 比特量化冻结基座模型、仅训练全精度 LoRA 适配器来降低显存占用。资料称 65B 模型可在单张 48GB GPU 上微调,性能与 16 比特微调相当。使用前提是已了解 LoRA(LoraConfig、target_modules、训练模式)。
主要能力:三项核心技术。一是 4 比特 NormalFloat(NF4),针对正态分布权重的最优量化类型,权重以 4 比特存储、计算时反量化为 bf16;可选 fp4 但资料称其属旧式、很少需要。二是双重量化,对量化缩放常数再次量化,约每参数节省 0.37 比特(7B 约 325MB,70B 约 3.2GB)。三是分页优化器,借助 NVIDIA 统一内存在显存峰值时自动在 GPU 与 CPU 间转移优化器状态。
使用方式:用 transformers 的 BitsAndBytesConfig 配置 load_in_4bit=True、bnb_4bit_quant_type="nf4"、bnb_4bit_use_double_quant=True、bnb_4bit_compute_dtype=torch.bfloat16;加载模型后必须调用 peft 的 prepare_model_for_kbit_training;再套用 LoraConfig 与 get_peft_model,用 TRL 的 SFTTrainer/SFTConfig 训练,优化器可用 paged_adamw_8bit。推理时用 PeftModel 加载适配器;合并时在 CPU 上以全精度加载基座再 merge_and_unload。
适用场景与限制:适合 7B+ 模型在消费级 GPU 上微调。资料给出显存参考:7B 约 6GB、13B 约 10GB、34B 约 20GB、70B 约 48GB,建议预留约 20% 余量;合并 70B 模型约需 140GB 内存。需 CUDA 11.7+,bf16 需 Ampere 及以上。常见问题包括 CUDA 版本不匹配、缺少 libcudart、计算精度不一致导致训练变慢、显存不足等,可通过梯度检查点、减小批大小、分页优化器、缩短序列长度缓解。资料未提供收费或价格信息。