2026/4/17 20:10:40
网站建设
项目流程
网站建设 厦门,高校两学一做专题网站,企业如何加强互联网网站建设,网站空间商是什么意思简介
本文详细介绍了Flash-Attention库从v2.0到v2.7的主要更新#xff0c;包括v2.2的推理优化、v2.3的滑动窗口注意力、v2.4的ALiBi支持、v2.5的Paged KV cache、v2.6的Softcapping功能以及v2.7的torch compile兼容性。这些更新显著提升了大模型推理效率#xff0c;支持更长序…简介本文详细介绍了Flash-Attention库从v2.0到v2.7的主要更新包括v2.2的推理优化、v2.3的滑动窗口注意力、v2.4的ALiBi支持、v2.5的Paged KV cache、v2.6的Softcapping功能以及v2.7的torch compile兼容性。这些更新显著提升了大模型推理效率支持更长序列和新型模型架构是大模型开发者必备的技术知识。在翻阅自己过往笔记的时候发现一个小的变化值得一提可能业内的大佬都知道 flash-attn 仓库的变化过程。很久之前尝试在某国产卡上实现 FA kernel 并与官方对比的时候就怎么也对不上精度只好去读仓库的源码最后发现 flash-attn-2.0.x 版本与 v2.1 相比之后 causal mask 的规则变了如下图所示。https://github.com/Dao-AILab/flash-attention/tree/v2.8.0上图中主要分为两个情况seqlen_q seqlen_k 和 seqlen_qseqlen_k。共同变化就是从注意力矩阵的左上角变成了右下角对齐。举个简单例子熟悉 LLM decode 过程的同学应该理解在 batchsize1 时Query 只有 1 个 token即当前的第 N1 个 tokenKey 有 N1 个 tokens之前缓存的 N 个 k/v cache 当前的 1 个 token。当计算 causal attention 时当前 query 要与之前的所有 key 计算的所以这个变化是顺理成章的。借着这次机会再整理下截止至 v2.7.0 版本官方的 README 中都指出了哪些变化。v2.2: Optimize for inferencesplit-kv针对长文本推理decoding 阶段的场景进行优化。我理解的就是这个版本增加了 flash-decoding 的实现。主要思路是不再让一个线程块Block处理所有的 KV而是把 KV Cache 在序列维度上切分开。比如Block 1 处理前 1000 个 KVBlock 2 处理后 1000 个 KV。最后再用一个额外的 Kernel 把结果合并Reduce。可以参考 pytorch 的博客https://pytorch.org/blog/flash-decoding/v2.3: Local (Sliding Window) attention (滑动窗口注意力)适配 Mistral 等模型如果不原生支持 SWAFlashAttention 会计算很多无用的 0被 mask 掉的部分浪费算力。原生支持后它只计算窗口内的部分进一步提升速度并减少显存访问。v2.4: ALiBi Deterministic backwardALiBi为了外推性Extrapolation。有些模型如 MPT, Bloom使用 ALiBi 来处理比训练时更长的序列。FlashAttn 需要支持这种“非标准”的 Attention 计算。Deterministic backward确定性的反向传播这里不太理解可以在评论区补充下。v2.5: Paged KV cache (PagedAttention 支持)支持非连续内存的 KV Cache即 vLLM 的核心技术 PagedAttention。这里的代码我可以指个路可以在 forward 时传入 pagedKVcache 的 block_table 信息。至于 block_table是在框架层面维护的。https://github.com/Dao-AILab/flash-attention/blob/6f8f0406eea522735d590c2d7b46139167b95b6e/csrc/flash_attn/flash_api.cpp#L1213C44-L1213C56v2.6: Softcapping适配 Google Gemma-2 和 xAI Grok 模型。这些新模型为了训练稳定性防止 Attention Score 过大导致 Softmax 后的梯度消失/熵崩塌引入了 tanh 截断。FlashAttn 需要在 kernel 内部融合这个操作否则用户得切回 PyTorch 原生实现速度会大打折扣。v2.7: Compatibility with torch compilePyTorch 2.0 引入了图编译模式。v2.7 让 FlashAttn 能更好地配合 PyTorch 的计算图捕获方便用户在生产环境部署时进行全图优化。暂时结束啦后续可以在这里持续跟进 flash-attn 仓库的新特性如何学习AI大模型如果你对AI大模型入门感兴趣那么你需要的话可以点击这里大模型重磅福利入门进阶全套104G学习资源包免费分享这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】这是一份大模型从零基础到进阶的学习路线大纲全览小伙伴们记得点个收藏第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。100套AI大模型商业化落地方案大模型全套视频教程200本大模型PDF书籍学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。LLM面试题合集大模型产品经理资源合集大模型项目实战合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】