一、问题现象(附报错日志上下文):
使用官方文档中torch的迁移方案进行一键迁移:
from torch_npu.contrib import transfer_to_npu
迁移后模型成功加载到npu上:

但是执行耗时超长:

二、软件版本:
-- CANN 版本 (e.g., CANN 3.0.x,5.x.x): 6.3.RC2
--Tensorflow/Pytorch/MindSpore 版本: pytorch, 1.8.1
--Python 版本 (e.g., Python 3.7.5):Python 3.7.5
-- MindStudio版本 (e.g., MindStudio 2.0.0 (beta3)): 不涉及
--操作系统版本 (e.g., Ubuntu 18.04): Kylin Linux Advanced Server V10 (Tercel)
驱动:23.0.2
npu: 910ProB
三、测试步骤:
核心代码如下:
```
import torch
import time
import torch_npu
from torch_npu.contrib import transfer_to_npu
from transformers import AutoModelForSequenceClassification, AutoTokenizer
device = torch.device("cuda")
tokenizer = AutoTokenizer.from_pretrained('./bge-reranker-large')
model = AutoModelForSequenceClassification.from_pretrained('./bge-reranker-large').to(device)
model.eval()
pairs = [['红糖过期能喝不?', '手术向患者和(或)家属交代手术过程概况及术后注意事项术者完成手术记录完成术后病程记录上级医师查房麻醉医师查房观察有无术后并发症并做相应处理 | 上级医师查房完成常规病程记录观察伤口、引流量、生命体征情况等,并做出相应处理 | 上级医师查房完成病程记录拔除引流管,伤口换药指导患者功能锻炼 |\n| 重点医嘱 | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:今日在神经阻滞麻醉/椎管内麻醉/全身麻醉下行人工髋关节置换术心电监护、吸氧(根据病情需要)补液胃黏膜保护剂镇吐、镇痛等对症处理急查血常规输血(根据病情需要) | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:复查血常规输血和(或)补晶体、胶体液(根据病情需要)换药镇痛等对症处理 | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:复查血常规(必要时)输血和(或)补晶体、胶体液(必要时)换药,拔引流管镇痛等对症处理'],['红糖过期能喝不?', '哈哈哈撒打算打啊啥的算哈不'], ['红糖过期能喝不?', '阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢']]
with torch.no_grad():
start_time = time.time()
print(f"start_time is {start_time}")
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512).to(device)
print(f"inputs_time is {time.time()}")
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
end_time = time.time()
print(end_time - start_time)
```
模型为开源bge模型,https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/reranker/README.md
一、问题现象(附报错日志上下文):
使用官方文档中torch的迁移方案进行一键迁移:
from torch_npu.contrib import transfer_to_npu
迁移后模型成功加载到npu上:
但是执行耗时超长:
二、软件版本:
-- CANN 版本 (e.g., CANN 3.0.x,5.x.x): 6.3.RC2
--Tensorflow/Pytorch/MindSpore 版本: pytorch, 1.8.1
--Python 版本 (e.g., Python 3.7.5):Python 3.7.5
-- MindStudio版本 (e.g., MindStudio 2.0.0 (beta3)): 不涉及
--操作系统版本 (e.g., Ubuntu 18.04): Kylin Linux Advanced Server V10 (Tercel)
驱动:23.0.2
npu: 910ProB
三、测试步骤:
核心代码如下:
```
import torch
import time
import torch_npu
from torch_npu.contrib import transfer_to_npu
from transformers import AutoModelForSequenceClassification, AutoTokenizer
device = torch.device("cuda")
tokenizer = AutoTokenizer.from_pretrained('./bge-reranker-large')
model = AutoModelForSequenceClassification.from_pretrained('./bge-reranker-large').to(device)
model.eval()
pairs = [['红糖过期能喝不?', '手术向患者和(或)家属交代手术过程概况及术后注意事项术者完成手术记录完成术后病程记录上级医师查房麻醉医师查房观察有无术后并发症并做相应处理 | 上级医师查房完成常规病程记录观察伤口、引流量、生命体征情况等,并做出相应处理 | 上级医师查房完成病程记录拔除引流管,伤口换药指导患者功能锻炼 |\n| 重点医嘱 | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:今日在神经阻滞麻醉/椎管内麻醉/全身麻醉下行人工髋关节置换术心电监护、吸氧(根据病情需要)补液胃黏膜保护剂镇吐、镇痛等对症处理急查血常规输血(根据病情需要) | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:复查血常规输血和(或)补晶体、胶体液(根据病情需要)换药镇痛等对症处理 | 长期医嘱:骨科术后护理常规饮食患肢抬高留置引流管并记引流量抗菌药物术后抗凝抗骨质疏松治疗其他特殊医嘱临时医嘱:复查血常规(必要时)输血和(或)补晶体、胶体液(必要时)换药,拔引流管镇痛等对症处理'],['红糖过期能喝不?', '哈哈哈撒打算打啊啥的算哈不'], ['红糖过期能喝不?', '阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢阿萨达是否受到更多风格vv吃不腻吗,吧,性能都是似懂非懂发光的反攻倒算额外人太容易哦譬如突破哦好呢']]
with torch.no_grad():
start_time = time.time()
print(f"start_time is {start_time}")
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors='pt', max_length=512).to(device)
print(f"inputs_time is {time.time()}")
scores = model(**inputs, return_dict=True).logits.view(-1, ).float()
print(scores)
end_time = time.time()
print(end_time - start_time)
```
模型为开源bge模型,https://github.com/FlagOpen/FlagEmbedding/blob/master/FlagEmbedding/reranker/README.md