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

Flash Attenion算法原理

Flash Attenion算法原理

1.1 Flash Attention Step-by-Step

 

image

 

1.2 Softmax

\( \text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{k=1}^{N} e^{x_k}} \)

import torch 
A = torch.randn(2, 6)
A_exp = torch.exp(A)
A_sum = torch.sum(A_exp, dim=1).unsqueeze(1)
P = A_exp / A_sum #广播
print(A)
print(P)

结果

tensor([[ 1.0668, -0.3969, -0.2226,  0.7207,  1.0509, -1.0740],[ 0.6774,  1.0916, -1.8402, -1.0806,  0.9309,  2.4612]])
tensor([[0.3016, 0.0698, 0.0831, 0.2133, 0.2968, 0.0355],[0.0999, 0.1512, 0.0081, 0.0172, 0.1288, 0.5948]])

1.3 Safe Softmax

原始softmax数值不稳定,改写成Safe Softmax版本

\( \text{SafeSoftmax}(x_i) = \frac{e^{x_i - m}}{\sum_{k=1}^{N} e^{x_k - m}} \quad \text{其中 } m = \max(x_1, x_2, ..., x_N) \)

1.3 Online Softmax

\( \begin{aligned} d_i' &= \sum_{j}^{i} e^{x_j - m_i} \\ &= \sum_{j}^{i-1} e^{x_j - m_i} + e^{x_i - m_i} \\ &= \sum_{j}^{i-1} e^{x_j - m_{i-1} + m_{i-1} - m_i} + e^{x_i - m_i} \\ &= \left( \sum_{j}^{i-1} e^{x_j - m_{i-1}} \right) e^{m_{i-1} - m_i} + e^{x_i - m_i} \\ &= d_{i-1}' e^{m_{i-1} - m_i} + e^{x_i - m_i} \end{aligned} \)

http://www.zskr.cn/news/7299.html

相关文章:

  • 谷歌云平台(Google Cloud Platform, GCP)介绍(全球领先的云计算服务平台,为企业和开发者供应包括计算、存储、数据分析、人工智能、机器学习、网络和安全等在内的全面云服务)
  • 基于svCom制作windows服务(一)
  • 电流探头消磁失败的原因与解决策略
  • 在嵌入式 Linux 上使用容器 - 实践
  • hbase学习一
  • OI线下比赛注意事项
  • OpenBMB 发布无分词器 TTS VoxCPM;儿童口语硬件 Dex 融资 480 万美元:拍摄真实物体,对话学习外语丨日报
  • 重组蛋白表达避坑指南
  • 电商核心业务 - 指南
  • ai
  • 苏州才是最美的烟雨江南,苏州游玩必去的10大景点
  • linux增加网卡ip地址
  • Python 包与环境管理简史:从混乱到优雅
  • shell命令中循环执行操作的命令
  • 基于QEMU模拟器搭建Builtroot下的QT开发环境
  • 5个存款技巧,银行员工都在用,你知道几个?
  • windosw 配置arp绑定
  • SEERC 2022 题面简要翻译
  • C++篇(7)string类的模拟搭建
  • 阿里云防刷神器ESA搞活动免费领取
  • 报错TypeError: Unknown file extension .ts - broky
  • 磁盘存储简介-轮子
  • 审美积累 | 这样的暗色系音频播放界面怎么做?
  • cherry-pick 合并曾今某一次提交
  • Fast IO 模板
  • kylin V11安装mysql8.4.5(glibc.2.28版本)
  • iOS 上架 App 流程全解析 苹果应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验
  • P6801 花式围栏
  • ipadװwindowsϵͳshell
  • input 设置只输入数字或其他自定义字符 - 指南