当前位置: 首页 > news >正文

CANN/ops-transformer Floyd注意力梯度算子

FusedFloydAttentionGrad

【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT×
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品×
Atlas 训练系列产品×

功能说明

  • 算子功能:训练场景下,计算Floyd注意力的反向输出,FloydAttn相较于传统FA主要是计算qk/pv注意力时会额外将seq作为batch轴从而转换为batchMatmul。

  • 计算公式:

    已知注意力的正向计算公式为:

    $$ P=Softmax(Mask(scale*(QK_1^T + QK_2^T), atten_mask)) \ Y=(PV_1+PV_2) $$

    则注意力的反向计算公式为:

    $$ S=Softmax(S) $$

    $$ dV_1=P^TdY $$

    $$ dV_2=P^TdY $$

    $$ dQ=\frac{((dS)*K_1)}{\sqrt{d}}+\frac{((dS)*K_2)}{\sqrt{d}} $$

    $$ dK_1=\frac{((dS)^T*Q)}{\sqrt{d}} $$

    $$ dK_2=\frac{((dS)^T*Q)}{\sqrt{d}} $$

参数说明

参数名输入/输出/属性描述数据类型数据格式
query输入公式中的输入Q。FLOAT16、BFLOAT16ND
key1输入公式中的输入K1。FLOAT16、BFLOAT16ND
value1输入公式中的输入V1。FLOAT16、BFLOAT16ND
key2输入公式中的输入K2。FLOAT16、BFLOAT16ND
value2输入公式中的输入V2。FLOAT16、BFLOAT16ND
dy输入公式中的输入dY。FLOAT16、BFLOAT16ND
attenMaskOptional可选输入公式中的atten_mask,表示注意力掩码,取值为1代表该位不参与计算(不生效),为0代表该位参与计算。BOOL、UINT8ND
scaleValue可选属性
  • 公式中的scale,表示缩放系数,作为计算流中Muls的scalar值。
  • 默认值为1.0。
DOUBLE-
dqOut输出公式中的dQ,表示query的梯度。FLOAT16、BFLOAT16ND
dk1Out输出公式中的dK1,表示key1的梯度。FLOAT16、BFLOAT16ND
dv1Out输出公式中的dV1,表示value1的梯度。FLOAT16、BFLOAT16ND
dk2Out输出公式中的dK2,表示key2的梯度。FLOAT16、BFLOAT16ND
dv2Out输出公式中的dV2,表示value2的梯度。FLOAT16、BFLOAT16ND

约束说明

  • 该接口与PyTorch配合使用时,需要保证CANN相关包与PyTorch相关包的版本匹配

  • 关于数据shape的约束,其中:

    • B:取值范围为1~2K。
    • H:取值范围为1~256。
    • N:取值范围为16~1M且N%16==0。
    • M:取值范围为128~1M且M%128==0。
    • K:取值范围为128~1M且K%128==0。
    • D:取值范围为32/64/128。
  • query与key1的第0/2/4轴需相同。

  • key1与value1 shape需相同。

  • key2与value2 shape需相同。

  • query与dy/attentionIn shape需相同。

  • softmaxMax与softmaxSum shape需相同。

  • D只支持32/64/128。

调用说明

调用方式调用样例说明
aclnn调用test_aclnn_fused_floyd_attention_grad通过接口方式调用aclnnFusedFloydAttentionGrad算子。

【免费下载链接】ops-transformer本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-transformer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/787764/

相关文章:

  • PaperBanana:基于多智能体流程的AI科研绘图工具实战指南
  • 基于Dialoqbase快速构建私有化RAG问答系统:部署、配置与调优实战
  • Cursor规则转智能体配置:从.cursorrules到AI助手的自动化实践
  • 小红书自动化发布工具技术解析:从Appium到风控规避
  • Python量化交易框架实战:从事件驱动架构到策略回测全解析
  • 《ClawHub私有化部署核心架构解析:从服务器选型到上线运维》
  • AI开发工具社区情感分析:基于Reddit、Hacker News和GitHub的舆情监测
  • CANN npugraph_ex图模式优化
  • 基于Vue.js与Node.js构建开源知识库:从部署到二次开发全解析
  • [具身智能-609]:PWM 波形示意图 + 各类型电机标准频率 / 参数配置(可直接照搬编程)
  • ChatGPT-RetrievalQA数据集解析:用合成数据训练检索模型的实践指南
  • 初创公司如何通过Taotoken的审计日志功能追踪内部AI资源使用情况
  • 开源AI代码编辑器Void:基于VSCode的深度定制与本地化部署指南
  • 本地AI代理桥接器:统一调用多云端大模型的轻量级解决方案
  • CANN ops-fft算子开发指南
  • 使用Taotoken后我的API调用延迟与账单清晰度有了明显改善
  • 基于大语言模型的自我提升智能体:从执行-评估-学习闭环到工程实践
  • 昇思大模型量化方式
  • Kubernetes智能运维:基于AI副驾驶的自然语言集群管理实践
  • 机器学习项目工程化实战:从Poetry、Pre-commit到Hydra的标准化开发脚手架
  • 技能模型路由器:AI任务调度中枢的设计与实现
  • 努力与反思
  • TRINE架构:多模态AI计算的动态硬件加速方案
  • 动态HS树查询策略优化:提升模型诊断效率与精度的核心技术
  • 浏览器扩展开发实战:实现网页搜索框自动聚焦与键盘导航优化
  • Python AI对话开发利器:python-tgpt库统一接口与实战指南
  • Open-Assistant开源对话AI项目:从数据集构建到LLaMA模型微调实战
  • AI作图必备术语清单,普通人如何使用ai制作更专业的图表(附关键词)
  • 2026年四川型钢供应商综合比较:如何根据项目需求选择靠谱厂家与品牌 - 四川盛世钢联营销中心
  • Python项目脚手架生成器:基于Copier的现代化模板设计与实践