[Accuracy diff No.90] Fix accuracy diff for paddle.incubate.nn.functional.fused_bias_dropout_residual_layer_norm API #74149
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
PR Category
Operator Mechanism
PR Types
Bug fixes
Description
现有的
fused_bias_dropout_residual_layer_norm算子在某些参数条件下出现反向结果全为 0 的情况。在源码中发现 FAIL 的 case 是调用了快速 kernel
ln_bwd_fast_kernel_driver:而在快速 kernel 中存在这行代码:
,当
dropout_rate == 0时,mask_vec为全 0 ,导致计算出的结果dout为全 0。修复过程参考了非调用快速 kernel 的情况,有对 dropout 区分是否要乘以
mask_vec,即没有 Dropout 的时候就不乘以mask_vec:,因此参照此处修复。
修复后上述 8 种情况都能测试通过。此外
PaddleAPITest的内的失败也都可通过,如下。Pcard-67164