无法调用Ai Core推理通过Transformers库加载的模型
已解决发表于2024-08-05 13:47:07
0 查看
问题描述:
- 模型能够成功占用指定设备显存,但Ai Core占用为0,推理速度慢
- 尝试了form torch.amp import autocast使用amp精度,没有效果
警告信息: 
二、版本说明
-- CANN 版本: 8.0RC1
--Pytorch版本:2.1.0
--torch-npu版本2.1.0.post3
--Python 版本:3.9.14
--Transformers: 4.38.2
import time import numpy as np import torch import torch_npu from transformers import AutoModelForCausalLM, AutoTokenizer from transformers import GenerationConfig device = "npu:2" # the device to load the model onto model_dir = "models/qwen/Qwen1___5-7B-Chat" model = AutoModelForCausalLM.from_pretrained( model_dir, device_map=device, torch_dtype=torch.float16, #bf16 = True, trust_remote_code=True,x`` ).eval() tokenizer = AutoTokenizer.from_pretrained(model_dir,trust_remote_code=True) #@torch.inference_mode() def infer(model, tokenizer, prompt): #prompt = "帮助我制定一份去上海的旅游攻略。" messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(device) start = time.time() generated_ids = model.generate( model_inputs.input_ids, max_new_tokens=512, do_sample = False, use_cache = True, ) end = time.time() generated_ids = [ output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) ] print(f"{len(generated_ids)/(end-start)}tokens/s") response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] return response问题描述:
警告信息:
二、版本说明
-- CANN 版本: 8.0RC1
--Pytorch版本:2.1.0
--torch-npu版本2.1.0.post3
--Python 版本:3.9.14
--Transformers: 4.38.2