support llama4 eagle3 (#6985)

Co-authored-by: shuaills <shishuaiuoe@gmail.com>
Co-authored-by: Shenggui Li <somerlee.9@gmail.com>
Co-authored-by: Yingyi Huang <yingyihuang2000@outlook.com>
Co-authored-by: yizhang2077 <1109276519@qq.com>
This commit is contained in:
lukec
2025-06-30 22:34:10 -07:00
committed by GitHub
co-authored by shuaills Shenggui Li Yingyi Huang yizhang2077
parent 637bfee448
commit 886d344964
7 changed files with 138 additions and 18 deletions
+29
View File
@@ -223,5 +223,34 @@ class Llama4ForConditionalGeneration(nn.Module):
)
weight_loader(param, loaded_weight)
def set_eagle3_layers_to_capture(self, layer_ids: Optional[List[int]] = None):
if hasattr(self.language_model, "set_eagle3_layers_to_capture"):
self.language_model.set_eagle3_layers_to_capture(layer_ids)
def get_embed_and_head(self):
# For EAGLE3, we delegate to the language model which should have this method
# If the language model doesn't have lm_head (like EAGLE3), we return None for head
embed = self.language_model.get_embed()
if hasattr(self.language_model, "get_embed_and_head"):
return self.language_model.get_embed_and_head()
elif hasattr(self.language_model, "lm_head"):
return embed, self.language_model.lm_head.weight
else:
# For EAGLE3, head might not be needed
return embed, None
def set_embed_and_head(self, embed, head):
if hasattr(self.language_model, "set_embed_and_head"):
return self.language_model.set_embed_and_head(embed, head)
else:
# For EAGLE3, only set embed
return self.language_model.set_embed(embed)
def get_embed(self):
return self.language_model.get_embed()
def set_embed(self, embed):
return self.language_model.set_embed(embed)
EntryClass = Llama4ForConditionalGeneration