问题:在使用官网介绍的博客,进行安装,比较顺利。只不过,在需要推理加速时,UI界面上,给出的选项所支持的FlashAttention-2和Unsloth,不好实现。在进行一系列的调整,总结如下:
想要同时实现FlashAttention-2和Unsloth推理加速的环境安装方式:
以Ubuntu22.04 RTX4090 24GB为例:
1. 系统配置:CUDA版本选择12.2.x,因为高版本的flash-attn库不提供12.1版本的安装包:
## cuda
export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.2/lib64
2. 虚拟环境创建:python版本选择3.10.x,使用官方推荐的安装方式:
conda create -n llama_factory python=3.10 -y
3. 首先安装LLaMA-Factory官方提供的环境安装内容:
pip install -e .[torch,metrics,bitsandbytes]
备注:torch版本为2.3.x,后续根据变化调整为对应版本
4. 然后安装flash-attn库,版本号含有cu122torch2.3cxx11abiFALSE:
pip install flash_attn-2.5.8+cu122torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl
备注:安装版本号含TRUE会报错。
5. 最后安装unsloth库,根据官方的安装内容,仅选取部分即可:
pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
……
Installing collected packages: unsloth, protobuf
Attempting uninstall: protobuf
Found existing installation: protobuf 5.26.1
Uninstalling protobuf-5.26.1:
Successfully uninstalled protobuf-5.26.1
Successfully installed protobuf-3.20.3 unsloth-2024.5
备注:有colab-new标识的,其他标识的安装额外库会报错。其次,这一步会将protobuf版本号降低导致FlashAttention-2方式的模型加速报错,但是将其版本号恢复为原先版本不会导致Unsloth方式模型加速报错,所以重新安装原先版本的protobuf库,此处根据实际进行恢复版本号:
pip install protobuf==5.26.1
6. 至此,安装完毕。不过还需要注意,在由Unsloth加速方式切换到其他方式的时候,会导致其他加速方式的模型加载失败,重启UI服务即可。