微调全家桶: CUDA+torch+flash-attn安装
之前安装环境一般只针对安装torch、pandas这种常用包,没有自己从头到尾来过。近期因为有微调需求,服务器需要安装flash-attn,对环境要求比较苛刻。折腾了好半天,将经验总结出来分享。其中包括cuda、nvcc、torch、flash-attn等。
CUDA
我们所说的CUDA实际上指的是**cuda-toolkit**,是一整个完整的包,包含了cuda、nvcc等工具,但可能由于前人偷懒,没有装好toolkit,那么你就用不了nvcc工具(flash-attn必须要有nvcc工具)。你可以先输入nvcc -V查看你有没有安装完整的toolkit,如果输出了对应版本信息,则可以跳过本章去下一章。
如果没有输出相关信息,建议/use/local/cuda-*/bin中去检查一下有没有nvcc这个可执行文件。因为可能你已经安装了toolkit,但是并没有把安装文件夹放入环境变量中,导致系统无法识别到。这里的cuda-*是因为/use/local/下可能存在多个cuda开头的文件夹,这一般是因为有前人安装了cuda ,建议逐个检查。
CUDA安装前,记得去nvidia-smi检查一下显卡驱动所支持的最高CUDA版本。nvidia-smi上看到的CUDA Version是能支持的最高cuda版本,而不是目前已有的cuda版本。假设你的/usr/local中存在着cuda-11.8的文件夹,只要cuda-11.8不超过你GPU的最高支持版本,那么你可以只去安装cuda-11.8的toolkit,不需要再按照最高的版本来选择。(你想升级的话当然也可以)
选择你刚刚看到的cuda版本。你也可以选择更低版本的信息,稳定性会好些 cuda下载:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
按照你的环境来选择,最后一步installer type我选择runfile
下载后,使用sudo bash ./cuda_12.0.0************linux.run
来运行这个文件(这里要写好你自己的包名)。运行后:
输入accept后:
这一步需要仔细点!看看你到底有没有提前预装好dirver(如果能使用nvidia-smi那么就装好了)
安装过了:不要安装第一个,并且这里的cuda tool kit和上面提到的/use/local/cuda-*的最高版本要一致;
没有安装:选择第一个和第二个,然后install
等你安装完成后,重新打开终端,此时应该可以使用nvcc了。
如果还是不能,回到/usr/local/下找到你刚刚安装的版本,进去bin文件夹。例如,如果你安装了12.0版本的cuda文件,那么应该会有一个/usr/local/cuda-12.0/bin ,进去后执行./nvcc -V看看有没有输出内容(一般会弹出nvcc版本信息,如果提示command not found,或者no such file,则代表安装失败)。如果bin文件夹中没有nvcc文件没有说明你安装失败了,或者你自己选择安装到了其他文件夹地址(按照我的教程的话是不会的,这个选项在Options中)。
如果有的话,把你当前的文件夹目录(在我的例子中,是:/usr/local/cuda-12.0/bin)加入到环境变量中
torch torch下载:https://pytorch.org/get-started/previous-versions/
pytorch的版本安装比较玄学,版本低了可能torch找不到对应的gpu,太高了当然也安装不上。
我的cuda为12.1,选择了2.5.3版本的torch。具体的torch版本可以在这里找到对找关系:Previous PyTorch Versions | PyTorch。
安装分为有cuda和没有cuda两种方式,没有cuda的话需要使用pip以及对应的pytorch官方index。但这个index国内环境连接很慢,可以在这个链接里找到解决方式:https://docs.infini-ai.com/posts/download-pytorch-from-mirror.html
flash-attn
flash-attn的安装速度很慢,因为它需要根据你的环境进行编译,在安装前,最好安装ninja ,可加速编译。不推荐直接使用uv或者pip来安装,你可以从https://github.com/Dao-AILab/flash-attention/releases?page=1这里找到flash-attn的包,注意,需要找到对应cuda、torch、python版本的flash-attn。虽然很麻烦,但能够弥补你使用pip安装的时间。
例如,我的cuda是12.1,torch是2.5.3,python是3.11版本,我选择了下面版本的flash-attn:
如果你能够访问github ,wget
下载+pip install下载好的包名
即可。不能访问的话,只能点击名字下载wheel文件,再进行上传到服务器,然后pip install
。
- 这里的包建议也不要选择太高版本的,选择最低的、能够适配你的服务器环境的包即可
这样就结束了
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_45404652/article/details/147739794