RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'
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.
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.
try this on mac,
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, torch_dtype="auto").float()