Merged
docs: StatelessNormal README明确mean/stdev张量仅第0项参与计算,与算子实际实现对齐 #6916
docs: StatelessNormal README明确mean/stdev张量仅第0项参与计算,与算子实际实现对齐 #6916
Merged
aiteerAdd on 10 days ago
Total: 1 files changed+5-3
@@ -21,6 +21,8 @@
21 y = BoxMuller(Philox(seed, offset)) \times stdev + mean21 y = BoxMuller(Philox(seed, offset)) \times stdev + mean
22 $$22 $$
23 23 
24+ 其中mean、stdev为标量或张量。当为张量时,仅第0项参与计算,所有输出元素共用这组均值和标准差,其余元素不参与计算。
25+ 
24## 参数说明26## 参数说明
25 27 
26<table style="table-layout: fixed; width: 980px"><colgroup>28<table style="table-layout: fixed; width: 980px"><colgroup>
@@ -63,14 +65,14 @@
63 <tr>65 <tr>
64 <td>mean</td>66 <td>mean</td>
65 <td>输入</td>67 <td>输入</td>
66- <td>正态分布的均值,支持标量或与输出同形状的张量。</td>68+ <td>正态分布的均值,支持标量或张量。当为张量时,仅第0项参与计算,所有输出元素共用该均值。</td>
67 <td>FLOAT、FLOAT16、BF16</td>69 <td>FLOAT、FLOAT16、BF16</td>
68 <td>ND</td>70 <td>ND</td>
69 </tr>71 </tr>
70 <tr>72 <tr>
71 <td>stdev</td>73 <td>stdev</td>
72 <td>输入</td>74 <td>输入</td>
73- <td>正态分布的标准差,支持标量或与输出同形状的张量。</td>75+ <td>正态分布的标准差,支持标量或张量。当为张量时,仅第0项参与计算,所有输出元素共用该标准差。</td>
74 <td>FLOAT、FLOAT16、BF16</td>76 <td>FLOAT、FLOAT16、BF16</td>
75 <td>ND</td>77 <td>ND</td>
76 </tr>78 </tr>
@@ -87,7 +89,7 @@
87 89 
88- offset必须为4的倍数。90- offset必须为4的倍数。
89- mean和stdev的数据类型与输出y锁步一致。91- mean和stdev的数据类型与输出y锁步一致。
90-- mean和stdev为tensor时,shape必须与输出y的shape一致(不支持广播)。92+- mean和stdev为tensor时,仅第0项参与计算,所有输出元素共用这组均值和标准差,其余元素不参与计算。
atomgit-bot
atomgit-botatomgit-bot10 days ago

🟡 Medium Priority

变更行(README.md 第 92 行)把原来的 - mean和stdev为tensor时,shape必须与输出y的shape一致(不支持广播)。 整条删除,只替换为「仅第0项参与计算」。

影响与证据链:

  1. 原始约束同时包含两个信息:(a) shape 必须与 y 一致;(b) 不支持广播。本次替换把 (a)(b) 全部抹掉,新文本对 mean/stdev 张量允许的 shape 不作任何说明,读者会自然推断「形状任意,只要读第 0 项即可」。
  2. PR 背景与关联 Issue #4232 只说 README「暗示逐元素参数」与 proto 注释 Only the 0th element is used for calculation if a tensor is input、NormalLauncher 读取 meanGlobal_(0)/stdGlobal_(0) 不一致;该 Issue 的「存在的问题」部分只针对逐元素语义,并未指出 shape 相等约束是错的 —— 说明 shape 一致这条约束很可能仍在 op_host/infershape、tiling 或 op_api 校验中生效(本次改动没有改任何实现代码,校验逻辑不变)。
  3. 若该校验仍生效,失败模式为:用户按新文档传入与输出 y 不同形的 mean/stdev 张量(例如 y 为 [1024]、mean 为 [1]),在 infershape/tiling 阶段报 shape 不匹配错误,产生「文档说形状无限制、实际直接失败」的生产误用。属文档契约与实际实现不一致的回归。

说明:受审查工具范围限制,无法读取 op_graph/op_host 源码确认该校验是否仍存在,因此置信度下调;若实现确实已放开 shape 校验,则该删除是正确的,可忽略本条。

建议:先核对 op_host infershape / tiling / op_api 中 mean、stdev 的 shape 校验是否仍要求与输出 y 同形:若仍要求,则保留原约束并与新增语义合并成一句,例如「mean和stdev为tensor时,shape需与输出y一致(不支持广播),且仅第0项参与计算,所有输出元素共用该组均值和标准差」;若实现已放开 shape 校验,则维持当前写法,并明确说明张量 shape 无特殊要求、仅取第 0 项。

likedislike
Incorrect?
aiteer
aiteer
10 days ago Comments:
91- 仅支持SIMT编程模型(Ascend 950系列)。93- 仅支持SIMT编程模型(Ascend 950系列)。
92 94 
93## 调用说明95## 调用说明