Files
openmind/docs/zh/basic_tutorial/deploy.md
张烨槟 105abd9d8a !234 deploy-lmdeploy补充版本配套说明
Merge pull request !234 from 张烨槟/master
2025-06-11 06:06:41 +00:00

8.5 KiB
Raw Permalink Blame History

模型部署

模型部署是指将大模型运行在专属的计算资源上,使模型在独立的运行环境中高效、可靠地运行,并为业务应用提供推理服务。

概述

openMind Library提供了模型部署的方法支持用户快速方便地在本地部署推理服务。当前支持的推理引擎包括

  • MindIE
  • LMDeploy
  • vLLM

openMind Library提供命令行接口command-line interface, CLI支持用户在shell环境下交互式实现部署流程。

openMind Library命令行接口内置于openMind Library中安装openMind Library即可使用详细步骤参考openMind Library安装指南

使用方法和参数配置

openmind-cli deploy model_name_or_path [--backend {mindie, lmdeploy, vllm}] [--port server_port] [--world_size world_size] [--device device] [--trust_remote_code {True, False}] [--backend_config vllm_args]

或者

openmind-cli deploy stop
  • --model_idstr可选,默认为None: openMind Library内置模型ID支持backend为lmdeploy或者vllm
  • model_name_or_pathstr必选,默认为None部署模型路径支持魔乐社区模型ID或模型权重本地路径。当backend为mindie时本地的模型来源必须为下载清单中的模型的本地路径
  • --backend str可选,默认为mindie):推理引擎,可以选择mindielmdeploy或者vllm
  • --portint可选,默认为1025):部署端口。
  • --world_sizeint可选,默认为1部署使用的npu卡的world_size在backend为mindie时生效。world_size需要与npu_device_ids中指定的卡数目一致。
  • --devicestr可选,默认为0部署使用的npu卡号在backend为mindie时生效。world_size需要与device中指定的卡数目一致。如果是需要部署多卡传入格式如"0,1,2,3"。
  • --trust_remote_codebool可选,默认为False):是否信任从远程下载的模型权重文件。
  • --backend_configstr可选,默认为None在backend为vllm时生效,支持传入复数后端自定义参数(不同参数之间使用,隔开),格式参考"tensor-parallel-size=4,dtype=bfloat16"支持输入json格式参数注意使用单引号防止读取错误格式参考'rope-scaling={"rope_type":"dynamic","factor":2.0}',如:
    • tensor-parallel-sizeint可选,默认为1):张量并行数,注意确保有足够的可用卡数,建议与ASCEND_RT_VISIBLE_DEVICES环境变量配套使用在指定卡上多卡部署。
    • dtypestr可选,默认为auto):模型权重和激活的数据类型,可选auto, half, float16, bfloat16, float, float32
    • 更多支持参数见vllm引擎参数.
  • 使用stop命令可以停止MindIE的部署服务。

MindIE

部署MindIE服务示例

  • 从魔乐社区上获取模型MindIE/llama2_7b在默认端口1025上进行部署。

    openmind-cli deploy MindIE/llama2_7b
    
  • 使用本地llama2_7b模型在指定端口1025上进行部署指定0,1号卡。

    openmind-cli deploy /path/to/your/llama2_7b --backend mindie --port 1025 --world_size 2 --npu_device_ids '0,1'
    
  • 停止MindIE服务

    openmind-cli deploy stop
    

交互示例

部署成功(执行npu-smi info看到相关进程可以在同服务器上使用curl进行交互。

  • 查看模型列表v1/models

    curl http://127.0.0.1:{port}/v1/models
    
  • 对话v1/chat/completions

    curl "http://127.0.0.1:{port}/v1/chat/completions" \
        -H "Content-Type: application/json" \
        -d '{
            "model": "llama2_7b",
            "messages": [
                {
                    "role": "user",
                    "content": "如何养生?"
                }
            ],
            "max_tokens": 128
        }'
    
  • 停止MindIE服务

    openmind-cli deploy stop
    

LMDeploy

环境准备

不同于openMind Library v1.0.0版本默认配套的PyTorch 2.1.0当前该接口的LMDeploy部署能力依赖于PyTorch 2.3.1版本即使用该功能需要修改环境中的PyTorch版本。对此我们强烈建议用户创建新环境进行模型部署新建环境可参考openMind Library安装指南

