From 4bd795491fdb20d64bda33a2d89709196be12c14 Mon Sep 17 00:00:00 2001 From: xuzhenyoumi Date: Sat, 27 Sep 2025 17:56:50 +0800 Subject: [PATCH] modify getting_started --- .../deepseek_r1_671b_w8a8_dp4_tp4_ep4.md | 6 +- .../developer_guide/contributing.md | 12 ++-- .../developer_guide/operations/custom_ops.md | 20 +++--- .../docs/source_zh_cn/faqs/faqs.md | 6 +- .../docs/source_zh_cn/general/security.md | 10 +-- .../installation/installation.md | 20 +++--- .../quick_start/quick_start.md | 32 ++++----- .../deepseek_r1_671b_w8a8_dp4_tp4_ep4.md | 70 +++++++++---------- .../qwen2.5_32b_multiNPU.md | 27 ++++--- .../qwen2.5_7b_singleNPU.md | 27 ++++--- .../docs/source_zh_cn/index.rst | 18 ++--- .../release_notes/release_notes.md | 4 +- .../environment_variables.md | 12 ++-- .../supported_features/benchmark/benchmark.md | 8 +-- .../supported_features/profiling/profiling.md | 8 +-- .../quantization/quantization.md | 4 +- .../ms_infer/ms_infer_model_serving_infer.md | 2 +- 17 files changed, 140 insertions(+), 146 deletions(-) diff --git a/docs/vllm_mindspore/docs/source_en/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md b/docs/vllm_mindspore/docs/source_en/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md index 9708fe908a..81aee810d3 100644 --- a/docs/vllm_mindspore/docs/source_en/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md +++ b/docs/vllm_mindspore/docs/source_en/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md @@ -218,7 +218,7 @@ vllm-mindspore serve --quantization [Source of weight quantification] # golden-stick/ascend are optional, respectively indicating that the quantified weights come from the golden-stick or modelslim quantification tools --trust-remote-code # Use locally downloaded model files --max-num-seqs [Maximum Batch Size] - --max-model-len [Maximum Input/Output Length] + --max-model-len [Model context Length] --max-num-batched-tokens [Maximum Tokens per Iteration, recommended: 4096] --block-size [Block Size, recommended: 128] --gpu-memory-utilization [GPU Memory Utilization, recommended: 0.9] @@ -229,7 +229,7 @@ Execution example: ```bash # Master node: -vllm-mindspore serve --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" --quantization ascend --trust-remote-code --max-num-seqs=256 --max_model_len=32768 --max-num-batched-tokens=4096 --block-size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 16 --distributed-executor-backend=ray +vllm-mindspore serve --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" --quantization ascend --trust-remote-code --max-num-seqs=256 --max-model-len=32768 --max-num-batched-tokens=4096 --block-size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 16 --distributed-executor-backend=ray ``` In tensor parallel scenarios, the `--tensor-parallel-size` parameter overrides the `model_parallel` configuration in the model YAML file. User can also set the local model path by `--model` argument. @@ -287,7 +287,7 @@ vllm-mindspore serve --quantization [Source of weight quantification] # golden-stick/ascend are optional, respectively indicating that the quantified weights come from the golden-stick or modelslim quantification tools --trust-remote-code # Use locally downloaded model files --max-num-seqs [Maximum Batch Size] - --max-model-len [Maximum Input/Output Length] + --max-model-len [Model context Length] --max-num-batched-tokens [Maximum Tokens per Iteration, recommended: 4096] --block-size [Block Size, recommended: 128] --gpu-memory-utilization [GPU Memory Utilization, recommended: 0.9] diff --git a/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/contributing.md b/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/contributing.md index 2b49068104..84831df3ce 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/contributing.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/contributing.md @@ -17,7 +17,7 @@ 若希望将一个新模型合入vLLM-MindSpore插件代码仓库,需要注意几点: - **文件格式及位置要遵循规范。** 模型代码文件统一放置于`vllm_mindspore/model_executor`文件夹下,请根据不同模型将代码文件放置于对应的文件夹下。 -- **模型基于MindSpore接口实现,支持jit静态图方式执行。** vLLM-MindSpore插件中的模型定义实现需基于MindSpore接口实现。由于MindSpore静态图模式执行性能有优势,因此模型需支持@jit静态图方式执行。详细可参考[Qwen2.5](https://gitee.com/mindspore/vllm-mindspore/blob/master/vllm_mindspore/model_executor/models/qwen2.py)模型定义实现。 +- **模型基于MindSpore接口实现,支持jit静态图方式执行。** vLLM-MindSpore插件中的模型定义需基于MindSpore接口实现。由于MindSpore静态图模式执行性能有优势,因此模型需支持@jit静态图方式执行。详细可参考[Qwen2.5](https://gitee.com/mindspore/vllm-mindspore/blob/master/vllm_mindspore/model_executor/models/qwen2.py)模型定义实现。 - **将新模型在vLLM-MindSpore插件代码中进行注册。** 模型结构定义实现后,需要将该模型注册到vLLM-MindSpore插件中,注册文件位于'vllm_mindspore/model_executor/models/registry.py'中,请将模型注册到`_NATIVE_MODELS`。 - **编写单元测试。** 新增的模型需同步提交单元测试用例,用例编写请参考[Qwen2.5模型用例](https://gitee.com/mindspore/vllm-mindspore/blob/master/tests/st/python/cases_parallel/vllm_qwen_7b.py)。 @@ -31,7 +31,7 @@ - **单元测试指南:** vLLM-MindSpore插件使用Python单元测试框架[pytest](http://www.pytest.org/en/latest/)。注释名称需反映测试用例的设计意图。 -- **重构指南:** 我们鼓励开发人员重构我们的代码,以消除[代码坏味道](https://zh.wikipedia.org/wiki/%E4%BB%A3%E7%A0%81%E5%BC%82%E5%91%B3)。所有代码都要符合编码风格和测试风格,重构代码也不例外。 +- **重构指南:** 我们鼓励开发人员重构我们的代码,以消除[代码异味](https://zh.wikipedia.org/wiki/%E4%BB%A3%E7%A0%81%E5%BC%82%E5%91%B3)。所有代码都要符合编码风格和测试风格,重构代码也不例外。 ### Fork-Pull开发模型 @@ -63,7 +63,7 @@ git push origin {新分支名称} ``` -- **将请求拉取到vLLM-MindSpore插件代码仓:** 在最后一步中,您需要在新分支和vLLM-MindSpore插件主分支之间拉取比较请求然后创建PR。提交PR提交后,需要在评论中通过`/retest`手动触发门禁检查,进行构建测试。PR应该尽快合并到上游master分支中,以降低合并的风险。 +- **将请求拉取到vLLM-MindSpore插件代码仓:** 在最后一步中,您需要在新分支和vLLM-MindSpore插件主分支之间拉取比较请求,然后创建PR。提交PR后,需要在评论中通过`/retest`手动触发门禁检查,进行构建测试。PR应该尽快合并到上游master分支中,以降低合并的风险。 ### 报告Issue @@ -71,9 +71,9 @@ 报告issue时,请参考以下格式: -- 说明您使用的环境版本(vLLM-MindSpore插件、MindSpore TransFormers、MindSpore、OS、Python等); +- 说明您使用的环境版本(vLLM-MindSpore插件、MindSpore TransFormers、MindSpore、OS、Python等); - 说明是错误报告还是功能需求; -- 说明issue类型,添加标签可以在issue板上突出显示该issue; +- 说明issue类型,添加标签可以在issue板上突出显示该issue; - 问题是什么; - 期望如何处理; - 如何复现(尽可能精确具体地描述); @@ -99,4 +99,4 @@ - 确保您的分支与主分支始终一致。 - 用于修复错误的PR中,确保已关联所有相关问题。 -最后,感谢您对为vLLM-MindSpore插件项目做出贡献的兴趣,我们欢迎并重视任何形式的贡献与合作。 +最后,感谢您对vLLM-MindSpore插件项目做出贡献的兴趣,我们欢迎并重视任何形式的贡献与合作。 diff --git a/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/operations/custom_ops.md b/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/operations/custom_ops.md index 3e08c978c8..b914f8f989 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/operations/custom_ops.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/developer_guide/operations/custom_ops.md @@ -6,7 +6,7 @@ 本文档将以 **`advance_step_flashattn`** 算子为例,讲解如何在vLLM-MindSpore插件项目中接入一个AscendC自定义算子。 -本文重点在于介绍把算子集成进vLLM-MindSpore插件的流程,自定义算子的细节请参考 MindSpore 官方教程:[基于CustomOpBuilder的自定义算子](https://www.mindspore.cn/tutorials/zh-CN/master/custom_program/operation/op_customopbuilder.html)。AscendC算子的开发流程请参考昇腾官方文档:[Ascend C算子开发](https://www.hiascend.com/document/detail/zh/canncommercial/81RC1/developmentguide/opdevg/Ascendcopdevg/atlas_ascendc_10_0001.html)。 +本文重点在于介绍把算子集成进vLLM-MindSpore插件的流程。自定义算子的细节请参考 MindSpore 官方教程:[基于CustomOpBuilder的自定义算子](https://www.mindspore.cn/tutorials/zh-CN/master/custom_program/operation/op_customopbuilder.html)。AscendC算子的开发流程请参考昇腾官方文档:[Ascend C算子开发](https://www.hiascend.com/document/detail/zh/canncommercial/81RC1/developmentguide/opdevg/Ascendcopdevg/atlas_ascendc_10_0001.html)。 **注:目前vLLM-MindSpore插件的自定义算子仅支持动态图(PyNative Mode)场景。** @@ -37,11 +37,11 @@ vllm-mindspore/ ## 接入流程 -接入一个自定义算子,在算子实现方面,需在`csrc`目录中,创建[算子接口定义](#算子接口声明),[算子实现](#算子实现)与[算子接入](#算子接入)。在完成自定义算子初步的开发与接入后,可添加[算子调用接口](#算子调用接口)并进行[算子编译和测试](#算子编译和测试)。 +接入一个自定义算子,在算子实现方面,需在`csrc`目录中创建[算子接口定义](#算子接口声明)、[算子实现](#算子实现)与[算子接入](#算子接入)。在完成自定义算子初步的开发与接入后,可添加[算子调用接口](#算子调用接口)并进行[算子编译和测试](#算子编译和测试)。 ### 算子接口声明 -在 `csrc/ascendc/` 目录下,创建头文件(如 `adv_step_flash.h`),以声明算子接口,内容参考[adv_step_flash.h](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/ascendc/adv_step_flash.h): +在 `csrc/ascendc/` 目录下创建头文件(如 `adv_step_flash.h`),以声明算子接口。内容参考[adv_step_flash.h](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/ascendc/adv_step_flash.h): ```cpp #ifndef VLLM_MINDSPORE_CSRC_ASCENDC_ADV_STEP_FLASH_H @@ -57,7 +57,7 @@ extern void AdvStepFlashKernelEntry(uint32_t blockDims, void *l2ctrl, void *aclS ### 算子实现 -在 `csrc/ascendc/` 目录下创建实现文件(如 `adv_step_flash.c`),以实现算子的核心逻辑,内容参考[adv_step_flash.c](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/ascendc/adv_step_flash.c): +在 `csrc/ascendc/` 目录下创建实现文件(如 `adv_step_flash.c`),以实现算子的核心逻辑。内容参考[adv_step_flash.c](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/ascendc/adv_step_flash.c): ```cpp #include "kernel_operator.h" @@ -84,7 +84,7 @@ void AdvStepFlashKernelEntry(uint32_t blockDims, void *l2ctrl, void *aclStream, ### 算子接入 -在 `csrc/module/` 目录下创建一个新的接入文件(如 `adv_step_flash.cpp`),内容参考 [adv_step_flash.cpp](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/module/adv_step_flash.cpp): +在 `csrc/module/` 目录下创建一个新的接入文件(如 `adv_step_flash.cpp`)。内容参考 [adv_step_flash.cpp](https://gitee.com/mindspore/vllm-mindspore/blob/master/csrc/module/adv_step_flash.cpp): ```cpp #include "ms_extension/api.h" @@ -115,7 +115,7 @@ VLLM_MS_EXTENSION_MODULE(m) { ### 算子调用接口 -vLLM-MindSpore插件的自定义算子被编译到了 `_C_ops.so` 里面,为了方便调用,可以在 `vllm_mindspore/_custom_ops.py` 添加一个调用接口。如果在算子调用前后需要做额外适配,也可以在这接口内实现。 +vLLM-MindSpore插件的自定义算子被编译到了 `_C_ops.so` 里面。为了方便调用,可以在 `vllm_mindspore/_custom_ops.py` 添加一个调用接口。如果在算子调用前后需要做额外适配,也可以在这接口内实现。 ```python def advance_step_flashattn(num_seqs: int, num_queries: int, block_size: int, @@ -138,13 +138,13 @@ def advance_step_flashattn(num_seqs: int, num_queries: int, block_size: int, block_tables=block_tables) ``` -这里通过 `import _C_ops` 即可导入自定义算子的Python模块,推荐在调用前再导入,未调用时不需要导入。 +这里通过 `import _C_ops` 即可导入自定义算子的Python模块。推荐在调用前再导入,未调用时不需要导入。 ### 算子编译和测试 1. **代码集成**:将代码集成至vLLM-MindSpore插件项目。 -2. **编译项目**:在项目代码根目录下,执行 `pip install .` ,编译安装vLLM-MindSpore插件。 -3. **测试算子接口**:通过 `_custom_ops` 调用算子接口,可以参考测试用例[test_custom_advstepflash.py](https://gitee.com/mindspore/vllm-mindspore/blob/master/tests/st/python/test_custom_advstepflash.py): +2. **编译项目**:在项目代码根目录下执行 `pip install .` ,编译安装vLLM-MindSpore插件。 +3. **测试算子接口**:通过 `_custom_ops` 调用算子接口。可以参考测试用例[test_custom_advstepflash.py](https://gitee.com/mindspore/vllm-mindspore/blob/master/tests/st/python/test_custom_advstepflash.py): ```python from vllm_mindspore import _custom_ops as custom_ops @@ -170,7 +170,7 @@ cmdclass = {"build_ext": CustomBuildExt}, ### 算子编译流程 1. `CustomBuildExt` 调用CMake执行 `csrc/CMakeLists.txt` ,传入必要的环境变量,触发算子编译。 -2. 通过 `ascendc/CMakeLists.txt` 调用AscendC编译器,编译 `ascendc` 目录内的算子算子源码。生成静态库 `ascendc_kernels_npu.a` 。 +2. 通过 `ascendc/CMakeLists.txt` 调用AscendC编译器,编译 `ascendc` 目录内的算子源码。生成静态库 `ascendc_kernels_npu.a` 。 3. 递归收集cpp源文件列表 `SRC_FILES` 。 4. 生成临时脚本 `build_custom_with_ms.py` ,文件内调用 `mindspore.CustomOpBuilder` 编译算子接口。文件里也写入了源文件列表、头文件路径和静态库路径等信息。 5. 通过CMake的 `add_custom_target` 命令调用Python脚本编译自定义算子,生成 `_C_ops.so` 。 diff --git a/docs/vllm_mindspore/docs/source_zh_cn/faqs/faqs.md b/docs/vllm_mindspore/docs/source_zh_cn/faqs/faqs.md index c68420f330..dc1095c451 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/faqs/faqs.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/faqs/faqs.md @@ -37,14 +37,14 @@ - 解决思路: 1. 检查模型路径是否存在且合法; - 2. 若模型路径存在,且其中的模型文件为`safetensors`格式,则需要确认yaml文件中,是否已含有`load_ckpt_format: "safetensors"`字段; - 1. 打印模型所使用的yaml文件路径: + 2. 若模型路径存在,且其中的模型文件为`safetensors`格式,则需要确认YAML文件中,是否已含有`load_ckpt_format: "safetensors"`字段; + 1. 打印模型所使用的YAML文件路径: ```bash echo $MINDFORMERS_MODEL_CONFIG ``` - 2. 查看该yaml文件,若不存在`load_ckpt_format`字段,则添加该字段: + 2. 查看该YAML文件,若不存在`load_ckpt_format`字段,则添加该字段: ```text load_ckpt_format: "safetensors" diff --git a/docs/vllm_mindspore/docs/source_zh_cn/general/security.md b/docs/vllm_mindspore/docs/source_zh_cn/general/security.md index 63118b8195..b8e4fcecd4 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/general/security.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/general/security.md @@ -2,7 +2,7 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/general/security.md) -通过vLLM-MindSpore插件在 Ascend 上使能推理服务时,由于服务化、节点通信、模型执行等必要功能需要使用一些网络端口,因此会存在安全相关的一些问题。 +通过vLLM-MindSpore插件在 Ascend 上使能推理服务时,由于服务化、节点通信、模型执行等必要功能需要使用一些网络端口,因此会存在一些安全问题。 ## 服务化端口配置 @@ -22,7 +22,7 @@ 1. MindSpore分布式通信。 2. 模型TP、DP并行下的通信。 -为了保证其安全性,应该部署在有足够安全的隔离网络环境中。 +为了保证其安全性,应该部署在具有足够安全性的隔离网络环境中。 ### vLLM 中关于节点间通信的可配置项 @@ -44,8 +44,8 @@ * 在隔离的专用网络上部署vLLM节点。 * 通过网络分段防止未经授权的访问。 * 设置恰当的防火墙规则。如: - * 除了vLLM API服务监听的端口外,阻止所以其他连接。 - * 确保用于内部的通信端口仅被信任的主机或网络访。 + * 除了vLLM API服务监听的端口外,阻止所有其他连接。 + * 确保用于内部的通信端口仅被信任的主机或网络访问。 * 不向公共互联网或不受信任的网络暴露内部端口。 2. 推荐配置行为 * 总是配置相关参数,避免使用默认值,如通过 `VLLM_HOST_IP` 设置指定的IP地址。 @@ -53,7 +53,7 @@ 3. 管理访问权限 * 在部署环境实施物理层和网络层的访问限制。 * 管理好身份验证和授权。 - * 所有系统组件的权限管理上,遵循最小权限原则。 + * 在所有系统组件的权限管理上,遵循最小权限原则。 ## 参考 diff --git a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/installation/installation.md b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/installation/installation.md index f29f8b8551..fad57bcffc 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/installation/installation.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/installation/installation.md @@ -2,7 +2,7 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/getting_started/installation/installation.md) -本文档将介绍vLLM-MindSpore插件的[版本配套](#版本配套),vLLM-MindSpore插件的安装步骤,与[快速验证](#快速验证)用例,用于验证安装是否成功。其中安装步骤分为两种安装方式: +本文档将介绍vLLM-MindSpore插件的[版本配套](#版本配套)、安装步骤与[快速验证](#快速验证)用例,用于验证安装是否成功。其中安装步骤分为两种方式: - [docker安装](#docker安装):适合用户快速使用的场景; - [源码安装](#源码安装):适合用户有增量开发vLLM-MindSpore插件的场景。 @@ -25,7 +25,7 @@ ## docker安装 -在本章节中,我们推荐用docker创建的方式,以快速部署vLLM-MindSpore插件环境,以下是部署docker的步骤介绍: +在本章节中,我们推荐使用docker创建的方式,快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: ### 构建镜像 @@ -51,7 +51,7 @@ docker images ### 新建容器 -用户在完成[构建镜像](#构建镜像)后,设置`DOCKER_NAME`与`IMAGE_NAME`以设置容器名与镜像名,并执行以下命令,以新建容器: +用户在完成[构建镜像](#构建镜像)后,设置`DOCKER_NAME`与`IMAGE_NAME`以设置容器名与镜像名,并执行以下命令新建容器: ```bash export DOCKER_NAME=vllm-mindspore-container # your container name @@ -85,7 +85,7 @@ docker run -itd --name=${DOCKER_NAME} --ipc=host --network=host --privileged=tru bash ``` -新建容器后成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: +新建容器成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: ```bash docker ps @@ -103,7 +103,7 @@ docker exec -it $DOCKER_NAME bash ### CANN安装 -CANN安装方法与环境配套,请参考[CANN社区版软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/82RC1alpha002/softwareinst/instg/instg_0001.html?Mode=PmIns&OS=openEuler&Software=cannToolKit),若用户在安装CANN过程中遇到问题,可参考[昇腾常见问题](https://www.hiascend.com/document/detail/zh/AscendFAQ/ProduTech/CANNFAQ/cannfaq_000.html)进行解决。 +CANN安装方法与环境配套,请参考[CANN社区版软件安装](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/82RC1alpha002/softwareinst/instg/instg_0001.html?Mode=PmIns&OS=openEuler&Software=cannToolKit)。若用户在安装CANN过程中遇到问题,可参考[昇腾常见问题](https://www.hiascend.com/document/detail/zh/AscendFAQ/ProduTech/CANNFAQ/cannfaq_000.html)进行解决。 CANN默认安装路径为`/usr/local/Ascend`。用户在安装CANN完毕后,使用如下命令,为CANN配置环境变量: @@ -123,11 +123,11 @@ yum install -y gcc gcc-c++ ### vLLM-MindSpore插件安装 -vLLM-MindSpore插件有以下两种安装方式。**vLLM-MindSpore插件快速安装**适用于用户快速使用与部署的场景。**vLLM-MindSpore插件手动安装**适用于用户对组件有自定义修改的场景。 +vLLM-MindSpore插件有以下两种安装方式。**vLLM-MindSpore插件快速安装**适用于用户快速使用与部署的场景;**vLLM-MindSpore插件手动安装**适用于用户对组件有自定义修改的场景。 - **vLLM-MindSpore插件快速安装** - 采用快速安装脚本来安装vLLM-MindSpore插件,需要在拉取vLLM-MindSpore插件源码后,执行以下命令,安装依赖包: + 采用快速安装脚本来安装vLLM-MindSpore插件,需要在拉取vLLM-MindSpore插件源码后,执行以下命令安装依赖包: ```bash git clone https://gitee.com/mindspore/vllm-mindspore.git @@ -149,7 +149,7 @@ vLLM-MindSpore插件有以下两种安装方式。**vLLM-MindSpore插件快速 - **vLLM-MindSpore插件手动安装** - 若用户对组件有修改,或者需使用其他版本,则用户需要按照特定顺序,手动安装组件。vLLM-MindSpore插件软件配套下载地址可以参考[版本配套](#版本配套),且对组件的安装顺序要求如下: + 若用户对依赖的vLLM、MindSpore、Golden Stick、MSAdapter等组件有自定义修改的需求,可以在本地准备好修改后的安装包,按照特定的顺序进行手动安装。安装顺序要求如下: 1. 安装vLLM @@ -169,7 +169,7 @@ vLLM-MindSpore插件有以下两种安装方式。**vLLM-MindSpore插件快速 pip install /path/to/mindspore-*.whl ``` - 4. 引入MindSpore Transformers仓,加入到`PYTHONPATH`中 + 4. 引入MindSpore Transformers仓库,加入到`PYTHONPATH`中 ```bash git clone https://gitee.com/mindspore/mindformers.git @@ -190,7 +190,7 @@ vLLM-MindSpore插件有以下两种安装方式。**vLLM-MindSpore插件快速 7. 安装vLLM-MindSpore插件 - 需要先拉取vLLM-MindSpore插件源码,再执行安装 + 需要先拉取vLLM-MindSpore插件源码,再执行安装: ```bash git clone https://gitee.com/mindspore/vllm-mindspore.git diff --git a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/quick_start/quick_start.md b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/quick_start/quick_start.md index f0d19926ba..fa11bfc813 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/quick_start/quick_start.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/quick_start/quick_start.md @@ -6,7 +6,7 @@ ## docker安装 -在本章节中,我们推荐用docker创建的方式,以快速部署vLLM-MindSpore插件环境,以下是部署docker的步骤介绍: +在本章节中,我们推荐使用docker创建方式,快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: ### 构建镜像 @@ -24,7 +24,7 @@ Successfully built e40bcbeae9fc Successfully tagged vllm_ms_20250726:latest ``` -其中,`e40bcbeae9fc`为镜像id,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: +其中,`e40bcbeae9fc`为镜像ID,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: ```bash docker images @@ -82,7 +82,7 @@ docker exec -it $DOCKER_NAME bash ## 使用服务 -用户在环境部署完毕后,在运行模型前,需要准备模型文件,用户可通过[下载模型](#下载模型)章节的指引作模型准备,在[设置环境变量](#设置环境变量)后,可采用[离线推理](#离线推理)或[在线推理](#在线推理)的方式,进行模型体验。 +用户在环境部署完毕后,运行模型前需要准备模型文件。用户可通过[下载模型](#下载模型)章节的指引进行模型准备。在[设置环境变量](#设置环境变量)后,可采用[离线推理](#离线推理)或[在线推理](#在线推理)的方式进行模型体验。 ### 下载模型 @@ -90,7 +90,7 @@ docker exec -it $DOCKER_NAME bash #### Python工具下载 -执行以下 Python 脚本,从[Huggingface Face社区](https://huggingface.co/)下载 [Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) 权重及文件: +执行以下 Python 脚本,从[Hugging Face社区](https://huggingface.co/)下载[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)权重及文件: ```python from huggingface_hub import snapshot_download @@ -102,7 +102,7 @@ snapshot_download( ) ``` -其中`local_dir`为模型保存路径,由用户指定,请确保该路径下有足够的硬盘空间。 +其中,`local_dir`为模型保存路径,由用户指定,请确保该路径下有足够的硬盘空间。 #### git-lfs工具下载 @@ -120,7 +120,7 @@ Git LFS initialized. 若工具不可用,则需要先安装[git-lfs](https://git-lfs.com),可参考[FAQ](../../faqs/faqs.md)章节中关于[git-lfs安装](../../faqs/faqs.md#git-lfs安装)的阐述。 -工具确认可用后,执行以下命令,下载权重: +工具确认可用后,执行以下命令下载权重: ```bash git clone https://huggingface.co/Qwen/Qwen2.5-7B-Instruct @@ -128,7 +128,7 @@ git clone https://huggingface.co/Qwen/Qwen2.5-7B-Instruct ### 设置环境变量 -用户在拉起模型前,需设置以下环境变量: +用户在启动模型前,需设置以下环境变量: ```bash export vLLM_MODEL_BACKEND=MindFormers # use MindSpore Transformers as model backend. @@ -138,16 +138,14 @@ export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Tra 以下是对上述环境变量的解释: - `vLLM_MODEL_BACKEND`:所运行的模型后端。目前vLLM-MindSpore插件所支持的模型与模型后端,可在[模型支持列表](../../user_guide/supported_models/models_list/models_list.md)中进行查询; -- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的yaml文件。以Qwen2.5-7B为例,则其yaml文件为[predict_qwen2_5_7b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_7b_instruct.yaml)。 +- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的YAML文件。以Qwen2.5-7B为例,其YAML文件为[predict_qwen2_5_7b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_7b_instruct.yaml)。 -另外,用户需要确保MindSpore Transformers已安装。用户可通过 +另外,用户需要确保MindSpore Transformers已安装。用户可通过以下方式引入MindSpore Transformers: ```bash export PYTHONPATH=/path/to/mindformers:$PYTHONPATH ``` -以引入MindSpore Tranformers。 - ### 离线推理 以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) 为例,用户可以使用如下Python脚本,进行模型的离线推理: @@ -188,17 +186,17 @@ Prompt: 'Llama is'. Generated text: ' a 100% natural, biodegradable, and compost ### 在线推理 -vLLM-MindSpore插件可使用OpenAI的API协议,进行在线推理部署。以下是以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) 为例,介绍模型的[启动服务](#启动服务),并[发送请求](#发送请求),得到在线推理的推理结果。 +vLLM-MindSpore插件可使用OpenAI的API协议,进行在线推理部署。以下以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)为例,介绍模型的[启动服务](#启动服务)和[发送请求](#发送请求),得到在线推理的推理结果。 #### 启动服务 -使用模型`Qwen/Qwen2.5-7B-Instruct`,并用如下命令拉起vLLM服务: +使用模型`Qwen/Qwen2.5-7B-Instruct`,执行如下命令启动vLLM服务: ```bash python3 -m vllm_mindspore.entrypoints vllm.entrypoints.openai.api_server --model "Qwen/Qwen2.5-7B-Instruct" ``` -用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功拉起,则可以获得类似的执行结果: +用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功启动,则可以获得类似的执行结果: ```text INFO: Started server process [6363] @@ -206,7 +204,7 @@ INFO: Waiting for application startup. INFO: Application startup complete. ``` -另外,日志中还会打印出服务的性能数据信息,如: +另外,日志中还会打印服务的性能数据信息,如: ```text Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg gereration throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0% @@ -214,13 +212,13 @@ Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg gereration throughput: 0.0 #### 发送请求 -使用如下命令发送请求。其中`prompt`字段为模型输入: +使用如下命令发送请求。其中,`prompt`字段为模型输入: ```bash curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "prompt": "I am", "max_tokens": 20, "temperature": 0}' ``` -其中,用户需确认`"model"`字段与启动服务中`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: +其中,用户需确认`"model"`字段与启动服务中的`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: ```text { diff --git a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md index 076e1963c5..fe55bdc756 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md @@ -2,15 +2,15 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/deepseek_parallel/deepseek_r1_671b_w8a8_dp4_tp4_ep4.md) -vLLM-MindSpore插件支持张量并行(TP)、数据并行(DP)、专家并行(EP)及其组合配置的混合并行推理,不同并行策略的适用场景可参考[vLLM官方文档](https://docs.vllm.ai/en/latest/configuration/optimization.html#parallelism-strategies)。 +vLLM-MindSpore插件支持张量并行(TP)、数据并行(DP)、专家并行(EP)及其组合配置的混合并行推理。不同并行策略的适用场景可参考[vLLM官方文档](https://docs.vllm.ai/en/latest/configuration/optimization.html#parallelism-strategies)。 -本文档将以DeepSeek R1 671B W8A8为例介绍[张量并行](#tp16-张量并行推理)及[混合并行](#混合并行推理)推理流程。DeepSeek R1 671B W8A8模型需使用多个节点资源运行推理模型。为确保各个节点的执行配置(包括模型配置文件路径、Python环境等)一致,推荐通过 docker 镜像创建容器的方式避免执行差异。 +本文档将以DeepSeek R1 671B W8A8为例,介绍[张量并行](#tp16-张量并行推理)及[混合并行](#混合并行推理)推理流程。DeepSeek R1 671B W8A8模型需使用多个节点资源运行推理。为确保各个节点的执行配置(包括模型配置文件路径、Python环境等)一致,推荐通过 docker 镜像创建容器的方式避免执行差异。 用户可通过以下[docker安装](#docker安装)章节进行环境配置。 ## docker安装 -在本章节中,我们推荐用docker创建的方式,以快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: +在本章节中,我们推荐使用docker创建的方式,快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: ### 构建镜像 @@ -28,7 +28,7 @@ Successfully built e40bcbeae9fc Successfully tagged vllm_ms_20250726:latest ``` -其中,`e40bcbeae9fc`为镜像id,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: +其中,`e40bcbeae9fc`为镜像ID,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: ```bash docker images @@ -70,7 +70,7 @@ docker run -itd --name=${DOCKER_NAME} --ipc=host --network=host --privileged=tru bash ``` -新建容器后成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: +新建容器成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: ```bash docker ps @@ -129,7 +129,7 @@ vLLM 通过 Ray 对多个节点资源进行管理和运行。该样例对应张 ### 设置环境变量 -环境变量必须设置在 Ray 创建集群前,且当环境有变更时,需要通过 `ray stop` 将主从节点集群停止,并重新创建集群,否则环境变量将不生效。 +环境变量必须设置在 Ray 创建集群前。当环境有变更时,需要通过 `ray stop` 将主从节点集群停止,并重新创建集群,否则环境变量将不生效。 分别在主从节点配置如下环境变量: @@ -148,30 +148,28 @@ export VLLM_MS_MODEL_BACKEND=MindFormers 环境变量说明: -- `GLOO_SOCKET_IFNAME`: GLOO后端端口。可通过`ifconfig`查找ip对应网卡的网卡名。 -- `HCCL_SOCKET_IFNAME`: 配置HCCL端口。可通过`ifconfig`查找ip对应网卡的网卡名。 -- `TP_SOCKET_IFNAME`: 配置TP端口。可通过`ifconfig`查找ip对应网卡的网卡名。 +- `GLOO_SOCKET_IFNAME`: GLOO后端端口。可通过`ifconfig`查找IP对应网卡的网卡名。 +- `HCCL_SOCKET_IFNAME`: 配置HCCL端口。可通过`ifconfig`查找IP对应网卡的网卡名。 +- `TP_SOCKET_IFNAME`: 配置TP端口。可通过`ifconfig`查找IP对应网卡的网卡名。 - `MS_ENABLE_LCCL`: 关闭LCCL,使能HCCL通信。 - `HCCL_OP_EXPANSION_MODE`: 配置通信算法的编排展开位置为Device侧的AI Vector Core计算单元。 - `MS_ALLOC_CONF`: 设置内存策略。可参考[MindSpore官网文档](https://www.mindspore.cn/docs/zh-CN/master/api_python/env_var_list.html)。 -- `ASCEND_RT_VISIBLE_DEVICES`: 配置每个节点可用device id。用户可使用`npu-smi info`命令进行查询。 +- `ASCEND_RT_VISIBLE_DEVICES`: 配置每个节点可用的设备ID。用户可使用`npu-smi info`命令进行查询。 - `VLLM_MS_MODEL_BACKEND`:所运行的模型后端。目前vLLM-MindSpore插件所支持的模型与模型后端,可在[模型支持列表](../../../user_guide/supported_models/models_list/models_list.md)中进行查询。 -另外,用户需要确保MindSpore Transformers已安装。用户可通过 +另外,用户需要确保MindSpore Transformers已安装。用户可通过以下命令引入MindSpore Transformers: ```bash export PYTHONPATH=/path/to/mindformers:$PYTHONPATH ``` -以引入MindSpore Tranformers。 - ### 启动 Ray 进行多节点集群管理 -在 Ascend 上,需要额外安装 pyACL 包来适配 Ray。且所有节点的 CANN 依赖版本需要保持一致。 +在 Ascend 上,需要额外安装 pyACL 包来适配 Ray。所有节点的 CANN 依赖版本需要保持一致。 #### 安装 pyACL -pyACL (Python Ascend Computing Language) 通过 CPython 封装了 AscendCL 对应的 API 接口,使用接口可以管理 Ascend AI 处理器和对应的计算资源。 +pyACL(Python Ascend Computing Language)通过 CPython 封装了 AscendCL 对应的 API 接口,使用该接口可以管理 Ascend AI 处理器和对应的计算资源。 在对应环境中,获取相应版本的 Ascend-cann-nnrt 安装包后,解压出 pyACL 依赖包并单独安装,并将安装路径添加到环境变量中: @@ -188,13 +186,13 @@ export PYTHONPATH=/CANN-/python/site-packages/:$PYTHONPAT chmod -R 777 ./Ascend-pyACL_8.0.RC1_linux-aarch64.run ``` -在 Ascend 的首页中可以下载 Ascend 运行包。如, 可以下载 [8.0.RC1.beta1](https://www.hiascend.cn/developer/download/community/result?module=cann&version=8.0.RC1.beta1) 对应版本的运行包。 +在 Ascend 的首页中可以下载 Ascend 运行包。例如,可以下载 [8.0.RC1.beta1](https://www.hiascend.cn/developer/download/community/result?module=cann&version=8.0.RC1.beta1) 对应版本的运行包。 #### 多节点间集群 -多节点集群管理前,需要检查各节点的 hostname 是否各异,如果存在相同的,需要通过 `hostname ` 设置不同的 hostname。 +多节点集群管理前,需要检查各节点的 hostname 是否各异。如果存在相同的,需要通过 `hostname ` 设置不同的 hostname。 -1. 启动主节点 `ray start --head --port=`,启动成功后,会提示从节点的连接方式。如在 ip 为 `192.5.5.5` 的环境中,通过 `ray start --head --port=6379`,提示如下: +1. 启动主节点 `ray start --head --port=`。启动成功后,会提示从节点的连接方式。例如,在 IP 为 `192.5.5.5` 的环境中,通过 `ray start --head --port=6379`,提示如下: ```text Local node IP: 192.5.5.5 @@ -219,7 +217,7 @@ chmod -R 777 ./Ascend-pyACL_8.0.RC1_linux-aarch64.run ``` 2. 从节点连接主节点 `ray start --address=:`。 -3. 通过 `ray status` 查询集群状态,显示的NPU总数为节点总合,则表示集群成功。 +3. 通过 `ray status` 查询集群状态。显示的NPU总数为节点总和,则表示集群成功。 当有两个节点,每个节点有8个NPU时,其结果如下: @@ -251,7 +249,7 @@ chmod -R 777 ./Ascend-pyACL_8.0.RC1_linux-aarch64.run #### 启动服务 -vLLM-MindSpore插件可使用OpenAI的API协议,部署为在线推理。以下是在线推理的拉起流程。 +vLLM-MindSpore插件可使用OpenAI的API协议,部署在线推理。以下是在线推理的启动流程。 ```bash # 启动配置参数说明 @@ -261,10 +259,10 @@ vllm-mindspore serve --quantization [权重量化来源] # 可选golden-stick/ascend分别表示量化权重来源于golden-stick或modelslim量化工具 --trust-remote-code # 使用本地下载的model文件 --max-num-seqs [最大Batch数] - --max-model-len [输出输出最大长度] - --max-num-batched-tokens [单次迭代最大支持token数, 推荐4096] - --block-size [Block Size 大小, 推荐128] - --gpu-memory-utilization [显存利用率, 推荐0.9] + --max-model-len [模型上下文长度] + --max-num-batched-tokens [单次迭代最大支持token数,推荐4096] + --block-size [Block Size 大小,推荐128] + --gpu-memory-utilization [显存利用率,推荐0.9] --tensor-parallel-size [TP 并行数] ``` @@ -272,10 +270,10 @@ vllm-mindspore serve ```bash # 主节点: -vllm-mindspore serve --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" --quantization ascend --trust-remote-code --max-num-seqs=256 --max_model_len=32768 --max-num-batched-tokens=4096 --block-size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 16 --distributed-executor-backend=ray +vllm-mindspore serve --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" --quantization ascend --trust-remote-code --max-num-seqs=256 --max-model-len=32768 --max-num-batched-tokens=4096 --block-size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 16 --distributed-executor-backend=ray ``` -张量并行场景下,`--tensor-parallel-size`参数会覆盖模型yaml文件中`parallel_config`的`model_parallel`配置。用户可以通过`--model`参数,指定模型保存的本地路径。 +张量并行场景下,`--tensor-parallel-size`参数会覆盖模型YAML文件中`parallel_config`的`model_parallel`配置。用户可以通过`--model`参数,指定模型保存的本地路径。 #### 发起请求 @@ -285,7 +283,7 @@ vllm-mindspore serve --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" --quantizatio curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "MindSpore-Lab/DeepSeek-R1-0528-A8W8", "prompt": "I am", "max_tokens": 20, "temperature": 0, "top_p": 1.0, "top_k": 1, "repetition_penalty": 1.0}' ``` -用户需确认`"model"`字段与启动服务中`--model`一致,请求才能成功匹配到模型。 +用户需确认`"model"`字段与启动服务中的`--model`一致,请求才能成功匹配到模型。 ## 混合并行推理 @@ -314,14 +312,14 @@ export VLLM_MS_MODEL_BACKEND=MindFormers - `MS_ENABLE_LCCL`: 关闭LCCL,使能HCCL通信。 - `HCCL_OP_EXPANSION_MODE`: 配置通信算法的编排展开位置为Device侧的AI Vector Core计算单元。 - `MS_ALLOC_CONF`: 设置内存策略。可参考[MindSpore官网文档](https://www.mindspore.cn/docs/zh-CN/r2.6.0/api_python/env_var_list.html)。 -- `ASCEND_RT_VISIBLE_DEVICES`: 配置每个节点可用device id。用户可使用`npu-smi info`命令进行查询。 +- `ASCEND_RT_VISIBLE_DEVICES`: 配置每个节点可用的设备ID。用户可使用`npu-smi info`命令进行查询。 - `VLLM_MS_MODEL_BACKEND`:所运行的模型后端。目前vLLM-MindSpore插件所支持的模型与模型后端,可在[模型支持列表](../../../user_guide/supported_models/models_list/models_list.md)中进行查询。 ### 在线推理 #### 启动服务 -`vllm-mindspore`可使用OpenAI的API协议部署在线推理。以下是在线推理的拉起流程: +`vllm-mindspore`可使用OpenAI的API协议部署在线推理。以下是在线推理的启动流程: ```bash # 启动配置参数说明 @@ -330,10 +328,10 @@ vllm-mindspore serve --quantization [权重量化来源] # 可选golden-stick/ascend分别表示量化权重来源于golden-stick或modelslim量化工具 --trust-remote-code # 使用本地下载的model文件 --max-num-seqs [最大Batch数] - --max-model-len [输出输出最大长度] - --max-num-batched-tokens [单次迭代最大支持token数, 推荐4096] - --block-size [Block Size 大小, 推荐128] - --gpu-memory-utilization [显存利用率, 推荐0.9] + --max-model-len [模型上下文长度] + --max-num-batched-tokens [单次迭代最大支持token数,推荐4096] + --block-size [Block Size大小,推荐128] + --gpu-memory-utilization [显存利用率,推荐0.9] --tensor-parallel-size [TP 并行数] --headless # 仅从节点需要配置,表示不需要服务侧相关内容 --data-parallel-size [DP 并行数] @@ -345,7 +343,7 @@ vllm-mindspore serve --additional-config '{"expert_parallel": [EP 并行数]}' ``` -`data-parallel-size`及`tensor-parallel-size`指定attn及ffn-dense部分的并行策略,`expert_parallel`指定moe部分路由专家并行策略,且需满足`data-parallel-size * tensor-parallel-size`可被`expert_parallel`整除。 +`data-parallel-size`及`tensor-parallel-size`指定attn及ffn-dense部分的并行策略,`expert_parallel`指定MoE部分路由专家并行策略,且需满足`data-parallel-size * tensor-parallel-size`可被`expert_parallel`整除。 用户可以通过`--model`参数,指定模型保存的本地路径。以下为执行示例: @@ -362,7 +360,7 @@ vllm-mindspore serve --headless --model="MindSpore-Lab/DeepSeek-R1-0528-A8W8" -- 使用如下命令发送请求。其中`prompt`字段为模型输入: ```bash -curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "MindSpore-Lab/DeepSeek-R1-0528-A8W8", "prompt": "I am, "max_tokens": 120, "temperature": 0}' +curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "MindSpore-Lab/DeepSeek-R1-0528-A8W8", "prompt": "I am", "max_tokens": 120, "temperature": 0}' ``` -用户需确认`"model"`字段与启动服务中`--model`一致,请求才能成功匹配到模型。 +用户需确认`"model"`字段与启动服务中的`--model`一致,请求才能成功匹配到模型。 diff --git a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_32b_multiNPU/qwen2.5_32b_multiNPU.md b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_32b_multiNPU/qwen2.5_32b_multiNPU.md index 8cefb6eaed..72d474c1c2 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_32b_multiNPU/qwen2.5_32b_multiNPU.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_32b_multiNPU/qwen2.5_32b_multiNPU.md @@ -2,7 +2,7 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_32b_multiNPU/qwen2.5_32b_multiNPU.md) -本文档将为用户介绍使用vLLM-MindSpore插件进行单节点多卡的推理流程。以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)模型为例,用户通过以下[docker安装](#docker安装)章节,或[安装指南](../../installation/installation.md#安装指南)进行环境配置,并[下载模型权重](#下载模型权重)。在[设置环境变量](#设置环境变量)之后,可部署[在线推理](#在线推理),以体验单节点多卡的推理功能。 +本文档将为用户介绍使用vLLM-MindSpore插件进行单节点多卡的推理流程。以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)模型为例,用户可通过以下[docker安装](#docker安装)章节或[安装指南](../../installation/installation.md#安装指南)章节进行环境配置,并[下载模型权重](#下载模型权重)。在[设置环境变量](#设置环境变量)之后,可进行[在线推理](#在线推理),以体验单节点多卡的推理功能。 ## docker安装 @@ -24,7 +24,7 @@ Successfully built e40bcbeae9fc Successfully tagged vllm_ms_20250726:latest ``` -其中,`e40bcbeae9fc`为镜像id,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: +其中,`e40bcbeae9fc`为镜像ID,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: ```bash docker images @@ -66,7 +66,7 @@ docker run -itd --name=${DOCKER_NAME} --ipc=host --network=host --privileged=tru bash ``` -新建容器后成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: +新建容器成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: ```bash docker ps @@ -86,7 +86,7 @@ docker exec -it $DOCKER_NAME bash ### Python工具下载 -执行以下 Python 脚本,从[Huggingface Face社区](https://huggingface.co/)下载 [Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct) 权重及文件: +执行以下 Python 脚本,从[Hugging Face社区](https://huggingface.co/)下载[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)权重及文件: ```python from openmind_hub import snapshot_download @@ -115,7 +115,7 @@ Git LFS initialized. 若工具不可用,则需要先安装[git-lfs](https://git-lfs.com),可参考[FAQ](../../../faqs/faqs.md)章节中关于[git-lfs安装](../../../faqs/faqs.md#git-lfs安装)的阐述。 -工具确认可用后,执行以下命令,下载权重: +工具确认可用后,执行以下命令下载权重: ```bash git clone https://huggingface.co/Qwen/Qwen2.5-32B-Instruct @@ -123,8 +123,7 @@ git clone https://huggingface.co/Qwen/Qwen2.5-32B-Instruct ## 设置环境变量 -以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)为例,以下环境变量用于设置内存占用,后端以及模型相关的YAML文件。 -其中,关于[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)的环境变量如下: +以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)为例,以下环境变量用于设置内存占用、后端以及模型相关的YAML文件: ```bash #set environment variables @@ -135,9 +134,9 @@ export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Tra 以下是对上述环境变量的解释: - `VLLM_MS_MODEL_BACKEND`:所运行的模型后端。目前vLLM-MindSpore插件所支持的模型与模型后端,可在[模型支持列表](../../../user_guide/supported_models/models_list/models_list.md)中进行查询。 -- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的yaml文件。以Qwen2.5-32B为例,则其yaml文件为[predict_qwen2_5_32b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_32b_instruct.yaml) 。 +- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的YAML文件。以Qwen2.5-32B为例,其YAML文件为[predict_qwen2_5_32b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_32b_instruct.yaml)。 -用户可通过`npu-smi info`查看显存占用情况,并可以使用如下环境变量,设置用于推理的计算卡。以下例子为假设用户使用4,5,6,7卡进行推理: +用户可通过`npu-smi info`查看显存占用情况,并可以使用如下环境变量,设置用于推理的计算卡。以下例子假设用户使用4、5、6、7卡进行推理: ```bash export ASCEND_RT_VISIBLE_DEVICES=4,5,6,7 @@ -145,11 +144,11 @@ export ASCEND_RT_VISIBLE_DEVICES=4,5,6,7 ## 在线推理 -vLLM-MindSpore插件可使用OpenAI的API协议,部署为在线推理。以下是在线推理的拉起流程。以下是以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct) 为例,介绍模型的[启动服务](#启动服务),并[发送请求](#发送请求),得到在线推理的推理结果。 +vLLM-MindSpore插件可使用OpenAI的API协议,部署在线推理。以下以[Qwen2.5-32B](https://huggingface.co/Qwen/Qwen2.5-32B-Instruct)为例,介绍模型的[启动服务](#启动服务)和[发送请求](#发送请求),得到在线推理的推理结果。 ### 启动服务 -用如下命令拉起服务: +使用如下命令启动服务: ```bash export TENSOR_PARALLEL_SIZE=4 @@ -159,7 +158,7 @@ python3 -m vllm_mindspore.entrypoints vllm.entrypoints.openai.api_server --model 其中,`TENSOR_PARALLEL_SIZE`为用户指定的卡数,`MAX_MODEL_LEN`为模型最大输出token数。 -用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功拉起,则可以获得类似的执行结果: +用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功启动,则可以获得类似的执行结果: ```text INFO: Started server process [6363] @@ -170,7 +169,7 @@ INFO: Application startup complete. 另外,日志中还会打印出服务的性能数据信息,如: ```text -Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg gereration throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0% +Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg generation throughput: 0.0 tokens/s, Running: 0 reqs, Waiting: 0 reqs, GPU KV cache usage: 0.0%, Prefix cache hit rate: 0.0% ``` ### 发送请求 @@ -181,7 +180,7 @@ Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg gereration throughput: 0.0 curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "Qwen/Qwen2.5-32B-Instruct", "prompt": "I am", "max_tokens": 20, "temperature": 0}' ``` -其中,用户需确认`"model"`字段与启动服务中`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: +其中,用户需确认`"model"`字段与启动服务中的`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: ```text { diff --git a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_7b_singleNPU/qwen2.5_7b_singleNPU.md b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_7b_singleNPU/qwen2.5_7b_singleNPU.md index c1542d4179..973a64154c 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_7b_singleNPU/qwen2.5_7b_singleNPU.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_7b_singleNPU/qwen2.5_7b_singleNPU.md @@ -2,11 +2,11 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/getting_started/tutorials/qwen2.5_7b_singleNPU/qwen2.5_7b_singleNPU.md) -本文档将为用户介绍使用vLLM-MindSpore插件进行单卡推理流程。以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)模型为例,用户通过以下[docker安装](#docker安装)章节,或[安装指南](../../installation/installation.md#安装指南)进行环境配置,并[下载模型权重](#下载模型权重)。在[设置环境变量](#设置环境变量)之后,可进行[离线推理](#离线推理)与[在线推理](#在线推理),以体验单卡推理功能。 +本文档将介绍使用vLLM-MindSpore插件进行单卡推理的流程。以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)模型为例,用户可通过以下[docker安装](#docker安装)章节或[安装指南](../../installation/installation.md#安装指南)章节进行环境配置,并[下载模型权重](#下载模型权重)。在[设置环境变量](#设置环境变量)之后,可进行[离线推理](#离线推理)与[在线推理](#在线推理),体验单卡推理功能。 ## docker安装 -在本章节中,我们推荐用docker创建的方式,以快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: +在本章节中,我们推荐使用docker创建的方式,快速部署vLLM-MindSpore插件环境。以下是部署docker的步骤介绍: ### 构建镜像 @@ -24,7 +24,7 @@ Successfully built e40bcbeae9fc Successfully tagged vllm_ms_20250726:latest ``` -其中,`e40bcbeae9fc`为镜像id,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: +其中,`e40bcbeae9fc`为镜像ID,`vllm_ms_20250726:latest`为镜像名与tag。用户可执行以下命令,确认docker镜像创建成功: ```bash docker images @@ -66,7 +66,7 @@ docker run -itd --name=${DOCKER_NAME} --ipc=host --network=host --privileged=tru bash ``` -新建容器后成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: +新建容器成功后,将返回容器ID。用户可执行以下命令,确认容器是否创建成功: ```bash docker ps @@ -86,7 +86,7 @@ docker exec -it $DOCKER_NAME bash ### Python工具下载 -执行以下 Python 脚本,从[Huggingface Face社区](https://huggingface.co/)下载 [Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) 权重及文件: +执行以下 Python 脚本,从[Hugging Face社区](https://huggingface.co/)下载[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)权重及文件: ```python from openmind_hub import snapshot_download @@ -115,7 +115,7 @@ Git LFS initialized. 若工具不可用,则需要先安装[git-lfs](https://git-lfs.com),可参考[FAQ](../../../faqs/faqs.md)章节中关于[git-lfs安装](../../../faqs/faqs.md#git-lfs安装)的阐述。 -工具确认可用后,执行以下命令,下载权重: +工具确认可用后,执行以下命令下载权重: ```bash git clone https://huggingface.co/Qwen/Qwen2.5-7B-Instruct @@ -123,8 +123,7 @@ git clone https://huggingface.co/Qwen/Qwen2.5-7B-Instruct ## 设置环境变量 -以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)为例,以下环境变量用于设置内存占用,后端以及模型相关的YAML文件。 -其中,关于[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)的环境变量如下: +以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)为例,以下环境变量用于设置内存占用、后端以及模型相关的YAML文件: ```bash #set environment variables @@ -135,7 +134,7 @@ export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Tra 以下是对上述环境变量的解释: - `VLLM_MS_MODEL_BACKEND`:所运行的模型后端。目前vLLM-MindSpore插件所支持的模型与模型后端,可在[模型支持列表](../../../user_guide/supported_models/models_list/models_list.md)中进行查询; -- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的yaml文件。以Qwen2.5-7B为例,则其yaml文件为[predict_qwen2_5_7b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_7b_instruct.yaml) 。 +- `MINDFORMERS_MODEL_CONFIG`:模型配置文件。用户可以在[MindSpore Transformers工程](https://gitee.com/mindspore/mindformers/tree/master/research/qwen2_5)中,找到对应模型的YAML文件。以Qwen2.5-7B为例,其YAML文件为[predict_qwen2_5_7b_instruct.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/qwen2_5/predict_qwen2_5_7b_instruct.yaml)。 用户可通过`npu-smi info`查看显存占用情况,并可以使用如下环境变量,设置用于推理的计算卡: @@ -146,7 +145,7 @@ export ASCEND_RT_VISIBLE_DEVICES=$NPU_VISIBE_DEVICES ## 离线推理 -vLLM-MindSprore插件环境搭建之后,用户可以使用如下Python代码,进行模型的离线推理: +vLLM-MindSpore插件环境搭建之后,用户可以使用如下Python代码,进行模型的离线推理: ```python import vllm_mindspore # Add this line on the top of script. @@ -184,17 +183,17 @@ Prompt: 'Llama is'. Generated text: ' a 100% natural, biodegradable, and compost ## 在线推理 -vLLM-MindSpore插件可使用OpenAI的API协议,部署为在线推理。以下是以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) 为例,介绍模型的[启动服务](#启动服务),并[发送请求](#发送请求),得到在线推理的推理结果。 +vLLM-MindSpore插件可使用OpenAI的API协议,部署在线推理。以下以[Qwen2.5-7B](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct)为例,介绍模型的[启动服务](#启动服务)和[发送请求](#发送请求),得到在线推理的推理结果。 ### 启动服务 -用如下命令拉起vLLM服务: +使用如下命令启动vLLM服务: ```bash python3 -m vllm_mindspore.entrypoints vllm.entrypoints.openai.api_server --model "Qwen/Qwen2.5-7B-Instruct" ``` -用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功拉起,则可以获得类似的执行结果: +用户可以通过`--model`参数,指定模型保存的本地路径。若服务成功启动,则可以获得类似的执行结果: ```text INFO: Started server process [6363] @@ -216,7 +215,7 @@ Engine 000: Avg prompt throughput: 0.0 tokens/s, Avg gereration throughput: 0.0 curl http://localhost:8000/v1/completions -H "Content-Type: application/json" -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "prompt": "I am", "max_tokens": 20, "temperature": 0}' ``` -其中,用户需确认`"model"`字段与启动服务中`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: +其中,用户需确认`"model"`字段与启动服务中的`--model`一致,请求才能成功匹配到模型。若请求处理成功,将获得以下推理结果: ```text { diff --git a/docs/vllm_mindspore/docs/source_zh_cn/index.rst b/docs/vllm_mindspore/docs/source_zh_cn/index.rst index 921322682e..c8ee3e9f40 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/index.rst +++ b/docs/vllm_mindspore/docs/source_zh_cn/index.rst @@ -9,9 +9,9 @@ vLLM是由加州大学伯克利分校Sky Computing Lab创建的社区开源项 vLLM-MindSpore插件以将MindSpore大模型接入vLLM,并实现服务化部署为功能目标。其遵循以下设计原则: -- 接口兼容:支持vLLM原生的API和服务部署接口,避免新增配置文件或接口,降低用户学习成本和确保易用性。 -- 最小化侵入式修改:尽可能避免侵入式修改vLLM代码,以保障系统的可维护性和可演进性。 -- 组件解耦:最小化和规范化MindSpore大模型组件和vLLM服务组件的耦合面,以利于多种MindSpore大模型套件接入。 +- 接口兼容:支持vLLM原生的API和服务部署接口,避免新增配置文件或接口,降低用户学习成本,确保易用性。 +- 最小化侵入式修改:尽可能避免侵入式修改vLLM代码,保障系统的可维护性和可演进性。 +- 组件解耦:最小化和规范化MindSpore大模型组件和vLLM服务组件的耦合面,便于多种MindSpore大模型套件接入。 基于上述设计原则,vLLM-MindSpore插件采用如下图所示的系统架构,分组件类别实现vLLM与MindSpore的对接: @@ -41,8 +41,8 @@ vLLM-MindSpore插件采用vLLM社区推荐的插件机制,实现能力注册 * Python >= 3.9, < 3.12 * CANN >= 8.0.0.beta1 - * MindSpore (与vLLM-MindSpore插件版本配套) - * vLLM (与vLLM-MindSpore插件版本配套) + * MindSpore(与vLLM-MindSpore插件版本配套) + * vLLM(与vLLM-MindSpore插件版本配套) 快速体验 ----------------------------------------------------- @@ -50,7 +50,7 @@ vLLM-MindSpore插件采用vLLM社区推荐的插件机制,实现能力注册 贡献 ----------------------------------------------------- -请参考 `CONTRIBUTING <./developer_guide/contributing.html>`_ 文档了解更多关于开发环境搭建、功能测试以及 PR 提交规范的信息。 +请参考 `CONTRIBUTING <./developer_guide/contributing.html>`_ 文档了解更多关于开发环境搭建、功能测试以及PR提交规范的信息。 我们欢迎并重视任何形式的贡献与合作,请通过 `Issue `_ 来告知我们您遇到的任何Bug,或提交您的特性需求、改进建议、技术方案。 @@ -88,12 +88,12 @@ vLLM-MindSpore插件代码仓包含主干分支、开发分支、版本分支: SIG组织 ----------------------------------------------------- -- 欢迎加入LLM Infercence Serving,参与开源项目共建和产业合作:https://www.mindspore.cn/community/SIG -- SIG例会,双周周五或周六晚上,20:00 - 21:00 (UTC+8, `查看您的时区 `_ ) +- 欢迎加入LLM Inference Serving,参与开源项目共建和产业合作:https://www.mindspore.cn/community/SIG +- SIG例会,双周周五或周六晚上,20:00 - 21:00(UTC+8,`查看您的时区 `_) 许可证 ----------------------------------------------------- -Apache 许可证 2.0,如 `LICENSE `_ 文件中所示。 +Apache 许可证 2.0,如 `LICENSE `_ 文件中所示。 .. toctree:: diff --git a/docs/vllm_mindspore/docs/source_zh_cn/release_notes/release_notes.md b/docs/vllm_mindspore/docs/source_zh_cn/release_notes/release_notes.md index db82dae47b..a4cb7d9e67 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/release_notes/release_notes.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/release_notes/release_notes.md @@ -8,10 +8,10 @@ ### 新特性 -- 0.9.1 V1架构基础功能, 包含分块预填充和自动前缀缓存功能; +- 0.9.1 V1架构基础功能,包含分块预填充和自动前缀缓存功能; - V0 多步调度功能; - V0 分块预填充功能; -- V0 自动前缀缓存功; +- V0 自动前缀缓存功能; - V0 DeepSeek MTP功能; - GPTQ量化; - SmoothQuant量化; diff --git a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/environment_variables/environment_variables.md b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/environment_variables/environment_variables.md index 4eb332bb57..a08a042409 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/environment_variables/environment_variables.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/environment_variables/environment_variables.md @@ -4,16 +4,16 @@ | 环境变量 | 功能 | 类型 | 取值 | 说明 | | ------ | ------- | ------ | ------ | ------ | -| `VLLM_MS_MODEL_BACKEND` | 用于指定模型后端。如果不配置变量,会按照 MindFormers > 原生模型 > MindONE 的优先级自动寻找支持的后端; 配置之后则按指定后端执行。 | String | `MindFormers`: 模型后端为MindSpore Transformers。 `Native`: 模型后端为原生模型。 `MindONE`: 模型后端为MindONE | 原生模型后端当前支持Qwen2.5、Qwen2.5VL、Qwen3、Llama系列;MindSpore Transformers模型后端支持Qwen系列、DeepSeek、TeleChat系列模型,使用时需配置环境变量:`export PYTHONPATH=/path/to/mindformers/:$PYTHONPATH`。 | +| `VLLM_MS_MODEL_BACKEND` | 用于指定模型后端。如果不配置变量,会按照 MindFormers > 原生模型 > MindONE 的优先级自动寻找支持的后端。配置之后则按指定后端执行。 | String | `MindFormers`: 模型后端为MindSpore Transformers。 `Native`: 模型后端为原生模型。 `MindONE`: 模型后端为MindONE | 原生模型后端当前支持Qwen2.5、Qwen2.5VL、Qwen3、Llama系列;MindSpore Transformers模型后端支持Qwen系列、DeepSeek、TeleChat系列模型,使用时需配置环境变量:`export PYTHONPATH=/path/to/mindformers/:$PYTHONPATH`。 | | `MINDFORMERS_MODEL_CONFIG` | MindSpore Transformers模型的配置文件。使用Qwen2.5系列、DeepSeek系列模型时,需要配置文件路径。 | String | 模型配置文件路径。 | **该环境变量在后续版本会被移除。** 样例:`export MINDFORMERS_MODEL_CONFIG=/path/to/research/deepseek3/deepseek_r1_671b/predict_deepseek_r1_671b_w8a8.yaml`。 | -| `GLOO_SOCKET_IFNAME` | 用于多机之间使用gloo通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找ip对应网卡的网卡名。 | -| `TP_SOCKET_IFNAME` | 用于多机之间使用TP通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找ip对应网卡的网卡名。 | -| `HCCL_SOCKET_IFNAME` | 用于多机之间使用HCCL通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找ip对应网卡的网卡名。 | +| `GLOO_SOCKET_IFNAME` | 用于多机之间使用gloo通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找IP对应网卡的网卡名。 | +| `TP_SOCKET_IFNAME` | 用于多机之间使用TP通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找IP对应网卡的网卡名。 | +| `HCCL_SOCKET_IFNAME` | 用于多机之间使用HCCL通信时的网口名称。 | String | 网口名称,例如enp189s0f0。 | 多机场景使用,可通过`ifconfig`查找IP对应网卡的网卡名。 | | `ASCEND_RT_VISIBLE_DEVICES` | 指定哪些Device对当前进程可见,支持一次指定一个或多个Device ID。 | String | 为Device ID,逗号分割的字符串,例如"0,1,2,3,4,5,6,7"。 | ray使用场景建议使用。 | -| `HCCL_BUFFSIZE` | 此环境变量用于控制两个NPU之间共享数据的缓存区大小。 | Integer | 缓存区大小,大小为MB。例如:`2048`。 | 使用方法参考:[HCCL_BUFFSIZE](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/81RC1beta1/maintenref/envvar/envref_07_0080.html)。例如DeepSeek 混合并行(数据并行数为32,专家并行数为32),且`max-num-batched-tokens`为256时,则`export HCCL_BUFFSIZE=2048`。 | +| `HCCL_BUFFSIZE` | 此环境变量用于控制两个NPU之间共享数据的缓存区大小。 | Integer | 缓存区大小,单位为MB。例如:`2048`。 | 使用方法参考:[HCCL_BUFFSIZE](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/81RC1beta1/maintenref/envvar/envref_07_0080.html)。例如DeepSeek 混合并行(数据并行数为32,专家并行数为32),且`max-num-batched-tokens`为256时,则`export HCCL_BUFFSIZE=2048`。 | | `MS_MEMPOOL_BLOCK_SIZE` | 设置PyNative模式下设备内存池的块大小。 | String | 正整数string,单位为GB。 | | | `vLLM_USE_NPU_ADV_STEP_FLASH_OP` | 是否使用昇腾`adv_step_flash`算子。 | String | `on`: 使用;`off`:不使用 | 取值为`off`时,将使用小算子实现替代`adv_step_flash`算子。 | -| `VLLM_TORCH_PROFILER_DIR` | 开启profiling采集数据,当配置了采集数据保存路径后生效 | String | Profiling数据保存路径。| | +| `VLLM_TORCH_PROFILER_DIR` | 开启profiling采集数据,当配置了采集数据保存路径后生效。 | String | Profiling数据保存路径。| | 更多的环境变量信息,请查看: diff --git a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/benchmark/benchmark.md b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/benchmark/benchmark.md index 19cebf9bd4..b76e2a06b0 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/benchmark/benchmark.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/benchmark/benchmark.md @@ -13,7 +13,7 @@ export VLLM_MS_MODEL_BACKEND=MindFormers # use MindSpore Transformers as model b export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Transformers model's YAML file. ``` -并以下命令启动在线推理: +使用以下命令启动在线推理: ```bash vllm-mindspore serve Qwen/Qwen2.5-7B-Instruct --device auto --disable-log-requests @@ -35,7 +35,7 @@ INFO: Waiting for application startup. INFO: Application startup complete. ``` -拉取vLLM代码仓,导入vLLM-MindSpore插件,复用其中benchmark功能: +拉取vLLM代码仓库,导入vLLM-MindSpore插件,复用其中的benchmark功能: ```bash export VLLM_BRANCH=v0.9.1 @@ -106,7 +106,7 @@ export VLLM_MS_MODEL_BACKEND=MindFormers # use MindSpore Transformers as model b export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Transformers model's YAML file. ``` -并拉取vLLM代码仓,导入vLLM-MindSpore插件,复用其中benchmark功能: +并拉取vLLM代码仓库,导入vLLM-MindSpore插件,复用其中的benchmark功能: ```bash export VLLM_BRANCH=v0.9.1 @@ -117,7 +117,7 @@ sed -i '1i import vllm_mindspore' benchmarks/benchmark_throughput.py 其中,`VLLM_BRANCH`为vLLM的分支名,其需要与vLLM-MindSpore插件相配套。配套关系可以参考[这里](../../../getting_started/installation/installation.md#版本配套)。 -用户可通过以下命令,运行测试脚本。该脚本将启动模型,并执行测试,用户不需要再拉起模型: +用户可通过以下命令运行测试脚本。该脚本将启动模型并执行测试,用户无需额外启动模型: ```bash python3 benchmarks/benchmark_throughput.py \ diff --git a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/profiling/profiling.md b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/profiling/profiling.md index 2df2785116..06421892a7 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/profiling/profiling.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/profiling/profiling.md @@ -2,11 +2,11 @@ [![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/profiling/profiling.md) -vLLM-MindSpore插件支持使用`mindspore.Profiler`模块,跟踪vLLM-MindSpore插件中worker的性能。用户可以根据[采集profiling数据](#采集profiling数据)章节,在完成数据采集后,根据[分析profiling数据](#分析profiling数据),进行数据分析。另一方面,用户可以根据[图数据dump](#图数据dump),查看模型的IR图,从而进行对模型结构的分析与调试。 +vLLM-MindSpore插件支持使用`mindspore.Profiler`模块,跟踪vLLM-MindSpore插件中worker的性能。用户可以根据[采集profiling数据](#采集profiling数据)章节完成数据采集,然后根据[分析profiling数据](#分析profiling数据)进行数据分析。另一方面,用户可以根据[图数据dump](#图数据dump)查看模型的IR图,从而进行模型结构的分析与调试。 ## 采集profiling数据 -用户开启profiling数据的采集,需要将`VLLM_TORCH_PROFILER_DIR`环境变量,设置为跟踪结果的保存目录,来开启跟踪功能。如果多机推理,在组网前每台机器都需要设置该变量: +用户开启profiling数据的采集,需要将`VLLM_TORCH_PROFILER_DIR`环境变量设置为跟踪结果的保存目录,来开启跟踪功能。如果多机推理,在组网前每台机器都需要设置该变量: ```bash export VLLM_TORCH_PROFILER_DIR=/path/to/save/vllm_profile @@ -30,7 +30,7 @@ INFO: Waiting for application startup. INFO: Application startup complete. ``` -在服务成功启动后,用户可通过以下命令,发送请求,执行一次profiling采集: +在服务成功启动后,用户可通过以下命令发送请求,执行一次profiling采集: ```shell # Request for starting profiling @@ -58,7 +58,7 @@ Parsing: [####################] 3/3 Done ## 分析profiling数据 -`VLLM_TORCH_PROFILER_DIR`指向的目录保存profiling结果,该目录下存在多个以`ascend_ms`为后缀结尾的子目录夹。一个子文件夹保存了一个worker的profiling结果。子文件夹中各文件作用可参考[Ascend性能调优](https://www.mindspore.cn/tutorials/zh-CN/master/debug/profiler.html)。 +`VLLM_TORCH_PROFILER_DIR`指向的目录保存profiling结果,该目录下存在多个以`ascend_ms`为后缀的子文件夹。一个子文件夹保存了一个worker的profiling结果。子文件夹中各文件作用可参考[Ascend性能调优](https://www.mindspore.cn/tutorials/zh-CN/master/debug/profiler.html)。 用户可选择一个子文件夹进行一个worker的性能分析: diff --git a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/quantization/quantization.md b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/quantization/quantization.md index 20557bd387..4398b3e67b 100644 --- a/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/quantization/quantization.md +++ b/docs/vllm_mindspore/docs/source_zh_cn/user_guide/supported_features/quantization/quantization.md @@ -4,7 +4,7 @@ 本文档将为用户介绍模型量化与量化推理的方法。量化方法通过牺牲部分模型精度的方式,达到降低模型部署时的资源需求的目的,并提升模型部署时的性能,从而允许模型被部署到更多的设备上。由于大语言模型的规模较大,出于成本考虑,训练后量化成为主流模型量化方案,具体可以参考[后量化技术简介](https://gitee.com/mindspore/golden-stick/blob/master/mindspore_gs/ptq/README_CN.md)。 -本文档中,[创建量化模型](#创建量化模型)章节,将以[DeepSeek-R1](https://huggingface.co/deepseek-ai/DeepSeek-R1)为例,介绍模型后量化的步骤;[量化模型推理](#量化模型推理)章节,介绍如何使用量化模型进行推理。 +本文档中,[创建量化模型](#创建量化模型)章节将以[DeepSeek-R1](https://huggingface.co/deepseek-ai/DeepSeek-R1)为例,介绍模型后量化的步骤;[量化模型推理](#量化模型推理)章节介绍如何使用量化模型进行推理。 ## 创建量化模型 @@ -31,7 +31,7 @@ export VLLM_MS_MODEL_BACKEND=MindFormers # use MindSpore Transformers as model b export MINDFORMERS_MODEL_CONFIG=$YAML_PATH # Set the corresponding MindSpore Transformers model's YAML file. ``` -关于DeepSeek-R1 W8A8量化推理的yaml文件,可以使用[predict_deepseek_r1_671b_w8a8.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/deepseek3/deepseek_r1_671b/predict_deepseek_r1_671b_w8a8.yaml). +关于DeepSeek-R1 W8A8量化推理的YAML文件,可以使用[predict_deepseek_r1_671b_w8a8.yaml](https://gitee.com/mindspore/mindformers/blob/master/research/deepseek3/deepseek_r1_671b/predict_deepseek_r1_671b_w8a8.yaml)。 环境准备完成后,用户可以使用如下Python代码,进行离线推理服务: diff --git a/tutorials/source_zh_cn/model_infer/ms_infer/ms_infer_model_serving_infer.md b/tutorials/source_zh_cn/model_infer/ms_infer/ms_infer_model_serving_infer.md index 1e67899960..05adae0643 100644 --- a/tutorials/source_zh_cn/model_infer/ms_infer/ms_infer_model_serving_infer.md +++ b/tutorials/source_zh_cn/model_infer/ms_infer/ms_infer_model_serving_infer.md @@ -125,7 +125,7 @@ export MODEL_ID="/path/to/model/Qwen2-7B" 执行如下命令可以启动vLLM-MindSpore插件的服务后端。 ```shell -vllm-mindspore serve --model=${MODEL_ID} --port=${VLLM_HTTP_PORT} --trust_remote_code --max-num-seqs=256 --max_model_len=32768 --max-num-batched-tokens=4096 --block_size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 1 --data-parallel-size 1 --data-parallel-size-local 1 --data-parallel-start-rank 0 --data-parallel-address ${VLLM_MASTER_IP} --data-parallel-rpc-port ${VLLM_RPC_PORT} &> vllm-mindspore.log & +vllm-mindspore serve --model=${MODEL_ID} --port=${VLLM_HTTP_PORT} --trust_remote_code --max-num-seqs=256 --max-model-len=32768 --max-num-batched-tokens=4096 --block_size=128 --gpu-memory-utilization=0.9 --tensor-parallel-size 1 --data-parallel-size 1 --data-parallel-size-local 1 --data-parallel-start-rank 0 --data-parallel-address ${VLLM_MASTER_IP} --data-parallel-rpc-port ${VLLM_RPC_PORT} &> vllm-mindspore.log & ``` 后端服务加载完成后,会显示后端服务监听的端口和提供的接口。 -- Gitee