昇腾社区首页
中文
注册
昇腾推理微服务MIS:2步部署高性能模型服务,AI应用小时级构建

昇腾推理微服务MIS:2步部署高性能模型服务,AI应用小时级构建

推理微服务

发表于 2025/06/19

1. 背景

AI领域正在快速发展,部署和构建大模型应用时面临多个挑战:

(1)多引擎适配困难

现代业务场景需要vLLM、MindIE、TEI等多个LLM引擎协同工作,以应对不同场景的差异化需求,环境配置和适配更加困难。

(2)多硬件适配困难

面对多样化算力硬件,传统部署需针对硬件进行定制化配置,随着规模增大,人工配置效率降低,且性能不佳。

(3)部署扩展易用性差

随着应用复杂度增加,为保证在不同基础设施上的部署一致性,同时实现从单卡到多机的扩展,高效部署扩展能力变得更加重要。


面对这些挑战,昇腾推理微服务MIS内置多引擎配置,多硬件调优,弹性化扩展,实现2步部署模型服务,助力用户小时级构建AI应用。


2. 技术特性与价值

昇腾推理微服务MIS六层架构分层设计:

MIS分层架构图

MIS分层架构从部署到提供服务自下而上涵盖了:环境准备、优化参数配置解析、引擎后端选择、引擎参数更新与配置、服务注册并启动、最终提供OpenAI与TEI兼容的 API服务。基于MIS,整体部署流程简洁快速。


2.1 MIS具有五大特点

(1)统一推理框架:集成多种引擎(vLLM,MindIE,TEI),对外提供统一框架

(2)支持模型广泛:支持主流大语言、多模态、向量化等不同种类模型

(3)内置性能优化:内置昇腾硬件亲和的深度性能优化

(4)易用性部署:镜像部署,无需繁琐配置,可在数据中心、云端快速部署

(5)标准API集成:提供标准接口,便于集成主流大模型系统


2.2 关键特性

特性说明
MIS支持多种引擎类型MIS支持如下引擎:
•vLLM:UC Berkeley推出的一种高性能开源LLM 推理和服务库
•MindIE:华为自研推理引擎,包含昇腾亲和加速特性
•TEI-service:Hugging Face推出的一种用于文本嵌入和推理的引擎
MIS支持通过环境变量切换运行配置支持如下的运行配置:
•推理执行后端
•量化模型配置
•高吞吐/低时延/均衡默认三种最优参数配置
•可配置不同的服务端口
MIS支持服务状态统计基于Prometheus,记录服务状态(支持vLLM后端推理引擎)


3. 快速部署(以QwQ-32B为例)

以昇腾Atlas 800I A2 设备为硬件,以下为软件配套:

镜像版本CANN版本PyTorch版本
7.1.T2-800I-A2-aarch648.0.0(LLM) / 8.1.RC1(VLM)2.5.1

3.1 启动推理微服务

注:确保开始前,已正确安装Atlas 800I A2的固件和驱动软件

1. 设置模型权重加载方式

设置本地缓存路径为环境变量LOCAL_CACHE_PATH或跳转至魔乐社区链接下载模型权重,并将模型权重对应文件路径设置为环境变量LOCAL_CACHE_PATH:

# 设置模型下载缓存路径
export LOCAL_CACHE_PATH=~/models # ~/models可替换为任意路径

微服务会从LOCAL_CACHE_PATH路径下的 MindSDK/QwQ-32B 进行权重的加载,请确保模型放置路径正确。

2. 启动容器镜像

以BF16权重为例, 其他权重类型的容器启动需更改环境变量MIS_CONFIG,QwQ-32B 推理微服务的典型优化配置选项如下表:

MIS_CONFIG可选值服务器硬件型号计算卡规格数据类型量化方法后端性能倾向
atlas800ia2-4x32gb-bf16-vllm-defaultAtlas 800I A24x32GBBF16-vLLM均衡
atlas800ia2-4x32gb-bf16-mindie-service-throughputAtlas 800I A24x32GBBF16-MindIE-Service高吞吐
atlas800ia2-2x32gb-int8-msms-mindie-service-latencyAtlas 800I A24x32GBINT8msModelSlimMindIE-Service低时延

Ascend Docker Runtime 启动

注:如果尚未安装 Ascend Docker Runtime,请先获取安装包,并参考 Ascend Docker Runtime安装部署指南完成安装。

# 设置容器名称
export CONTAINER_NAME=qwq-32b
# 选择镜像
export IMG_NAME=swr.cn-south-1.myhuaweicloud.com/ascendhub/qwq-32b:0.1.2-arm64
# 启动推理微服务,使用ASCEND_VISIBLE_DEVICES选择卡号,范围[0,7],示例选择0-3卡
docker run -itd \
     --name=$CONTAINER_NAME \
     -e ASCEND_VISIBLE_DEVICES=0-3 \
     -e MIS_CONFIG=atlas800ia2-4x32gb-bf16-vllm-default \
     -v $LOCAL_CACHE_PATH:/opt/mis/.cache \
     -p 8000:8000 \
     --shm-size 1gb \
     $IMG_NAME

3. 在容器启动后,可通过如下命令进入容器查看日志

# 查看推理容器日志
docker logs -f ${CONTAINER_NAME}

推理微服务容器内出现以下消息表示启动成功。

INFO: Application startup complete.

3.2 请求推理微服务

以Python 调用为例,使用OpenAI API发起对话请求(OpenAI Chat Completion请求,以BF16权重为例)。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/openai/v1",
    api_key="dummy_key"
)

response = client.chat.completions.create(
    model="QwQ-32B",
    messages=[
        {"role": "system", "content": "你是一个友好的AI助手。"},
        {"role": "user", "content": "你好"},
    ],
    max_tokens=100,
    temperature=0.6,
    top_p=0.6,
)

print(response.choices[0].message)

执行成功后返回(参考样例)

ChatCompletionMessage(
    content="你好!很高兴为你提供帮助。有什么我可以帮助你的吗?",
    refusal=None,
    role="assistant",
    audio=None,
    function_call=None,
    tool_calls=[],
    reasoning_content=None,
)

3.3 停止推理微服务

如果选择指定--name来启动Docker容器,则可以使用以下命令停止正在运行的容器。

docker stop $CONTAINER_NAME

如果docker stop没有响应,请使用docker kill命令完成容器销毁。


本页内容