Windows部署Alpaca-lora

文章详细介绍了在两台不同配置的Windows机器上部署Alpaca-Lora语言模型的过程,包括下载代码、创建CONDA环境、安装依赖等步骤。在部署过程中遇到了两个主要问题:1)NoneTypeobjecthasnoattributedevice错误,通过更新bitsandbytes库和CUDA补丁解决;2)数据下载后无法访问本地地址,修改generate.py文件解决。最终成功运行模型并能进行对话。
摘要由CSDN通过智能技术生成

 Alpaca-Lora 是一个轻量级的语言模型,可以实现基本的语言类对话。 本文先后在两台机器上进行了配置,行文旨在介绍将此模型部署至Windows系统上时所遭遇的各种困扰。

机器1配置:

        NVIDIA TITAN Xp

机器2配置

        RTX3090+RTX2070

配置过程

通用部分

1.下载项目代码

访问github,下载aplaca-lora。下载地址:GitHub - tloen/alpaca-lora: Instruct-tune LLaMA on consumer hardwarex

2.创建CONDA环境

conda create -n alpaca python=3.8.5

Python版本一般不做约束,但本文所参考的教程为3.8.5,故与其保持一致。此后进入此环境。

3.安装此环境对应的依赖

直接使用如下命令安装

pip install -r requirements.txt

此后,安装对应的pytorch与cuda。首先安装cudatoolkit。

conda install cudatoolkit==11.6

此后,安装对应的pytorch:

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

在本地测试时,cudatoolkit无法通过pip安装,故使用conda安装;pytorch版本推荐11.6,原因见下文。

此外,从官网下载cuda最新版本并安装,记录其安装路径。

4.两台机器共性问题

问题1

在安装完上述环境以后,在执行如下命令

python generate.py --load_8bit --base_model 'decapoda-research/llama-7b-hf' --lora_weights 'tloen/alpaca-lora-7b'

产生如下报错:

AttributeError: 'NoneType' object has no attribute 'device'

查阅相关资料,发现该错误由bitsandbytes库引发,该库主要用于Linux上.

经过翻找前人文献,此问题的解决方案如下:

1.进入......\CUDA\v12.1\bin(即上文所述的最新版cuda安装路径),此后复制以下文件。

cudart64_12.dll
cublas64_12.dll
cublasLt64_12.dll
cusparse64_12.dll
nvJitLink_120_0.dll

找到当前新建环境的目录,将上述文件复制至Lib\site-packages\bitsandbytes文件夹内。

2.此后,下载cuda补丁 libbitsandbytes_cuda116.dll,同样找到上文所述文件夹,此后将此文件放入其中;

3.此后打开bitsandbytes目录下\cuda_setup\main.py文件,查找如下代码段:

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

将其替换为

if torch.cuda.is_available(): return 'libbitsandbytes_cuda116.dll', None, None, None, None

此后查找如下代码段

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

替换为

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

由于只找到了cuda116.dll,故第一处只能替换为cuda116.dll。如此可解决第一个问题;

问题2

在解决上述问题后,再次尝试运行命令,此时会自动下载对应的数据。最后产生一个本地ip地址,但链接无法打开。

经检查后,在generate.py文件中,查找queue().launch,去除其中launch的所有参数。

再次尝试运行,此时已经可以运行,可以正常对话。产生对应的本地地址后,访问即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值