前提条件:需要单张A100或A800显卡,或两张3090显卡,或者以上规模。
以下正文:远程到GPU服务器,本地使用的是Centos 7.5系统环境。然后查看显卡信息
查看显卡显存等其他信息,一共8张GTX3080TI显卡,96G显存,应该是够用了。
下载moss项目到本地
git clone https://github.com/OpenLMLab/MOSS.git
本文原文,出自我个人的公众号【Dotnet Dancer】,地址:
【你好!我是MOSS】从0开始搭建本地MOSS智能机器人
git clone报错,可能是第一次使用,git 版本有问题,先卸载
yum remove git
安装git 依赖包们
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc -y
yum install gcc perl-ExtUtils-MakeMaker -y
查看git版本列表
https://mirrors.edge.kernel.org/pub/software/scm/git
下载指定的版本,例如最新版 git-2.39.2.tar.gz
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.2.tar.gz
报错了,根据提示进行改造一下,为了以防万一,git版本下载低一点的,例如2.28.0
解压和创建git安装文件夹
tar -zxf git-2.28.0.tar.gz
mkdir -p ~/local/git
cd git-2.28.0/
./configure --prefix=$HOME/local/git
编译与安装git
make && make install
设置环境变量和查看当前版本
export PATH=$HOME/local/git/bin:$PATH
git version
重新拉取代码
可能是网络原因,或者其他某些原因,一直无法拉取成功
只能使用工具传上去,例如 winSCP。先把moss库git clone到本地,然后通过工具传输到远程服务器上。
MOSS项目现在在服务器上了
把默认的torch版本改为1.13.1版本或者其他高版本也行【备注:现在最新的代码库,已经修复了低版本问题,该步骤可以省略】
进行安装moss依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
安装pip
yum install epel-release
yum install -y python-pip
验证pip,检查版本通过即可。
需要conda环境,先安装anaconda,例如我找个最新版进行安装
https://repo.anaconda.com/archive/
焦急地等待中……下载有点慢,让它跑一会儿
下载失败,只好本地下载再传送过去了
传输成功,在路径下可以看见ananconda安装包了
安装anaconda
sh Anaconda3-2023.03-1-Linux-x86_64.sh
配置anaconda环境变量
获取到ananconda安装的路径
配置环境变量
vim ~/.bashrc
把anaconda的bin目录添加到环境变量里面去
输入 conda没有报错,代表环境安装完成
创建conda环境
conda create --name moss python=3.8
conda activate moss
现在重新安装文件里面的依赖,可以通过python3来安装了。先前应该是本地只有python2环境导致的匹配不到高版本的包
pip3 install -r requirements.txt
如果下载太慢,就换一个国内镜像站,例如清华镜像站,速度马上飞起
-i https://pypi.tuna.tsinghua.edu.cn/simple
运行demo代码,首次运行会下载模型,大约30G左右
python moss_cli_demo.py
模型下载失败,一断回到解放前……
改下下载超时规则,找到 huggingface_hub下面的_http.py代码进行修改
requests.exceptions包导入额外的功能,可参考自行比对,可能有差异,不够就补。
from requests.exceptions import ConnectTimeout, ProxyError,SSLError,Timeout
以及超时时间、重试等都设置大一点。
重新走一个,发现好像不明所以地变快了???
最终还是下载失败,于是上hugging face下载到本地,然后再传输到服务器上。Fugging face所在模型地址:
https://huggingface.co/fnlp/moss-moon-003-sft/tree/main
丢到MOSS下的fnlp文件夹下:
最后重新运行demo代码,显示运行通过。
【注意事项】demo源码一些代码,可能需要自己更改默认参数。可以通过vim打开进行更改,此处不演示。
不过在对话过程中,报错了,显示RuntimeError: No CUDA GPUs are available
开始解决RuntimeError: No CUDA GPUs are available错误
先验证下cuda是否生效,写个python代码进行输出
验证显卡,发现显卡驱动没了
先确认下显卡还在不在,以及旧版显卡驱动,如果有旧版驱动,先卸载旧版驱动
lspci | grep -i nvidia
yum remove "*nvidia*"
也检查下驱动的一些其他依赖,例如 cuda、cublas等。发现没查出来,就代表没有。有的话也要进行移除。
下载最新版驱动
https://www.nvidia.cn/Download/index.aspx?lang=cn
下载以后,放到服务器上,进行安装。
发现权限可能不够,授予权限
chmod 777 NVIDIA-Linux-x86_64-525.116.03.run
检查nouveau驱动是否禁用,安装显卡前需要先禁用。
lsmod | grep nouveau
如果有输出,代表已启动。
vim /lib/modprobe.d/dist-blacklist.conf
在文件末尾新增两行
blacklist nouveau
options nouveau modeset=0
备份initramfs:
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
重新建立initramfs
dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
重启以后,该驱动没输出了,说明驱动屏蔽完毕。
开始安装
./NVIDIA-Linux-x86_64-525.116.03.run -no-x-check
有一些检查项,直接默认
安装完毕以后,检查显卡,可以出来了
安装cuda环境
Nvidia安装文档链接
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
选择下载的版本
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=CentOS&target_version=7&target_type=rpm_network
根据提示的内容,进行相关操作
yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
安装dkms驱动
yum clean all
yum -y install nvidia-driver-latest-dkms
安装cuda环境
yum -y install cuda
Cuda安装完成
测试一下环境
nvcc -V
发现还是没有命令,但是在 /usr/local/cuda下面是有文件的,说明可能是环境变量没配置
修改配置文件
vim ~/.bashrc
最末尾新增
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
sourse一下,重新输入 nvcc -V 即可看到cuda版本信息,说明cuda环境OK了。
本文原文,出自我个人的公众号【Dotnet Dancer】,地址:
【你好!我是MOSS】从0开始搭建本地MOSS智能机器人
重新启动服务器,进入激活moss环境,通过输入python代码重新验证一下,发现已经通过:
重新运行demo代码,运行成功,输入内容进行对话测试,结果如下图运行所示
OK,本地部署到此结束。
本文原文,出自我个人的公众号【Dotnet Dancer】,地址:
【你好!我是MOSS】从0开始搭建本地MOSS智能机器人