昇腾大模型推理解决方案MindIE部署

MindIE大模型推理套件

MindIE(Mind Inference Engine,昇腾推理引擎)是华为公司针对AI全场景推出的整体解决方案,包含丰富的推理加速套件。通过开放各层次AI能力,支撑客户多样化的AI业务需求,使能百模千态,释放昇腾设备的澎湃算力。向上支持多种主流AI框架,向下服务昇腾AI处理器,提供多层次编程接口,帮助用户快速构建基于昇腾平台的推理业务。昇腾推理引擎,基于昇腾硬件的运行加速、调试调优、快速迁移部署的高性能深度学习推理框架,分层开放满足各类需求,统一接口使能极简开发,沉淀能力构筑极致性能。

官方地址:MindIE-昇腾社区 (hiascend.com)

运行硬件环境要求:

推理服务器

Atlas 800I A2推理产品

加速卡

Atlas 300I Duo 推理卡+Atlas 800 推理服务器(型号:3000)

一、准备数据以及启动docker环境

1.1 下拉docker

镜像地址:镜像仓库网

查看最新的mindie的镜像:

参考上面的连接进行docker下拉:

举个例子,拉取docker:

docker pull swr.cn-central-221.ovaijisuan.com/wh-aicc-fae/mindie-ascend_24.1.rc2-cann_8.0.t13-py_3.10-ubuntu_22.04-aarch64:v1.0.t59.03 (其中swr.cn-central-221.ovaijisuan.com/wh-aicc-fae/mindie-ascend_24.1.rc2-cann_8.0.t13-py_3.10-ubuntu_22.04-aarch64:v1.0.t59.03为你选择的docker镜像)

创建容器并启动

docker run -itd --ipc=host --network=host --name mindie \

--privileged \

-p 1025:1025 \

--device=/dev/davinci0 \

--device=/dev/davinci1 \

--device=/dev/davinci2 \

--device=/dev/davinci3 \

--device=/dev/davinci4 \

--device=/dev/davinci5 \

--device=/dev/davinci6 \

--device=/dev/davinci7 \

--device=/dev/davinci_manager \

--device=/dev/devmm_svm \

--device=/dev/hisi_hdc \

-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \

-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \

-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \

-v /usr/local/sbin/:/usr/local/sbin/ \

-v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf \

-v /var/log/npu/slog/:/var/log/npu/slog \

-v /var/log/npu/profiling/:/var/log/npu/profiling \

-v /var/log/npu/dump/:/var/log/npu/dump \

-v /var/log/npu/:/usr/slog \

-v /home/:/home \

d07bfd46c4fa   #这个是镜像的id

注:其中卡的id可根据自己的环境进行修改。

查看已创建的容器 docker ps

启动容器并进入: 

docker exec -it -u 0 2c5 /bin/bash

备注:不同的版本显示不一样的环境,可根据自己所选的环境查看相关的mindie版本。

二、Qwen1.5 7B推理测试

2.1下载到modelscope社区下载Qwen1.5 7B Chat的模型

ModelScope:魔搭社区

下载模型及相关文件

启动python终端:

Python

依次输入如下命令。

from modelscope import snapshot_download

model_dir = snapshot_download('qwen/Qwen1.5-7B-Chat',cache_dir='/home')

如果modelscope没安装,记得先pip安装,cache_dir表示会把模型文件下载到该路径下。

注:如果模型下载报错,请继续执行download操作。

2.2修改下载的模型配置文件

进入/home/qwen/Qwen1___5-7B-Chat,编辑目录下的config.json 修改成"torch_dtype": "float16"

2.3执行推理性能测试

执行如下命令切换到mindie代码仓目录

cd /usr/local/Ascend/atb-models/tests/modeltest

安装下依赖:pip install –r requirements.txt

执行如下命令进行推理性能测试。具体参数请根据实际修改。

bash run.sh pa_fp16 performance [[512,512]] 16 qwen /home/qwen/Qwen1___5-7B-Chat 2

参数说明:

[[512,512]]:输入输出长度

16:batchsize大小

qwen:模型名称

/home/qwen/Qwen1___5-7B-Chat 2:权重所在目录

2:npu卡数量

测试结果存放在回显提示路径:

/usr/local/Ascend/atb-models/tests /tests/modeltest/result/

注:性能测试或者是精度测试可参考:/usr/local/Ascend/atb-models/readme.md文件或至少/usr/local/Ascend/atb-models/test/readme.md

2.4执行推理测试
  1. 切换到mindie-server所在目录。

cd /usr/local/Ascend/mindie/latest/mindie-service/

修改config.json文件中的如下内容。

vim conf/config.json

步骤2、启动mindie-server。

cd bin

./mindieservice_daemon

回显提示如下说明服务启用成功:

注:如果启动报错,可以查看/usr/local/Ascend/mindie/1.*/mindie-service/logs下的log文件。

步骤3、调用接口

使用curl调用接口(示例一):

​
time curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{

    "prompt": "我有五天假期,我想去海南玩,请给我一个攻略",

    "max_tokens": 512,

    "repetition_penalty": 1.03,

    "presence_penalty": 1.2,

    "frequency_penalty": 1.2,

    "temperature": 0.5,

    "top_k": 10,

    "top_p": 0.95,

    "stream": false

}' http://127.0.0.1:1025/generate  #其中127.0.0.1以实际ip地址为准

使用curl调用接口(示例二):

​
time curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{

 "model": "qwen",

 "messages": [{

  "role": "user",

  "content": "我有五天假期,我想去海南玩,请给我一个攻略"

 }],

 "max_tokens": 512,

 "presence_penalty": 1.03,

 "frequency_penalty": 1.0,

 "seed": null,

 "temperature": 0.5,

 "top_p": 0.95,

 "stream": false

}' http://127.0.0.1:1025/v1/chat/completions     #其中127.0.0.1以实际ip地址为准

​

使用curl调用接口(示例三):

​
curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{

 "model": "qwen",

 "messages": [{

     "role": "system",

     "content": "You are a student who is good at math."

},

{

  "role": "user",

  "content": "事业单位职工食堂食材采购资金部分来自职工福利基金补助,适用《政府采购法》吗?"

 }],

 "max_tokens": 512,

 "presence_penalty": 1.03,

 "frequency_penalty": 1.0,

 "seed": null,

 "temperature": 0.5,

 "top_p": 0.95,

 "stream": true

}' http://127.0.0.1:1025/v1/chat/completions #其中127.0.0.1以实际ip地址为准

​

### 华为昇腾920与MindIE及DeepSeek的集成情况 #### 关于华为昇腾920 华为昇腾920是一款高性能的人工智能处理器,专为数据中心设计。它支持多种计算精度,包括FP16、INT8等,并具备强大的并行处理能力[^2]。昇腾920主要应用于大规模机器学习训练和推理任务,在图像识别、自然语言处理等领域表现出色。 #### MindIE简介及其与昇腾920的关系 MindIE华为推出的轻量级推理引擎,旨在简化模型部署流程并提升推理效率。通过与昇腾系列芯片紧密结合,MindIE能够充分利用硬件加速特性来提高性能。具体来说: - **模型转换工具**:提供从主流框架(如TensorFlow、PyTorch)到Ascend IR的自动转换功能。 - **优化策略**:针对昇腾架构进行了专门优化,例如算子融合、内存管理改进等措施可以显著降低延迟并增加吞吐量[^3]。 #### DeepSeek概述以及其潜在兼容性分析 DeepSeek是由Hugging Face开发的一系列大语言模型之一,具有广泛的适用性和灵活性。虽然官方文档并未明确提及该家族产品直接支持昇腾设备作为目标运行环境;但是考虑到当前行业内对于异构计算平台间互操作性的重视程度不断提高,理论上可以通过如下方法实现二者之间的协作: - 利用ONNX作为中间表示形式完成跨平台移植工作流; - 借助第三方库比如OpenVINO或者TVM来进行定制化编译过程从而适应特定硬件需求[^1]。 以下是基于Python的一个简单示例展示如何加载预训练好的DeepSeek模型并通过ONNX导出以便后续进一步适配其他执行后端: ```python from transformers import AutoTokenizer, AutoModelForCausalLM import torch tokenizer = AutoTokenizer.from_pretrained("deepseek/lm_7b") model = AutoModelForCausalLM.from_pretrained("deepseek/lm_7b") dummy_input_ids = tokenizer.encode("Hello world!", return_tensors='pt') torch.onnx.export( model, dummy_input_ids.to('cpu'), "deepseek_model.onnx", input_names=['input'], output_names=['output'] ) ``` #### 总结 尽管目前还没有现成的支持方案可以直接将DeepSeek无缝对接至华为昇腾生态当中去,但从长远来看这种可能性依然存在并且值得期待。随着技术进步及相关社区贡献者的努力,未来或许会出现更加成熟完善的解决方案满足此类复杂场景下的业务诉求。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值