FlashAttention(flash-attn)安装

FlashAttention(flash-attn)安装

Flash Attention是一种注意力算法,用于减少这一问题,并更有效地缩放基于转换器的模型,从而实现更快的训练和推理。标准注意力机制使用高带宽内存(HBM)来存储、读取和写入密钥、查询和值。很多llm模型运行的时候都需要安装flash_attn,比如Llama3。
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
Paper: https://arxiv.org/abs/2205.14135
github地址,建议安装之前读一下官方文档。
在这里插入图片描述
官方给出的安装依赖:

  • CUDA 11.6 and above.
  • PyTorch 1.12 and above.
  • Make sure that ninja is installed and that it works correctly (e.g. ninja --version then echo $? should return exit code 0). If not (sometimes ninja --version then echo $? returns a nonzero exit code), uninstall then reinstall ninja (pip uninstall -y ninja && pip install ninja). Without ninja, compiling can take a very long time (2h) since it does not use multiple CPU cores. With ninja compiling takes 3-5 minutes on a 64-core machine.

1. 最终的成功版本

按照自己的Pytorch版本CUDA版本Python版本来选择对应版本的flash-attn,否则会默认下载最新版。
个人趟坑后推荐的pytorch版本大于2.2,CUDA版本为1.8。
安装顺序:CUDA Toolkit→PyTorch→FlashAttention

  1. CUDA Toolkit下载地址:https://developer.nvidia.com/cuda-toolkit-archive
  2. 特定版本的PyTorch下载地址:https://pytorch.org/get-started/previous-versions/
  3. FlashAttention下载地址:https://github.com/Dao-AILab/flash-attention/releases/

1.1 安装/更新CUDA Toolkit

最详细的安装教程请务必参考NVIDIA CUDA Installation Guide for Linux,非常保姆的教程,前前后后的依赖和处理都很详尽,但英文的阅读和长度也很感人,以下是我趟出来的一套简单流程。

1.1.1 下载CUDA Toolkit

以终为始我们需要的是cuda-11.8,那么直接去CUDA Toolkit下载地址下载特定版本。

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
1.1.2 安装CUDA Toolkit
#登录管理员,使用root权限
su 
# 修改权限
chmod +x cuda_10.2.89_440.33.01_linux.run
#安装
./cuda_10.2.89_440.33.01_linux.run --no-opengl-libs
#退出root
exit

