LLaMa-Factory的部署可以看第一篇文章:LLaMa-Factory部署及llamafactory-cli webui命令无法打开ui界面问题解决记录-CSDN博客

目录

1、打开web ui

2、模型加载

3.模型微调

4.bitsandbytes错误解决!!

4.1解决方法:

4.2其他方法:

方法一:从源代码编译

方法二:设置环境变量

方法三:修改bitsandbytes代码 


1、打开web ui

export USE_MODELSCOPE_HUB=1 && llamafactory-cli webui

export USE_MODELSCOPE_HUB=1用于设置环境变量,加载模型的时候会从modelscope下载,而不会从Hugging Face下载模型,可以避免网络环境限制导致无法访问 Hugging Face的问题。

2、模型加载

本文使用的是Meta-Llama-3.1-8B-Instruct模型,可以从modelscope手动下载,也可以直接在ui界面加载时下载。

手动下载:

首先进入modelscope,点击模型文件,再点击下载模型。

使用git命令下载即可。下载之前可以先使用pwd命令查看当前所在路径,git命令会将文件下载到当前所在路径。

首先选择相应的模型,在模型路径上填入手动下载的模型的路径,这里如果不修改的话,会从modelscope再下载一遍模型。

微调之前,先使用一下对话功能。 选择chat,在input框里输入问题,点击submit即可。

3.模型微调

点击train,在dataset选择想训练的数据集。

这里遇到一个问题,点击dataset旁边的小箭头,没有可选的数据集,手动输入之后,点击start报错,出现找不到文件的问题。

解决方法:复制data文件夹的路径,填入webui界面中。

 

在data dir中填入刚才复制的路径,再次点击dataset就出现可以选择的数据集!这里使用的是 alpaca_gpt4_zh。

 点击start开始训练。

4.bitsandbytes错误解决!!

中间可能会报一些缺少相关模块的错误,缺什么安什么就行。重点讲一下bitsandbytes安装过程中出现的错误。bitsandbytes安装成功的可以跳过这部分。

安装bitesandbytes:

pip install bitsandbytes
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple bitsandbytes

 上面两条选一条执行即可,第一个是直接安装,第二个通过清华镜像源安装。

CUDA报错:

RunTimeError:CUDA Setup failed despite GPU being available. Inspect the CUDA SETUP outputs above to fix your environment!

============================ERROR=====================
CUDA SETUP: CUDA detection failed! Possible reasons:
1. You need to manually override the PyTorch CUDA version. Please see: "https://github.com/TimDettmers/bitsandbytes/blob/main/how_to_use_nonpytorch_cuda.md
2. CUDA driver not installed
3. CUDA not installed
4. You have multiple conflicting CUDA libraries
5. Required library not pre-compiled for this bitsandbytes release!
CUDA SETUP: If you compiled from source, try again with `make CUDA_VERSION=DETECTED_CUDA_VERSION` for example, `make CUDA_VERSION=117`.
CUDA SETUP: The CUDA version for the compile might depend on your conda install. Inspect CUDA version via `conda list | grep cuda`.
=======================================================

或者其他跟CUDA相关的报错,之前忘记截图了,就不放图了。

原因:刚开始以为是CUDA路径的问题,整了很久,最后发现其实就是bitsandbytes版本的问题。

4.1解决方法:

安装其他版本的bitsandbytes。

pip uninstall bitsandbytes
pip install bitsandbytes==0.45.0

 或者试一下其他版本也行,我最开始安装的是0.42.0,后面又试了0.39.0,0.43.0等等版本,后面发现0.45.0版本是可以的。

bitsandbytes安装个人版(不是很通用):

需要一个bitsandbytes已经安装成功的环境。

最开始安装0.45.0版本的bitsandbytes显示安装失败,显示没有这个版本。

后面在另一台服务器上安装bitsandbytes成功,恰好版本就是0.45.0。实在没办法了,用了一个比较笨的办法。找到bitesandbytes的安装位置,将文件传到另一台服务器的相应环境中。后面显示可以正常导入,python -m bitsandbytes也显示成功安装。

注:因为安装失败的服务器的显卡显存大很多,所以想把bitsandbytes安在上面。

在/usr/local/anaconda3/envs/虚拟环境名称/lib/python3.x/site-packages目录下找到下面两个文件。

将这两个文件复制到想要安装的虚拟环境的目录下:/usr/local/anaconda3/envs/目标虚拟环境名称/lib/python3.x/site-packages

然后再使用python -m bitsandbytes显示安装成功!

 在python命令行中import也导入成功,没有报错。

总结:出现CUDA相关的报错一般来说是版本问题,可以多试试其他版本。

4.2其他方法:

这里其他方法我试了都没有成功,要是一直换版本没有安装成功可以尝试一下下面的方法。

方法一:从源代码编译

git clone https://github.com/timdettmers/bitsandbytes.git
cd bitsandbytes
CUDA_VERSION=117 make cuda11x
python setup.py install

这里CUDA_VERSION改为相应的cuda版本。

方法二:设置环境变量

在环境变量LD_LIBRARY_PATH中增加CUDA的lib路径:

export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH 

注:命令只会在当前终端生效

最后再重新安装bitsandbytes。

pip uninstall bitsandbytes
pip install bitsandbytes

参考:大模型GPU安装bitsandbytes报错解决_cuda setup: cuda detection failed! possible reason-CSDN博客

方法三:修改bitsandbytes代码 

找到文件“/home/user (自己位置)/anaconda3/envs/环境名字/lib/python3.11/site-packages/bitsandbytes/cuda_setup/main.py”

1、找到:

if not torch.cuda.is_available(): return 'libsbitsandbytes_cpu.so', None, None, None, None

2、替换为:

if torch.cuda.is_available(): return 'libbitsandbytes_cudaXXX(自己cuda版本).so', None, None, None, None 

 libbitsandbytes_cudaXXX(自己cuda版本).so文件一般在/home/user (自己位置)/anaconda3/envs/环境名字/lib/python3.11/site-packages/bitsandbytes目录下。

 

 3、定位到

self.lib = ct.cdll.LoadLibrary(binary_path)

 4、替换:

self.lib = ct.cdll.LoadLibrary(str(binary_path))

一共有两处,全部替换掉。也可以把原来的注释掉,再新加一行。

此处参考:大模型训练时关于bitsandbytes安装的问题_module 'bitsandbytes' has no attribute 'nn-CSDN博客

5.训练与导出

设置好参数之后点击start,就可以开始训练,训练结束之后显示finished就可以导出模型了。

 在checkpoint path中填入检查点保存位置,在export dir填入要导出的路径,点击export等待模型导出即可。

6. 效果展示

在chat界面导入微调模型,输入问题,查看效果。

可以看到模型已经可以回答中文问题了。


完!!!

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