windows+WSL(ubuntu22)下的通义千问(7B-Chat)部署、lora微调初探

1. cuda版本

cuda建议11.8,之前使用的12.1,但遇到一些问题降级到11.8了,但忘了是啥库装不上了,目前11.8肯定能用,web能打开、lora能简单跑。

python版本是3.10。

2. 下载模型和项目

通义千问-7B-Chat · 模型库 (modelscope.cn)

使用git

#模型
git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat.git
#项目
git clone https://github.com/QwenLM/Qwen.git

模型的缺省目录是项目下的 Qwen\Qwen-7B,可以酌情放置,并在项目的各种.py中进行调整。

3. 有关WSL(windows linux子系统)

好处是下载的各种东西直接放到windows里,ubuntu子系统可以在/mnt中直接读取,很方便。

参见:

WSL2+ubuntu2004+cuda11.8+cudnn8.8开发环境搭建

我是用的ubuntu版本是2204,也没问题。基于该文部署好cuda11.8,cudnn(也可能不需要)、环境变量.bashrc、当然还有python3.10。

然后,ubuntu内pytorch的部署(11.8),很慢:

pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118

4. 安装依赖项

时间可能有些长,尽量搞国内源:

#这一句包含了requirements.txt的内容
pip install transformers==4.32.0 accelerate tiktoken einops scipy transformers_stream_generator==0.0.4 peft deepspeed
#以及web支持:
pip install -r requirements_web_demo.txt

5.安装 flash-attention(可选)

理论上这一大步没有也行,但有了能加速一些。

如果你的显卡支持fp16或bf16精度,我们还推荐安装flash-attention当前已支持flash attention 2)来提高你的运行效率以及降低显存占用。(flash-attention只是可选项,不安装也可正常运行该项目)

 这是一个很大的坑,碰巧成功了,步骤有些乱。

 首先安装了ninja(不知道能否优化掉这一步):

pip install ninja

之后,我用千问官网和flash_atten官网Releases · Dao-AILab/flash-attention (github.com) 的两三种方式编译或安装都不太顺,总是遇到网络等问题,貌似也很常见,网上各种攻略看着有点繁琐,且效果不是很可靠。
不最后的解决也很简单,根据我用的cuda版本(cu118)、pytorch(2.0)和python版本(310)等,直接下载release文件(whl):

Releases · Dao-AILab/flash-attention · GitHub

我下载的文件是:

flash_attn-2.4.2+cu118torch2.0cxx11abiFALSE-cp310-cp310-linux_x86_64.whl

直接 pip安装上面的whl。

此时理论上能跑web_demo了,但可能会显示缺layer_norm啥的,这个是个warning,不解决也没问题,解决了据说微调等速度会变快。解决方法:

下载项目:

git clone https://github.com/Dao-AILab/flash-attention.git

然后在项目目录执行:

pip install csrc/layer_norm

经过漫长的等待,居然成功了。之前同样这么长时间安装flash-attention,结果是存在网络错误。这个时候我的git是设置了梯子的,不知道有没有影响。

6. 运行web——demo

注意在web_demo.py中修改模型位置,然后python运行就行了。

根据提示,自动转换为bf16精度。

7. lora微调初探

还不太明白,但应该是跑起来了(24G显存)。

首先确保安装了 peft deepspeed(之前的语句中已经安装),在windows上,这个deepspeed也是个坑,在wsl中不是问题。

自己准备好数据文件,然后单显卡可以在项目目录下执行:

bash ./finetune/finetune_lora_single_gpu.sh  [-m MODEL_PATH] [-d DATA_PATH]

需要指明模型路径和数据路径,或者写死在项目文件的finetune.py中,就不用每次指定了。默认情况下,也是bf16精度。

可能会遇到一个小问题,这个sh文件貌似是windows格式,ubuntu会识别出乱字符,解决方法:

vim xxxx.sh
:set ff= unix
#然后保存退出,即
:wq

或者采用其他方式另存为linux格式即可。
 

