From: Dowon Date: Thu, 19 Mar 2026 10:41:11 +0000 (+0900) Subject: convert : support is_causal hyperparameter (#20746) X-Git-Tag: upstream/0.0.8611~185 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=b486c17b3e8bee4340b4095075cefc8415d92068;p=pkg%2Fggml%2Fsources%2Fllama.cpp convert : support is_causal hyperparameter (#20746) * convert : support is_causal hyperparameter Check for the `is_causal` attribute in the Hugging Face model configuration and include it in the GGUF metadata. * Update convert_hf_to_gguf.py Co-authored-by: Sigbjørn Skjæret * style: fix F541 f-string is missing placeholders --------- Co-authored-by: Sigbjørn Skjæret --- diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 46469c862..8cfd0bf2f 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -1062,6 +1062,10 @@ class TextModel(ModelBase): self.gguf_writer.add_head_count_kv(n_head_kv) logger.info(f"gguf: key-value head count = {n_head_kv}") + if self.hparams.get("is_causal") is False: + self.gguf_writer.add_causal_attention(False) + logger.info("gguf: causal attention = False") + # TODO: Handle "sliding_attention" similarly when models start implementing it rope_params = self.rope_parameters.get("full_attention", self.rope_parameters) if (rope_type := rope_params.get("rope_type")) is not None: