RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

#1
by Michelangiolo - opened

Hi, tried to run it on colab but got this error:

RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

CPU

Try it without torch_dtype="auto"

%%capture
!pip install transformers
!pip install einops

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True)
inputs = tokenizer('''```python
def print_prime(n):
"""
Print all primes between 1 and n
"""''', return_tensors="pt", return_attention_mask=False)

Inference

inputs = tokenizer('''```python
def print_prime(n):
"""
Print all primes between 1 and n
"""''', return_tensors="pt", return_attention_mask=False)

outputs = model.generate(**inputs, max_length=200)
text = tokenizer.batch_decode(outputs)[0]
print(text)

GPU

%%capture
!pip install transformers
!pip install einops
!pip install accelerate

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, device_map="cuda:0")
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, device_map="cuda:0")

Inference

inputs = tokenizer('''```python
def print_prime(n):
"""
Print all primes between 1 and n
"""''', return_tensors="pt", return_attention_mask=False)

inputs.to("cuda:0")
outputs = model.generate(**inputs, max_length=50)
text = tokenizer.batch_decode(outputs)[0]
print(text)

chatgpt correct it for me to run on GPU and its working:

!pip install transformers
!pip install einops
!pip install accelerate

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# Carregar o modelo e o tokenizador na GPU
device = "cuda:0"
model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5", trust_remote_code=True).to(device)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True)

# Fornecer um código Python válido como entrada
input_code = '''```python
def print_prime(n):
   """
   Print all primes between 1 and n
   """'''

# Tokenizar o código
inputs = tokenizer(input_code, return_tensors="pt").to(device)

# Gerar texto
outputs = model.generate(input_ids=inputs["input_ids"], max_length=300)
text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(text)

model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, torch_dtype=torch.float32)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5", trust_remote_code=True, torch_dtype=torch.float32)

solved this for me.

Microsoft org

Hello everyone! I hope everything is going well with you.

Thanks for the discussion and let us know what the issues were. We will fix on the model card and make sure everything is working smoothly.

Regards,
Gustavo.

gugarosa changed discussion status to closed

try this on mac,
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, torch_dtype="auto").float()

Sign up or log in to comment