MindIE+MindFormers推理方案指导

简介: 本文介绍了昇腾大模型推理解决方案MindIE+MindFormers.

组件介绍

CANN

CANN是什么:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/800alpha003/quickstart/quickstart/quickstart_18_0004.html

异构计算架构CANN(Compute Architecture for Neural Networks)是昇腾针对AI场景推出的异构计算架构,向上支持多种AI框架,包括MindSpore、PyTorch、TensorFlow等,向下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供多层次编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。

总体架构

1736904039662_image.png

MindIE

MindIE是什么:https://www.hiascend.com/document/detail/zh/mindie/10RC3/whatismindie/mindie_what_0001.html

MindIE(Mind Inference Engine,昇腾推理引擎)是华为昇腾针对AI全场景业务的推理加速套件。通过分层开放AI能力,支撑用户多样化的AI业务需求,使能百模千态,释放昇腾硬件设备算力。向上支持多种主流AI框架,向下对接不同类型昇腾AI处理器,提供多层次编程接口,帮助用户快速构建基于昇腾平台的推理业务。

总体架构

1736904203137_image.png

MindFormers

MindFormers是什么:https://www.mindspore.cn/mindformers/docs/zh-CN/r1.3.0/start/overview.html

MindSpore Transformers套件的目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件,提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。期望帮助用户轻松的实现大模型训练和创新研发。

总体架构

1736904385958_image.png

版本配套与安装指导

版本配套关系

安装指导

  • MindIE安装指南(包括了固件与驱动、CANN、MindIE、pytorch等基础依赖的安装):

1.0.RC3安装:

https://www.hiascend.com/document/detail/zh/mindie/10RC3/envdeployment/instg/mindie_instg_0001.html

1.0.RC2安装:

https://www.hiascend.com/document/detail/zh/mindie/10RC2/envdeployment/instg/mindie_instg_0001.html

使用指导

参考指导:

https://www.mindspore.cn/mindformers/docs/zh-CN/r1.3.0/usage/mindie_deployment.html

  • 环境搭建

1)参考上面的安装指导完成软件安装

2)环境变量设置

# Ascend
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# MindIE
source /usr/local/Ascend/mindie/latest/mindie-llm/set_env.sh
source /usr/local/Ascend/mindie/latest/mindie-service/set_env.sh
# MindSpore
export LCAL_IF_PORT=8129
# 组网配置
export MS_SCHED_HOST=127.0.0.1 # scheduler节点ip地址
export MS_SCHED_PORT=8090 # scheduler节点服务端口
  • 权重转换

参考指导:https://www.mindspore.cn/mindformers/docs/zh-CN/r1.3.0/function/weight_conversion.html

以Qwen1.5-72B为例

# 1.拉取MindFormers代码仓(以1.3.0版本为例

git clone -b r1.3.0 https://gitee.com/mindspore/mindformers.git

# 2.执行权重转换

cd mindformers
# 以Qwen1.5-72B为例, input_path: 指的是从HuggingFace下载的权重目录;output_path: 转换成ms权重的存放路径
python convert_weight.py --model qwen --input_path /data/models/qwen1.5-72B/ --output_path /home/user/ms_weights/qwen1_5_72b/qwen1_5_72B.ckpt

转换后的模型权重目录结构如下:

mf_model
└── qwen1_5_72b
├── config.json # 模型json配置文件
├── vocab.json # 模型vocab文件,hf上对应模型下载
├── merges.txt # 模型merges文件,hf上对应模型下载
├── predict_qwen1_5_72b.yaml # 模型yaml配置文件, 从mindformers仓中research目录下找到
├── qwen1_5_tokenizer.py # 模型tokenizer文件,从mindformers仓中research目录下找到对应模型复制
└── qwen1_5_72b_ckpt_dir # 模型分布式权重文件夹或单个权重文件

predict_qwen1_5_72b.yaml获取:mindformers/research/qwen1_5/predict_qwen1_5_72b.yaml

qwen1_5_tokenizer.py获取:mindformers/research/qwen1_5/qwen1_5_tokenizer.py

predict_qwen1_5_72b.yaml需要关注以下配置, 注释的地方根据实际情况修改:

load_checkpoint: '/mf_model/qwen1_5_72b/qwen1_5_72b_ckpt_dir' # 为存放模型分布式权重文件夹路径

load_checkpoint: '/mf_model/qwen1_5_72b/qwen1_5_72b_ckpt_dir' # 为存放模型分布式权重文件夹路径
use_parallel: True
auto_trans_ckpt: False    # 是否开启自动权重转换,离线切分设置为False
parallel_config:
  data_parallel: 1
  model_parallel: 4       # 多卡推理配置模型切分,一般与使用卡数一致
  pipeline_parallel: 1
processor:
  tokenizer:
    vocab_file: "/mf_model/qwen1_5_72b/vocab.json"  # vocab文件路径
    merges_file: "/mf_model/qwen1_5_72b/merges.txt"  # merges文件路径
  • 推理服务化部署

