| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[fix] 补丁增加对 vllm 0.21.0 的支持 Co-authored-by: c00951058<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !322 merge c00951058 into master [fix] 补丁增加对 vllm 0.21.0 的支持 Created-by: qq_40172610 Commit-by: c00951058 Merged-by: towncharlie Description: ## **1. 合入背景** B060 镜像(mindie-motor-vllm:dev-26.1.0.B060-...)已将 vLLM 升级至 0.21.0。前序 PR !284 引入了 safetensors 加载 shuffle 优化,但补丁仅适配 vLLM 0.20.2,在 0.21.0 环境下会被 should_apply_patch() 跳过,shuffle 能力无法生效。 本 PR 在前序 shuffle 补丁机制基础上,扩展对 vLLM 0.21.0 的支持,使 B060 镜像无需重打即可恢复 shuffle 优化能力。 ## **2. 修改内容** 1. 扩展 patch_apply_shuffle_safetensors.py 版本适配逻辑 将 TARGET_VLLM_VERSION = "0.20.2" 扩展为 TARGET_VLLM_VERSIONS = ("0.20.2", "0.21.0")。 按已安装 vLLM 版本动态选择补丁目录:patch/{version}/(如 patch/0.21.0/),实现多版本共存。 保留幂等检测:已 patch 或目标文件已含 shuffle_safetensors_files 且语法有效时跳过。 补丁文件按版本目录重组 2. 原 patch/vllm_shuffle_*.patch 迁移至 patch/0.20.2/。 新增 patch/0.21.0/ 下 3 个补丁,适配 vLLM 0.21.0 源码差异: vllm_shuffle_load_config.patch → config/load.py:新增 LoadConfig.shuffle_safetensors_files: bool = True vllm_shuffle_default_loader.patch → default_loader.py:将配置传入权重加载函数(0.21.0 调用链含 safetensors_prefetch_block_size 等参数,上下文与 0.20.2 不同) vllm_shuffle_weight_utils.patch → weight_utils.py:按 rank 确定性 shuffle 文件列表(random.Random(42 + rank)),分散各 rank 的 I/O 顺序 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** d拉起时间约5min  p拉起时间约7min  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!322 | 1 个月前 | |
[fix] 补丁增加对 vllm 0.21.0 的支持 Co-authored-by: c00951058<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !322 merge c00951058 into master [fix] 补丁增加对 vllm 0.21.0 的支持 Created-by: qq_40172610 Commit-by: c00951058 Merged-by: towncharlie Description: ## **1. 合入背景** B060 镜像(mindie-motor-vllm:dev-26.1.0.B060-...)已将 vLLM 升级至 0.21.0。前序 PR !284 引入了 safetensors 加载 shuffle 优化,但补丁仅适配 vLLM 0.20.2,在 0.21.0 环境下会被 should_apply_patch() 跳过,shuffle 能力无法生效。 本 PR 在前序 shuffle 补丁机制基础上,扩展对 vLLM 0.21.0 的支持,使 B060 镜像无需重打即可恢复 shuffle 优化能力。 ## **2. 修改内容** 1. 扩展 patch_apply_shuffle_safetensors.py 版本适配逻辑 将 TARGET_VLLM_VERSION = "0.20.2" 扩展为 TARGET_VLLM_VERSIONS = ("0.20.2", "0.21.0")。 按已安装 vLLM 版本动态选择补丁目录:patch/{version}/(如 patch/0.21.0/),实现多版本共存。 保留幂等检测:已 patch 或目标文件已含 shuffle_safetensors_files 且语法有效时跳过。 补丁文件按版本目录重组 2. 原 patch/vllm_shuffle_*.patch 迁移至 patch/0.20.2/。 新增 patch/0.21.0/ 下 3 个补丁,适配 vLLM 0.21.0 源码差异: vllm_shuffle_load_config.patch → config/load.py:新增 LoadConfig.shuffle_safetensors_files: bool = True vllm_shuffle_default_loader.patch → default_loader.py:将配置传入权重加载函数(0.21.0 调用链含 safetensors_prefetch_block_size 等参数,上下文与 0.20.2 不同) vllm_shuffle_weight_utils.patch → weight_utils.py:按 rank 确定性 shuffle 文件列表(random.Random(42 + rank)),分散各 rank 的 I/O 顺序 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** d拉起时间约5min  p拉起时间约7min  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!322 | 1 个月前 | |
[fix] 补丁增加对 vllm 0.22.1 的支持 Co-authored-by: c00951058<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !345 merge c00951058 into master [fix] 补丁增加对 vllm 0.22.1 的支持 Created-by: qq_40172610 Commit-by: c00951058 Merged-by: towncharlie Description: ## **1. 合入背景** B071 镜像(mindie-motor-vllm:dev-26.1.0.B071-...)已将 vLLM 升级至 0.22.1。引擎启动时会通过 patch_apply_shuffle_safetensors.py 对 vLLM 源码打 shuffle safetensors 补丁,用于多卡场景下随机化 safetensors 权重文件加载顺序,缓解 I/O 争抢、提升启动速度。本次合入在保持向后兼容的前提下,完成多版本 patch 目录化改造,并新增 0.22.1 适配。 ## **2. 修改内容** 2.1 新增 vLLM 0.22.1 补丁文件,在 examples/deployer/patch/0.22.1/ 下新增 3 个 patch。 2.2 重构 patch 目录结构,支持按版本路由,将原 patch/ 根目录下的 3 个 patch 文件按版本拆分到子目录。 2.3 更新补丁应用脚本,修改 examples/deployer/patch/patch_apply_shuffle_safetensors.py。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 清理缓存:sync && echo 3 | tee /proc/sys/vm/drop_caches 重新拉起服务,测试p/d拉起时长,着重关注权重加载时长。 **p拉起时长约6分钟:**  DeepSeek V3.1 (Worker_DP1_TP0_EP8 pid=963) INFO 06-25 12:19:12 [default_loader.py:400] Loading weights took 152.01 seconds (Worker_DP0_TP0_EP0 pid=962) INFO 06-25 12:19:20 [default_loader.py:400] Loading weights took 161.25 seconds MTP 投机解码 (Worker_DP1_TP0_EP8 pid=963) INFO 06-25 12:19:31 [default_loader.py:400] Loading weights took 7.21 seconds (Worker_DP0_TP0_EP0 pid=962) INFO 06-25 12:19:35 [default_loader.py:400] Loading weights took 6.65 seconds **d拉起时长约6分钟:**  DeepSeek V3.1 (Worker_DP15_EP15 pid=2884) INFO 06-25 12:18:50 [default_loader.py:400] Loading weights took 144.72 seconds ... 省略中间14个。 (Worker_DP0_EP0 pid=2834) INFO 06-25 12:19:13 [default_loader.py:400] Loading weights took 167.43 seconds MTP 投机解码 (Worker_DP2_EP2 pid=2868) INFO 06-25 12:19:27 [default_loader.py:400] Loading weights took 7.91 seconds ...省略中间14个。 (Worker_DP0_EP0 pid=2834) INFO 06-25 12:19:32 [default_loader.py:400] Loading weights took 7.00 seconds ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!345 | 1 个月前 | |
[bugfix] draft model weight filter Co-authored-by: ganglv<lvgang1@huawei.com> # message auto-generated for no-merge-commit merge: !618 merge draft_model_weight_bugfix into master [bugfix] draft model weight filter Created-by: ganglv Commit-by: ganglv Merged-by: tobking Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#371](https://gitcode.com/Ascend/MindIE-Motor/issues/371) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 将过滤函数由自定义的_is_mtp_weight改为vllm提供的get_spec_layer_idx_from_weight_name ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!618 | 17 小时前 | |
[fix] 修复加载草稿模型慢的问题 Co-authored-by: c00951058<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !423 merge c00951058 into master [fix] 修复加载草稿模型慢的问题 Created-by: qq_40172610 Commit-by: c00951058 Merged-by: towncharlie Description: ## **1. 合入背景** 在 PD 分离 + 推测解码(MTP / deepseek_mtp)场景下,加载草稿模型(drafter)时,vLLM 的 DefaultModelLoader 会重新遍历权重目录下的全部 safetensors 文件,包含主模型的全部张量(DeepSeek V3.1 量化后权重约700 GB),仅为了从中挑出少量属于 MTP 层的张量。这导致: 草稿模型加载阶段产生大量无谓的磁盘 I/O,读取了本不需要的主模型权重; 端到端拉起时间显著变长,尤其在 NFS/Lustre 等网络文件系统上更为明显。 本 PR 仅涉及 examples/deployer/patch/0.23.0/ 下针对 vLLM 0.23.0 的补丁,目标是缩短草稿模型(MTP)权重加载时间,从而降低实例端到端拉起时长。 fixes [#239](https://gitcode.com/Ascend/MindIE-PyMotor/issues/239) ## **2. 修改内容** 本 PR 通过在 safetensors 权重迭代器中引入「按权重名过滤、在读盘前跳过」的能力,使草稿模型加载时只读取 MTP 相关张量。涉及以下补丁文件及组件交互: - vllm_mtp_deepseek_mtp.patch - vllm_shuffle_default_loader.patch - vllm_shuffle_weight_utils.patch - vllm_shuffle_load_config.patch - patch_apply_shuffle_safetensors.py 调用链路:DeepSeekMTP.weight_name_filter → DefaultModelLoader.Source.weight_filter → safetensors_weights_iterator(weight_filter=...) → 读盘前跳过非 MTP 权重。 ## **3. 资料变更** 不涉及。 ## **4. 接口变更** 不涉及。 ## **5. 测试结果** p端到端时长约8分钟  d端到端时长约7分钟   p中草稿模型拉起时间约30秒:  d中草稿模型拉起时间约20秒:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!423 | 29 天前 |