已合并
vllm_to_motor全量配置转化工具 #471
vllm_to_motor全量配置转化工具 #471
已合并
高鹏创建于 7月10日
高鹏
高鹏成员
7月10日

1. 合入背景

原先 examples/infer_engines/vllm/models/ 下各模型目录维护了多份静态 user_config.json / env.json,与 vLLM 教程启动脚本内容重复,更新成本高且容易不一致。

本次改为配置按需生成:删除各模型目录下的典型静态配置,仅保留 README.md(模型说明)和 config_tool/(转换工具 + vLLM 启动脚本)。用户从 vLLM 脚本一键生成 Motor 配置,降低维护成本并保证与下游推理引擎配置一致。

Fixes #266

2. 修改内容

删除原有典型配置。
新增独立配置转换脚本 vllm_to_motor.py:可从 vLLM 启动脚本生成 user_config.json 和 env.json。
新增基于deepseek v4 flash的配置转化示例
新增使用说明文档README.md

3. 资料变更

涉及

4. 接口变更

不涉及

5. 测试结果

服务正常部署
image.png
image.png

6. CheckList

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

[ ] 代码注释完备

[ ] 正确记录维测日志

[ ] 是否有UT用例

[ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题

likedislike
Pull Request已成功合入, 合并人@wangyang
(感谢 高鹏 的贡献)
atomgit-bot
atomgit-bot
7月10日 评论:

变更摘要

本PR主要引入了 vllm_to_motor 全量配置转化工具,将 vLLM 启动脚本一键转换为 Motor 部署所需的 user_config.jsonenv.json。同时删除了 examples/infer_engines/vllm/models/ 下多个模型的静态配置文件(GLM、DeepSeek V3.1/V3.2/V4 Flash/V4 Pro、Qwen3 等),改为通过转换工具按需生成,避免与 vLLM 教程脚本内容重复、不一致的维护成本。此外在 deploy.py 中新增 general_config 模式入口,允许通过命令行直接调用转化工具。

主要改动

  • 新增配置转化核心脚本 vllm_to_motor.py:独立脚本(1517行),不依赖 motor 包,支持 PD 混部(--deploy-scenario hybrid)和 PD 分离(--deploy-scenario separate)两种模式,解析 vLLM 启动脚本中的 CLI 参数和环境变量,自动推断 P/D 的 data_parallel_size / tensor_parallel_size、按硬件平台(A2/A3)重算并行度并打包 Pod 布局,输出有序的 user_config.jsonenv.json

  • 新增 vLLM 启动脚本模板run_dp_template_hybrid.shrun_dp_template_prefill.shrun_dp_template_decode.sh,作为配置转化的输入源;同时提供 output_config/ 下的示例输出文件,展示基于 DeepSeek V4 Flash 的转化结果

  • 删除多模型静态配置文件:移除 examples/infer_engines/vllm/models/GLM/5deepseek/v3_1deepseek/v3_2deepseek/v4/flashdeepseek/v4/proqwen/3/30b 目录中的 user_config.jsonenv.json,这些静态配置改为由转化工具按需生成

  • deploy.py 新增 general_config 模式:在 parse_arguments 中新增 --mode general_config--deploy-scenario--hardware-type--weight-path--image-name 参数,通过 handle_general_config 函数以子进程方式调用 vllm_to_motor.py,实现配置生成与部署流程的无缝集成

likedislike
atomgit-bot
atomgit-bot
7月10日 评论:

代码审查

审查总结

已完成对全部 9 个变更文件的审查,逐文件结论如下:

文件 审查结论
examples/deployer/README.md 无问题 — 新增参数表和使用说明正确,相对链接有效
examples/deployer/config_tool/output_config/env.json 无问题 — JSON 键名拼写正确,值为生成示例
examples/deployer/config_tool/output_config/user_config.json 无问题 — JSON 键名拼写正确,值为生成示例
examples/deployer/config_tool/run_dp_template_decode.sh 无问题 — vllm-ascend 社区模板脚本
examples/deployer/config_tool/run_dp_template_hybrid.sh 无问题 — vllm-ascend 社区模板脚本
examples/deployer/config_tool/run_dp_template_prefill.sh 无问题 — vllm-ascend 社区模板脚本
examples/deployer/config_tool/vllm_to_motor.py 2 个 P3 问题(详见下方)
examples/deployer/deploy.py 无问题 — handle_general_config 参数传递安全,逻辑正确
examples/infer_engines/vllm/models/README.md 无可报告问题 — 文档引导流程正确,无安全隐患

发现的问题

  • P3 × 2:均在 vllm_to_motor.py

    1. 第 1087 行kv_transfer_config 处理分支末尾的 continue 位置不当,当 strip_kv_extra_config=False 时原始值被静默丢弃(当前调用路径未触发)。
    2. 第 1503 行main() 中对已格式化的 user_config 重复调用 format_user_config(),产生不必要的排序开销。

整体风险评估:低风险

核心转换逻辑(shell 解析、CLI 参数提取、并行度重映射、部署配置推断)经过仔细审查,未发现正确性问题。两个 P3 问题均为边缘情况(一个存在于当前未触发的代码路径,一个为性能优化建议),不影响当前功能正常使用。删除的旧静态配置与新增的自动生成方案在功能上无回归,deploy.pygeneral_config 模式集成安全可靠。

类型 数量
🔴 阻塞 0
🟡 建议 10

💬 仅评论

likedislike
ascend-robotascend-robot成员
7月10日 添加了label:stat/needs-squash
ascend-robotascend-robot成员
7月10日 添加了label:ascend-cla/yes
ascend-robot
ascend-robot成员
7月10日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-Ascend/MindIE-PyMotor codeDogPro, xiao-qing123 (2/2) codeDogPro (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

weixin_63825906, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了266条消息 查看更多
ascend-robot
ascend-robot成员
7月10日 评论:
流水线 PR-pipeline_MindIE-pyMotor_gitcode#1898 [ commitID:439d1dc7 ] 已完成
>>>代码风格自动修复执行成功(无修复内容)
阶段 任务名 状态 详情
编译构建 Build_linux_arm >>>
恶意代码检查 Antipoison >>>
编码安全与规范检查 pre-commit >>>
开源片段检查 SCA >>>
开发者测试 UT_linux_arm >>>
流水线 PR-pipeline_MindIE-pyMotor_gitcode >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
xiaoqing
xiaoqing成员
7月10日 评论:

/lgtm

likedislike
ascend-robotascend-robot成员
7月10日 添加了label:lgtm
wangyangwangyang成员
7月10日 关闭了关联的issue
wangyangwangyang成员
7月10日 合入了pull request