本文档记录 iic/nlp_ecomgpt_multilingual-7B-ecom(BloomForCausalLM, 7B)在昇腾 Ascend910 NPU 环境的适配与验证结果。
nlp_ecomgpt_multilingual-7B-ecom 是一个多语言电商领域的大语言模型,基于 Bloom-7B 架构,支持多种电商场景的自然语言理解和生成任务。
相关获取地址:
| 组件 | 版本 |
|---|---|
| Ascend NPU | Ascend910 |
| CANN | 25.5.2 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.57.6 |
| vLLM | 0.18.0+empty |
| vLLM-Ascend | 0.18.0 |
/opt/atomgit/nlp_ecomgpt_multilingual-7B-ecom/model/iic/nlp_ecomgpt_multilingual-7B-ecomimport torch
import torch_npu
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "/path/to/nlp_ecomgpt_multilingual-7B-ecom"
device = "npu:0"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
use_cache=True
)
model = model.to(device)
model.eval()
prompt = "What is the best laptop for programming?"
inputs = tokenizer(prompt, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=50,
do_sample=True,
temperature=0.7,
pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id
)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)使用 5 个电商领域测试 prompt 进行验证:
| 输入 | 输出 |
|---|---|
| What is the best laptop for programming? | 正常生成推荐内容 |
| I want to buy a smartphone, can you recommend one? | 正常生成推荐内容 |
| The shipping was very fast and the product quality is excellent! | 正常生成评论相关内容 |
| Compare iPhone and Android phones | 正常生成对比内容 |
| How to choose a good pair of headphones? | 正常生成选购建议 |
所有测试用例均正常返回结果,模型适配成功。
测试条件:单卡 Ascend910,bfloat16 精度,单轮推理。
| 输出长度 | 平均延迟 | 吞吐量 |
|---|---|---|
| 10 tokens | 0.157 s | 63.56 tok/s |
| 20 tokens | 0.266 s | 75.07 tok/s |
| 50 tokens | 0.131 s | 382.12 tok/s |
lm_head.weight 与 transformer.word_embeddings.weight 权值绑定,vLLM 加载时需特殊处理NPU 推理验证:
| 指标 | 数值 |
|---|---|
| 测试用例数 | 5 |
| 精度结论 | --- |
精度评测源代码和日志详见 eval/ 目录。
| # | 输入 | NPU 输出 |
|---|---|---|
| 1 | What is the best laptop for programming? | What is the best laptop for programming? |
| 2 | I want to buy a smartphone, can you reco | I want to buy a smartphone, can you reco |
| 3 | The shipping was very fast and the produ | The shipping was very fast and the produ |
| 4 | Compare iPhone and Android phones | Compare iPhone and Android phones have d |
| 5 | How to choose a good pair of headphones? | How to choose a good pair of headphones? |