From cef2c97c03af5642a06c5a3eee80d339f45a8862 Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Tue, 20 Aug 2024 15:06:20 +0200 Subject: [PATCH] lora : raise error if lm_head is ignored --- convert_lora_to_gguf.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/convert_lora_to_gguf.py b/convert_lora_to_gguf.py index a88d0d4a9..435e9e2e1 100755 --- a/convert_lora_to_gguf.py +++ b/convert_lora_to_gguf.py @@ -364,6 +364,10 @@ if __name__ == '__main__': def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: dest = super().modify_tensors(data_torch, name, bid) + # for now, we cannot convert archs that use the same tensor for tok_embd and output + # see: https://github.com/ggerganov/llama.cpp/issues/9065 + if name == "lm_head.weight" and len(dest) == 0: + raise ValueError(f"lm_head is present in adapter, but is ignored in base model") for dest_name, dest_data in dest: assert isinstance(dest_data, LoraTorchTensor) lora_a, lora_b = dest_data.get_lora_A_B()