#3736·peft

KappaTuneSelector 不对位元和字节 8 位权重进行量化,而是在原始 int8 码上计算条件数

作者: amogh-nagri-11创建于 2026年9月14日更新于 2026年9月17日

model_id = "facebook/opt-125m" model_8bit = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=BitsAndBytesConfig(load_in_8bit=True), device_map="cuda") module = model_8bit.model.decoder.layers[0].self_attn.q_proj print(type(module.weight).__name__, hasattr(module.weight, "state"), hasattr(module.weight, "CB")) # expected: Int8Params False True -> int8 branch is skipped model_fp = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float32, device_map="cuda") kappa_8bit = KappaTuneSelector(model_8bit, show_progress=False) kappa_fp = KappaTuneSelector(model_fp, show_progress=False) kappa_8bit._compute_kappas() kappa_fp._compute_kappas() name = "model.decoder.layers.0.self_attn.q_proj" print(kappa_8bit._condition_numbers[name], kappa_fp._condition_numbers[name]) # expected: 1.0 1.0

内容来源: huggingface/peft