Skip to content

Commit 0e31ab8

Browse files
committed
feat(convert_hf_to_gguf): Add registration and param setup for Granite
Branch: GraniteLM Signed-off-by: Gabe Goodhart <[email protected]>
1 parent c1dac13 commit 0e31ab8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

convert_hf_to_gguf.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3931,6 +3931,34 @@ def prepare_tensors(self):
39313931
super().prepare_tensors()
39323932

39333933

3934+
@Model.register("GraniteForCausalLM")
3935+
class GraniteModel(Model):
3936+
"""Conversion for IBM's GraniteForCausalLM"""
3937+
model_arch = gguf.MODEL_ARCH.GRANITE
3938+
3939+
def set_gguf_parameters(self):
3940+
"""Granite uses standard llama parameters with the following differences:
3941+
3942+
- No head_dim support
3943+
- New multiplier params:
3944+
- attention_multiplier
3945+
- embedding_multiplier
3946+
- residual_multiplier
3947+
- logits_scaling
3948+
"""
3949+
if head_dim := self.hparams.pop("head_dim", None):
3950+
logger.warning("Ignoring head_dim (%s) from config for Granite", head_dim)
3951+
super().set_gguf_parameters()
3952+
if attention_multiplier := self.hparams.get("attention_multiplier"):
3953+
self.gguf_writer.add_attention_multiplier(attention_multiplier)
3954+
if embedding_multiplier := self.hparams.get("embedding_multiplier"):
3955+
self.gguf_writer.add_embedding_multiplier(embedding_multiplier)
3956+
if residual_multiplier := self.hparams.get("residual_multiplier"):
3957+
self.gguf_writer.add_residual_multiplier(residual_multiplier)
3958+
if logits_scaling := self.hparams.get("logits_scaling"):
3959+
self.gguf_writer.add_logit_scale(logits_scaling)
3960+
3961+
39343962
###### CONVERSION LOGIC ######
39353963

39363964
# tree of lazy tensors

0 commit comments

Comments
 (0)