已合并
【master】【docs】:快速入门aidd大模型检查低错修改 #791
zzm30创建于 7月28日
【master】【docs】:快速入门aidd大模型检查低错修改 #791
已合并
共 1 个文件变更+18-18
| @@ -2,16 +2,16 @@ | |||
| 2 | 2 | ||
| 3 | ## 1. 概述 | 3 | ## 1. 概述 |
| 4 | 4 | ||
| 5 | -msModelSlim 是面向昇腾生态的模型压缩工具,覆盖稠密 LLM、MoE 及多模态模型的量化与压缩。本文以 Qwen3.6-27B 为例,带你体验如何通过一键量化将模型权重压缩为 W8A8 格式,并基于 vllm-ascend 完成推理部署验证。 | 5 | +msModelSlim 是面向昇腾生态的模型压缩工具,覆盖稠密 LLM、MoE 及多模态模型的量化与压缩。本文以 Qwen3.6-27B 为例,带你体验如何通过一键量化将模型权重压缩为 W8A8 格式,并基于vLLM-Ascend完成推理部署验证。 |
| 6 | 6 | ||
| 7 | **体验地图(核心操作约 10 分钟,不含镜像与模型下载等网络传输时间)** | 7 | **体验地图(核心操作约 10 分钟,不含镜像与模型下载等网络传输时间)** |
| 8 | 8 | ||
| 9 | | 步骤 | 环节 | 核心工具 | 操作耗时 | 原理学习 | | 9 | | 步骤 | 环节 | 核心工具 | 操作耗时 | 原理学习 | |
| 10 | |:--:|:-------|:---------------|:----------------:|:-----:| | 10 | |:--:|:-------|:---------------|:----------------:|:-----:| |
| 11 | -| 1 | 容器环境准备 | vllm-ascend 容器 | 约 1 分钟(不含镜像下载时间) | 5 分钟 | | 11 | +| 1 | 容器环境准备 | vLLM-Ascend 容器 | 约 1 分钟(不含镜像下载时间) | 5 分钟 | |
| 12 | | 2 | 模型文件准备 | modelscope | 约 1 分钟(不含模型下载时间) | 2 分钟 | | 12 | | 2 | 模型文件准备 | modelscope | 约 1 分钟(不含模型下载时间) | 2 分钟 | |
| 13 | -| 3 | 模型量化 | msmodelslim | 约 3 分钟 | 5 分钟 | | 13 | +| 3 | 模型量化 | msModelSlim | 约 3 分钟 | 5 分钟 | |
| 14 | -| 4 | 量化结果验证 | vllm-ascend | 约 5 分钟 | 10 分钟 | | 14 | +| 4 | 量化结果验证 | vLLM-Ascend | 约 5 分钟 | 10 分钟 | |
| 15 | 15 | ||
| 16 | ## 2. 操作步骤 | 16 | ## 2. 操作步骤 |
| 17 | 17 | ||
| @@ -19,7 +19,7 @@ msModelSlim 是面向昇腾生态的模型压缩工具,覆盖稠密 LLM、MoE | |||
| 19 | 19 | ||
| 20 | 🛑 **本节为强制前置步骤!跳过本节可能导致后续多项操作失败。** | 20 | 🛑 **本节为强制前置步骤!跳过本节可能导致后续多项操作失败。** |
| 21 | 21 | ||
| 22 | -本教程**仅支持**在标准化 vllm-ascend 容器中执行,不支持直接在裸机、虚拟机或其他非标准容器环境中运行。 | 22 | +本教程**仅支持**在标准化 vLLM-Ascend 容器中执行,不支持直接在裸机、虚拟机或其他非标准容器环境中运行。 |
| 23 | 23 | ||
| 24 | #### 2.1.1 前置条件 | 24 | #### 2.1.1 前置条件 |
| 25 | 25 | ||
| @@ -31,7 +31,7 @@ msModelSlim 是面向昇腾生态的模型压缩工具,覆盖稠密 LLM、MoE | |||
| 31 | | **容器运行** | 已安装并运行 Docker(建议版本 ≥ 18.0) | 执行 `docker ps`,无报错即表示服务正常启动 | | 31 | | **容器运行** | 已安装并运行 Docker(建议版本 ≥ 18.0) | 执行 `docker ps`,无报错即表示服务正常启动 | |
| 32 | | **脚本执行** | 宿主机已安装 Python 3(任意版本) | 在宿主机执行 `python3 -V`,有版本信息输出即表示已安装 | | 32 | | **脚本执行** | 宿主机已安装 Python 3(任意版本) | 在宿主机执行 `python3 -V`,有版本信息输出即表示已安装 | |
| 33 | | **网络通信** | 已安装 curl(任意版本) | 执行 `curl -V`,有版本信息输出即表示已安装 | | 33 | | **网络通信** | 已安装 curl(任意版本) | 执行 `curl -V`,有版本信息输出即表示已安装 | |
| 34 | -| **磁盘空间** | 至少 100 G 空闲磁盘空间(用于模型权重下载) | 执行 `df -h`,查看磁盘空间使用情况 | | 34 | +| **磁盘空间** | 至少 100GB 空闲磁盘空间(用于模型权重下载) | 执行 `df -h`,查看磁盘空间使用情况 | |
| 35 | 35 | ||
| 36 | > 👉 确认前置条件满足后,若环境具备公网访问能力,则本章所有命令可直接 **Copy/Paste** 执行,无需手动输入或拼接。 | 36 | > 👉 确认前置条件满足后,若环境具备公网访问能力,则本章所有命令可直接 **Copy/Paste** 执行,无需手动输入或拼接。 |
| 37 | 37 | ||
| @@ -63,8 +63,8 @@ source /dev/stdin <<< "$( | |||
| 63 | > | 63 | > |
| 64 | > **命令原理** | 64 | > **命令原理** |
| 65 | > | 65 | > |
| 66 | -> 通过 `lspci` 获取 NPU 的 PCI ID,自动匹配 vllm-ascend 官方镜像,并将镜像地址赋给环境变量 `MY_STUDY_VAR_VLLM_IMAGE`,供后续使用。 | 66 | +> 通过 `lspci` 获取 NPU 的 PCI ID,自动匹配 vLLM-Ascend 官方镜像,并将镜像地址赋给环境变量 `MY_STUDY_VAR_VLLM_IMAGE`,供后续使用。 |
| 67 | -> 所有镜像均来自 Quay.io 发布的 vllm-ascend 官方仓库,镜像详情参阅 [vllm-ascend 官方镜像仓库](https://quay.io/repository/ascend/vllm-ascend?tab=tags)。 | 67 | +> 所有镜像均来自 Quay.io 发布的 vLLM-Ascend 官方仓库,镜像详情参阅 [vLLM-Ascend 官方镜像仓库](https://quay.io/repository/ascend/vllm-ascend?tab=tags)。 |
| 68 | 68 | ||
| 69 | 若输出 `[PASS]`,表示识别成功,继续下一步;若输出 `[FAIL]`,可能原因如下: | 69 | 若输出 `[PASS]`,表示识别成功,继续下一步;若输出 `[FAIL]`,可能原因如下: |
| 70 | 70 | ||
| @@ -145,7 +145,7 @@ python3 -c 'import torch, torch_npu; assert torch.npu.is_available(), "NPU is un | |||
| 145 | > | 145 | > |
| 146 | > **高效操作小技巧** | 146 | > **高效操作小技巧** |
| 147 | > | 147 | > |
| 148 | -> 模型文件较大(约 50 GB),即使千兆带宽满速下载也需 10 分钟左右。建议执行下载命令后先阅读后续章节,学习量化原理与部署流程,待下载完成后即可更高效地执行后续操作。 | 148 | +> 模型文件较大(约 50GB),即使千兆带宽满速下载也需10分钟左右。建议执行下载命令后先阅读后续章节,学习量化原理与部署流程,待下载完成后即可更高效地执行后续操作。 |
| 149 | 149 | ||
| 150 | 执行如下命令,从 ModelScope 下载 Qwen3.6-27B 原始权重: | 150 | 执行如下命令,从 ModelScope 下载 Qwen3.6-27B 原始权重: |
| 151 | 151 | ||
| @@ -200,13 +200,13 @@ msmodelslim.app.naive_quantization - INFO - ===========SUCCESS=========== | |||
| 200 | 200 | ||
| 201 | 若量化中止或报错,未出现上述成功标志,请按以下步骤排查: | 201 | 若量化中止或报错,未出现上述成功标志,请按以下步骤排查: |
| 202 | 202 | ||
| 203 | -1. 确认 NPU 卡状态正常:执行 `npu-smi info`,检查目标卡的 Health 状态是否为 `OK`、AICore 占用率是否异常,若异常需先释放资源或更换卡。 | 203 | +1. 确认 NPU 卡状态正常:执行 `npu-smi info`,检查目标卡的 Health 状态是否为 `OK`、AI Core 占用率是否异常,若异常需先释放资源或更换卡。 |
| 204 | 2. 检查环境变量设置:执行 `echo ${ASCEND_RT_VISIBLE_DEVICES}`,确认该变量指向的卡 ID 真实存在且未被占用,不可包含空格或无效 ID。 | 204 | 2. 检查环境变量设置:执行 `echo ${ASCEND_RT_VISIBLE_DEVICES}`,确认该变量指向的卡 ID 真实存在且未被占用,不可包含空格或无效 ID。 |
| 205 | 3. 排查显存不足(OOM):查看终端错误日志中是否包含类似 `Out of memory` 的关键字。若出现,说明当前卡显存不足,可切换至空闲 NPU 卡重试。 | 205 | 3. 排查显存不足(OOM):查看终端错误日志中是否包含类似 `Out of memory` 的关键字。若出现,说明当前卡显存不足,可切换至空闲 NPU 卡重试。 |
| 206 | 206 | ||
| 207 | #### 2.2.4 容器内:查看量化输出结果 | 207 | #### 2.2.4 容器内:查看量化输出结果 |
| 208 | 208 | ||
| 209 | -**1.查看量化结果文件** | 209 | +**1. 查看量化结果文件** |
| 210 | 210 | ||
| 211 | ```bash | 211 | ```bash |
| 212 | ls -al ~/qwen36_27b_w8a8 | 212 | ls -al ~/qwen36_27b_w8a8 |
| @@ -228,7 +228,7 @@ ls -al ~/qwen36_27b_w8a8 | |||
| 228 | └── generation_config.json # 【原始】生成配置文件(定义温度、Top-P、最大生成长度等采样策略) | 228 | └── generation_config.json # 【原始】生成配置文件(定义温度、Top-P、最大生成长度等采样策略) |
| 229 | ``` | 229 | ``` |
| 230 | 230 | ||
| 231 | -**2.验证量化压缩效果** | 231 | +**2. 验证量化压缩效果** |
| 232 | 232 | ||
| 233 | 执行如下命令,对比量化前后的目录大小: | 233 | 执行如下命令,对比量化前后的目录大小: |
| 234 | 234 | ||
| @@ -237,11 +237,11 @@ du -sh ~/qwen36_27b_base | |||
| 237 | du -sh ~/qwen36_27b_w8a8 | 237 | du -sh ~/qwen36_27b_w8a8 |
| 238 | ``` | 238 | ``` |
| 239 | 239 | ||
| 240 | -预期结果:原始权重约 50+ GB,量化后约 30+ GB,体积缩减约 40%,表明量化大幅压缩了模型体积。 | 240 | +预期结果:原始权重约50+GB,量化后约30+GB,体积缩减约40%,表明量化大幅压缩了模型体积。 |
| 241 | 241 | ||
| 242 | ### 2.3 量化模型功能验证 | 242 | ### 2.3 量化模型功能验证 |
| 243 | 243 | ||
| 244 | -本节使用 vllm-ascend 部署量化模型并完成一次推理验证。 | 244 | +本节使用 vLLM-Ascend 部署量化模型并完成一次推理验证。 |
| 245 | 245 | ||
| 246 | #### 2.3.1 容器内:恢复 vLLM 运行环境 | 246 | #### 2.3.1 容器内:恢复 vLLM 运行环境 |
| 247 | 247 | ||
| @@ -273,7 +273,7 @@ fi | |||
| 273 | 273 | ||
| 274 | #### 2.3.3 容器内:启动服务 | 274 | #### 2.3.3 容器内:启动服务 |
| 275 | 275 | ||
| 276 | -启动 vllm-ascend 在线推理服务(命令会持续占用当前终端): | 276 | +启动 vLLM-Ascend 在线推理服务(命令会持续占用当前终端): |
| 277 | 277 | ||
| 278 | ```bash | 278 | ```bash |
| 279 | vllm serve ~/qwen36_27b_w8a8 \ | 279 | vllm serve ~/qwen36_27b_w8a8 \ |
| @@ -301,10 +301,10 @@ vllm serve ~/qwen36_27b_w8a8 \ | |||
| 301 | 301 | ||
| 302 | | 序号 | 阶段 | 耗时 | 说明 | | 302 | | 序号 | 阶段 | 耗时 | 说明 | |
| 303 | |:--:|:--|:-------|:--| | 303 | |:--:|:--|:-------|:--| |
| 304 | -| 1 | 配置解析与插件激活 | 约 10 秒 | 加载 vllm-ascend 平台插件,解析模型架构与调度参数 | | 304 | +| 1 | 配置解析与插件激活 | 约 10 秒 | 加载 vLLM-Ascend 平台插件,解析模型架构与调度参数 | |
| 305 | | 2 | Worker 启动与 HCCL 握手 | 约 50 秒 | 拉起多卡 Worker 进程,建立通信链路,分配 TP Rank | | 305 | | 2 | Worker 启动与 HCCL 握手 | 约 50 秒 | 拉起多卡 Worker 进程,建立通信链路,分配 TP Rank | |
| 306 | | 3 | CPU-NPU 亲和绑定 | 约 10 秒 | 按 NUMA 拓扑将 Worker 绑定至 NPU 近端 CPU 核心及中断 | | 306 | | 3 | CPU-NPU 亲和绑定 | 约 10 秒 | 按 NUMA 拓扑将 Worker 绑定至 NPU 近端 CPU 核心及中断 | |
| 307 | -| 4 | 加载模型权重 | 约 30 秒 | 将 9 个 safetensors 分片(每卡约 16.7 GB)加载至全局内存 | | 307 | +| 4 | 加载模型权重 | 约 30 秒 | 将 9 个 safetensors 分片(每卡约 16.7GB)加载至全局内存 | |
| 308 | | 5 | 图编译与算子融合 | 约 80 秒 | Dynamo 字节码转换(20s)+ CANN 算子编译(48s)+ 融合预热 | | 308 | | 5 | 图编译与算子融合 | 约 80 秒 | Dynamo 字节码转换(20s)+ CANN 算子编译(48s)+ 融合预热 | |
| 309 | | 6 | NPU Graph 捕获 | 约 30 秒 | 预编译 22 种 Batch 大小(1~152)的静态执行路径 | | 309 | | 6 | NPU Graph 捕获 | 约 30 秒 | 预编译 22 种 Batch 大小(1~152)的静态执行路径 | |
| 310 | 310 | ||
| @@ -375,7 +375,7 @@ curl -s http://localhost:5678/v1/completions \ | |||
| 375 | ~/ctr_in.py -d | 375 | ~/ctr_in.py -d |
| 376 | ``` | 376 | ``` |
| 377 | 377 | ||
| 378 | -🎉 至此,快速入门体验已全部完成。您已掌握 msModelSlim 一键量化与 vllm-ascend 推理部署的完整流程,如需了解更多功能,请阅读 《[使用指南](../user_guide/README.md)》 等进阶文档。 | 378 | +🎉 至此,快速入门体验已全部完成。已完成 msModelSlim 一键量化与 vLLM-Ascend 推理部署的完整流程,如需了解更多功能,请阅读 《[使用指南](../user_guide/README.md)》 等进阶文档。 |
| 379 | 379 | ||
| 380 | <br> | 380 | <br> |
| 381 | 381 | ||