执行后的弹框输入:accept,然后按Enter键继续。第二页选中Driver,按Enter键,再选中Install,按Enter键进行安装。
默认安装路径,那么将会安装在**/usr/local/cuda-11.8/**路径下。

1.1.3 设置环境变量
export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

1.2 安装PyTorch

已经安装好了cuda-11.8后,并加入了环境变量,nvcc -V显示的是为cuda-11.8则可以正式开始安装PyTorch v2.2.2。(之所是是2.2.2版本也是因为之前的1.2版本太老导致FlashAttention虽然看起来安装成功,但用起来仍然报错。查了很久之后,安装成功的人都推荐PyTorch v2.2.2)

pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu118

尽管官方给出安装PyTorch用conda install也可,但我没成功/(ㄒoㄒ)/~~,可能是channel的问题,whatever, 还是用pip install吧。

1.3 安装 FlashAttention

至此,已经安装好了cuda-11.8PyTorch v2.2.2python -V查看当前的Python版本,就可以在FlashAttention下载地址选择对应的whl文件用pip install来安装了。
flash_attn-2.5.3+cu118torch2.2cxx11abiFALSE-cp39-cp39-linux_x86_64.whl为例

wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.5.3/flash_attn-2.5.3+cu118torch2.2cxx11abiFALSE-cp39-cp39-linux_x86_64.whl

pip install flash_attn-2.5.3+cu118torch2.2cxx11abiFALSE-cp39-cp39-linux_x86_64.whl

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/602981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

写一个函数返回参数二进制中1的个数--四种方法及原理解释

虽然本方法是java写的,但是其原理适用于大部分语言 方法一:通过取模%运算取出每一位比特位数值,再进行判断(该方法不可判断负数) 原理: 通过取模num % 2 1 取出该数的每一个二进制位数,再判…

Python selenium

1.搭建环境 1.安装: pip install msedge-selenium-tools 不要使用pip install selenium,我的电脑上没法运行 2.下载驱动 Microsoft Edge WebDriver |Microsoft Edge 开发人员 edge浏览器点设置---关于即可找到版本号,一定要下载对应版…

不止是搭建 | 极空间虚拟机安装一个可做生产力的Ubuntu桌面系统以及后续优化

不止是搭建 | 极空间虚拟机安装一个可做生产力的Ubuntu桌面系统以及后续优化 哈喽小伙伴们好,偶是Stark-C~ 我在上篇极空间文章中不是给小伙伴们分享了使用虚拟机安装软路由固件『iStoreOS』的教程嘛: 打造Docker完全体, 开箱即用的各类插…

Windows Server 2019虚拟机安装

目录 第一步、准备工作 第二步、部署虚拟机 第三步、 Windows Server 2019系统启动配置 第一步、准备工作 下载Windows Server 2019系统镜像 官网下载地址:Windows Server 2019 | Microsoft Evaluation Center VMware Workstation 17下载地址: 链…

各行业预约上门服务小程序源码系统 在线提交表单+自主接单 带完整的安装代码包以及搭建教程

在当今数字化快速发展的时代,传统行业纷纷寻求与互联网的结合,以提升服务效率和用户体验。为了满足这一需求,罗峰给大家分享一款针对各行业预约上门服务的小程序源码系统。该系统集在线提交表单、自主接单等功能于一体,并附带完整…

C语言贪吃蛇

注 :本文是基于链表实现贪吃蛇游戏 1.Win32 API 本篇文章中实现贪吃蛇会用到一些Win32 API的知识,接下来简单做下介绍 1.1 Win32 API Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外, 它同时也是⼀个 很大的服务中…

熟悉Redis吗,那Redis的过期键删除策略是什么

对于Redis,我们业务开发一般都只关心Redis键值对的查询、修改操作,可能因为懒或者只想能用就行,呵呵。很少关心键值对存储在什么地方、键值对过期了会怎么样、Redis有没什么策略处理过期的键、Redis处理过期键又有什么作用?但这些…

《深入Linux内核架构》第4章 进程虚拟内存(1)

目录 4.1 简介 4.2 进程虚拟地址空间 4.2.1 进程地址空间分布 4.2.2 建立布局 本专栏文章将有70篇左右,欢迎关注,订阅后续文章。 第3章讲了两点:物理内存的管理,内核虚拟地址管理。 本章讲:用户进程的虚拟地址空间…

黄金投资怎么判断走势好坏?

投资黄金,就是押注于这一贵金属价格的变动。判断黄金价格的走势好坏,对于投资者来说至关重要。这需要从宏观经济指标、技术分析指标和市场情绪等多元化角度进行综合分析。 宏观经济指标 货币政策:中央银行的货币政策,尤其是利率决…

必应bing国内广告如何开户,怎么收费?

搜索引擎广告作为直接触达潜在客户的有效途径之一,日益受到企业的重视,必应Bing作为全球第二大搜索引擎,在中国市场同样拥有庞大的用户群体,为企业提供了不可忽视的广告投放平台。 一、必应bing国内广告开户流程 1、需求分析与咨…

国产PLC海为如何与电脑通信

前言 这几天接触到了国产海为PLC,做一个记录!学习一下! 串口联机 步骤 1:使用 USB 转 485 线连接 A8(RS485 通讯口)和电脑; 步骤 2:打开 Haiwell happy PLC 编程软件&#xff0c…

vcenter7安装nsx

登录控制台 Get services

视频汇聚边缘网关EasyCVR硬件设备无法访问域名,解析失败该如何处理?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视…

YOLOv9全网最新改进系列:YOLOv9完美融合标准化的注意力模块NAM,高效且轻量级的归一化注意力机制,助力目标检测再上新台阶!

YOLOv9全网最新改进系列:YOLOv9完美融合标准化的注意力模块NAM,高效且轻量级的归一化注意力机制,助力目标检测再上新台阶!!! YOLOv9原文链接戳这里,原文全文翻译请关注B站Ai学术叫叫首er B站全…

细说夜莺监控系统告警自愈机制

虽说监控系统最侧重的功能是指标采集、存储、分析、告警,为了能够快速恢复故障,告警自愈机制也是需要重点投入建设的,所有可以固化为脚本的应急预案都可以使用告警自愈机制来快速驱动。夜莺开源项目从 v7 版本开始内置了告警自愈模块&#xf…

千元投影仪高性价比机型又出新机?大眼橙C1D上市引领市场新潮流

近年来投影仪技术不断更新迭代,家用智能投影仪市场正迎来一场革新风暴。最明显的就是各家品牌都更快地推出自家的投影仪新品,4月底,极米推出了play5,大眼橙推出了c1d,小明推出了newq3pro……都是千元价位的投影仪新品&…

RabbitMQ基础入门

初识MQ 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同…

Linux的目录结构

什么是路径 在Linux系统中,"路径"指的是文件系统中文件或目录的位置。路径可以是绝对的或相对的。 绝对路径:从根目录(即 / )开始,描述从根目录到目标文件或目录的完整路径。例如,/usr/local/bi…

SWAT模型【建模方法、实例应用、高级进阶技能】实践

第一部分:SWAT模型实践部分 一、SWAT模型及应用介绍 1.1 面源污染概要 1.2 SWAT模型及应用 1.3 SWAT模型原理 1.4 SWAT模型输入文件 1.5 ArcGIS与SWAT关系 二、SWAT模型中GIS必备技术 2.1 GIS软件平台 2.2 ArcGIS10.6安装和注意事项 2.3 ArcGIS入门 2.…

IT外包能在企业上云时提供什么帮助?

在云计算不断发展的背景下,企业对IT部门的要求日益提高,越来越多的企业开始考虑将IT系统迁移到云上。因此,IT外包也成为企业成功上云的重要支持之一。IT外包在企业上云时具体能提供什么帮助?本文将对此进行详细阐述。 业务重心转移…