Merged
docs: 修复AIDD文档质量扫描报告中的语义与示例问题 #163
xmzAdd on Sep 14
docs: 修复AIDD文档质量扫描报告中的语义与示例问题 #163
Merged
Pull Request has been successfully merged by ascend-robot.
(Thank you for xmz's contribution.)atomgit-bot
Sep 14 Comments:
Sep 14 Comments:
变更摘要
本 PR 依据 AIDD(AI 智能文档检测系统)对 MindSpeed Ops 中文文档(docs/zh)的扫描报告(96 项问题),逐项对照仓内实际代码(mindspeed_ops/)核实后修复了其中 84 项,涉及 29 个文档;其余 12 项经核实为误报或存疑,未采纳。修复内容按 fatal(示例代码无法运行)、critical(文档与实现不一致)、normal(术语/错别字/译名)三类展开,整体为纯文档修正、无功能性变更,同时改善了使用示例的可运行性(补充 dtype/device 定义、修正变量名、labels.long() 类型转换等),使照抄示例不再报 NameError / RuntimeError。
主要改动
- 修复示例代码无法运行(fatal): 为
sinkhorn、fused_cross_entropy_loss、rmsnorm_without_weight、quick_start_ops等文档示例补充dtype/device定义并修正未定义变量(如triton_mixes/triton_hc_scale/triton_hc_base改为mixes/hc_scale/hc_base、x_triton改为x),其中quick_start_ops因labels为 int32 而F.cross_entropy要求 long 类型,补充labels.long()转换。 - 修正文档与实现不一致(critical): 对照
mindspeed_ops/实际代码核实并修正多处描述,包括add_rms_norm_bias签名统一为npu_add_rms_norm_bias、solve_tril的 Cayley-Hamilton 迭代初始化改为X = I - A、clipped_swiglu性能表带宽单位bw(GB/s)改为bw(MB/s)、cumsum删除与实现矛盾的"不支持 4 维输入"说明、fused_cross_entropy_loss返回值表改为标量、chunk_gated_delta_rule反向子步骤数 5→7 及导入路径改为chunk_gated_delta_rule、ops_dev_guideJIT 构建器源文件路径改为csrc/<op_name>/op_kernel/等。 - 统一术语与错别字修正(normal): 统一 Triton / NPU / CPU / PyTorch / Ascend 后端 / FP32 / AI Core / Vector Core 等术语大小写,修正"大与"→"大于"、"做任务总数"→"作为任务总数"(3 处)、"每个行"→"每一行"、"仓上"→"仓库上/仓库中"等错别字,以及
exec→executed、ASLR 译名改为"地址空间布局随机化"、>=Python3.10→>=3.10等拼写与译名问题。 - 明确未采纳项(12 项):
gert::→ge::(GE Runtime 为 CANN 官方命名空间,与csrc/实际代码一致,属误报)、solve_tril的 H 维方阵性、epsilon 拼写、clipped_swiglu性能表 SI 数值范围、chunk_gated_delta_rule的initial_state(需维护者确认)等经核实为误报或存疑,未予修改。


Incorrect?
atomgit-bot
Sep 14 Comments:
Sep 14 Comments:
🤖 本次改动均为数据 / 生成 / 二进制文件(如测试用例、锁文件、媒体资源),没有可审查的代码逻辑,已跳过 AI 代码审查。


Incorrect?
Sep 14 Added label: ascend-cla/yes
ascend-robot
Sep 14 Comments:
Sep 14 Comments:
349 messages are collapsed here。 See more
AtlasAccount
Sep 24 Comments:
Sep 24 Comments:
| 🚀 CI 流水线已启动 |
|---|
| 📋 执行详情: 点击查看流水线 |


Sep 24 Removed label: ci-pipeline-passed
Sep 24 Added label: ci-pipeline-running
Sep 24 Removed label: ci-pipeline-running
Sep 24 Added label: ci-pipeline-passed
What this PR does / why we need it?
本 PR 修复 AIDD 文档质量扫描报告中的语义与示例问题(函数签名、公式、参数/返回值/支持范围、示例可运行性、文档自相矛盾),13 个文件,纯文档改动,不涉及任何
.py。原 PR 里的纯格式改动(术语大小写、错别字、Markdown 格式、中英文之间的空格)已拆到 #183,本 PR 不再包含格式改动。
首轮改动范围(13 个文件)
add_rms_norm_bias更正为实际接口npu_add_rms_norm_bias;chunk_gate_delta_rule更正为chunk_gated_delta_rulemhc_post的 bmm2 与反向公式索引方向修正,与内部前向permute(0, 1, 3, 2)的实现一致x_triton更正为x、gamma更正为norm_gamma、model更正为rms_norm_gated;fused_cross_entropy_loss示例补充dtype/device定义,示例不再报NameErroralpha_chunks接口无默认值、需显式传参;probs仅moe_sort_chunks_by_index_with_probs使用;fused_cross_entropy_loss返回值为标量;chunk_gated_delta_rule反向子步骤由 5 更正为 7;recompute_w_u_fwd补充 arch32/arch35 架构代号说明clipped_swiglu性能表删除单位失实的bw(GB/s)列(该列数值实为 MB/s,标 GB/s 意味着约 109 TB/s,远超 HBM 带宽)第二轮(收尾修正)——对首轮改动逐条做源码复核时,发现同批文件内仍有同类问题,一并修正:
add_rms_norm_bias的 3 个示例与rmsnorm_without_weight的示例补齐 NPU device/dtype。算子仅在PrivateUse1(NPU)后端注册(mindspeed_ops/csrc/torch_binding.cpp:59),CPU 张量必然报Could not run ... with arguments from the CPU backend;sinkhorn示例补齐dtype/device并改用已定义变量(原先引用了 5 个未定义名字)chunk_gated_delta_rule的全部 15 处算子调用逐条按源码签名核对后统一改为关键字调用。其中 2 处是真实错位:chunk_bwd_dv_local(q, k, g, do, scale)的g/do位置互换(真实签名为(q, k, do, g, ...))、chunk_gated_delta_rule_bwd_dhu(q, k, w, g, h0, dht, do, dv, scale)自第 4 个参数起全部错位(真实签名为(q, k, w, do, dv, g, gk, h0, dht, scale, ...));prepare_wy_repr_bwd的du参数名与du=dv映射也在正文中写明。其余 13 处改为关键字式以消除"位置参数是否写对"的歧义(已逐个用 AST 校验:关键字名存在于真实签名且顺序递增,arch32/arch35 两套实现均适用)cumsum的 arch35 支持与 4 维分发(原"arch35 暂不支持"与源码api/triton/cumsum.py:150-160直接矛盾);rmsnormgated的bias(源码为必传参数且支持非None,原文"固定为 None"有误)、输出 dtype、residual_in_fp32作用范围、arch35 支持(原文"不支持arch35"有误,并补上 arch35 的D上限约束);chunk_gated_delta_rule的head_first(弃用仅告警,非"仅支持 False");sinkhorn的mixes支持 dtype 与sinkhorn_iters;clipped_swiglu的swiglu_limit非负约束;mhc_pre_only的eps数据类型recompute_w_u_fwd统一"前向/反向"口径;cumsum参数说明表补chunk_indices行;mhc_post的h_res排列约定由 3 处重复收敛为 1 处权威说明,明确"公式采用用户输入排列、源码内部先permute(0,1,3,2)"文件清单:
docs/zh/aclnn/add_rms_norm_bias.md、docs/zh/catlass/chunk_loss.md、docs/zh/triton/chunk_gated_delta_rule.md、docs/zh/triton/clipped_swiglu.md、docs/zh/triton/cumsum.md、docs/zh/triton/fused_cross_entropy_loss.md、docs/zh/triton/mhc_post.md、docs/zh/triton/mhc_pre_only.md、docs/zh/triton/recompute_w_u_fwd.md、docs/zh/triton/rmsnorm_without_weight.md、docs/zh/triton/rmsnormgated.md、docs/zh/triton/sinkhorn.md、docs/zh/triton/sort_chunks_by_idx.md与 #183 的关系:#183 是本 PR 拆出的格式部分。两者改动行基本不重叠,任一方先合入后,另一方按页面提示变基即可。
Does this PR introduce any user-facing change?
无代码接口与算子行为变更,均为文档/示例与实际实现对齐的修正。其中文档描述的支持范围、参数与返回值有更正,以仓内实际实现为准。
How was this patch tested?
mindspeed_ops/实际实现核实函数签名、公式、返回值与支持范围(含arch32/triton/、arch35/triton/、api/triton/、csrc/);tests/unit_tests/triton/test_mhc_post.py)交叉确认;device/dtype、修正未定义变量后,示例不再报NameError与 CPU/NPU 后端不匹配错误;git diff --check干净、无新增中英文空格、无失效链接;已知遗留项(源码侧 docstring,本 PR 有意不修)
以下为源码文件内的 docstring 表述过时/有误,属于代码侧文档,修改它们会使本 PR 变为非纯文档改动(
Detect_file_changes判定non-doc后会触发 4 个 NPU UT 分片),故本 PR 不改,留待单独的源码清理:mindspeed_ops/api/triton/sinkhorn.py:23与:59仍写optimized for GPU performance/with GPU optimization(本仓实现面向昇腾 NPU);mindspeed_ops/api/triton/fused_cross_entropy_loss.py:25仍写loss: Output tensor with shape [bs * seq_len],而实际return out.sum()为 0 维标量;mindspeed_ops/api/catlass/chunk_loss.py:107-112的 docstring 写 "Atlas A3 BF16",而csrc/catlass/chunk_loss/chunk_loss_torch.cpp:99同时允许Ascend910B(A2) 与Ascend910_93(A3)。另一项待确认(源码行为本身存疑,不宜由文档单方面"写死")
docs/zh/triton/chunk_gated_delta_rule.md把initial_state描述为可用入参(含形状[N, H, K, V]),但mindspeed_ops/api/triton/chunk_gated_delta_rule.py:329-330对任何非None的initial_state都无条件抛出ValueError("The chunk_gated_delta_rule_fwd_h does not support initial_state.")。这一条未在本 PR 修改:目前无法判断该限制是有意收窄(那文档应改,且需同步改函数签名段与参数表)、还是临时/缺陷(那应改代码)。本 PR 不替源码单方面背书,留待源码侧确认后单独处理。