1) 修改MindIE Service配置文件

# 1.打开mindie service配置文件
vim /usr/local/Ascend/mindie/1.0.RC3/mindie-service/conf/config.json
# 2.修改backendType、modelWeightPath配置项
"backendType": "ms"
"modelWeightPath": "/mf_model/qwen1_5_72b"

2) 启动服务

cd /usr/local/Ascend/mindie/1.0.RC3/mindie-service
nohup ./bin/mindieservice_daemon > output.log 2>&1 &
tail -f output.log
# 打印如下信息,启动成功
Daemon start success!
  • 请求测试

服务启动成功后,可使用curl命令发送请求验证,样例如下:

curl -w "\ntime_total=%{time_total}\n" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"inputs": "I love Beijing, because","stream": false}' http://127.0.0.1:1025/generate

返回推理结果验证成功:

{"generated_text":" it is a city with a long history and rich culture....."}
相关文章
|
8月前
|
容器
vllm+vllm-ascend本地部署QwQ-32B
本指南介绍如何下载、安装和启动基于Ascend的vLLM模型。首先,可通过华为镜像或Hugging Face下载预训练模型;其次,安装vllm-ascend,支持通过基础镜像(如`quay.io/ascend/vllm-ascend:v0.7.3-dev`)或源码编译方式完成;最后,使用OpenAI兼容接口启动模型,例如运行`vllm serve`命令,设置模型路径、并行规模等参数。适用于大模型推理场景,需注意显存需求(如QwQ-32B需70G以上)。
3445 17
|
应用服务中间件 网络安全 nginx
Nginx配置WebSocket 【支持wss与ws连接】
Nginx配置WebSocket 【支持wss与ws连接】
10097 1
|
人工智能 PyTorch 算法框架/工具
【AI系统】昇腾推理引擎 MindIE
本文详细介绍华为昇腾推理引擎 MindIE,涵盖其基本介绍、关键功能特性及三大组件:MindIE-Service、MindIE-Torch 和 MindIE-RT。文章深入探讨了各组件在服务化部署、大模型推理和推理运行时方面的功能和应用场景,旨在帮助读者全面了解 MindIE 如何支持 AI 业务的高效运行和模型的快速部署。
1192 0
|
9月前
|
PyTorch 编译器 算法框架/工具
NPU上如何使能pytorch图模式
本文介绍了PyTorch的`torch.compile`技术和TorchAir的相关内容。`torch.compile`通过将动态图转换为静态图并结合JIT编译,提升模型推理和训练效率。示例代码展示了如何使用`torch.compile`优化模型。TorchAir是昇腾为PyTorch提供的图模式扩展库,支持在昇腾设备上进行高效训练和推理。它基于Dynamo特性,将计算图转换为Ascend IR,并通过图引擎优化执行。文章还提供了TorchAir的使用示例及功能配置方法。
|
8月前
|
测试技术 AI芯片
服务化参数调优实战
本文介绍了服务化性能调优的全流程,以Llama3-8B模型为例。首先需完成MindIE环境安装、下载模型权重与测试数据集。接着通过计算npuMemSize和maxBatchSize,maxPrefillBatchSize(272)与maxPrefillTokens,并更新配置进行性能测试。结果显示,参数调优后吞吐量提升18%。此方法为大模型性能优化提供了实用指导。
|
11月前
|
调度
MindIE对接vLLM框架开发指南
vLLM对接MindIE,使能快速迁移到昇腾设备上,当前MindIE 1.0.0发布版本已支持多种三方框架。
|
10月前
|
自然语言处理 测试技术 API
MindIE BenchMark
MindIE Benchmark工具通过部署昇腾服务化配套包,以终端命令方式测试大语言模型在不同配置下的推理性能和精度。它支持Client和Engine两种推理模式:Client模式适用于多用户并发场景,兼容多种接口;Engine模式直接调用底层API,测量NPU卡的真实性能。该工具支持多个数据集进行精度和性能测试,如CEval 5-shot、CMMLU、GSM8K等,并将结果保存为本地csv文件。评测方法包括调用大模型输入题目,解析返回结果并与正确答案比较,计算平均分和其他指标如准确率、EM等。
|
11月前
|
人工智能 供应链 搜索推荐
大模型进化论:AI产业落地将卷向何方?
大模型进化论:AI产业落地将卷向何方?
233 11
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
459 9
【AI系统】AI 框架基础介绍
|
11月前
|
敏捷开发 人工智能 安全
支付宝故障,如果你来设计会怎么做?
支付宝官方发布公告,解释了因配置错误导致部分用户享受立减优惠的情况。明确表示不会追回已发放的优惠,并提醒用户谨防诈骗短信。针对此次事件,作者从角色缺失、防呆设计、程序预检、沙箱与灰度发布及AI审核五个方面,探讨如何避免类似运营失误,强调了流程优化和责任分担的重要性。
257 1