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:
co-authored by
shuaills
Shenggui Li
Yingyi Huang
yizhang2077
parent
637bfee448
commit
886d344964
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user