validate_missing_and_unexpected_for_lora¶
- torchtune.modules.peft.validate_missing_and_unexpected_for_lora(lora_attn_modules: List[Literal['q_proj', 'k_proj', 'v_proj', 'output_proj']], apply_lora_to_mlp: bool, apply_lora_to_output: bool, base_missing: Optional[List[str]] = None, base_unexpected: Optional[List[str]] = None, lora_missing: Optional[List[str]] = None, lora_unexpected: Optional[List[str]] = None) None [源代码]¶
一种更节省内存的方式来验证 LoRA 状态字典加载是否正确完成。
与
validate_state_dict_for_lora()
类似,此函数使用模型的 LoRA 配置来检查 LoRA 和/或基础模型权重是否正确加载到完整模型中。与该函数不同的是,此方法仅依赖于 load_state_dict API 在 strict=False 时返回的 missing 和 unexpected 值。这使我们能够在不进行任何额外的 .state_dict() 调用(使用更多内存)的情况下进行验证。- 参数:
lora_attn_modules (List[LORA_ATTN_MODULES]) – 每个自注意力块中 LoRA 应应用到的线性层列表。选项是
{"q_proj", "k_proj", "v_proj", "output_proj"}
。apply_lora_to_mlp (bool) – LoRA 是否应用于每个 MLP 线性。
apply_lora_to_output (bool) – LoRA 是否应用于最终的输出投影。
base_missing (Optional[List[str]]) – 加载基础模型权重时缺少的键列表。默认:None
base_unexpected (Optional[List[str]]) – 加载基础模型权重时意外的键列表。默认:None
lora_missing (Optional[List[str]]) – 加载 LoRA 权重时缺少的键列表。默认:None
lora_unexpected (Optional[List[str]]) – 加载 LoRA 权重时意外的键列表。默认:None
- 返回值:
None
- 引发:
AssertionError – 如果 base_missing 包含任何基础模型键。
AssertionError – 如果 base_unexpected 不为空。
AssertionError – 如果 lora_missing 包含任何 LoRA 键。
AssertionError – 如果 lora_unexpected 不为空。