Skip to content

feat(peft): 启用 example 看护的每日定时,并清理脚本 - #227

Merged
hipudding merged 3 commits into
Ascend:mainfrom
licy666:feat/peft-examples-schedule
Oct 13, 2026
Merged

hipudding merged 3 commits into
Ascend:mainfrom
licy666:feat/peft-examples-schedule

Conversation

@licy666

@licy666 licy666 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

背景

#201 把 peft 作为第一个 example 看护试点接入,但触发器里的 schedule 留作了注释,所以 peft 一直没有定时刷新,只有改动 peft 看护文件的 PR 和手动运行才会跑。按现行的 example 看护迁移约定,迁移 PR 合入时 cron 就应该已经启用、一天一次。本 PR 补上这一项,并把 #201 落仓的 peft 脚本里不符合约定的两处一起清掉。

改动

三个提交,每个只做一件事,可以按提交单独审。

  1. feat(peft): 启用 example 看护的每日定时

    peft-examples.yml 的 schedule 改为每天 UTC 23:00,即北京时间 07:00。这个整点没有被其他项目的 example 看护占用。定时运行只在三种情况下才跑矩阵:上游出了新 release,peft 看护自己的文件变了,或者上一次失败需要重试;其余时候在 monitor 结束。

  2. fix(peft): 去掉脚本里多余的 HF_ENDPOINT 导出

    引擎在 eff1749 之后不再设置 HF_ENDPOINT,默认直连 huggingface.co。setup_example.sh 和 run_example.sh 里的 export 与注释还在说引擎默认走 hf-mirror,已经和事实不符。删掉后行为不变。

  3. refactor(peft): 把 run_example.sh 内嵌的 Python 提取成独立文件

    项目脚本里不写 heredoc。run_example.sh 的三处内嵌 Python 提取到 examples-guards/peft/scripts/ 下,逻辑逐字搬出,不改行为:

    • expand_overlay.py:展开清单里的 overlay 参数。
    • ensure_passthrough.py:给不转发参数的 shell 示例补 "$@"。
    • ci_sitecustomize.py:启动时注入的 CI 补丁。原来 shim 开头的 transfer_to_npu 导入是由 shell 按环境变量拼进去的,现在改成 shim 自己读 SKIP_TRANSFER_TO_NPU 判断,语义相同。

合入后的行为

合入后的第一次定时运行,监控缓存是空的,peft 看护文件的哈希信号会触发,所以会跑一次完整的 supported 矩阵。之后进入常态:没有新 release、文件没变、上次也没失败时,定时运行只跑 monitor。

验证

本机已验证:

  • actionlint 通过。
  • bash -n 与 py_compile 通过。
  • heredoc 自查命令 rg -n "<<[-~]?'?[A-Z]" 扫 examples-guards/peft 和 peft-examples.yml,无输出。
  • 旧 heredoc 正文与三个新 .py 做了对照,共 21 项:overlay 展开 10 种输入,补丁 7 种脚本形态,shim 的语法树。输出、退出码和改写后的文件全部一致。
  • shell 一侧的接线,用去掉 NPU 依赖的临时副本跑通:overlay 正确展开,"$@" 补丁生效,shim 与源文件逐字节一致。

NPU 上的真实运行还没验证。本 PR 改动了 examples-guards/peft/**,会触发 pull_request 运行完整的 supported 矩阵,第 2、3 个提交是否真的不影响行为,以这次矩阵为准。矩阵全绿之前不建议合入。

不在本 PR 范围

  • examples-guards/README.md 的「迁移一个新项目」一节第 2、5 步仍写着「schedule 保持注释」「是否打开 cron 由维护者另行决定」,与现行约定不一致。这是所有项目共用的文档,建议另开 PR 统一改。
  • 源仓 cosdt-ci-test/workflows 里 peft 的旧 cron 需要维护者在本 PR 合入后关闭,避免两边同时占用 NPU。
  • accelerate 的 run_example.sh 里也有同样的 heredoc,属于别的项目,没有顺手改。
  • peft 清单里有些条目当初是因为 hf-mirror 访问不了才标成 unsupported,香港直连后可能恢复。这需要在真机上逐条验证,应当单独一轮做。

Ascend#201 合入时 schedule 留作注释,peft 因此一直没有定时刷新。改成每天 UTC 23:00 跑一次,即北京时间 07:00。这个整点没有被其他项目的 example 看护占用。

定时运行只在三种情况下才跑矩阵:上游出了新 release,peft 看护自己的文件变了,或者上一次失败需要重试;其余时候在 monitor 结束。合入后的第一次定时运行监控缓存为空,会跑一次全量矩阵。
引擎在 eff1749 之后不再设置 HF_ENDPOINT,默认就直连 huggingface.co。setup_example.sh 和 run_example.sh 里的 export 与注释还在说引擎默认走 hf-mirror,已经和事实不符。删掉后行为不变,下载端点交给引擎默认值。
按 example 看护迁移约定,项目脚本里不写 heredoc。run_example.sh 的三处内嵌 Python 提取到 scripts/ 下,逻辑逐字搬出,不改行为:expand_overlay.py 展开 overlay 参数,ensure_passthrough.py 给 shell 示例补 "$@",ci_sitecustomize.py 是启动时注入的 CI 补丁。

原来 shim 开头的 transfer_to_npu 导入是由 shell 按环境变量拼进去的,现在改成 shim 自己读 SKIP_TRANSFER_TO_NPU 判断,语义相同。
@hipudding
hipudding merged commit 1e4a949 into Ascend:main Oct 13, 2026
97 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants