| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[fix] 修复Coordinator测试用例在不同python版本现象不同的bug。【部分python版本会出现失败】 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !116 merge master into master [fix] 修复Coordinator测试用例在不同python版本现象不同的bug。【部分python版本会出现失败】 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/82 ## **2. 修改内容** 解决 from __future__ import annotations叠加不同pydantic版本引入的Request和'Request'解析逻辑差异的问题。 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 验证ok ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!116 | 3 个月前 | |
[refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !55 merge master into master [refractor] 提取http相关公共文件,简化utils文件夹内文件数量 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/47 ## **2. 修改内容** 提取utils函数,汇聚目录 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 服务能正常拉起 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!55 | 3 个月前 | |
KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !670 merge feat/workload-active-tokens-only into master KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#395](https://gitcode.com/Ascend/MindIE-Motor/issues/395) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.KV 亲和记账:Scheduler 最终选路后按 ISL − matched_tokens 提交负载 2.删除 active_kv_cache 因子,负载统一为 token 计量 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!670 | 8 天前 | |
解决日志重复问题 Co-authored-by: wenkea<tianmengx12@163.com> Co-authored-by: 吴铭泾<wumingjing@huawei.com> # message auto-generated for no-merge-commit merge: !446 merge fix/request-cancel-and-logger into master 解决日志重复问题 Created-by: wenkea Commit-by: wenkea;吴铭泾 Merged-by: towncharlie Description: ## **1. 合入背景** Unified PD 路由在客户端断开、dispatch 取消等预期取消场景下,原先会将 asyncio.CancelledError 包装成 RuntimeError,在 dispatch.handle_request 中落入通用 Exception 分支,以 ERROR 级别打印完整堆栈,容易被误判为系统故障,干扰问题定位。 同时,日志模块在处理多行 message 和 exc_info 堆栈时,NewLineFormatter / MaxLengthFormatter 存在格式异常(堆栈 header 重复、换行截断不当),影响维测日志可读性。 #ISSUE ID: https://gitcode.com/Ascend/MindIE-PyMotor/issues/342 ## **2. 修改内容** 1.新增 RequestCancelledError 异常类型(motor/common/utils/error.py) 用于标识客户端断开、dispatch 取消等预期取消场景 携带 reason 字段,便于日志与 trace 记录 Unified PD 路由取消路径改造(motor/coordinator/router/strategies/unified_pd.py) 2.在 _process_response_error 中,将 asyncio.CancelledError 包装为 RequestCancelledError,替代原 RuntimeError 取消原因仍通过 check_cancel_error 解析,重试逻辑不变 Dispatch 层单独处理取消异常(motor/coordinator/router/dispatch.py) 3.新增 RequestCancelledError 捕获分支 以 debug 级别记录 api / req_id / reason,不再走通用 error 堆栈日志 仍返回 HTTP 500,并通过 sanitize_error_message 做安全处理 日志格式化修复(motor/common/logger/formatter.py、motor/common/logger/logger.py) 4.NewLineFormatter:仅对 message 内换行做 header 前缀扩展,避免 exc_info 堆栈 header 重复 MaxLengthFormatter:新增 _escape_for_single_line,将换行转义为 \n,保证单行日志长度截断正确 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及。 ## **5. 测试结果** 1.取消异常类型与 reason 传递 pytest tests/coordinator/router/test_cancel_error.py PASSED 2.Dispatch 取消时不打 ERROR 堆栈 test_dispatch_request_cancelled_does_not_log_error PASSED 3.非预期异常仍打 ERROR 堆栈 test_dispatch_unexpected_exception_still_logs_error PASSED 4.Unified PD 取消包装为 RequestCancelledError test_unified_pd_process_response_error_wraps_cancelled_as_request_cancelled_error PASSED 5.多行日志 / exc_info / MaxLength 转义 pytest tests/common/logger/test_logger.py PASSED 7.构造真实推理场景测试日志打印效果 问题已解决 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!446 | 22 天前 | |
[feature]4/N 精度异常感知适配代码-scheduler相关 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !257 merge feat/precision-scheduler-integration into master [feature]4/N 精度异常感知适配代码-scheduler相关 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** [feature]4/N 精度异常感知适配代码-scheduler相关 ## **2. 修改内容** 在scheduler中新增精度问题检测的适配项 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 见issue ## **5. 测试结果** 已完成测试 2P1D故障时仅杀掉故障的1p1d,剩余1P仍可继续运行  故障上报至CCAE  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!257 | 2 个月前 | |
适配 opentelemetry 标准规范,支持接收上游 request id Co-authored-by: jingyp<jingyp@chinatelecom.cn> # message auto-generated for no-merge-commit merge: !274 merge feature/use-upstream-request-id into master 适配 opentelemetry 标准规范,支持接收上游 request id Created-by: gcw_gxG14I7x Commit-by: jingyp Merged-by: zhoujing101 Description: ## **1. 合入背景** trace 支持接收上游 request id 或 traceparent 接入 Fixes https://gitcode.com/Ascend/MindIE-PyMotor/issues/349 ## **2. 修改内容** coordinator 原始请求中如果有 traceparent 或者 request id,直接作为 request id,可以传给 vllm (在 user_config 中启用 --enable-request-id-headers),这样 resp 中也会带有该 id,可以保持 id 全链路一致 https://docs.vllm.ai/en/v0.18.0/serving/openai_compatible_server/#extra-http-headers ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 基于如下 Dockerfile 制作了最新镜像(也提过 PR https://gitcode.com/Ascend/MindIE-PyMotor/pull/143): FROM quay.io/ascend/vllm-ascend:deepseekv4 # 安装依赖工具 RUN apt-get update && apt-get install -y pciutils && rm -rf /var/lib/apt/lists/* # 将当前项目(MindIE-PyMotor)完整复制到容器内的 /mnt/MindIE-PyMotor COPY . /mnt/MindIE-PyMotor # 设置工作目录 WORKDIR /mnt/MindIE-PyMotor # 执行 PyMotor 的构建和安装流程 RUN pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple \ && pip install --upgrade pip \ && pip install --no-cache-dir -r requirements.txt \ && bash build.sh \ && pip install --no-cache-dir --force-reinstall ./dist/motor-0.1.0-py3-none-any.whl # 清理构建过程中产生的中间文件 RUN rm -rf build dist *.egg-info 测试方法:在 coordinator pod 内部调用 chat 接口测试。 用例 1:一个合法的 traceparent: curl -s -X POST \ -H "Content-Type: application/json" -H "routing-strategy: random" \ -H "traceparent: 00-12345f3577b34da6a3ce929d0e067890-20f067aa0ba902b7-01" \ -d '{ "model":"DeepSeek-V4-Flash", "messages": [{"role": "user", "content": "你是谁"}], "max_tokens":50, "stream":false }' http://xxx:1025/v1/chat/completions  用例 2:一个不合法的 traceparent,会走 request id 生成逻辑 curl -s -X POST \ -H "Content-Type: application/json" -H "routing-strategy: random" \ -H "traceparent: 00-12345-20f067aa0ba902b7-01" \ -d '{ "model":"DeepSeek-V4-Flash", "messages": [{"role": "user", "content": "你是谁"}], "max_tokens":50, "stream":false }' http://xxx:1025/v1/chat/completions  coordinator 相关日志:  用例 3:request id curl -s -X POST \ -H "Content-Type: application/json" -H "routing-strategy: random" \ -H "x-request-id: testid" \ -d '{ "model":"DeepSeek-V4-Flash", "messages": [{"role": "user", "content": "你是谁"}], "max_tokens":50, "stream":false }' http://xxx:1025/v1/chat/completions  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!274 | 21 天前 | |
[feature] SGLang 支持 native PD Co-authored-by: qq_40172610<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !649 merge chaofeng into master [feature] SGLang 支持 native PD Created-by: qq_40172610 Commit-by: qq_40172610 Merged-by: towncharlie Description: ## 1. 合入背景 SGLang 在 EngineServer **native CLI**( sglang.launch_server)拉起时,业务口由引擎原生进程占用,不再走 Motor InferEndpoint / _motor_dispatch 适配层。现有 Unified PD 路由仍向引擎注入 _motor_dispatch,无法与 stock SGLang PD(bootstrap_host/port/room)对齐,导致 SGLang native PD 无法正常协同。 本 PR 让 Coordinator 在识别到目标实例 engine_type=sglang 时,改为注入 SGLang 原生 PD 字段,并对无 /v1/dispatch/stop 的 native 业务口做 best-effort 跳过。 Fixes [#382](https://gitcode.com/Ascend/MindIE-Motor/issues/382) ## 2. 修改内容 1. 新增 motor/coordinator/router/sglang_native_dispatch.py:识别 SGLang 实例;由 pair_id + attempt_seq 稳定派生 bootstrap_room;注入 bootstrap_host(Prefill IP)、bootstrap_port(读 DISAGGREGATION_BOOTSTRAP_PORT)、bootstrap_room,并保证不附带 _motor_dispatch。 2. UnifiedPDRouter 构造下发请求时:若目标资源为 SGLang,走上述注入并提前返回;vLLM 等非 SGLang 路径仍保持原 _motor_dispatch 逻辑。 3. DispatchStopClient:对 SGLang native 端点跳过 dispatch stop HTTP(引擎无该接口),打 info 日志,不作为硬失败。 4. 文档补充 Native 拉起与 SGLang PD 字段约定、/v1/dispatch/stop 在 pure-native 下的行为说明。 5. 补充/调整 UT:test_sglang_native_dispatch.py、test_dispatch_stop_client.py、test_unified_pd_router.py(SGLang 注入 bootstrap、不带 _motor_dispatch)、test_main_native_launch.py(SGLang native 拉起路径)。 **部署约定**:Coordinator 与引擎侧需配置一致的 DISAGGREGATION_BOOTSTRAP_PORT。 ## 3. 资料变更 涉及。更新 docs/zh/user_guide/api/engine_server_interfaces.md:补充 Native 拉起与 SGLang PD(bootstrap_*)约定,以及 SGLang pure-native 下 dispatch stop 为 best-effort 的说明。 ## 4. 接口变更 涉及(Coordinator → SGLang 引擎请求体约定,客户面 OpenAPI 不变): - SGLang PD:下发请求携带 bootstrap_host / bootstrap_port / bootstrap_room,**不再**附带 _motor_dispatch。 - /v1/dispatch/stop:仍由 Motor InferEndpoint 提供;SGLang pure-native 业务口无此接口,Coordinator 侧跳过调用。 - vLLM PD 路径不变。 ## 5. 测试结果 | 场景 | 方法 | 结果 | | --- | --- | --- | | bootstrap_room 稳定性 / 注入字段 / 缺省端口报错 | UT:test_sglang_native_dispatch.py | 通过(提交前本地执行) | | UnifiedPD 对 SGLang 注入 bootstrap、不带 _motor_dispatch;原 vLLM concurrent 路径保持 | UT:test_unified_pd_router.py | 通过 | | SGLang 跳过 dispatch stop | UT:test_dispatch_stop_client.py | 通过 | | SGLang native CLI 拉起不走 InferEndpoint | UT:test_main_native_launch.py | 通过 | | SGLang PD 端到端(真实集群 / Ascend) | 部署 P/D + 配置 DISAGGREGATION_BOOTSTRAP_PORT 后发起推理 | 通过  | ## 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例 - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!649 | 9 天前 | |
解决日志重复问题 Co-authored-by: wenkea<tianmengx12@163.com> Co-authored-by: 吴铭泾<wumingjing@huawei.com> # message auto-generated for no-merge-commit merge: !446 merge fix/request-cancel-and-logger into master 解决日志重复问题 Created-by: wenkea Commit-by: wenkea;吴铭泾 Merged-by: towncharlie Description: ## **1. 合入背景** Unified PD 路由在客户端断开、dispatch 取消等预期取消场景下,原先会将 asyncio.CancelledError 包装成 RuntimeError,在 dispatch.handle_request 中落入通用 Exception 分支,以 ERROR 级别打印完整堆栈,容易被误判为系统故障,干扰问题定位。 同时,日志模块在处理多行 message 和 exc_info 堆栈时,NewLineFormatter / MaxLengthFormatter 存在格式异常(堆栈 header 重复、换行截断不当),影响维测日志可读性。 #ISSUE ID: https://gitcode.com/Ascend/MindIE-PyMotor/issues/342 ## **2. 修改内容** 1.新增 RequestCancelledError 异常类型(motor/common/utils/error.py) 用于标识客户端断开、dispatch 取消等预期取消场景 携带 reason 字段,便于日志与 trace 记录 Unified PD 路由取消路径改造(motor/coordinator/router/strategies/unified_pd.py) 2.在 _process_response_error 中,将 asyncio.CancelledError 包装为 RequestCancelledError,替代原 RuntimeError 取消原因仍通过 check_cancel_error 解析,重试逻辑不变 Dispatch 层单独处理取消异常(motor/coordinator/router/dispatch.py) 3.新增 RequestCancelledError 捕获分支 以 debug 级别记录 api / req_id / reason,不再走通用 error 堆栈日志 仍返回 HTTP 500,并通过 sanitize_error_message 做安全处理 日志格式化修复(motor/common/logger/formatter.py、motor/common/logger/logger.py) 4.NewLineFormatter:仅对 message 内换行做 header 前缀扩展,避免 exc_info 堆栈 header 重复 MaxLengthFormatter:新增 _escape_for_single_line,将换行转义为 \n,保证单行日志长度截断正确 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及。 ## **5. 测试结果** 1.取消异常类型与 reason 传递 pytest tests/coordinator/router/test_cancel_error.py PASSED 2.Dispatch 取消时不打 ERROR 堆栈 test_dispatch_request_cancelled_does_not_log_error PASSED 3.非预期异常仍打 ERROR 堆栈 test_dispatch_unexpected_exception_still_logs_error PASSED 4.Unified PD 取消包装为 RequestCancelledError test_unified_pd_process_response_error_wraps_cancelled_as_request_cancelled_error PASSED 5.多行日志 / exc_info / MaxLength 转义 pytest tests/common/logger/test_logger.py PASSED 7.构造真实推理场景测试日志打印效果 问题已解决 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!446 | 22 天前 | |
引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !304 merge sched-final-allocation-log into master 引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#183](https://gitcode.com/Ascend/MindIE-PyMotor/issues/183) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. 删除内部错误码500,改为透传引擎侧真实错误码 2.流式请求,在与D\P真实握手后,再返回客户端状态码 3. kv亲和调度,当多请求同时到达,scheduler server在check时,根据全局负载选择加权,而不是top K. ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!304 | 1 个月前 | |
KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !670 merge feat/workload-active-tokens-only into master KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#395](https://gitcode.com/Ascend/MindIE-Motor/issues/395) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.KV 亲和记账:Scheduler 最终选路后按 ISL − matched_tokens 提交负载 2.删除 active_kv_cache 因子,负载统一为 token 计量 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!670 | 8 天前 | |
[feature]支持混布场景的精度异常检测 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !429 merge feat/hybrid-precision-detection into master [feature]支持混布场景的精度异常检测 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 精度异常检测之前仅支持了PD分离的方式,增加PD混布的支持 ## **2. 修改内容** 增加PD混布侧的请求采集 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** 构造故障时能正确检出并上报异常 在自闭环的情况下自动杀死了混布实例 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!429 | 22 天前 | |
[feature] SGLang 支持 native PD Co-authored-by: qq_40172610<chenchaofeng5@huawei.com> # message auto-generated for no-merge-commit merge: !649 merge chaofeng into master [feature] SGLang 支持 native PD Created-by: qq_40172610 Commit-by: qq_40172610 Merged-by: towncharlie Description: ## 1. 合入背景 SGLang 在 EngineServer **native CLI**( sglang.launch_server)拉起时,业务口由引擎原生进程占用,不再走 Motor InferEndpoint / _motor_dispatch 适配层。现有 Unified PD 路由仍向引擎注入 _motor_dispatch,无法与 stock SGLang PD(bootstrap_host/port/room)对齐,导致 SGLang native PD 无法正常协同。 本 PR 让 Coordinator 在识别到目标实例 engine_type=sglang 时,改为注入 SGLang 原生 PD 字段,并对无 /v1/dispatch/stop 的 native 业务口做 best-effort 跳过。 Fixes [#382](https://gitcode.com/Ascend/MindIE-Motor/issues/382) ## 2. 修改内容 1. 新增 motor/coordinator/router/sglang_native_dispatch.py:识别 SGLang 实例;由 pair_id + attempt_seq 稳定派生 bootstrap_room;注入 bootstrap_host(Prefill IP)、bootstrap_port(读 DISAGGREGATION_BOOTSTRAP_PORT)、bootstrap_room,并保证不附带 _motor_dispatch。 2. UnifiedPDRouter 构造下发请求时:若目标资源为 SGLang,走上述注入并提前返回;vLLM 等非 SGLang 路径仍保持原 _motor_dispatch 逻辑。 3. DispatchStopClient:对 SGLang native 端点跳过 dispatch stop HTTP(引擎无该接口),打 info 日志,不作为硬失败。 4. 文档补充 Native 拉起与 SGLang PD 字段约定、/v1/dispatch/stop 在 pure-native 下的行为说明。 5. 补充/调整 UT:test_sglang_native_dispatch.py、test_dispatch_stop_client.py、test_unified_pd_router.py(SGLang 注入 bootstrap、不带 _motor_dispatch)、test_main_native_launch.py(SGLang native 拉起路径)。 **部署约定**:Coordinator 与引擎侧需配置一致的 DISAGGREGATION_BOOTSTRAP_PORT。 ## 3. 资料变更 涉及。更新 docs/zh/user_guide/api/engine_server_interfaces.md:补充 Native 拉起与 SGLang PD(bootstrap_*)约定,以及 SGLang pure-native 下 dispatch stop 为 best-effort 的说明。 ## 4. 接口变更 涉及(Coordinator → SGLang 引擎请求体约定,客户面 OpenAPI 不变): - SGLang PD:下发请求携带 bootstrap_host / bootstrap_port / bootstrap_room,**不再**附带 _motor_dispatch。 - /v1/dispatch/stop:仍由 Motor InferEndpoint 提供;SGLang pure-native 业务口无此接口,Coordinator 侧跳过调用。 - vLLM PD 路径不变。 ## 5. 测试结果 | 场景 | 方法 | 结果 | | --- | --- | --- | | bootstrap_room 稳定性 / 注入字段 / 缺省端口报错 | UT:test_sglang_native_dispatch.py | 通过(提交前本地执行) | | UnifiedPD 对 SGLang 注入 bootstrap、不带 _motor_dispatch;原 vLLM concurrent 路径保持 | UT:test_unified_pd_router.py | 通过 | | SGLang 跳过 dispatch stop | UT:test_dispatch_stop_client.py | 通过 | | SGLang native CLI 拉起不走 InferEndpoint | UT:test_main_native_launch.py | 通过 | | SGLang PD 端到端(真实集群 / Ascend) | 部署 P/D + 配置 DISAGGREGATION_BOOTSTRAP_PORT 后发起推理 | 通过  | ## 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例 - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!649 | 9 天前 | |
引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !304 merge sched-final-allocation-log into master 引擎错误码透传客户端优化 && KV亲和调度多请求并发时,scheduler看全局DP负载而非TopK Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#183](https://gitcode.com/Ascend/MindIE-PyMotor/issues/183) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. 删除内部错误码500,改为透传引擎侧真实错误码 2.流式请求,在与D\P真实握手后,再返回客户端状态码 3. kv亲和调度,当多请求同时到达,scheduler server在check时,根据全局负载选择加权,而不是top K. ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!304 | 1 个月前 | |
KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !670 merge feat/workload-active-tokens-only into master KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#395](https://gitcode.com/Ascend/MindIE-Motor/issues/395) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.KV 亲和记账:Scheduler 最终选路后按 ISL − matched_tokens 提交负载 2.删除 active_kv_cache 因子,负载统一为 token 计量 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!670 | 8 天前 | |
1、熔断bug修复:请求过长报错误触发熔断 2、熔断需求设计文档补充 Co-authored-by: WZN-JJB<wuzhineng@huawei.com> # message auto-generated for no-merge-commit merge: !505 merge circuit_628 into master 1、熔断bug修复:请求过长报错误触发熔断 2、熔断需求设计文档补充 Created-by: qq_46749096 Commit-by: WZN-JJB Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#304](https://gitcode.com/Ascend/MindIE-PyMotor/issues/304) 1、bug修复:输入过长请求报错会触发熔断,不符合预期,熔断应该只在实例不通的情况下触发。 2、熔断设计文档补充 ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 上报熔断错误增加判断,错误码大于等于500才上报故障 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!505 | 28 天前 | |
KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Co-authored-by: tobking<wangjun292@huawei.com> # message auto-generated for no-merge-commit merge: !670 merge feat/workload-active-tokens-only into master KV亲和场景,负载记账需要扣除已命中部分 & 删除P节点kv block负载因子,统一使用token Created-by: tobking Commit-by: tobking Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#395](https://gitcode.com/Ascend/MindIE-Motor/issues/395) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.KV 亲和记账:Scheduler 最终选路后按 ISL − matched_tokens 提交负载 2.删除 active_kv_cache 因子,负载统一为 token 计量 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!670 | 8 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 个月前 | ||
| 3 个月前 | ||
| 8 天前 | ||
| 22 天前 | ||
| 2 个月前 | ||
| 21 天前 | ||
| 9 天前 | ||
| 22 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 22 天前 | ||
| 9 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 28 天前 | ||
| 8 天前 |