已合并
公式缺失 #674
liyuhao创建于 26 天前
公式缺失 #674
已合并
共 3 个文件变更+2-6
| @@ -38,9 +38,7 @@ ignore_index: 一个整数,表示要忽略的标签值。 | |||
| 38 | 38 | ||
| 39 | 1. 控制模型复杂度:防止模型通过产生极大(正或负)的logits 来“强行”拟合训练数据,从而减轻过拟合。 | 39 | 1. 控制模型复杂度:防止模型通过产生极大(正或负)的logits 来“强行”拟合训练数据,从而减轻过拟合。 |
| 40 | 40 | ||
| 41 | -2. 数值稳定性:过大的 logits 在输入到 Softmax 函数时,会导致 | 41 | +2. 数值稳定性:过大的 logits 在输入到 Softmax 函数时,会导致变得非常大,容易引发数值计算上的问题(如溢出)。ZLoss可以抑制这种情况,使训练过程更稳定。 |
| 42 | - | ||
| 43 | -变得非常大,容易引发数值计算上的问题(如溢出)。ZLoss可以抑制这种情况,使训练过程更稳定。 | ||
| 44 | 42 | ||
| 45 | 3. 平滑输出分布:通过限制 logits 的幅度,模型输出的概率分布不会变得过于“尖锐”(即一个类别概率接近1,其他接近0),这有时可以提高模型的校准度和泛化能力。 | 43 | 3. 平滑输出分布:通过限制 logits 的幅度,模型输出的概率分布不会变得过于“尖锐”(即一个类别概率接近1,其他接近0),这有时可以提高模型的校准度和泛化能力。 |
| 46 | 44 | ||
| @@ -76,9 +74,7 @@ AI Core内部数据处理的基本过程可以分为三个阶段,该过程可 | |||
| 76 | 74 | ||
| 77 | **4.解决方案:融合算子设计与实现** | 75 | **4.解决方案:融合算子设计与实现** |
| 78 | 76 | ||
| 79 | -**核心思想:**为了优化计算损失函数的耗时,客户决定开发CrossEntropyLossWithZLoss算子,将所有损失函数计算过程使用的Vector操作融合为单个Vector算子,在一个kernel内完成从输入logits到最终输出CELoss和 | 77 | +**核心思想:**为了优化计算损失函数的耗时,客户决定开发CrossEntropyLossWithZLoss算子,将所有损失函数计算过程使用的Vector操作融合为单个Vector算子,在一个kernel内完成从输入logits到最终输出CELoss和的所有计算步骤,避免产生任何中间全局显存变量,从而减少尾部计算耗时。 |
| 80 | - | ||
| 81 | -的所有计算步骤,避免产生任何中间全局显存变量,从而减少尾部计算耗时。 | ||
| 82 | 78 | ||
| 83 | **参考与借鉴:**面对这一挑战,客户参考了昇腾CANN开源算子源码仓ops-nn中高性能CrossEntropyLoss算子的实现,该算子已经具备高性能的CE Loss交叉熵损失函数计算能力,客户在此基础上,融入了ZLoss和lseForZLoss计算,分别用于计算辅助损失ZLoss和ZLoss场景下输出给反向传播的值。参考前文CE Loss计算公式和ZLoss计算公式说明可知,可在计算log_prob的同时完成ZLoss和lseForZLoss计算,这种基于已有算子的开发方式,利用经过测试和验证的现有代码,减少重复劳动,大大提高了开发效率。 | 79 | **参考与借鉴:**面对这一挑战,客户参考了昇腾CANN开源算子源码仓ops-nn中高性能CrossEntropyLoss算子的实现,该算子已经具备高性能的CE Loss交叉熵损失函数计算能力,客户在此基础上,融入了ZLoss和lseForZLoss计算,分别用于计算辅助损失ZLoss和ZLoss场景下输出给反向传播的值。参考前文CE Loss计算公式和ZLoss计算公式说明可知,可在计算log_prob的同时完成ZLoss和lseForZLoss计算,这种基于已有算子的开发方式,利用经过测试和验证的现有代码,减少重复劳动,大大提高了开发效率。 |
| 84 | 80 | ||