在安装LMDeploy之前请确保环境中存在setuptoolswheel。另外可执行以下命令检验torch_npu以及NPU环境是否可用以确保LMDeploy顺利安装。

python -c "import torch_npu;print(torch_npu.npu.is_available());"

'''
True
'''

LMDeploy安装命令如下

git clone -b v0.6.4  https://github.com/InternLM/lmdeploy.git
cd lmdeploy
pip install -e .
pip install dlinfer-ascend==0.1.7

主要版本配套说明如下:

软件 支持版本
torch 2.3.1
torch-npu 2.3.1
lmdeploy 0.6.4
dlinfer-ascend 0.1.7
transformers 4.47.1
accelerate 1.0.0rc1

部署LMDeploy服务示例

  • 从魔乐社区上获取模型AI-Research/Qwen2-7B在默认端口1025上进行部署。

    openmind-cli deploy AI-Research/Qwen2-7B --backend lmdeploy
    
  • 使用本地Qwen2-7B模型在指定端口1025上进行部署。

    openmind-cli deploy /path/to/your/Qwen2-7B --backend lmdeploy --port 1025
    

交互示例

部署成功后可以在同服务器上使用curl进行交互。

  • 查看模型列表v1/models

    curl http://127.0.0.1:1025/v1/models
    
  • 对话v1/chat/completions

    curl http://127.0.0.1:1025/v1/chat/completions \
      -H 'Content-Type: application/json' \
      -d '{
      "model": "AI-Research/Qwen2-7B",
      "messages": "推荐一个海边度假的地方"
    }'
    

vLLM

环境准备

基于openMind Library基础环境vLLM还需要满足以下软件配置要求

  • Python >= 3.9
  • CANN == 8.1.RC1
  • PyTorch == 2.6.0
  • torch-npu == 2.6.0rc1
  • vllm == 0.7.3
  • vllm-ascend == 0.7.3rc2

确保固件驱动和CANN安装配置无误后可以执行以下命令安装

# 安装vllm和torch
pip install vllm==0.7.3
pip install torch==2.6.0

# 安装配套的torchvision, torchaudio和torch-npu
pip install torchvision==0.21.0
pip install torchaudio==2.6.0
pip install torch-npu==2.6.0rc1

#安装vllm-ascend
pip install vllm-ascend==0.7.3rc2

更加详细的安装教程可参考vllm-ascend环境准备教程

部署vLLM服务示例

  • 从魔乐社区上获取模型AI-Research/Qwen2.5-7B在默认端口1025上进行部署。

    openmind-cli deploy --model_name_or_path AI-Research/Qwen2.5-7B --backend vllm
    
  • 使用本地Qwen2.5-7B模型在指定端口1025上进行多卡部署指定0,1,2,3号卡指定模型权重和激活的数据类型为bf16。

    ASCEND_RT_VISIBLE_DEVICES=0,1,2,3 openmind-cli deploy \
      --model_name_or_path /path/to/your/Qwen2.5-7B \
      --backend vllm \
      --port 1025 \
      --backend_config "tensor-parallel-size=4,dtype=bfloat16"
    

交互示例

部署成功后可以在同服务器上使用curl进行交互。

  • 查看模型列表v1/models

    curl http://127.0.0.1:1025/v1/models | python3 -m json.tool
    
  • 文本补全v1/completions

    curl http://127.0.0.1:1025/v1/completions \
        -H "Content-Type: application/json" \
        -d '{
            "model": "AI-Research/Qwen2.5-7B",
            "prompt": "Beijing is a",
            "max_tokens": 5,
            "temperature": 0
        }' | python3 -m json.tool
    
  • 对话v1/chat/completions

    curl http://127.0.0.1:1025/v1/chat/completions \
        -H "Content-Type: application/json" \
        -d '{
            "model": "AI-Research/Qwen2.5-7B",
            "messages": [{"role": "user", "content": "Recommend a place for a seaside holiday."}],
            "max_tokens": 64,
            "temperature": 0
        }' | python3 -m json.tool
    

openmind-cli deploy的全量参数可以参考openmind-cli deploy接口