### 回答1: 安装 CUDA 11.8 前需要满足以下要求: - 确定您的 GPU 支持 CUDA - 安装适合您的操作系统的 NVIDIA 显卡驱动 - 确保您的系统上没有其他版本的 CUDA 安装 接下来您可以按照以下步骤在 WSL Ubuntu 22.04 上安装 CUDA 11.8。 1. 下载 CUDA Toolkit 安装文件 您可以在 NVIDIA 官网上下载 CUDA Toolkit 安装文件。选择与您的操作系统和 GPU 相匹配的版本。在下载过程中,您需要为您的操作系统选择 Linux,为您的 GPU 选择 x86_64 体系结构,并选择 deb (network) 安装文件。 2. 安装 CUDA Toolkit 下载完成后,使用以下命令在终端中安装 CUDA Toolkit: ```bash sudo dpkg -i cuda-repo-network-ubuntu2004-11-8-local_11.8.0-1_amd64.deb sudo apt-key add /var/cuda-repo-network-ubuntu2004-11-8-local/7fa2af80.pub sudo apt-get update sudo apt-get install cuda ``` 3. 验证 CUDA 安装 安装完成后,您可以使用以下命令来验证 CUDA 是否已成功安装: ```bash nvcc -V ``` 如果您看到 CUDA 版本信息,则说明 CUDA 已经成功安装。 现在,您已经在 WSL Ubuntu 22.04 上成功安装了 CUDA 11.8。 ### 回答2: 要在WSLUbuntu 22.04上安装CUDA 11.8,您可以按照以下步骤进行操作: 1. 确保您的WSL已经安装并正常工作,并且已经安装了Ubuntu 22.04发行版。 2. 打开WSL终端。 3. 在终端中运行以下命令,以更新系统和软件包列表: ``` sudo apt update ``` 4. 安装必要的依赖项和构建工具: ``` sudo apt install build-essential ``` 5. 下载CUDA 11.8的安装程序。您可以在NVIDIA官方网站上找到适用于Linux x86_64的CUDA安装程序。 6. 在下载完成后,将安装程序移动到您希望安装CUDA的目标文件夹中。 7. 在终端中导航到安装程序所在的文件夹,并使用以下命令使其可执行: ``` chmod +x cuda_11.8_installer.run ``` 8. 运行安装程序以启动CUDA的安装过程: ``` sudo ./cuda_11.8_installer.run ``` 9. 按照安装程序的提示,选择要安装的组件和选项。请确保选择WSL作为您要在其中安装CUDA的操作系统。 10. 安装程序将提供有关如何设置环境变量的说明。按照说明更新您的`~/.bashrc`或`~/.profile`文件,以便在每次启动WSL时都能正确加载CUDA。 11. 安装完成后,重新启动WSL以使更改生效。 12. 验证CUDA的安装是否成功,您可以在终端中运行以下命令: ``` nvcc --version ``` 如果显示CUDA版本信息,则表示安装成功。 请注意,WSL对GPU的支持有限,因此在WSL中使用CUDA可能会遇到一些限制或不完全的功能。如果您需要完整的CUDA支持,建议在本机Linux系统中安装CUDA。 ### 回答3: 要在WSL Ubuntu 22.04上安装CUDA 11.8,你可以按照以下步骤进行操作: 1. 首先,打开WSL Ubuntu 22.04终端。 2. 可以在终端中运行以下命令来更新软件包列表和升级现有软件包: ``` sudo apt update sudo apt upgrade ``` 3. 接下来,你需要为CUDA创建一个新的目录,可以运行以下命令: ``` mkdir cuda cd cuda ``` 4. 然后,你可以根据你的系统架构(x86_64、ppc64le、arm64等)下载适当的CUDA安装包。可以前往NVIDIA官方网站(https://developer.nvidia.com/cuda-downloads)下载相应版本的CUDA 11.8。 5. 下载完成后,你可以使用以下命令解压下载的安装包: ``` tar -xzvf <安装包名称> ``` 6. 解压缩完成后,你可以进入解压缩后的目录并安装CUDA。运行以下命令: ``` cd <解压缩后的目录> sudo sh cuda_install_script.run ``` 7. 在安装过程中,根据提示进行选择和确认。可以选择完整安装或自定义安装选项,并提供所需的安装目录。 8. 安装完成后,你需要将CUDA添加到系统路径中,可以运行以下命令: ``` echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` 9. 为了验证CUDA是否成功安装,你可以运行以下命令来检查CUDA版本和驱动程序: ``` nvcc --version nvidia-smi ``` 如果一切顺利,你应该能够看到安装的CUDA版本和与之关联的NVIDIA驱动程序信息。现在,你可以在WSL Ubuntu 22.04上使用CUDA 11.8进行开发和运行CUDA加速的应用程序了。请注意,WSL上的CUDA功能可能受到一些限制,因此某些高级功能可能无法在WSL中使用。建议在原生的Linux环境中使用CUDA以获得更好的性能和兼容性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值