AttributeError: 'GPTNeoXForCausalLM' object has no attribute 'lm_head'

#1
by AayushShah - opened

I was trying to run this code:

for param in model.parameters():
    param.requires_grad = False  # freeze the model - train adapters later
    if param.ndim == 1:
        # cast the small parameters (e.g. layernorm) to fp32 for stability
        param.data = param.data.to(torch.float32)

model.gradient_checkpointing_enable()  # reduce number of stored activations
model.enable_input_require_grads()

class CastOutputToFloat(nn.Sequential):
    def forward(self, x): return super().forward(x).to(torch.float32)

model.lm_head = CastOutputToFloat(model.lm_head)

And got this error:

AttributeError: 'GPTNeoXForCausalLM' object has no attribute 'lm_head'

Please help.

Same problem

Hello @sr5434 ,
I think this would help:

It appears that GPTNeoXForCausalLM's output layer is model.embed_out instead of model.lm_head. Could you modify the name and try again?

Please follow this thread: https://huggingface.co/togethercomputer/GPT-NeoXT-Chat-Base-20B/discussions/12#6434f46ba5aed21dd11b3534

Ok, thanks

Does it work now?

Sign up or log in to comment