CANN评测:SwiGlu算子API
SwiGlu 算子 API 描述【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench1. 算子简介SwiGlu 是采用 Swish 作为激活函数的 GLUGated Linear Unit变体输入在最后一维拆分成 x0 和 x1 两部分x0 经 Swish 激活后与 x1 做门控乘法。主要应用场景LLaMA、PaLM 等大语言模型的前馈网络Transformer FFN 层中替代传统 ReLU/GELU 的激活方案算子特征难度等级L1Elementwise单输入单输出输入在 -1 维拆分为两部分输出 shape 的最后一维为输入的一半2. 算子定义数学公式输入 x 沿最后一维拆分为 x0、x1 两等份$$ x0, x1 \text{chunk}(x, 2, \text{dim}-1) $$$$ \text{Swish}(x0) x0 \cdot \sigma(\beta \cdot x0) $$$$ y \text{Swish}(x0) \cdot x1 $$其中 $\sigma$ 为 Sigmoid 函数$\beta$ 为scalarValue参数。3. 接口规范算子原型cann_bench.swi_glu(Tensor x, float scalarValue) - Tensor y输入参数说明参数类型默认值描述xTensor必选输入张量会在 -1 维拆分成 x0 和 x1scalarValuefloat必选Swish 激活函数的 beta 参数输出参数Shapedtype描述y输入 shape 的最后一维除以 2与输入 x 相同SwiGlu 门控激活结果数据类型输入 dtype输出 dtypefloat16float16float32float32规则与约束输出 shape 的最后一维为输入最后一维的一半输出 dtype 与输入 dtype 一致若输入最后一维为奇数则仅取前偶数个元素进行拆分4. 精度要求采用生态算子精度标准进行验证。误差指标平均相对误差MERE采样点中相对误差平均值$$ \text{MERE} \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$最大相对误差MARE采样点中相对误差最大值$$ \text{MARE} \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)\text{1e-7}}) $$通过标准数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2当平均相对误差 MERE Threshold最大相对误差 MARE 10 * Threshold 时判定为通过。5. 标准 Golden 代码import torch def swi_glu( x: torch.Tensor, scalarValue: float ) - torch.Tensor: 采用Swish作为激活函数的GLU变体输入在第-1维拆分成x0和x1两部分 公式: y swish(x0) * x1 x0 * sigmoid(beta * x0) * x1 Args: x: 输入张量会在-1维拆分成x0和x1 scalarValue: Swish激活函数的beta参数 Returns: 输出张量形状为输入shape除以2 # 在最后一维拆分为两部分 last_dim_size x.shape[-1] # 对于奇数维度只取前偶数个元素进行拆分确保两部分大小一致 if last_dim_size % 2 ! 0: # 取前 floor(n/2)*2 个元素 usable_size (last_dim_size // 2) * 2 x x[..., :usable_size] x0, x1 x.chunk(2, dim-1) swish x0 * torch.sigmoid(scalarValue * x0) y swish * x1 return y6. 额外信息算子调用示例import torch import cann_bench x torch.randn(1024, 1024, dtypetorch.float32, devicenpu) y cann_bench.swi_glu(x, scalarValue1.0)【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力涵盖算子生成、算子优化等领域支撑模型选型、训练效果评估统一量化评估标准识别Agent能力短板构建CANN领域评测平台推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2598573.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!