| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: align shape grid model ids and database Co-authored-by: Secluded_Ocean<tangchuxiao0709@qq.com> # message auto-generated for no-merge-commit merge: !348 merge codex/fix-shape-grid-profile-db into master fix: align shape grid model ids and database Created-by: Secluded_Ocean Commit-by: Secluded_Ocean Merged-by: ascend-robot Description: ## Summary - align generate_shape_grid.py --target-models with text_generate model_id naming and reject legacy short names such as dsv3 - keep --rows effective when sampling is capped but rng/seed is None - replace vllm0.18.0_torch2.9.0_cann8.5 with the shape_generated database after validating it has more effective data ## Validation - Database comparison before replacement: old=68 CSV / 823 valid shape rows / 823 positive metric rows; shape_generated=104 CSV / 36198 valid shape rows / 15008 positive metric rows - Final database path: 104 CSV / 36198 shape rows / 15008 positive metric rows; shape_generated path removed - python -m py_compile tools/perf_data_collection/generate_shape_grid.py tools/perf_data_collection/grid_generator/model_configs.py tools/perf_data_collection/grid_generator/theory_router.py tools/perf_data_collection/grid_generator/generators/fused_attention.py - pytest tests/regression/cli/test_shape_grid_model_configs.py tests/regression/cli/test_model_configs.py tests/regression/cli/test_runner.py tests/regression/cli/test_theory_router_pure.py tests/regression/cli/test_generate_shape_grid.py -q See merge request: Ascend/msmodeling!348 | 3 天前 | |
【FIX】CI gate 剔除 stale test_map node,消除 batch collect per-node 假死 Co-authored-by: liujiawang<anonymousdev@163.com> # message auto-generated for no-merge-commit merge: !408 merge fix/collect-stale-nodes into master 【FIX】CI gate 剔除 stale test_map node,消除 batch collect per-node 假死 Created-by: AvadaKedavrua Commit-by: liujiawang Merged-by: ascend-robot Description: ## 修改原因 CI gate Wave2 启动前 filter_collectable_node_ids 对数百个 regression node 做 batch collect-only。当 test_map 含少量 stale node id(测试重命名/删除后未刷新 map)时,pytest 返回 rc=4,-q 模式下 stdout 仅有 summary、无法解析 node 行,旧逻辑误判为「0 个 collectable」并触发 **O(n) per-node collect**(PR #385 实测 319 节点约 50 分钟无日志,表现为门禁卡住)。 --- ## 修改内容 - **scripts/helpers/common/pytest_runner.py** - 新增 _parse_not_found_node_ids:从 stderr 解析 ERROR: not found: <node_id> - filter_collectable_node_ids:batch rc=4 时剔除 stale id 并返回 remaining(单次 batch);rc=0 + summary stdout 时返回全部 targets;无法解析的 rc=4 直接 ConfigError - **移除** per-node fallback、_collect_test_node_ids_lenient、_stderr_reports_all_targets_missing - 增加 info 日志:丢弃 stale 数量与 sample - **scripts/helpers/ci_gate/main.py**:Wave 选测前 log Filtering N node id(s) for collectability - **测试**:更新/补充 test_pytest_runner.py 覆盖 partial stale、summary stdout、unparseable rc=4 --- ## 自验证 ### 单元 / 编排回归 目的:确认新 collect 逻辑与 CI gate 编排无回归 步骤: 1. 在仓库根目录执行: sh uv run pytest tests/regression/scripts/helpers/common/test_pytest_runner.py \ tests/regression/scripts/helpers/ci_gate/test_orchestration.py -q ### Partial stale batch(模拟 PR #385 卡住路径) 目的:验证 rc=4 + stderr 含 not found 时不再 per-node,单次 batch 内完成 步骤: 1. mock batch collect rc=4 + stderr 含 1 个 stale + 1 个 valid node 2. 调用 filter_collectable_node_ids((valid, stale), marker=...) 3. 断言仅返回 valid,且未调用 per-node lenient collect 结果:见 test_filter_collectable_node_ids_partial_stale_drops_without_per_node 通过 ### PR #385 场景说明 目的:解释根因与修复效果 步骤: 1. Wave0 194 changed tests 通过后,Wave1 对 319 regression node 调 filter_collectable_node_ids 2. 旧逻辑:11 个 stale id → batch_ids=0 → 319×~11s per-node 3. 新逻辑:stderr 解析剔除 11 stale → 返回 308 个 remaining,~1 次 batch(~10s) 结果:门禁不再在 Wave0 summary 后长时间无输出 See merge request: Ascend/msmodeling!408 | 3 天前 | |
fix(security): add model source safety checks Co-authored-by: jia_ya_nan<jiayanan3@h-partners.com> # message auto-generated for no-merge-commit merge: !385 merge fix/trust-remote-code-safety into master fix(security): add model source safety checks Created-by: jia_ya_nan Commit-by: jia_ya_nan Merged-by: ascend-robot Description: # PR Template Thanks for your contribution; we appreciate it a lot. The following instructions will make your pull request healthier and help you get feedback more easily. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers. 感谢您的贡献,我们非常重视。以下说明将使您的拉取请求更健康,更易于获得反馈。如果您不理解某些项目,请不要担心,只需提交拉取请求并从维护人员那里寻求帮助即可。 **PR Type / PR类型** - [ ] Feature(功能新增) - [x] Bugfix(Bug 修复) - [ ] Docs(文档更新) - [ ] CI/CD(持续集成/持续部署) - [ ] Refactor(代码重构) - [ ] Perf(性能优化) - [ ] Test-Cases(测试用例更新) - [x] Other(其他) ## 🔍 Motivation / 变更动机 **Please describe the motivation of this PR and the goal you want to achieve through this PR.** **请描述您的拉取请求的动机和您希望通过此拉取请求实现的目标。** 安全加固 ------ ## 📝 Modification / 修改内容 **Please briefly describe what modification is made in this PR.** **请简要描述此拉取请求中进行的修改。** 增加本地路径权限校验;增加日志风险提示 去掉不维护的老接口 ------ ## 📐 Associated Test Results / 关联测试结果 **Please provide the related test results, such as test reports, etc.** **请提供相关测试结果,例如测试报告等。**  ------ ## 🌟 Use cases (Optional) / 使用案例(可选) **If this PR introduces a new feature, it is better to list some use cases here and update the documentation.** **如果此拉取请求引入了新功能,最好在此处列出一些用例并更新文档。** ------ ## ✅ Checklist / 检查列表 **Before PR**: - [x] Bug fixes are fully covered by unit tests, the case that causes the bug should be added in the unit tests. / 修复的 Bug 已完全由单元测试覆盖,导致 Bug 的情况应在单元测试中添加。 - [x] The modification is covered by complete unit tests. If not, please add more unit tests to ensure the correctness. / 此拉取请求中的修改已完全由单元测试覆盖。如果不是,请添加更多单元测试以确保正确性。 - [x] All relevant documentation (API docs, docstrings, example tutorials) has been updated to reflect these changes. / 所有相关文档(API 文档、文档字符串、示例教程)已更新以反映这些更改。 - [x] Please ensure code files contain no Chinese comments. / 请保证代码文件中不含中文注释。 ------ See merge request: Ascend/msmodeling!385 | 3 天前 | |
【同步】【非开发代码】代码从 develop 同步到 master Co-authored-by: yydyzr<liuyuncong1@huawei.com> Co-authored-by: gcw_61YBRfIt<chuzhenxing@huawei.com> Co-authored-by: 孔炳翔<1120200577@qq.com> Co-authored-by: zhengxinqian<qianzhengxin@huawei.com> Co-authored-by: hw_whx<wanghexiang7@huawei.com> Co-authored-by: jgong5<steven.gong@gmail.com> Co-authored-by: hw_whx<2952154980@qq.com> # message auto-generated for no-merge-commit merge: !330 merge master into master 【同步】【非开发代码】代码从 develop 同步到 master Created-by: AvadaKedavrua Commit-by: liujiawang;ascend-robot;AvadaKedavrua;lutean;Horacehxw;eveyin1;minghang_c;zwt__;tt0cool;elrond-g;jia_ya_nan;zhenyu_zhang;ChenHuiwen;wangshen001;Hudingyi;wendellX;Secluded_Ocean;jhon-117;yaohan404;jiangruitao;zhenghaojie;stormchasingg;panyj1993;cmh1056291129;yuyinkai1;sunguozhong;genius52;liu_jiaxu;HongMaoShuiGuai;zhengxinqian;weixin_43368449;jsez-li-bin;jgong5;wqh17101;w00609794;yydyzr;JieZhang679;sppedforcy;gcw_61YBRfIt;Jiong Gong;hw_whx;gongjiong;孔炳翔 Merged-by: ascend-robot Description: 代码从 develop 同步到 master,后续基于 master 演进,并支持打包 See merge request: Ascend/msmodeling!330 | 15 天前 | |
【REFACTOR】重构 CI gate 与 test_map 同步基础设施 Co-authored-by: AvadaKedavrua<anonymousdev@163.com> # message auto-generated for no-merge-commit merge: !394 merge fix into master 【REFACTOR】重构 CI gate 与 test_map 同步基础设施 Created-by: AvadaKedavrua Commit-by: liujiawang;AvadaKedavrua Merged-by: ascend-robot Description: ## 修改原因 CI gate 的 diff 分类、策略校验、PR 评论、test_map 同步等逻辑耦合在 gate_policy.py 等单体模块中,难以独立演进与单测;test_map 缺少独立同步入口;ast_utils / test_map_loader / nightly 报告链路也需要与 gate 策略对齐。本 PR 仅包含 commit 82757732b6b6beb79b7083f6046e9cd9c72005f3(refactor),不涉及 wheel/CLI/OptiX 变更。 --- ## test_map schema 重构:背景与收益 ### 背景 旧 test_map 以**产品源文件**为顶层 key,value 为 symbol → [test_nodes]: json { "tensor_cast/foo.py": { "Widget::run": ["tests/regression/.../test_x.py::test_foo"] } } 新 test_map 改为以 **pytest node id** 为顶层 key,value 为 source_file → [symbols],与 coverage.py --cov-context=test 的采集方向一致: json { "tests/regression/.../test_x.py::test_foo": { "tensor_cast/foo.py": ["Widget::run"] } } 两者存的是同一张「测试节点 ↔ (源文件, symbol)」二部图,仅主键方向相反;边数相同,语义不变。 ### 为何行数变多、体积反而更小 | 指标 | 旧 schema(source-oriented) | 新 schema(node-oriented) | |------|------------------------------|----------------------------| | JSON 行数 | ~7 万行 | ~10 万行 | | 文件/内存占用 | **8,355,104 B(~8.0 MB)** | **3,748,221 B(~3.6 MB,约 -55%)** | 行数不是体积的可靠 proxy。旧格式在每个 symbol 下重复存储完整 pytest node id(tests/regression/.../test_xxx.py::Class::test_yyy,通常 60–80 字符);同一 test 覆盖 N 个 symbol 时,该长字符串出现 N 次。新格式每个 test node id 只作为顶层 key 出现一次,数组里存的是短 canonical symbol(如 Widget::run、%),边数 E 不变但**长字符串重复次数从 O(E) 降到 O(T)**(T = 有覆盖的 test 数,T ≪ E)。 典型场景:大量 smoke/regression 用例通过 import 共享 tensor_cast/、cli/ 等模块的 module symbol %——旧格式在单个 symbol 下聚合成千上万条 test id;新格式每个 test 只记一次短 symbol,整体字节数显著下降。 ### 工程收益 1. **构建零 pivot**:build_test_map.collect_from_coverage 直接按 coverage context(test node)聚合 by_test[nid][source].add(symbol),与 nightly phase1 采集路径一致。 2. **增量 sync 更自然**:sync.apply_incremental_test_map_update 对 touched test 文件整 node 替换、对 touched product 文件按 (test_node, source_path) 合并,无需在两种索引间来回转换。 3. **删 test / 冗余检测更直接**:gate_deleted_tests、detect_redundant_cases 按 test footprint 遍历;test_map_loader 强制顶层为 tests/...::...,可拒绝误写成 source key 的脏数据。 4. **CI gate 查询无退化**:symbol → tests 反向查询通过 build_test_map_index 一次 O(N) 建索引,与旧 schema 运行时等价。 5. **存储与传输更轻**:实测文件体积约减半,OBS 下载与 json.loads 内存峰值更低。 --- ## 修改内容 ### CI gate 模块拆分 - gate_policy.py 瘦身:策略加载/校验迁入 policy.py,diff 分类迁入 classifier.py,GitCode PR 评论迁入 comments.py,test_map 查询迁入 test_map_query.py - 新增 sync.py + scripts/run_test_map_sync.sh:按目标分支 HEAD 维护权威 test_map(--once / --watch) - diff.py 精简,仅保留 git diff 与分支检出能力 - main.py / rules.py / models.py / errors.py 适配新模块边界 - tests/.ci/gate_policy.yaml 策略字段同步调整 ### 公共 helpers 增强 - _config.py:手写 env 解析改为 pydantic-settings,统一校验与错误信息 - ast_utils.py:扩展符号提取能力,支撑 test_map 粒度映射 - build_test_map.py / test_map_loader.py:重构收集与加载逻辑(node-oriented schema) - 新增 test_map_report.py:test_map 覆盖率汇总、过期豁免检测 - coverage_symbol_check.py / pytest_runner.py / test_map_config.py 对齐新数据结构 - common/_logging.py:补充 log_env_audit 环境审计日志 ### nightly 报告链路 - report_builder.py / pytest_parser.py / main.py:适配 node-oriented test_map 报告 - report_models.py / feishu_notifier.py 小幅对齐 ### symbol 校验与 exemption 漂移(新增) - **last-wins canonical symbols**:重复 def foo 仅 gate 最后一个定义;shadowed def 发非 blocking GitCode 评论 - **def _ 消歧**:无 decorator → _;有 decorator → _@<suffix> - **exemption 校验**:path::symbol 整串须为 AST canonical name;coverage omit 路径禁止写入 exemptions.sources - **exemption 漂移 blocking**:PR 删/改名 product/test 文件时,未同步更新 gate_policy.yaml → [ED] 硬阻断 + GitCode 评论 - **Expected/Got**:Config / policy / loader 类型与值错误统一格式 - **文档**:scripts/README.md 补充 build.sh、MSMODELING_WHEEL_OUTPUT_DIR;tests/README.md 补充 symbol 契约 ### 其他 - scripts/run_ci_gate.sh:入口参数对齐 - scripts/prefetch_model_configs.py:适配新 config 加载 - tests/README.md / tests/SKILL.md:文档同步 - 新增/更新回归测试:test_classifier.py、test_comments.py、test_policy.py、test_sync.py、test_test_map_query.py、test_test_map_report.py 等 --- ## 自验证 ### CI gate / test_map / nightly 回归测试 目的:确认模块拆分后行为不变,新模块有单测覆盖 步骤: 1. 在仓库根目录执行: sh uv run pytest tests/regression/scripts/helpers/ci_gate/ \ tests/regression/scripts/helpers/common/test_ast_utils.py \ tests/regression/scripts/helpers/common/test_test_map_loader.py \ tests/regression/scripts/helpers/nightly/test_report_builder.py -q 2. 检查退出码与通过数 结果: 206 passed, 7 warnings in 0.43s ### symbol 校验 / exemption 漂移回归 sh uv run pytest tests/regression/scripts/helpers/ci_gate/ \ tests/regression/scripts/helpers/common/test_ast_utils.py \ tests/regression/scripts/helpers/common/test_test_map_loader.py \ tests/regression/scripts/helpers/test_config.py -q 结果: 239 passed, 8 warnings in 1.05s ### test_map 同步入口 目的:确认 run_test_map_sync.sh 可正常拉起 sync.py 步骤: 1. 设置 MSMODELING_TEST_MAP_PATH 指向有效 test_map JSON 2. 执行 bash scripts/run_test_map_sync.sh --once 结果:脚本入口与 sync.py CLI 已随 PR 提交;完整同步需 CI/nightly 环境提供有效 test_map 文件 See merge request: Ascend/msmodeling!394 | 4 天前 | |
【同步】【非开发代码】代码从 develop 同步到 master Co-authored-by: yydyzr<liuyuncong1@huawei.com> Co-authored-by: gcw_61YBRfIt<chuzhenxing@huawei.com> Co-authored-by: 孔炳翔<1120200577@qq.com> Co-authored-by: zhengxinqian<qianzhengxin@huawei.com> Co-authored-by: hw_whx<wanghexiang7@huawei.com> Co-authored-by: jgong5<steven.gong@gmail.com> Co-authored-by: hw_whx<2952154980@qq.com> # message auto-generated for no-merge-commit merge: !330 merge master into master 【同步】【非开发代码】代码从 develop 同步到 master Created-by: AvadaKedavrua Commit-by: liujiawang;ascend-robot;AvadaKedavrua;lutean;Horacehxw;eveyin1;minghang_c;zwt__;tt0cool;elrond-g;jia_ya_nan;zhenyu_zhang;ChenHuiwen;wangshen001;Hudingyi;wendellX;Secluded_Ocean;jhon-117;yaohan404;jiangruitao;zhenghaojie;stormchasingg;panyj1993;cmh1056291129;yuyinkai1;sunguozhong;genius52;liu_jiaxu;HongMaoShuiGuai;zhengxinqian;weixin_43368449;jsez-li-bin;jgong5;wqh17101;w00609794;yydyzr;JieZhang679;sppedforcy;gcw_61YBRfIt;Jiong Gong;hw_whx;gongjiong;孔炳翔 Merged-by: ascend-robot Description: 代码从 develop 同步到 master,后续基于 master 演进,并支持打包 See merge request: Ascend/msmodeling!330 | 15 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 15 天前 | ||
| 4 天前 | ||
| 15 天前 |